diff --git a/package.json b/package.json index 7778003..12efdd8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "deploy": "sst deploy", "remove": "sst remove", "console": "sst console", - "typecheck": "tsc --noEmit" + "typecheck": "tsc --noEmit", + "clean": "rm -rf node_modules pnpm-lock.yml packages/*/{pnpm-lock.yml,.next,out,coverage,.nyc_output,worker,dist,node_modules}" }, "devDependencies": { "@sentry/serverless": "^7.52.1", @@ -22,6 +23,7 @@ "aws-cdk-lib": "2.72.1", "constructs": "10.1.156", "git-rev-sync": "^3.0.2", + "ts-node": "^10.9.1", "typescript": "^5.0.4", "@tsconfig/node16": "^1.0.3" }, diff --git a/packages/core/buckets/offer-store.ts b/packages/core/buckets/offer-store.ts new file mode 100644 index 0000000..028c688 --- /dev/null +++ b/packages/core/buckets/offer-store.ts @@ -0,0 +1,47 @@ +import { + S3Client, + ServiceInputTypes, + PutObjectCommand, +} from '@aws-sdk/client-s3' +import pRetry from 'p-retry' + +import * as AggregateAPI from '@web3-storage/aggregate-api' + +export function createOfferStore(region: string, bucketName: string, options?: ServiceInputTypes) { + const s3 = new S3Client({ + region, + ...(options || {}), + }) + return useOfferStore(s3, bucketName) +} + +export function useOfferStore(s3client: S3Client, bucketName: string) { + return { + put: async (commitmentProof: string, offers: AggregateAPI.Offer[]) => { + const putCmd = new PutObjectCommand({ + Bucket: bucketName, + ContentType: 'application/json', + Key: `${getNextUtcDateName()} ${commitmentProof}`, + Body: JSON.stringify({ + commitmentProof, + offers + }) + }) + + await pRetry(() => s3client.send(putCmd)) + } + } as AggregateAPI.OfferStore +} + +export function getNextUtcDateName() { + const cDate = new Date() + + // normalize date to multiple of 15 minutes + const currentMinute = cDate.getUTCMinutes() + const factor = Math.floor(currentMinute / 15) + 1 + const additionalTime = ((factor * 15) - currentMinute) * 60000 + + const nDate = new Date(cDate.getTime() + additionalTime) + + return `${nDate.getUTCFullYear()}-${nDate.getUTCMonth()}-${nDate.getUTCDay()} ${nDate.getUTCHours()}:${nDate.getUTCMinutes()}:00` +} diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..a9ee303 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,37 @@ +{ + "name": "@spade-proxy/core", + "version": "0.0.0", + "type": "module", + "scripts": { + "test": "ava --node-arguments='--experimental-fetch' --verbose --timeout=60s 'test/**.test.js'", + "typecheck": "tsc -noEmit" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.338.0", + "@ipld/dag-ucan": "3.3.2", + "@ucanto/interface": "8.0.0", + "@ucanto/principal": "^8.0.0", + "@web3-storage/capabilities": "file:../../../w3up/packages/capabilities", + "@web3-storage/aggregate-api": "file:../../../w3up/packages/aggregate-api", + "@web3-storage/aggregate-client": "file:../../../w3up/packages/aggregate-client", + "p-retry": "^5.1.2" + }, + "devDependencies": { + "@types/node": "^18.16.3", + "@web-std/blob": "^3.0.4", + "ava": "^4.3.3", + "nanoid": "^4.0.0", + "sst": "^2.8.3", + "testcontainers": "^8.13.0", + "typescript": "^5.0.4" + }, + "ava": { + "extensions": { + "ts": "module", + "js": true + }, + "nodeArguments": [ + "--loader=ts-node/esm" + ] + } +} \ No newline at end of file diff --git a/packages/core/service.ts b/packages/core/service.ts new file mode 100644 index 0000000..6ad67b0 --- /dev/null +++ b/packages/core/service.ts @@ -0,0 +1,31 @@ +import * as ed25519 from '@ucanto/principal/ed25519' +import * as DID from '@ipld/dag-ucan/did' +import { Signer } from '@ucanto/interface' + +import * as AggregateAPI from '@web3-storage/aggregate-api' + +export const createUcantoServer = (servicePrincipal: Signer, context: AggregateAPI.ServiceContext, errorReporter: AggregateAPI.ErrorReporter) => +AggregateAPI.createServer({ + ...context, + id: servicePrincipal, + errorReporter +}) + +/** + * Given a config, return a ucanto Signer object representing the service + */ + export function getServiceSigner(config: ServiceSignerCtx) { + const signer = ed25519.parse(config.PRIVATE_KEY) + if (config.SPADE_PROXY_DID) { + const did = DID.parse(config.SPADE_PROXY_DID).did() + return signer.withDID(did) + } + return signer +} + +export type ServiceSignerCtx = { + // multiformats private key of primary signing key + PRIVATE_KEY: string + // public DID for the upload service (did:key:... derived from PRIVATE_KEY if not set) + SPADE_PROXY_DID: string +} diff --git a/packages/core/tables/aggregate-store.ts b/packages/core/tables/aggregate-store.ts new file mode 100644 index 0000000..16336f1 --- /dev/null +++ b/packages/core/tables/aggregate-store.ts @@ -0,0 +1,13 @@ +import * as AggregateAPI from '@web3-storage/aggregate-api' + +export function createAggregateStore() { + return useAggregateStore() +} + +export function useAggregateStore() { + return { + get: async (commitmentProof: string) => { + throw new Error('not yet implemented') + } + } as AggregateAPI.AggregateStore +} diff --git a/packages/core/tables/arranged-offer-store.ts b/packages/core/tables/arranged-offer-store.ts new file mode 100644 index 0000000..40e3bb2 --- /dev/null +++ b/packages/core/tables/arranged-offer-store.ts @@ -0,0 +1,13 @@ +import * as AggregateAPI from '@web3-storage/aggregate-api' + +export function createArrangedOfferStore() { + return useArrangedOfferStore() +} + +export function useArrangedOfferStore() { + return { + get: async (commitmentProof: string) => { + throw new Error('not yet implemented') + } + } as AggregateAPI.ArrangedOfferStore +} diff --git a/packages/core/test/buckets.js b/packages/core/test/buckets.js new file mode 100644 index 0000000..e69de29 diff --git a/packages/core/test/helpers/context.js b/packages/core/test/helpers/context.js new file mode 100644 index 0000000..6015ea5 --- /dev/null +++ b/packages/core/test/helpers/context.js @@ -0,0 +1,11 @@ +import anyTest from 'ava' + +/** + * @typedef {object} S3Context + * @property {import('@aws-sdk/client-s3').S3Client} s3 + * + * @typedef {import("ava").TestFn} Test + */ + +// eslint-disable-next-line unicorn/prefer-export-from +export const test = /** @type {Test} */ (anyTest) diff --git a/packages/core/test/helpers/resources.js b/packages/core/test/helpers/resources.js new file mode 100644 index 0000000..c1f54b0 --- /dev/null +++ b/packages/core/test/helpers/resources.js @@ -0,0 +1,44 @@ +import { customAlphabet } from 'nanoid' +import { GenericContainer as Container } from 'testcontainers' +import { S3Client, CreateBucketCommand } from '@aws-sdk/client-s3' + +/** + * @param {object} [opts] + * @param {number} [opts.port] + * @param {string} [opts.region] + */ +export async function createS3(opts = {}) { + const region = opts.region || 'us-west-2' + const port = opts.port || 9000 + + const minio = await new Container('quay.io/minio/minio') + .withCmd(['server', '/data']) + .withExposedPorts(port) + .start() + + const clientOpts = { + endpoint: `http://${minio.getHost()}:${minio.getMappedPort(port)}`, + forcePathStyle: true, + region, + credentials: { + accessKeyId: 'minioadmin', + secretAccessKey: 'minioadmin', + }, + } + + return { + client: new S3Client(clientOpts), + clientOpts, + } +} + +/** + * @param {S3Client} s3 + */ +export async function createBucket(s3) { + const id = customAlphabet('1234567890abcdefghijklmnopqrstuvwxyz', 10) + const Bucket = id() + await s3.send(new CreateBucketCommand({ Bucket })) + return Bucket +} + diff --git a/packages/core/test/service.test.js b/packages/core/test/service.test.js new file mode 100644 index 0000000..a0e2b6f --- /dev/null +++ b/packages/core/test/service.test.js @@ -0,0 +1,80 @@ +/* eslint-disable no-loop-func */ +import { Aggregate } from '@web3-storage/aggregate-api/test' +import { ed25519 } from '@ucanto/principal' + +import { test } from './helpers/context.js' +import { createS3, createBucket } from './helpers/resources.js' + +import { useOfferStore } from '../buckets/offer-store.js' +// TODO: Include official one +// import { useAggregateStore } from '../tables/aggregate-store.js' +import { useArrangedOfferStore } from '../tables/arranged-offer-store.js' + +test.before(async (t) => { + Object.assign(t.context, { + s3: (await createS3()).client, + }) +}) + +for (const [title, unit] of Object.entries(Aggregate.test)) { + test(title, async (t) => { + const { s3 } = t.context + const bucketName = await createBucket(s3) + + const offerStore = useOfferStore(s3, bucketName) + const arrangedOfferStore = useArrangedOfferStore() + const aggregateStore = getAggregateStore() + + const signer = await ed25519.generate() + const id = signer.withDID('did:web:test.web3.storage') + + await unit( + { + ok: (actual, message) => t.truthy(actual, message), + equal: (actual, expect, message) => + t.is(actual, expect, message ? String(message) : undefined), + deepEqual: (actual, expect, message) => + t.deepEqual(actual, expect, message ? String(message) : undefined), + }, + { + id, + errorReporter: { + catch(error) { + t.fail(error.message) + }, + }, + offerStore, + aggregateStore, + aggregateStoreBackend: aggregateStore, + arrangedOfferStore + } + ) + }) +} + +function getAggregateStore () { + /** @type {Map} */ + const items = new Map() + + /** @type {import('@web3-storage/aggregate-api').AggregateStoreBackend & import('@web3-storage/aggregate-api').AggregateStore} */ + const store = { + get: async (commitmentProof) => { + return Promise.resolve(items.get(commitmentProof)) + }, + put: async (commitmentProof, deal) => { + const dealEntries = items.get(commitmentProof) + let newEntries + if (dealEntries) { + newEntries = [...dealEntries, deal] + items.set(commitmentProof, newEntries) + } else { + newEntries = [deal] + items.set(commitmentProof, newEntries) + } + + return Promise.resolve() + } + } + + return store +} \ No newline at end of file diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..3a1245d --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@tsconfig/node16/tsconfig.json", + "compilerOptions": { + "module": "esnext" + } +} diff --git a/packages/functions/package.json b/packages/functions/package.json index ff0f54e..b01b619 100644 --- a/packages/functions/package.json +++ b/packages/functions/package.json @@ -6,10 +6,15 @@ "test": "sst bind vitest", "typecheck": "tsc -noEmit" }, + "dependencies": { + "@spade-proxy/core": "*", + "@ucanto/server": "^8.0.0" + }, "devDependencies": { "@sentry/serverless": "7.52.1", "@types/aws-lambda": "^8.10.115", "@types/node": "^18.16.3", + "@ucanto/core": "^8.0.0", "vitest": "^0.31.0", "sst": "^2.8.3", "typescript": "^5.0.4" diff --git a/packages/functions/src/api/ucan-invocation-router.ts b/packages/functions/src/api/ucan-invocation-router.ts new file mode 100644 index 0000000..21de5a1 --- /dev/null +++ b/packages/functions/src/api/ucan-invocation-router.ts @@ -0,0 +1,106 @@ +import * as Sentry from '@sentry/serverless' +import { Config } from 'sst/node/config' +import { APIGatewayProxyEventV2 } from 'aws-lambda' + +import * as Server from '@ucanto/server' +import { API } from '@ucanto/core' + +import { createOfferStore } from '@spade-proxy/core/buckets/offer-store' +import { createAggregateStore } from '@spade-proxy/core/tables/aggregate-store' +import { createArrangedOfferStore } from '@spade-proxy/core/tables/arranged-offer-store' +import { createUcantoServer, getServiceSigner } from '@spade-proxy/core/service' + +Sentry.AWSLambda.init({ + environment: process.env.SST_STAGE, + dsn: process.env.SENTRY_DSN, + tracesSampleRate: 1.0, +}) +const AWS_REGION = process.env.AWS_REGION || 'us-west-2' + +export async function ucanInvocationRouter(request: APIGatewayProxyEventV2) { + request.headers + const { + OFFER_BUCKET_NAME: offerBucketName = '', + SPADE_PROXY_DID + } = process.env + + if (!SPADE_PROXY_DID) { + return { + statusCode: 500, + } + } else if (request.body === undefined) { + return { + statusCode: 400, + } + } + + const { PRIVATE_KEY } = Config + const serviceSigner = getServiceSigner({ SPADE_PROXY_DID, PRIVATE_KEY }) + const server = createUcantoServer(serviceSigner, { + aggregateStore: createAggregateStore(), + offerStore: createOfferStore(AWS_REGION, offerBucketName), + arrangedOfferStore: createArrangedOfferStore() + }, { + catch: (/** @type {string | Error} */ err) => { + console.warn(err) + Sentry.AWSLambda.captureException(err) + }, + }) + + const payload = fromLambdaRequest(request) + const result = server.codec.accept(payload) + // if we can not select a codec we respond with error. + if (result.error) { + return toLambdaResponse({ + status: result.error.status, + headers: result.error.headers || {}, + body: Buffer.from(result.error.message || ''), + }) + } + + const { encoder, decoder } = result.ok + /** @type {API.AgentMessage} */ + const message = await decoder.decode(payload) + + // We block until we can log the UCAN invocation if this fails we return a 500 + // to the client. That is because in the future we expect that invocations will + // be written to a queue first and then processed asynchronously, so if we + // fail to enqueue the invocation we should fail the request. + // TODO: Send ucan invocations + // await ucanLog.log(CAR.request.encode(message)) + + // Execute invocations + // @ts-expect-error message with unknown... + const outgoing = await Server.execute(message, server) + const response = await encoder.encode(outgoing) + + // TODO: Send ucan receipt + // await ucanLog.log(CAR.response.encode(result))) + + return toLambdaResponse(response) +} + +export const handler = Sentry.AWSLambda.wrapHandler(ucanInvocationRouter) + +export function toLambdaResponse({ status = 200, headers, body }: API.HTTPResponse) { + return { + statusCode: status, + headers, + body: Buffer.from(body).toString('base64'), + isBase64Encoded: true, + } +} + +export const fromLambdaRequest = (request: APIGatewayProxyEventV2) => ({ + headers: /** @type {Record} */ (request.headers), + body: Buffer.from(request.body || '', 'base64'), +} as API.HTTPRequest) + +// would be generated by sst, but requires `sst build` to be run, which calls out to aws; not great for CI +declare module 'sst/node/config' { + export interface SecretResources { + PRIVATE_KEY: { + value: string + } + } +} diff --git a/packages/functions/sst-env.d.ts b/packages/functions/sst-env.d.ts new file mode 100644 index 0000000..a9187e8 --- /dev/null +++ b/packages/functions/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31b9b24..93d7e41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,7 @@ importers: git-rev-sync: ^3.0.2 node-fetch: ^3.3.1 sst: ^2.8.3 + ts-node: ^10.9.1 typescript: ^5.0.4 dependencies: node-fetch: 3.3.1 @@ -25,20 +26,63 @@ importers: constructs: 10.1.156 git-rev-sync: 3.0.2 sst: 2.8.7_typescript@5.0.4 + ts-node: 10.9.1_x553fjfla674sodvstc3oio7dy + typescript: 5.0.4 + + packages/core: + specifiers: + '@aws-sdk/client-s3': ^3.338.0 + '@ipld/dag-ucan': 3.3.2 + '@types/node': ^18.16.3 + '@ucanto/interface': 8.0.0 + '@ucanto/principal': ^8.0.0 + '@web-std/blob': ^3.0.4 + '@web3-storage/aggregate-api': file:../../../w3up/packages/aggregate-api + '@web3-storage/aggregate-client': file:../../../w3up/packages/aggregate-client + '@web3-storage/capabilities': file:../../../w3up/packages/capabilities + ava: ^4.3.3 + nanoid: ^4.0.0 + p-retry: ^5.1.2 + sst: ^2.8.3 + testcontainers: ^8.13.0 + typescript: ^5.0.4 + dependencies: + '@aws-sdk/client-s3': 3.338.0 + '@ipld/dag-ucan': 3.3.2 + '@ucanto/interface': 8.0.0 + '@ucanto/principal': 8.0.0 + '@web3-storage/aggregate-api': file:../w3up/packages/aggregate-api + '@web3-storage/aggregate-client': file:../w3up/packages/aggregate-client + '@web3-storage/capabilities': file:../w3up/packages/capabilities + p-retry: 5.1.2 + devDependencies: + '@types/node': 18.16.5 + '@web-std/blob': 3.0.4 + ava: 4.3.3 + nanoid: 4.0.2 + sst: 2.8.7_typescript@5.0.4 + testcontainers: 8.16.0 typescript: 5.0.4 packages/functions: specifiers: '@sentry/serverless': 7.52.1 + '@spade-proxy/core': '*' '@types/aws-lambda': ^8.10.115 '@types/node': ^18.16.3 + '@ucanto/core': ^8.0.0 + '@ucanto/server': ^8.0.0 sst: ^2.8.3 typescript: ^5.0.4 vitest: ^0.31.0 + dependencies: + '@spade-proxy/core': link:../core + '@ucanto/server': 8.0.1 devDependencies: '@sentry/serverless': 7.52.1 '@types/aws-lambda': 8.10.115 '@types/node': 18.16.5 + '@ucanto/core': 8.0.0 sst: 2.8.7_typescript@5.0.4 typescript: 5.0.4 vitest: 0.31.0 @@ -148,7 +192,6 @@ packages: '@aws-crypto/util': 3.0.0 '@aws-sdk/types': 3.310.0 tslib: 1.14.1 - dev: true /@aws-crypto/crc32c/3.0.0: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} @@ -156,13 +199,11 @@ packages: '@aws-crypto/util': 3.0.0 '@aws-sdk/types': 3.310.0 tslib: 1.14.1 - dev: true /@aws-crypto/ie11-detection/3.0.0: resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} dependencies: tslib: 1.14.1 - dev: true /@aws-crypto/sha1-browser/3.0.0: resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} @@ -170,11 +211,10 @@ packages: '@aws-crypto/ie11-detection': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.338.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 - dev: true /@aws-crypto/sha256-browser/3.0.0: resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} @@ -183,25 +223,22 @@ packages: '@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.310.0 + '@aws-sdk/types': 3.338.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 - dev: true /@aws-crypto/sha256-js/3.0.0: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.338.0 tslib: 1.14.1 - dev: true /@aws-crypto/supports-web-crypto/3.0.0: resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} dependencies: tslib: 1.14.1 - dev: true /@aws-crypto/util/3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} @@ -209,7 +246,6 @@ packages: '@aws-sdk/types': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 - dev: true /@aws-sdk/abort-controller/3.310.0: resolution: {integrity: sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g==} @@ -219,11 +255,18 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/abort-controller/3.338.0: + resolution: {integrity: sha512-/yLI32+HwFNBRJ39jMXw+/cn3AnlCuJpQd7Ax4887g32Dgte5eyrfY8sJUOL6902BUmAq4oSRI5QeBXNplO0Xw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/chunked-blob-reader/3.310.0: resolution: {integrity: sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg==} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/client-cloudformation/3.328.0: resolution: {integrity: sha512-T5O8lMV95RzLO6UHJkBst4pevSY0t0t6Rc/hTmW983SIoiZxQKyVrr1vbDi9tg5uXa7khZbiZEn+Gcz2x+sfnQ==} @@ -554,6 +597,70 @@ packages: - aws-crt dev: true + /@aws-sdk/client-s3/3.338.0: + resolution: {integrity: sha512-qnQlEyUXypg8QlH21JBJcDitXmaZXwde2YO5Ic3mUSu5zMtsOCmV/C5EVSlTz1OPqngmezF7WcqepYrm7ZfEag==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha1-browser': 3.0.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.338.0 + '@aws-sdk/config-resolver': 3.338.0 + '@aws-sdk/credential-provider-node': 3.338.0 + '@aws-sdk/eventstream-serde-browser': 3.338.0 + '@aws-sdk/eventstream-serde-config-resolver': 3.338.0 + '@aws-sdk/eventstream-serde-node': 3.338.0 + '@aws-sdk/fetch-http-handler': 3.338.0 + '@aws-sdk/hash-blob-browser': 3.338.0 + '@aws-sdk/hash-node': 3.338.0 + '@aws-sdk/hash-stream-node': 3.338.0 + '@aws-sdk/invalid-dependency': 3.338.0 + '@aws-sdk/md5-js': 3.338.0 + '@aws-sdk/middleware-bucket-endpoint': 3.338.0 + '@aws-sdk/middleware-content-length': 3.338.0 + '@aws-sdk/middleware-endpoint': 3.338.0 + '@aws-sdk/middleware-expect-continue': 3.338.0 + '@aws-sdk/middleware-flexible-checksums': 3.338.0 + '@aws-sdk/middleware-host-header': 3.338.0 + '@aws-sdk/middleware-location-constraint': 3.338.0 + '@aws-sdk/middleware-logger': 3.338.0 + '@aws-sdk/middleware-recursion-detection': 3.338.0 + '@aws-sdk/middleware-retry': 3.338.0 + '@aws-sdk/middleware-sdk-s3': 3.338.0 + '@aws-sdk/middleware-serde': 3.338.0 + '@aws-sdk/middleware-signing': 3.338.0 + '@aws-sdk/middleware-ssec': 3.338.0 + '@aws-sdk/middleware-stack': 3.338.0 + '@aws-sdk/middleware-user-agent': 3.338.0 + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/node-http-handler': 3.338.0 + '@aws-sdk/signature-v4-multi-region': 3.338.0 + '@aws-sdk/smithy-client': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/url-parser': 3.338.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.338.0 + '@aws-sdk/util-defaults-mode-node': 3.338.0 + '@aws-sdk/util-endpoints': 3.338.0 + '@aws-sdk/util-retry': 3.338.0 + '@aws-sdk/util-stream-browser': 3.338.0 + '@aws-sdk/util-stream-node': 3.338.0 + '@aws-sdk/util-user-agent-browser': 3.338.0 + '@aws-sdk/util-user-agent-node': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + '@aws-sdk/util-waiter': 3.338.0 + '@aws-sdk/xml-builder': 3.310.0 + '@smithy/protocol-http': 1.0.1 + '@smithy/types': 1.0.0 + fast-xml-parser: 4.1.2 + tslib: 2.5.0 + transitivePeerDependencies: + - '@aws-sdk/signature-v4-crt' + - aws-crt + dev: false + /@aws-sdk/client-ssm/3.328.0: resolution: {integrity: sha512-jnBwQtrqPFBsWcdcgC4uoMHboaUG/25CoUc8WqawMOZwKsf3BqjfZyOCKGdVkXkjJiBVPF6F+2wC5BhhfrkmtQ==} engines: {node: '>=14.0.0'} @@ -639,6 +746,47 @@ packages: - aws-crt dev: true + /@aws-sdk/client-sso-oidc/3.338.0: + resolution: {integrity: sha512-mny5Q3LWKTcMMFS8WxeOCTinl193z7vS3b+eQz09K4jb1Lq04Bpjw25cySgBnhMGZ7QHQiYBscNLyu/TfOKiHA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/config-resolver': 3.338.0 + '@aws-sdk/fetch-http-handler': 3.338.0 + '@aws-sdk/hash-node': 3.338.0 + '@aws-sdk/invalid-dependency': 3.338.0 + '@aws-sdk/middleware-content-length': 3.338.0 + '@aws-sdk/middleware-endpoint': 3.338.0 + '@aws-sdk/middleware-host-header': 3.338.0 + '@aws-sdk/middleware-logger': 3.338.0 + '@aws-sdk/middleware-recursion-detection': 3.338.0 + '@aws-sdk/middleware-retry': 3.338.0 + '@aws-sdk/middleware-serde': 3.338.0 + '@aws-sdk/middleware-stack': 3.338.0 + '@aws-sdk/middleware-user-agent': 3.338.0 + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/node-http-handler': 3.338.0 + '@aws-sdk/smithy-client': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/url-parser': 3.338.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.338.0 + '@aws-sdk/util-defaults-mode-node': 3.338.0 + '@aws-sdk/util-endpoints': 3.338.0 + '@aws-sdk/util-retry': 3.338.0 + '@aws-sdk/util-user-agent-browser': 3.338.0 + '@aws-sdk/util-user-agent-node': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + '@smithy/protocol-http': 1.0.1 + '@smithy/types': 1.0.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/client-sso/3.328.0: resolution: {integrity: sha512-IneVwc4j3bCXwCdNAALQ8VVrfFTFAb2f3FxerHv4DLx8OlMTvZiraDDJisfO+cXLl2WCJOJAzpAJTgrPA50LCg==} engines: {node: '>=14.0.0'} @@ -679,6 +827,47 @@ packages: - aws-crt dev: true + /@aws-sdk/client-sso/3.338.0: + resolution: {integrity: sha512-EglKsGlVph65PuFPKq1nGlxsY99XM2xHJaB1uX0bQEC94qrmS/M4a5kno5tiUnTWO1K+K4JBQiOxdGJs0GUS+w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/config-resolver': 3.338.0 + '@aws-sdk/fetch-http-handler': 3.338.0 + '@aws-sdk/hash-node': 3.338.0 + '@aws-sdk/invalid-dependency': 3.338.0 + '@aws-sdk/middleware-content-length': 3.338.0 + '@aws-sdk/middleware-endpoint': 3.338.0 + '@aws-sdk/middleware-host-header': 3.338.0 + '@aws-sdk/middleware-logger': 3.338.0 + '@aws-sdk/middleware-recursion-detection': 3.338.0 + '@aws-sdk/middleware-retry': 3.338.0 + '@aws-sdk/middleware-serde': 3.338.0 + '@aws-sdk/middleware-stack': 3.338.0 + '@aws-sdk/middleware-user-agent': 3.338.0 + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/node-http-handler': 3.338.0 + '@aws-sdk/smithy-client': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/url-parser': 3.338.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.338.0 + '@aws-sdk/util-defaults-mode-node': 3.338.0 + '@aws-sdk/util-endpoints': 3.338.0 + '@aws-sdk/util-retry': 3.338.0 + '@aws-sdk/util-user-agent-browser': 3.338.0 + '@aws-sdk/util-user-agent-node': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + '@smithy/protocol-http': 1.0.1 + '@smithy/types': 1.0.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/client-sts/3.328.0: resolution: {integrity: sha512-Eedz24H7zLuTjJoCtNQEGOKbIlhibqyasFFwWsds6ds24hRF4fVrCKLwZWENZwawtJjjEdRESQe4dwpV5lWqtw==} engines: {node: '>=14.0.0'} @@ -723,6 +912,51 @@ packages: - aws-crt dev: true + /@aws-sdk/client-sts/3.338.0: + resolution: {integrity: sha512-FBHy/G7BAPX0CdEeeGYpoAnKXVCSIIkESLU2wF6x880z+U2IqiL48Fzoa5qoLaLPQaK/30P7ytznkqm4vd1OFw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/config-resolver': 3.338.0 + '@aws-sdk/credential-provider-node': 3.338.0 + '@aws-sdk/fetch-http-handler': 3.338.0 + '@aws-sdk/hash-node': 3.338.0 + '@aws-sdk/invalid-dependency': 3.338.0 + '@aws-sdk/middleware-content-length': 3.338.0 + '@aws-sdk/middleware-endpoint': 3.338.0 + '@aws-sdk/middleware-host-header': 3.338.0 + '@aws-sdk/middleware-logger': 3.338.0 + '@aws-sdk/middleware-recursion-detection': 3.338.0 + '@aws-sdk/middleware-retry': 3.338.0 + '@aws-sdk/middleware-sdk-sts': 3.338.0 + '@aws-sdk/middleware-serde': 3.338.0 + '@aws-sdk/middleware-signing': 3.338.0 + '@aws-sdk/middleware-stack': 3.338.0 + '@aws-sdk/middleware-user-agent': 3.338.0 + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/node-http-handler': 3.338.0 + '@aws-sdk/smithy-client': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/url-parser': 3.338.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-body-length-browser': 3.310.0 + '@aws-sdk/util-body-length-node': 3.310.0 + '@aws-sdk/util-defaults-mode-browser': 3.338.0 + '@aws-sdk/util-defaults-mode-node': 3.338.0 + '@aws-sdk/util-endpoints': 3.338.0 + '@aws-sdk/util-retry': 3.338.0 + '@aws-sdk/util-user-agent-browser': 3.338.0 + '@aws-sdk/util-user-agent-node': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + '@smithy/protocol-http': 1.0.1 + '@smithy/types': 1.0.0 + fast-xml-parser: 4.1.2 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/config-resolver/3.310.0: resolution: {integrity: sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g==} engines: {node: '>=14.0.0'} @@ -733,6 +967,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/config-resolver/3.338.0: + resolution: {integrity: sha512-rB9WUaMfTB74Hd2mOiyPFR7Q1viT+w6SaDSR9SA1P8EeIg5H13FNdIKb736Z8/6QJhDj7whdyk1CTGV+DmXOOg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-config-provider': 3.310.0 + '@aws-sdk/util-middleware': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/credential-provider-cognito-identity/3.328.0: resolution: {integrity: sha512-Q8rgwqkJznbCpNbK0pSgBujGaQ5S8Y6BpRVrc/F5I6+JB/xPD552eVfEnm8iSgzC5nmeN06RLjX8pXIIaZQ4og==} engines: {node: '>=14.0.0'} @@ -754,6 +998,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/credential-provider-env/3.338.0: + resolution: {integrity: sha512-j14vApy80tpk87C3x3uBf1caQsuR8RdQ8iOW830H/AOhsa88XaZIB/NQSX7exaIKZa2RU0Vv2wIlGAA8ko7J6g==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/credential-provider-imds/3.310.0: resolution: {integrity: sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w==} engines: {node: '>=14.0.0'} @@ -765,6 +1018,17 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/credential-provider-imds/3.338.0: + resolution: {integrity: sha512-qsqeywYfJevg5pgUUUBmm7pK1bckVrl091PZB2IliFdQVnDvI5GFLf4B0oZqjaLAzPG1gVtxRvqIve+tnP/+xA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/url-parser': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/credential-provider-ini/3.328.0: resolution: {integrity: sha512-tOHzfWQUaQif1IciWs57MFM7bFc+693pnEhFCgT3wjzwjKGkq1QsNzfRlOp1QP4Glw6qV+kAAemEZj8mGth8Bg==} engines: {node: '>=14.0.0'} @@ -782,6 +1046,23 @@ packages: - aws-crt dev: true + /@aws-sdk/credential-provider-ini/3.338.0: + resolution: {integrity: sha512-UhgYgymT9sJiRm0peqP5EvtR4dXiS2Q2AuFgDUjBvDz8JaZlqafsIS4cfyGwTHV/xY6cdiMu5rCTe8hTyXsukQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.338.0 + '@aws-sdk/credential-provider-imds': 3.338.0 + '@aws-sdk/credential-provider-process': 3.338.0 + '@aws-sdk/credential-provider-sso': 3.338.0 + '@aws-sdk/credential-provider-web-identity': 3.338.0 + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/shared-ini-file-loader': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/credential-provider-node/3.328.0: resolution: {integrity: sha512-/omjTxrC8Vv6OPAK+66KNnjVmMZWyEQnQp8e8Y+RZvsuVaeQNJT5UQKSqrYtmqTX2T+yqJY7eVpx5CXBCGjc2g==} engines: {node: '>=14.0.0'} @@ -800,6 +1081,24 @@ packages: - aws-crt dev: true + /@aws-sdk/credential-provider-node/3.338.0: + resolution: {integrity: sha512-nZjaMRxJqX0EXMV9LA5IbRQI1pDGGZiPYX2KDfZ1Y9Gc1Y/vIZhHKOHGb1uKMAonlR076CsXlev4/tjC8SGGuw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.338.0 + '@aws-sdk/credential-provider-imds': 3.338.0 + '@aws-sdk/credential-provider-ini': 3.338.0 + '@aws-sdk/credential-provider-process': 3.338.0 + '@aws-sdk/credential-provider-sso': 3.338.0 + '@aws-sdk/credential-provider-web-identity': 3.338.0 + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/shared-ini-file-loader': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/credential-provider-process/3.310.0: resolution: {integrity: sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA==} engines: {node: '>=14.0.0'} @@ -810,6 +1109,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/credential-provider-process/3.338.0: + resolution: {integrity: sha512-5I1EgJxFFEg8xel2kInMpkdBKajUut0hR2fBajqCmK7Pflu8s0I2NKDots9a3YJagNrFJq38+EzoDcUvRrd2dg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/shared-ini-file-loader': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/credential-provider-sso/3.328.0: resolution: {integrity: sha512-6lSfA3AcoqNt+OYJoBimWmPmqUYVCHkE0Y+4HFN7JaXCyUknsO9/71P5zo/pp8Q7/yxP/aRyzjael82G5thj0A==} engines: {node: '>=14.0.0'} @@ -824,6 +1133,20 @@ packages: - aws-crt dev: true + /@aws-sdk/credential-provider-sso/3.338.0: + resolution: {integrity: sha512-fpzYHK17iF/uFkrm4cLg/utDVKSBTWNjAiNlE3GF6CaixBCwc0QBLKHk2nG4d1ZZeMVCbIUMS7eoqfR0LYc/yw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso': 3.338.0 + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/shared-ini-file-loader': 3.338.0 + '@aws-sdk/token-providers': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/credential-provider-web-identity/3.310.0: resolution: {integrity: sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw==} engines: {node: '>=14.0.0'} @@ -833,6 +1156,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/credential-provider-web-identity/3.338.0: + resolution: {integrity: sha512-kjT/P18jM1icwjYwr8wfY//T8lv2s81ms7OC7vgiSqckmQOxpVkdsep9d44ymSUXwopmotFP7M9gGnEHS6HwAA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/credential-providers/3.328.0: resolution: {integrity: sha512-jSD+xxXLnB358fy2Mvbr5n8Ndzio/bvyMsarppwCp658//zbpu5ycKaMSbao47c3Xaiupgn6YOv5+SeQP+w7tA==} engines: {node: '>=14.0.0'} @@ -864,6 +1196,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/eventstream-codec/3.338.0: + resolution: {integrity: sha512-D9nxnkuY6ArIr+b2Gfc0YExWgNbzgfLIljgcBawL9P4vkkE0uZgPM0fF0Paug2DpkuSluHS6PCLaM/nLbBiLAQ==} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-hex-encoding': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/eventstream-serde-browser/3.310.0: resolution: {integrity: sha512-3S6ziuQVALgEyz0TANGtYDVeG8ArK4Y05mcgrs8qUTmsvlDIXX37cR/DvmVbNB76M4IrsZeSAIajL9644CywkA==} engines: {node: '>=14.0.0'} @@ -873,6 +1214,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/eventstream-serde-browser/3.338.0: + resolution: {integrity: sha512-SRaFPJpCPOghZ9vuStSBzwvVqEX0DSVQl4j1vq/9mHUj1a4Xn0qH29eLBxsyB5NOQNb46RMdd8UTNgNSnCI74w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/eventstream-serde-universal': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/eventstream-serde-config-resolver/3.310.0: resolution: {integrity: sha512-8s1Qdn9STj+sV75nUp9yt0W6fHS4BZ2jTm4Z/1Pcbvh2Gqs0WjH5n2StS+pDW5Y9J/HSGBl0ogmUr5lC5bXFHg==} engines: {node: '>=14.0.0'} @@ -881,6 +1231,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/eventstream-serde-config-resolver/3.338.0: + resolution: {integrity: sha512-utid/nDd6IoPXWwz/mCnAwWWNgntK53feRLsztyWg7GHJabXli/kXo6U/3+Mn7Q2RS4eAASpqhYXXrVni5SgTA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/eventstream-serde-node/3.310.0: resolution: {integrity: sha512-kSnRomCgW43K9TmQYuwN9+AoYPnhyOKroanUMyZEzJk7rpCPMj4OzaUpXfDYOvznFNYn7NLaH6nHLJAr0VPlJA==} engines: {node: '>=14.0.0'} @@ -890,6 +1248,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/eventstream-serde-node/3.338.0: + resolution: {integrity: sha512-Fwnrgaa6rs/0HMD3NVk1FcxZqgtG5xZz9qIlSLt5JFIG/rpBTrMREi+KIhLHvd3/4ZhkdLjX7y+ml8K6atSveA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/eventstream-serde-universal': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/eventstream-serde-universal/3.310.0: resolution: {integrity: sha512-Qyjt5k/waV5cDukpgT824ISZAz5U0pwzLz5ztR409u85AGNkF/9n7MS+LSyBUBSb0WJ5pUeSD47WBk+nLq9Nhw==} engines: {node: '>=14.0.0'} @@ -899,6 +1266,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/eventstream-serde-universal/3.338.0: + resolution: {integrity: sha512-uuHu1nksdPPevuSUkq5aOo7j1Zb6IRSuQ0fV0zuolg2i1B2wAQjrkWH9EcvGzOe0/yWEQF3ohggczuovn4yCzQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/eventstream-codec': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/fetch-http-handler/3.310.0: resolution: {integrity: sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw==} dependencies: @@ -909,6 +1285,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/fetch-http-handler/3.338.0: + resolution: {integrity: sha512-NOIQmeSa51J2nFAzl99IjxwQkq27cdNJzF59jQWzpUCGbxXfMD4WWy2NHubabSFuJ4FJU2eyoQHUNUFc6/uxXA==} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/querystring-builder': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-base64': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/hash-blob-browser/3.310.0: resolution: {integrity: sha512-OoR8p0cbypToysLT0v3o2oyjy6+DKrY7GNCAzHOHJK9xmqXCt+DsjKoPeiY7o1sWX2aN6Plmvubj/zWxMKEn/A==} dependencies: @@ -917,6 +1303,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/hash-blob-browser/3.338.0: + resolution: {integrity: sha512-otfZZe/QA3Y0L4yDU8I7mL2oy/cSzaMzTugX4ouz9kk3mW8Ef5OQCJsWwtJz8jgM4UZr6OHcdrQGe19L7pVTiQ==} + dependencies: + '@aws-sdk/chunked-blob-reader': 3.310.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/hash-node/3.310.0: resolution: {integrity: sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ==} engines: {node: '>=14.0.0'} @@ -927,6 +1321,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/hash-node/3.338.0: + resolution: {integrity: sha512-udveX3ZRO1oUbyBTQH0LJ8Ika7uk0pHuXrqapdi66GGRJB50IhmOg372zUEwZjDB7DZYXfGTCuAj2OoEalgpBA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-buffer-from': 3.310.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/hash-stream-node/3.310.0: resolution: {integrity: sha512-ZoXdybNgvMz1Hl6k/e32xVL3jmG5p2IEk5mTtLfFEuskTJ74Z+VMYKkkF1whyy7KQfH83H+TQGnsGtlRCchQKw==} engines: {node: '>=14.0.0'} @@ -936,6 +1340,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/hash-stream-node/3.338.0: + resolution: {integrity: sha512-0rDWfosbOyCS358AuGlsB98uHo5AcB0s/T3UjZgpTHzdON2NkgX8BfYyz+TVviwGz0HVlXlf+OAJe+rbPtsbNA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/invalid-dependency/3.310.0: resolution: {integrity: sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA==} dependencies: @@ -943,12 +1356,18 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/invalid-dependency/3.338.0: + resolution: {integrity: sha512-m6r1fTTGSl0V6l8Z+Ii4Ei8VFpDmu0AT6A59ZhJaMZgxf925ywuCPydyDW9ZqTLE0e7CgxhEHEsH1+HzpVuHTw==} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/is-array-buffer/3.310.0: resolution: {integrity: sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/md5-js/3.310.0: resolution: {integrity: sha512-x5sRBUrEfLWAS1EhwbbDQ7cXq6uvBxh3qR2XAsnGvFFceTeAadk7cVogWxlk3PC+OCeeym7c3/6Bv2HQ2f1YyQ==} @@ -958,6 +1377,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/md5-js/3.338.0: + resolution: {integrity: sha512-ixOI49fgbPBbag+H55k6d0bmHSG+RqXPbXHwlnaM9Fkgqc+GrR+jGEyQO9XQqETmKhTam3qkOLBGNeqSLiTOWw==} + dependencies: + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-bucket-endpoint/3.310.0: resolution: {integrity: sha512-uJJfHI7v4AgbJZRLtyI8ap2QRWkBokGc3iyUoQ+dVNT3/CE2ZCu694A6W+H0dRqg79dIE+f9CRNdtLGa/Ehhvg==} engines: {node: '>=14.0.0'} @@ -969,6 +1396,17 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-bucket-endpoint/3.338.0: + resolution: {integrity: sha512-6eftaAt2yLd1sPSp12/HaYlCwOPXYZc8jPoE2gHb5CW1aMof6DfiZdYs+nOuX/mRpuWgBCtmsA1LtC+VlL8EIg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-arn-parser': 3.310.0 + '@aws-sdk/util-config-provider': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-content-length/3.325.0: resolution: {integrity: sha512-t38VBKCpNqSKqSu0OfWMJs7cwaRHFGQxIF9lV8JMCM/2lyUpN4JcfuzSTK+MFN2eDZEHp5DiNg8w07GXXusRYg==} engines: {node: '>=14.0.0'} @@ -978,6 +1416,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-content-length/3.338.0: + resolution: {integrity: sha512-m2C+yJaNmbA3ocBp/7ImUUuimymV5JsFdV7yAibpbYMX22g3q83nieOF9x0I66J0+h+/bcriz/T1ZJAPANLz/g==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-endpoint/3.325.0: resolution: {integrity: sha512-3CavuOHCKiWUnCtzrUFbhbEP26qIgzzRs5C3vpOJhDUhugBubIWgPGGRLpbnIro+P4XJPwM3pMziNzhKVuSDlQ==} engines: {node: '>=14.0.0'} @@ -989,6 +1436,17 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-endpoint/3.338.0: + resolution: {integrity: sha512-bzL9Q8lFidg2NTjGVGDKI6yPG/XiPS+VIAMHJeihQmcv1alIy+N3IL4bEN15Fg+cwaGm+P3BevcLIHmcCOVb4w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-serde': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/url-parser': 3.338.0 + '@aws-sdk/util-middleware': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-expect-continue/3.325.0: resolution: {integrity: sha512-Hj4D+zeet4gdUpSiMeHZfIzcnXkZI2krGyUw4U1psPzCqOp7WP5307g+1NWXOlVu3H3tF5r3rEgthQOQj2zNfA==} engines: {node: '>=14.0.0'} @@ -998,6 +1456,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-expect-continue/3.338.0: + resolution: {integrity: sha512-a5VJEzAIeY6cvK1GBq9FJAgbh8N1axLypbL3gQuJwsRSwzkUxLKifZcXv2sCar/fn4NTrZwf5CwLVtZuGceFpg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-flexible-checksums/3.326.0: resolution: {integrity: sha512-MtcvSU+wKu4/a/trIJmb4Tfb682U9uP5YYA5aXzdhxOxG11wj86uBIeQrdbUxhtTXMgmvwn1193dvTi91EUEaQ==} engines: {node: '>=14.0.0'} @@ -1011,6 +1478,19 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-flexible-checksums/3.338.0: + resolution: {integrity: sha512-J1Hk6Ea8fkKmiI07mCS/A81W+tO3ZSZ/Dxdm41ljy76vli/sBQZ38W7ISoYB2PkBOsmIt1xZI4sG/16G/f8TAg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@aws-crypto/crc32c': 3.0.0 + '@aws-sdk/is-array-buffer': 3.310.0 + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-host-header/3.325.0: resolution: {integrity: sha512-IN28gsxcRy4J+FxxCHvzb2NORBx8uMA+h9QYS4BBZfpKVYIZh+mudHgYcdNHWlKXmlTGjhWBNWTeByhzuSKAiA==} engines: {node: '>=14.0.0'} @@ -1020,6 +1500,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-host-header/3.338.0: + resolution: {integrity: sha512-k3C7oppkrqeKrAJt9XIl45SdELtnph9BF0QypjyRfT5MNEDnMMsQkc6xy3ZMqG5dWQq6B2l8C+JL7pOvkSQP3w==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-location-constraint/3.325.0: resolution: {integrity: sha512-T2OrpXXY9I1nHvIGSlQD6qj1FDG3WDFSu65+Bh4pMl+zVh0IqIEajiK++TfrdQl+sJxRGQd/euoeXXL4JYw9JA==} engines: {node: '>=14.0.0'} @@ -1028,6 +1517,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-location-constraint/3.338.0: + resolution: {integrity: sha512-+ozf/PCTvmbSYvFGviZCoYjw2ft6qywHPnDVqS4e49mLQUI4EAWGUfODDVRgIUEvZcpMlEe5Xbt5hV755McuKQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-logger/3.325.0: resolution: {integrity: sha512-S8rWgTpN2b/+UDDm+yZMFM6rw1zwO8KT0GAIQbAhB96shyD5eKen/UfihCTB7YMvbD2piebymwJTvxv6bn1VqQ==} engines: {node: '>=14.0.0'} @@ -1036,6 +1533,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-logger/3.338.0: + resolution: {integrity: sha512-btj9U0Xovq/UAu3Ur4lAfF7Q3DvvwJ/0UUWsI6GgSzzqSOFgKCz7hCP2GZIT8aXEA5hJOpBOEMkNMjWPNa91Hg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-recursion-detection/3.325.0: resolution: {integrity: sha512-2l1ABF7KePsoKz8KaNvD2uxo1zHqkFHK4PL/wW/FbcwOcE08f0R7qX++st/bPpVjXX/j/5vWTnNNgJOIOrZhyw==} engines: {node: '>=14.0.0'} @@ -1045,6 +1550,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-recursion-detection/3.338.0: + resolution: {integrity: sha512-fu5KwiHHSqC8KTQH6xdJ9+dua4gQcXSFLE5fVsergqd0uVdsmhiI+IDfW6QNwF/lmCqnoKDkpeasuB98eG2tow==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-retry/3.327.0: resolution: {integrity: sha512-LCG+oRIPc4XJ+DYqkSCgggavxWi4+hP3Rw40vHdHMNvJpCiUJMwVJ+dULEywEP/WZvr4AEkWiRrHmJVpSLeZ+Q==} engines: {node: '>=14.0.0'} @@ -1058,6 +1572,19 @@ packages: uuid: 8.3.2 dev: true + /@aws-sdk/middleware-retry/3.338.0: + resolution: {integrity: sha512-nw1oPFkB7TdDG4Vlz2Td47ft/2Gmx1bA18QfE9K1mMWZ4nnoAL8xnHbowlTfHo62+BbFCAPu53PzDUCncBL0iw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/service-error-classification': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-middleware': 3.338.0 + '@aws-sdk/util-retry': 3.338.0 + tslib: 2.5.0 + uuid: 8.3.2 + dev: false + /@aws-sdk/middleware-sdk-s3/3.326.0: resolution: {integrity: sha512-IyonHEiDMn0fdYWxA/TAnNj8M/xG5EJWvoOKcakl891f+JPaWeRsV2oE1fIjqM/waM3jqNXLDTrm06QfAYmgBQ==} engines: {node: '>=14.0.0'} @@ -1068,6 +1595,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-sdk-s3/3.338.0: + resolution: {integrity: sha512-bgz6/S+PtJ+72+hCqUSoh1PispcU1GIHZvJTOyHp+NBOKvxbNZzDHNpXtLPcbh/XgzWeeVAa0hzy7fWg8BY9tw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-arn-parser': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-sdk-sts/3.326.0: resolution: {integrity: sha512-suOkuXxyAfOH0hznK63ZU10EoytKX5YPs9amO416VbgYFtuIeliCmntYfnl1jUvutp0fctGGpEGE9OnoYI+fhw==} engines: {node: '>=14.0.0'} @@ -1077,6 +1614,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-sdk-sts/3.338.0: + resolution: {integrity: sha512-aZ8eFVaot8oYQri1wOesrA3gLizeAHtlA/ELlqxoGDJtO011J4/hTHTn0iJGbktaCvc1L3TF6mgOsgXpudYqMg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-signing': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-serde/3.325.0: resolution: {integrity: sha512-QAZYaFfAw1a06Vg39JiYIq0kSJ6EuUPOiKfK/Goj0cBv78lrXWuKdf04UF3U8Rqk/4mamnsTqUSwf4NoKkF0hw==} engines: {node: '>=14.0.0'} @@ -1085,6 +1631,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-serde/3.338.0: + resolution: {integrity: sha512-AabRLrE6sk9tqQlQ7z3kn4gTHNN7Anjk/AM0ZEu96WcWjedcpgM1vVpKTBE7vjnxcTRNq0CEM3GLtQqaZ7/HjQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-signing/3.325.0: resolution: {integrity: sha512-SOwPwaCE3vSCGwFzkIlnOUSkeCUzKTyIQnFVjlQkqGuMxMX/iDaQQGaX+HUbuGIuULCEQqjZH4dLKZcor8eVZw==} engines: {node: '>=14.0.0'} @@ -1097,6 +1651,18 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-signing/3.338.0: + resolution: {integrity: sha512-AprhhShMF75mOx80SABujLwrU/w2uHQIvWd6aF3BsE5JRI3uQZRqspfjFCaK52HNLQPj3sCQUw1GeiZJ8GyWCw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/signature-v4': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-middleware': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-ssec/3.325.0: resolution: {integrity: sha512-hxmvvWVfVrbfUw8pDEPlsR6Sb+IUdhq0cOJc7SL5XO9ddRXJ5DjT2Z2ao9FB424hJgAcOrqIO5ECjdIRs+O4FQ==} engines: {node: '>=14.0.0'} @@ -1105,6 +1671,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-ssec/3.338.0: + resolution: {integrity: sha512-ou2Xb8d56defib/DuwI/5gouBJzbeOp82eiV5opD33LfXIsQT0zatscd7UU1MtLKADaTthis9BA1VtNKq9Zmig==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-stack/3.325.0: resolution: {integrity: sha512-cZWehA4grGvX1IKlY9atJgD0bq3ew7YRJgY7GA6DSgsU7GrZ61Qvi+H7IuGx5AdeAwaTnbnTGN4qCaA2EfxNhA==} engines: {node: '>=14.0.0'} @@ -1112,6 +1686,13 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-stack/3.338.0: + resolution: {integrity: sha512-9zXyiklX9AK9ZIXuIPzWzz2vevBEcnBs9UNIxiHl4NBZ8d8oyTvaES1PtFuwL6f7ANSZ9EGVQ2rdTTnMNxMI1A==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + /@aws-sdk/middleware-user-agent/3.327.0: resolution: {integrity: sha512-4rDSNY1xhlqfRcY97CQKcgs6AOe4ovtiRdCAjg2InnLOZHRVFoHhOIDxWNK2W1K2Pl65z4EGH6RXmB1t0srJHA==} engines: {node: '>=14.0.0'} @@ -1122,6 +1703,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/middleware-user-agent/3.338.0: + resolution: {integrity: sha512-DMqODOsDMFMPcDw2Ya6a0i34AhaBDRpp3vJ+FK3zPxUIsv6iHA+XqEcXLOxROLLoydoyxus7k2U+EWibLZrFbQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-endpoints': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/node-config-provider/3.310.0: resolution: {integrity: sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng==} engines: {node: '>=14.0.0'} @@ -1132,6 +1723,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/node-config-provider/3.338.0: + resolution: {integrity: sha512-YO7yWg3ipnUI5u6D+Zn2NUpjj5krwc8zNWeY79ULVIp9g7faqGX3xMSjeRSrpZ83s5jg1dOm/+bB0gw7mCrRCw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/shared-ini-file-loader': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/node-http-handler/3.328.0: resolution: {integrity: sha512-zxXdNfdSGi6w/1bopllxAYAufCGDNG2eLenR3Tjj/UVBGrvS4ME5NGInu6u4LirTdkSqYlZkqKMyfiZ6XxGfdQ==} engines: {node: '>=14.0.0'} @@ -1143,6 +1744,17 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/node-http-handler/3.338.0: + resolution: {integrity: sha512-V1BLzCruiv45tJ0vXjiamY8LncIsUFsXYJGDupomFYhWRN8L1MUB9f2vdKn5X3wXn/yKrluwTmNaryrIqd9akA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/abort-controller': 3.338.0 + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/querystring-builder': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/property-provider/3.310.0: resolution: {integrity: sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g==} engines: {node: '>=14.0.0'} @@ -1151,6 +1763,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/property-provider/3.338.0: + resolution: {integrity: sha512-mC+ZJ738ipif6ZkH59gcipozYj1FOfpXr9pGVCA2hJGLDdaBwI2Jfpb2qCqbsTNtoCjBuIy+sQHGmUHyclgYHg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/protocol-http/3.310.0: resolution: {integrity: sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ==} engines: {node: '>=14.0.0'} @@ -1159,6 +1779,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/protocol-http/3.338.0: + resolution: {integrity: sha512-JX03Q2gshdzOWtA/07kdpk0hqeOrOfwuF8TB97g66VCcIopYQkCeNH1zzkWu+RsGxfSlzQ7up+ZM6sclYXyB1A==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/querystring-builder/3.310.0: resolution: {integrity: sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A==} engines: {node: '>=14.0.0'} @@ -1168,6 +1796,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/querystring-builder/3.338.0: + resolution: {integrity: sha512-IB3YhO93Htwt2SxJx4VWsN57Rt1KEsvZ6PbneO4bcS96E04BlfBujYMZ+QxEM3EJxorhpkwbI2QnI12IjD8FhA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-uri-escape': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/querystring-parser/3.310.0: resolution: {integrity: sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA==} engines: {node: '>=14.0.0'} @@ -1176,11 +1813,24 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/querystring-parser/3.338.0: + resolution: {integrity: sha512-vtI8Gqx4yj0BZlWonRMgLz68sHt5H48HN+ClnY+fDDB/8KLnCuwZ3TGKmYIbYbshL9wjJz0A9aLzuC6nPQ5JKw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/service-error-classification/3.327.0: resolution: {integrity: sha512-bCWnw+uH3gI6yPxLi4a4WV71P1KlJU7Z4+iMBY1Gt4+ZsaPAJX9pAbuQcFhFH++4xTk/QaVMzSvD0uQ+u0B/NQ==} engines: {node: '>=14.0.0'} dev: true + /@aws-sdk/service-error-classification/3.338.0: + resolution: {integrity: sha512-BJFr2mx/N3NbycGTlMMGRBc0tGcHXHEbMPy1H2RbejzL23zh27MchaL1WAK9SvwVMKS29hSDbhkuVR2ABRjerA==} + engines: {node: '>=14.0.0'} + dev: false + /@aws-sdk/shared-ini-file-loader/3.310.0: resolution: {integrity: sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA==} engines: {node: '>=14.0.0'} @@ -1189,6 +1839,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/shared-ini-file-loader/3.338.0: + resolution: {integrity: sha512-MA1Sp97LFlOXcUaXgo47j86IsPRWYq1V/JqR+uu0zofZw4Xlt7Y6F+mmnDHvuuMy6R2ltzjXSwgrrW3k0bxFPA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/signature-v4-crt/3.310.0: resolution: {integrity: sha512-CwVKIi0vmxn2ceiYx0pNrgpeiUjntwAaeQW6K5M8V4vikwxiohC6FiKYqN+t5UG062SzIb7s2mpt2imXRa627w==} engines: {node: '>=14.0.0'} @@ -1221,6 +1879,21 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/signature-v4-multi-region/3.338.0: + resolution: {integrity: sha512-mo61z1PiJ8GcLXLUcp9s4WqBd+hy+R0ymH2ohrLE4aw8H0FEq44zvTBXmI9GjycXGStdCpeU9+S2FkXxYPuy4w==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@aws-sdk/signature-v4-crt': ^3.118.0 + peerDependenciesMeta: + '@aws-sdk/signature-v4-crt': + optional: true + dependencies: + '@aws-sdk/protocol-http': 3.338.0 + '@aws-sdk/signature-v4': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/signature-v4/3.310.0: resolution: {integrity: sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q==} engines: {node: '>=14.0.0'} @@ -1234,6 +1907,19 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/signature-v4/3.338.0: + resolution: {integrity: sha512-EwKTe/8Iwab/v0eo27w7DRYlqp9wEZEhuRfOMwTikUVH6iuTnW6AXjcIUfcRYBRbx2zqnRSiMAZkjN6ZFYm0bQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/is-array-buffer': 3.310.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-hex-encoding': 3.310.0 + '@aws-sdk/util-middleware': 3.338.0 + '@aws-sdk/util-uri-escape': 3.310.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/smithy-client/3.325.0: resolution: {integrity: sha512-sqDFuhjxd8+Q9qI8MmXe/g1/FgoViwetv14K+bpHK7pGlOIvDyT7TboDNClfgqSLdgTDCEaoC3JRSi9Y5RgbmA==} engines: {node: '>=14.0.0'} @@ -1243,6 +1929,15 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/smithy-client/3.338.0: + resolution: {integrity: sha512-IpFLdLG8GwaiFdqVXf+WyU47Hfa2BMIupAU6iSkE2ZO0lBdg+efn/BBwis5WbBNTDCaaU0xH9y68SmnqqtD7pA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/middleware-stack': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/token-providers/3.328.0: resolution: {integrity: sha512-AWrRwa0RqSiz9CT3QKuMYuZsRXaeKCp8kMsx1CgrG5VUaag+NhDBBMYVbxgb0SyoqbsGC+wDUXtSCZctrE7Z3Q==} engines: {node: '>=14.0.0'} @@ -1256,12 +1951,30 @@ packages: - aws-crt dev: true + /@aws-sdk/token-providers/3.338.0: + resolution: {integrity: sha512-wuiEGcWiMeq5N68M489i2iGYcCad9p1btNEOFgus+JO3DRSA6HZXizLI1wqfbUm5Ei8512AvUKB6N8PMzahQsg==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sso-oidc': 3.338.0 + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/shared-ini-file-loader': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + transitivePeerDependencies: + - aws-crt + dev: false + /@aws-sdk/types/3.310.0: resolution: {integrity: sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true + + /@aws-sdk/types/3.338.0: + resolution: {integrity: sha512-hrNK15o+EObLrl9oWOyxJN2dwjgbdBMGolLEVP/wR/+M9ojHgk/x1kMsCVcV82a8Vgdtqx1TyOC3UugUPT0+NA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 /@aws-sdk/url-parser/3.310.0: resolution: {integrity: sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw==} @@ -1271,12 +1984,19 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/url-parser/3.338.0: + resolution: {integrity: sha512-x8a5swfZ6iWJZEA8rm99OKQ1A6xhWPP1taQUzoPavGCzPAOqyc8cd0FcXYMxvtXb3FeBhGaI8tiGKvelJro0+A==} + dependencies: + '@aws-sdk/querystring-parser': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-arn-parser/3.310.0: resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-base64/3.310.0: resolution: {integrity: sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==} @@ -1284,20 +2004,17 @@ packages: dependencies: '@aws-sdk/util-buffer-from': 3.310.0 tslib: 2.5.0 - dev: true /@aws-sdk/util-body-length-browser/3.310.0: resolution: {integrity: sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-body-length-node/3.310.0: resolution: {integrity: sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-buffer-from/3.310.0: resolution: {integrity: sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==} @@ -1305,14 +2022,12 @@ packages: dependencies: '@aws-sdk/is-array-buffer': 3.310.0 tslib: 2.5.0 - dev: true /@aws-sdk/util-config-provider/3.310.0: resolution: {integrity: sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-defaults-mode-browser/3.325.0: resolution: {integrity: sha512-gcowpXTo8E8N3jxD2KW+csiicJ7HPkhWnpL925xgwe0oq091OpATsKFrBOL18h72VfRWf4FAsR9lVwxSQ78zSA==} @@ -1324,6 +2039,16 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-defaults-mode-browser/3.338.0: + resolution: {integrity: sha512-Zfr5c7JKMJTfb7z+hgd0ioU5iw+wId6Cppc5V1HpZuS2YY4Mn3aJIixzyzhIoCzbmk/yIkf96981epM9eo3/TA==} + engines: {node: '>= 10.0.0'} + dependencies: + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/types': 3.338.0 + bowser: 2.11.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-defaults-mode-node/3.325.0: resolution: {integrity: sha512-/5uoOrgNxoUxv3AwsdXjMA3f6KJA6fi69otA0RiINjilCdcbOxq5GI11AFEyRio/+e+imriX4+UYjsguUR+f4g==} engines: {node: '>= 10.0.0'} @@ -1336,6 +2061,18 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-defaults-mode-node/3.338.0: + resolution: {integrity: sha512-DFM3BSpSetshZTgTjueCkAYZWS0tn5zl7SjkSpFhWQZ8Tt/Df3/DEjcPvxzmC/5vgYSUXNsqcI7lLAJk9aGZAA==} + engines: {node: '>= 10.0.0'} + dependencies: + '@aws-sdk/config-resolver': 3.338.0 + '@aws-sdk/credential-provider-imds': 3.338.0 + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/property-provider': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-endpoints/3.327.0: resolution: {integrity: sha512-2+2jTfBzhXsfpOci61gzaoBUVdGhFWja7k5cLAfOaRROkK+m+Zv532+m3cCQZjBXJ6pJ952MbiAroRSjFq0/SQ==} engines: {node: '>=14.0.0'} @@ -1344,19 +2081,25 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-endpoints/3.338.0: + resolution: {integrity: sha512-0gBQcohbNcBsBR7oyaD0Dg2m6qOmfp0G1iN/NM23gwAr2H3ni8tUXfs1HsZzxikOwUr6dSLASokc30vQXBF44A==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-hex-encoding/3.310.0: resolution: {integrity: sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-locate-window/3.310.0: resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-middleware/3.310.0: resolution: {integrity: sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog==} @@ -1365,6 +2108,13 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-middleware/3.338.0: + resolution: {integrity: sha512-oQuAmhi16HWEqVa+Nq4VD4Ymet9vS+uiW92reaagQrW2QFjAgJW9A6pU0PcIHF9sWY1iDKeNdV5b9odQ45PDJA==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + /@aws-sdk/util-retry/3.327.0: resolution: {integrity: sha512-y15NLGTAT2vaLzA8klJ6Bo8NGjVAa3/njqc4iCbta/3GqKpQU0zbvw3Y5aWyHp8BhV4DSUTp088jWjaoZlSqgw==} engines: {node: '>= 14.0.0'} @@ -1373,6 +2123,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-retry/3.338.0: + resolution: {integrity: sha512-diR6M3gJgSgBg/87L2e8iF8urG+LOW9ZGWxhntYpYX4uhiIjwNgUPUa993553C8GIOZDHez5X9ExU4asYGQ71Q==} + engines: {node: '>= 14.0.0'} + dependencies: + '@aws-sdk/service-error-classification': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-stream-browser/3.310.0: resolution: {integrity: sha512-bysXZHwFwvbqOTCScCdCnoLk1K3GCo0HRIYEZuL7O7MHrQmfaYRXcaft/p22+GUv9VeFXS/eJJZ5r4u32az94w==} dependencies: @@ -1384,6 +2142,17 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-stream-browser/3.338.0: + resolution: {integrity: sha512-s44/cmeXOPNjYWXjns5j73ABnshgzwcQ1v7fat76P72XEvphqDJRaxiHeX1+LxgP1FRyySKYlE5Z32jVSAt7lA==} + dependencies: + '@aws-sdk/fetch-http-handler': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-base64': 3.310.0 + '@aws-sdk/util-hex-encoding': 3.310.0 + '@aws-sdk/util-utf8': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-stream-node/3.328.0: resolution: {integrity: sha512-9h8oji5OTmatXMfPIasAapL59QDO7TR0J/B5Y3ERwGxy2U373LEy8Uvs+mbPIIQV1ztCLwHWDxKQoTUj4hLxoQ==} engines: {node: '>=14.0.0'} @@ -1394,12 +2163,21 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-stream-node/3.338.0: + resolution: {integrity: sha512-ioj8Ps6a/napPG3vQ4MpbX8YGQSPbBFG7fBSkMwKL5dxm8DD18F0ERKNwglm9I8h2n8yuOwCWF9PSMgcNaDoFA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/node-http-handler': 3.338.0 + '@aws-sdk/types': 3.338.0 + '@aws-sdk/util-buffer-from': 3.310.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-uri-escape/3.310.0: resolution: {integrity: sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-user-agent-browser/3.310.0: resolution: {integrity: sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw==} @@ -1409,6 +2187,14 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-user-agent-browser/3.338.0: + resolution: {integrity: sha512-3e8D+SOtOQEtRtksOEF7EC26xPkuY6YK6biLgdtvR9JspK96rHk5eX1HEJeBJJqbxhyPaxpIw+OhWhnsrUS3hA==} + dependencies: + '@aws-sdk/types': 3.338.0 + bowser: 2.11.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-user-agent-node/3.310.0: resolution: {integrity: sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg==} engines: {node: '>=14.0.0'} @@ -1423,11 +2209,24 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-user-agent-node/3.338.0: + resolution: {integrity: sha512-rc+bC5KM9h25urRc+MXuViJkJ+qYG2NlCRw6xm2lSIvHFJTUjH1ZMO3mqNDYkGnQRbj0mmrVe+N77TJZGf3Q2Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + dependencies: + '@aws-sdk/node-config-provider': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/util-utf8-browser/3.259.0: resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} dependencies: tslib: 2.5.0 - dev: true /@aws-sdk/util-utf8/3.310.0: resolution: {integrity: sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==} @@ -1435,7 +2234,6 @@ packages: dependencies: '@aws-sdk/util-buffer-from': 3.310.0 tslib: 2.5.0 - dev: true /@aws-sdk/util-waiter/3.310.0: resolution: {integrity: sha512-AV5j3guH/Y4REu+Qh3eXQU9igljHuU4XjX2sADAgf54C0kkhcCCkkiuzk3IsX089nyJCqIcj5idbjdvpnH88Vw==} @@ -1446,12 +2244,20 @@ packages: tslib: 2.5.0 dev: true + /@aws-sdk/util-waiter/3.338.0: + resolution: {integrity: sha512-15yWYJo/M4VDpZjlXgQDM4Du8UjX33eIVPJDrOmn/u+UrD6QUXoBuLXKns0uAMUTPFacBGZ0NwMywxieq0g11Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/abort-controller': 3.338.0 + '@aws-sdk/types': 3.338.0 + tslib: 2.5.0 + dev: false + /@aws-sdk/xml-builder/3.310.0: resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.5.0 - dev: true /@babel/code-frame/7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} @@ -1652,6 +2458,13 @@ packages: resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} dev: true + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + /@envelop/core/3.0.6: resolution: {integrity: sha512-06t1xCPXq6QFN7W1JUEf68aCwYN0OUDNAIoJe7bAqhaoa2vn7NCcuX1VHkJ/OWpmElUgCsRO6RiBbIru1in0Ig==} dependencies: @@ -2165,6 +2978,36 @@ packages: - utf-8-validate dev: true + /@ipld/car/5.1.1: + resolution: {integrity: sha512-HoFTUqUJL9cPGhC9qRmHCvamfIsj1JllQSQ/Xu9/KN/VNJp8To9Ms4qiZPEMOwcrNFclfYqrahjGYbf4KL/d9A==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dependencies: + '@ipld/dag-cbor': 9.0.0 + cborg: 1.10.1 + multiformats: 11.0.2 + varint: 6.0.0 + + /@ipld/dag-cbor/9.0.0: + resolution: {integrity: sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dependencies: + cborg: 1.10.1 + multiformats: 11.0.2 + + /@ipld/dag-json/10.0.1: + resolution: {integrity: sha512-XE1Eqw3eNVrSfOhtqCM/gwCxEgYFBzkDlkwhEeMmMvhd0rLBfSyVzXbahZSlv97tiTPEIx5rt41gcFAda3W8zg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dependencies: + cborg: 1.10.1 + multiformats: 11.0.2 + + /@ipld/dag-ucan/3.3.2: + resolution: {integrity: sha512-EhuOrAfnudsVYIbzEIgi3itHAEo3WZNOt1VNPsYhxKBhOzDMeoTXh6/IHc7ZKBW1T2vDQHdgj4m1r64z6MssGA==} + dependencies: + '@ipld/dag-cbor': 9.0.0 + '@ipld/dag-json': 10.0.1 + multiformats: 11.0.2 + /@jridgewell/gen-mapping/0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -2199,6 +3042,38 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@noble/ed25519/1.7.3: + resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} + dev: false + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + /@peculiar/asn1-schema/2.3.6: resolution: {integrity: sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==} dependencies: @@ -2292,16 +3167,49 @@ packages: tslib: 1.14.1 dev: true + /@smithy/protocol-http/1.0.1: + resolution: {integrity: sha512-9OrEn0WfOVtBNYJUjUAn9AOiJ4lzERCJJ/JeZs8E6yajTGxBaFRxUnNBHiNqoDJVg076hY36UmEnPx7xXrvUSg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 1.0.0 + tslib: 2.5.0 + dev: false + + /@smithy/types/1.0.0: + resolution: {integrity: sha512-kc1m5wPBHQCTixwuaOh9vnak/iJm21DrSf9UK6yDE5S3mQQ4u11pqAUiKWnlrZnYkeLfAI9UEHj9OaMT1v5Umg==} + engines: {node: '>=14.0.0'} + dependencies: + tslib: 2.5.0 + dev: false + /@trpc/server/9.16.0: resolution: {integrity: sha512-IENsJs41ZR4oeFUJhsNNTSgEOtuRN0m9u7ec4u3eG/qOc7bIoo1nDoYtx4bl6OJJSQYEytG9tlcVz9G8OAaHbg==} dependencies: tslib: 2.5.0 dev: true + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + /@tsconfig/node16/1.0.3: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true + /@types/archiver/5.3.2: + resolution: {integrity: sha512-IctHreBuWE5dvBDz/0WeKtyVKVRs4h75IblxOACL92wU66v+HGAfEYAOyXkOFphvRJMhuXdI9huDXpX0FC6lCw==} + dependencies: + '@types/readdir-glob': 1.1.1 + dev: true + /@types/aws-lambda/8.10.115: resolution: {integrity: sha512-kCZuFXKLV3y8NjSoaD5+qKTpRWvPz3uh3W/u1uwlw3Mg+MtaStg1NWgjAwUXo/VJDb6n6KF1ljykFNlNwEJ53Q==} dev: true @@ -2329,6 +3237,20 @@ packages: '@types/node': 20.1.7 dev: true + /@types/docker-modem/3.0.2: + resolution: {integrity: sha512-qC7prjoEYR2QEe6SmCVfB1x3rfcQtUr1n4x89+3e0wSTMQ/KYCyf+/RAA9n2tllkkNc6//JMUZePdFRiGIWfaQ==} + dependencies: + '@types/node': 20.1.7 + '@types/ssh2': 1.11.11 + dev: true + + /@types/dockerode/3.3.18: + resolution: {integrity: sha512-4EcP136jNMBZQ4zTHlI1VP2RpIQ2uJvRpjta3W2Cc7Ti7rk2r3TgVKjxR0Tb3NrT9ObXvl7Tv5nxra6BHEpkWg==} + dependencies: + '@types/docker-modem': 3.0.2 + '@types/node': 20.1.7 + dev: true + /@types/express-serve-static-core/4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: @@ -2375,6 +3297,16 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true + /@types/readdir-glob/1.1.1: + resolution: {integrity: sha512-ImM6TmoF8bgOwvehGviEj3tRdRBbQujr1N+0ypaln/GWjaerOB26jb93vsRHmdMtvVQZQebOlqt2HROark87mQ==} + dependencies: + '@types/node': 20.1.7 + dev: true + + /@types/retry/0.12.1: + resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} + dev: false + /@types/send/0.17.1: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: @@ -2389,12 +3321,88 @@ packages: '@types/node': 20.1.7 dev: true + /@types/ssh2-streams/0.1.9: + resolution: {integrity: sha512-I2J9jKqfmvXLR5GomDiCoHrEJ58hAOmFrekfFqmCFd+A6gaEStvWnPykoWUwld1PNg4G5ag1LwdA+Lz1doRJqg==} + dependencies: + '@types/node': 20.1.7 + dev: true + + /@types/ssh2/0.5.52: + resolution: {integrity: sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==} + dependencies: + '@types/node': 20.1.7 + '@types/ssh2-streams': 0.1.9 + dev: true + + /@types/ssh2/1.11.11: + resolution: {integrity: sha512-LdnE7UBpvHCgUznvn2fwLt2hkaENcKPFqOyXGkvyTLfxCXBN6roc1RmECNYuzzbHePzD3PaAov5rri9hehzx9Q==} + dependencies: + '@types/node': 18.16.5 + dev: true + /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: '@types/node': 20.1.7 dev: true + /@ucanto/client/8.0.0: + resolution: {integrity: sha512-2nuAzdcFawPzqQZO/7MvdtOkkxdS5OLLDmKbPV8aEV7Xo7QzwvO3gfrR1sC967ggf+O758LhaMPEXczcSspHbQ==} + dependencies: + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + dev: false + + /@ucanto/core/8.0.0: + resolution: {integrity: sha512-Ne45bH0uUhAexNkJWj8tYsvKut58LaL3rsu30vxVh+ybkj47nD02mY8KqW+vCHY80E1ubPcjlHuCt0+efR9bgw==} + dependencies: + '@ipld/car': 5.1.1 + '@ipld/dag-cbor': 9.0.0 + '@ipld/dag-ucan': 3.3.2 + '@ucanto/interface': 8.0.0 + multiformats: 11.0.2 + + /@ucanto/interface/8.0.0: + resolution: {integrity: sha512-xeJJYdGAPKOYbCiG8BsGmyoBovZDtVya+42Gtd8fViZeNSS3h0f2BPDBS91YFOxSGswqCd2fqvrfrlg3TTMmZw==} + dependencies: + '@ipld/dag-ucan': 3.3.2 + multiformats: 11.0.2 + + /@ucanto/principal/8.0.0: + resolution: {integrity: sha512-85IXfp8P3FGbQ5rQbLtAA2DkIgjOaqdTPXZHA2W+/UdEsJxfb1jf2TqOjHUt3PWcCbP2hqbRZWBYAKJszkW2uA==} + dependencies: + '@ipld/dag-ucan': 3.3.2 + '@noble/ed25519': 1.7.3 + '@ucanto/interface': 8.0.0 + multiformats: 11.0.2 + one-webcrypto: 1.0.3 + dev: false + + /@ucanto/server/8.0.1: + resolution: {integrity: sha512-QgtEUgJwXmmbFA4cdQ0kOhaSPekAdVNl9vYrE59Joy6OhEh5fvnOiGMYWdkExFmvL4v1DhKZwVH8p9iQ+eWFTw==} + dependencies: + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + '@ucanto/validator': 8.0.0 + dev: false + + /@ucanto/transport/8.0.0: + resolution: {integrity: sha512-1/3ELUtUAu7zNKq/jy/PjvvCoFt7cFS8198E8U04UM1EsZS0WvK2VnEa/aS8MA5bBy8TjRFmQtXjcndZ0RE5vw==} + dependencies: + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + dev: false + + /@ucanto/validator/8.0.0: + resolution: {integrity: sha512-S+cGKUVu074TT1FaoOyZa3mKf3CuEBLHLlE3TU1UoIC5Yp9WnvX+cDOGKIyfJ/HgHHBvAEDxYNOkNZbCATsRdA==} + dependencies: + '@ipld/car': 5.1.1 + '@ipld/dag-cbor': 9.0.0 + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + multiformats: 11.0.2 + dev: false + /@vitest/expect/0.31.0: resolution: {integrity: sha512-Jlm8ZTyp6vMY9iz9Ny9a0BHnCG4fqBa8neCF6Pk/c/6vkUk49Ls6UBlgGAU82QnzzoaUs9E/mUhq/eq9uMOv/g==} dependencies: @@ -2434,6 +3442,19 @@ packages: pretty-format: 27.5.1 dev: true + /@web-std/blob/3.0.4: + resolution: {integrity: sha512-+dibyiw+uHYK4dX5cJ7HA+gtDAaUUe6JsOryp2ZpAC7h4ICsh49E34JwHoEKPlPvP0llCrNzz45vvD+xX5QDBg==} + dependencies: + '@web-std/stream': 1.0.0 + web-encoding: 1.1.5 + dev: true + + /@web-std/stream/1.0.0: + resolution: {integrity: sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ==} + dependencies: + web-streams-polyfill: 3.2.1 + dev: true + /@whatwg-node/events/0.0.2: resolution: {integrity: sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==} dev: true @@ -2469,6 +3490,12 @@ packages: tslib: 2.5.0 dev: true + /@zxing/text-encoding/0.9.0: + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + requiresBuild: true + dev: true + optional: true + /accepts/1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -2497,6 +3524,22 @@ packages: - supports-color dev: true + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /aggregate-error/4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + dev: true + /ajv-formats/2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependenciesMeta: @@ -2611,10 +3654,40 @@ packages: readable-stream: 2.3.8 dev: true + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /array-find-index/1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + dev: true + /array-flatten/1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /arrgv/1.0.2: + resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==} + engines: {node: '>=8.0.0'} + dev: true + + /arrify/3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + dev: true + /asn1.js/5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} dependencies: @@ -2624,6 +3697,12 @@ packages: safer-buffer: 2.1.2 dev: true + /asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + /asn1js/3.0.5: resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} engines: {node: '>=12.0.0'} @@ -2669,6 +3748,65 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /ava/4.3.3: + resolution: {integrity: sha512-9Egq/d9R74ExrWohHeqUlexjDbgZJX5jA1Wq4KCTqc3wIfpGEK79zVy4rBtofJ9YKIxs4PzhJ8BgbW5PlAYe6w==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=18'} + hasBin: true + peerDependencies: + '@ava/typescript': '*' + peerDependenciesMeta: + '@ava/typescript': + optional: true + dependencies: + acorn: 8.8.2 + acorn-walk: 8.2.0 + ansi-styles: 6.2.1 + arrgv: 1.0.2 + arrify: 3.0.0 + callsites: 4.0.0 + cbor: 8.1.0 + chalk: 5.2.0 + chokidar: 3.5.3 + chunkd: 2.0.1 + ci-info: 3.8.0 + ci-parallel-vars: 1.0.1 + clean-yaml-object: 0.1.0 + cli-truncate: 3.1.0 + code-excerpt: 4.0.0 + common-path-prefix: 3.0.0 + concordance: 5.0.4 + currently-unhandled: 0.4.1 + debug: 4.3.4 + del: 6.1.1 + emittery: 0.11.0 + figures: 4.0.1 + globby: 13.1.4 + ignore-by-default: 2.1.0 + indent-string: 5.0.0 + is-error: 2.2.2 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + matcher: 5.0.0 + mem: 9.0.2 + ms: 2.1.3 + p-event: 5.0.1 + p-map: 5.5.0 + picomatch: 2.3.1 + pkg-conf: 4.0.0 + plur: 5.1.0 + pretty-ms: 7.0.1 + resolve-cwd: 3.0.0 + slash: 3.0.0 + stack-utils: 2.0.6 + strip-ansi: 7.0.1 + supertap: 3.0.1 + temp-dir: 2.0.0 + write-file-atomic: 4.0.2 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + /available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -2781,6 +3919,12 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + /big-integer/1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} @@ -2852,7 +3996,6 @@ packages: /bowser/2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - dev: true /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -2929,6 +4072,12 @@ packages: engines: {node: '>=0.2.0'} dev: true + /buildcheck/0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} + engines: {node: '>=10.0.0'} + dev: true + optional: true + /builtin-modules/3.2.0: resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} engines: {node: '>=6'} @@ -2941,6 +4090,11 @@ packages: streamsearch: 1.1.0 dev: true + /byline/5.0.0: + resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} + engines: {node: '>=0.10.0'} + dev: true + /bytes/3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -2958,6 +4112,11 @@ packages: get-intrinsic: 1.2.0 dev: true + /callsites/4.0.0: + resolution: {integrity: sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==} + engines: {node: '>=12.20'} + dev: true + /camelcase/2.1.1: resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} engines: {node: '>=0.10.0'} @@ -2972,6 +4131,17 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /cbor/8.1.0: + resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} + engines: {node: '>=12.19'} + dependencies: + nofilter: 3.1.0 + dev: true + + /cborg/1.10.1: + resolution: {integrity: sha512-et6Qm8MOUY2kCWa5GKk2MlBVoPjHv0hQBmlzI/Z7+5V3VJCeIkGehIB3vWknNsm2kOkAIs6wEKJFJo8luWQQ/w==} + hasBin: true + /cdk-assets/2.72.1: resolution: {integrity: sha512-qxKgIBAdJhBJV23WAGLcQ4x89k/zmYhWeQeZW3TEbv//TZFIRWlgpkz6XnTzNIuluWghxMOvHym/LoRMpSaJcg==} engines: {node: '>= 14.15.0'} @@ -3059,11 +4229,36 @@ packages: engines: {node: '>=10'} dev: true + /chunkd/2.0.1: + resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} + dev: true + /ci-info/3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} dev: true + /ci-parallel-vars/1.0.1: + resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} + dev: true + + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /clean-stack/4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /clean-yaml-object/0.1.0: + resolution: {integrity: sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==} + engines: {node: '>=0.10.0'} + dev: true + /cli-boxes/3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -3188,6 +4383,10 @@ packages: minimist: 1.2.6 dev: true + /common-path-prefix/3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: true + /compress-commons/4.1.1: resolution: {integrity: sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==} engines: {node: '>= 10'} @@ -3286,6 +4485,16 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true + /cpu-features/0.0.7: + resolution: {integrity: sha512-fjzFmsUKKCrC9GrM1eQTvQx18e+kjXFzjRLvJPNEDjk31+bJ6ZiV6uchv/hzbzXVIgbWdrEyyX1IFKwse65+8w==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + buildcheck: 0.0.6 + nan: 2.17.0 + dev: true + optional: true + /crc-32/1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -3300,6 +4509,10 @@ packages: readable-stream: 3.6.2 dev: true + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -3321,6 +4534,13 @@ packages: resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} dev: true + /currently-unhandled/0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} + dependencies: + array-find-index: 1.0.2 + dev: true + /data-uri-to-buffer/4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -3386,6 +4606,20 @@ packages: clone: 1.0.4 dev: true + /del/6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + /delegates/1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true @@ -3409,11 +4643,53 @@ packages: engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + /diff/5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} dev: true + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /docker-compose/0.23.19: + resolution: {integrity: sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g==} + engines: {node: '>= 6.0.0'} + dependencies: + yaml: 1.10.2 + dev: true + + /docker-modem/3.0.8: + resolution: {integrity: sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==} + engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.4 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.13.0 + transitivePeerDependencies: + - supports-color + dev: true + + /dockerode/3.3.5: + resolution: {integrity: sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==} + engines: {node: '>= 8.0'} + dependencies: + '@balena/dockerignore': 1.0.2 + docker-modem: 3.0.8 + tar-fs: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /dot-prop/6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} @@ -3473,6 +4749,11 @@ packages: resolution: {integrity: sha512-L9zlje9bIw0h+CwPQumiuVlfMcV4boxRjFIWDcLfFqTZNbkwOExBzfmswytHawObQX4OUhtNv8gIiB21kOurIg==} dev: true + /emittery/0.11.0: + resolution: {integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==} + engines: {node: '>=12'} + dev: true + /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -3576,6 +4857,17 @@ packages: engines: {node: '>=8'} dev: true + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3642,6 +4934,17 @@ packages: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + 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: true + /fast-jwt/1.7.2: resolution: {integrity: sha512-OEInypGXJhtURzq9GbFM5KaALUu9+4IV3kJEbWPuqOBN5JBe7A51Tx0CaQYHGC9GNfZnr5npA0lCIMaWiZmz/A==} engines: {node: '>=14 <20'} @@ -3668,6 +4971,11 @@ packages: hasBin: true dependencies: strnum: 1.0.5 + + /fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 dev: true /fetch-blob/3.2.0: @@ -3678,6 +4986,14 @@ packages: web-streams-polyfill: 3.2.1 dev: false + /figures/4.0.1: + resolution: {integrity: sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + is-unicode-supported: 1.3.0 + dev: true + /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -3707,6 +5023,14 @@ packages: locate-path: 3.0.0 dev: true + /find-up/6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: true + /follow-redirects/1.15.2_debug@4.3.4: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} @@ -3835,6 +5159,11 @@ packages: has-symbols: 1.0.3 dev: true + /get-port/5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} + dev: true + /get-port/6.1.2: resolution: {integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3882,6 +5211,29 @@ packages: engines: {node: '>=4'} dev: true + /globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + /gopd/1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: @@ -4001,6 +5353,11 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true + /ignore-by-default/2.1.0: + resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==} + engines: {node: '>=10 <11 || >=12 <13 || >=14'} + dev: true + /ignore/5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -4010,6 +5367,16 @@ packages: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} dev: true + /imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + /indent-string/5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} @@ -4101,6 +5468,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /irregular-plurals/3.5.0: + resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} + engines: {node: '>=8'} + dev: true + /is-arguments/1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -4138,6 +5510,10 @@ packages: has: 1.0.3 dev: true + /is-error/2.2.2: + resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==} + dev: true + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4199,6 +5575,25 @@ packages: engines: {node: '>=8'} dev: true + /is-path-cwd/2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-object/5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-promise/4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + dev: true + /is-typed-array/1.1.10: resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} engines: {node: '>= 0.4'} @@ -4263,6 +5658,14 @@ packages: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -4372,6 +5775,11 @@ packages: resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} dev: true + /load-json-file/7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /local-pkg/0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} @@ -4385,6 +5793,13 @@ packages: path-exists: 3.0.0 dev: true + /locate-path/7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + /lodash.defaults/4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} dev: true @@ -4475,6 +5890,24 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /map-age-cleaner/0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: true + + /matcher/5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + /md5-hex/3.0.1: resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} engines: {node: '>=8'} @@ -4495,6 +5928,14 @@ packages: engines: {node: '>= 0.6'} dev: true + /mem/9.0.2: + resolution: {integrity: sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==} + engines: {node: '>=12.20'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 4.0.0 + dev: true + /memory-stream/0.0.3: resolution: {integrity: sha512-q0D3m846qY6ZkIt+19ZemU5vH56lpOZZwoJc3AICARKh/menBuayQUjAGPrqtHQQMUYERSdOrej92J9kz7LgYA==} dependencies: @@ -4505,6 +5946,11 @@ packages: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: true + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + /methods/1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -4552,6 +5998,11 @@ packages: engines: {node: '>=8'} dev: true + /mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + /minimalistic-assert/1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} dev: true @@ -4617,6 +6068,10 @@ packages: yallist: 4.0.0 dev: true + /mkdirp-classic/0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: true + /mkdirp/0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -4720,16 +6175,31 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true + /multiformats/11.0.2: + resolution: {integrity: sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + /mute-stream/0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true + /nan/2.17.0: + resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} + dev: true + optional: true + /nanoid/3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true + /nanoid/4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + dev: true + /negotiator/0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -4753,6 +6223,11 @@ packages: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} dev: true + /nofilter/3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + dev: true + /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -4811,6 +6286,10 @@ packages: wrappy: 1.0.2 dev: true + /one-webcrypto/1.0.3: + resolution: {integrity: sha512-fu9ywBVBPx0gS9K0etIROTiCkvI5S1TDjFsYFb3rC1ewFxeOqsbzq7aIMBHsYfrTHBcGXJaONXXjTl8B01cW1Q==} + dev: false + /onetime/5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -4849,6 +6328,18 @@ packages: lcid: 1.0.0 dev: true + /p-defer/1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: true + + /p-event/5.0.1: + resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-timeout: 5.1.0 + dev: true + /p-limit/2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -4870,6 +6361,40 @@ packages: p-limit: 2.3.0 dev: true + /p-locate/6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-map/5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.1 + dev: true + + /p-retry/5.1.2: + resolution: {integrity: sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/retry': 0.12.1 + retry: 0.13.1 + dev: false + + /p-timeout/5.1.0: + resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} + engines: {node: '>=12'} + dev: true + /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -4879,6 +6404,11 @@ packages: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true + /parse-ms/2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} + dev: true + /parseurl/1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -4894,6 +6424,11 @@ packages: engines: {node: '>=4'} dev: true + /path-exists/5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -4912,6 +6447,11 @@ packages: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + /pathe/1.1.0: resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} dev: true @@ -4929,6 +6469,14 @@ packages: engines: {node: '>=8.6'} dev: true + /pkg-conf/4.0.0: + resolution: {integrity: sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: 6.3.0 + load-json-file: 7.0.1 + dev: true + /pkg-types/1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: @@ -4944,6 +6492,13 @@ packages: find-up: 3.0.0 dev: true + /plur/5.1.0: + resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + irregular-plurals: 3.5.0 + dev: true + /postcss/8.4.23: resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} engines: {node: ^10 || ^12 || >=14} @@ -4962,6 +6517,13 @@ packages: react-is: 17.0.2 dev: true + /pretty-ms/7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + engines: {node: '>=10'} + dependencies: + parse-ms: 2.1.0 + dev: true + /process-nextick-args/1.0.7: resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} dev: true @@ -4981,6 +6543,13 @@ packages: read: 1.0.7 dev: true + /properties-reader/2.2.0: + resolution: {integrity: sha512-CgVcr8MwGoBKK24r9TwHfZkLLaNFHQ6y4wgT9w/XzdpacOOi5ciH4hcuLechSDAwXsfrGQtI2JTutY2djOx2Ow==} + engines: {node: '>=10'} + dependencies: + mkdirp: 1.0.4 + dev: true + /proxy-addr/2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -5038,6 +6607,10 @@ packages: deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. dev: true + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + /range-parser/1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -5172,6 +6745,18 @@ packages: engines: {node: '>=0.10.0'} dev: true + /resolve-cwd/3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + /resolve/1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true @@ -5189,6 +6774,16 @@ packages: signal-exit: 3.0.7 dev: true + /retry/0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: false + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + /rfdc/1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true @@ -5200,6 +6795,13 @@ packages: glob: 7.2.3 dev: true + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + /rollup/3.21.5: resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -5208,6 +6810,12 @@ packages: fsevents: 2.3.2 dev: true + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true @@ -5269,6 +6877,13 @@ packages: - supports-color dev: true + /serialize-error/7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + dependencies: + type-fest: 0.13.1 + dev: true + /serve-static/1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} @@ -5327,6 +6942,16 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash/4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + /slice-ansi/4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -5357,6 +6982,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /split-ca/1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + dev: true + /split2/3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -5367,6 +6996,29 @@ packages: resolution: {integrity: sha512-UUFYD2oWbNwULH6WoVtLUOw8ch586B+HUqcsAjjjeoBQAM1bD4wZRXu01koaxyd8UeYpybWqW4h+lO1Okv40Tg==} dev: true + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /ssh-remote-port-forward/1.0.4: + resolution: {integrity: sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==} + dependencies: + '@types/ssh2': 0.5.52 + ssh2: 1.13.0 + dev: true + + /ssh2/1.13.0: + resolution: {integrity: sha512-CIZBFRRY1y9mAZSqBGFE4EB4dNJad2ysT2PqO8OpkiI3UTB/gUZwE5EaN16qVyQ6s/M7EgC/iaV/MnjdlvnuzA==} + engines: {node: '>=10.16.0'} + requiresBuild: true + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.7 + nan: 2.17.0 + dev: true + /sst-aws-cdk/2.62.2-3: resolution: {integrity: sha512-scNMkuwTm7Gr/8l8/lCNIxVD2z8TX+4Yr5Mb5OzsUeumYCmF0KGegNy/0pYgYArObAExEnbju8kRuB/VwJRhUQ==} engines: {node: '>= 14.15.0'} @@ -5578,6 +7230,15 @@ packages: /strnum/1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + /supertap/3.0.1: + resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + indent-string: 5.0.0 + js-yaml: 3.14.1 + serialize-error: 7.0.1 + strip-ansi: 7.0.1 dev: true /supports-color/5.5.0: @@ -5610,6 +7271,24 @@ packages: strip-ansi: 6.0.1 dev: true + /tar-fs/2.0.1: + resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + + /tar-fs/2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + /tar-stream/2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -5646,6 +7325,30 @@ packages: yallist: 4.0.0 dev: true + /temp-dir/2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /testcontainers/8.16.0: + resolution: {integrity: sha512-4wVmnzj4mAVXSQ8kU4uyNiXPs5W8UHdwCRbUuyeOSSODcgmDGQ8Te/YOYuF12HnxyzABEm1nR2I0ZCsQw/GZ/Q==} + dependencies: + '@balena/dockerignore': 1.0.2 + '@types/archiver': 5.3.2 + '@types/dockerode': 3.3.18 + archiver: 5.3.1 + byline: 5.0.0 + debug: 4.3.4 + docker-compose: 0.23.19 + dockerode: 3.3.5 + get-port: 5.1.1 + properties-reader: 2.2.0 + ssh-remote-port-forward: 1.0.4 + tar-fs: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /time-zone/1.0.0: resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} engines: {node: '>=4'} @@ -5691,12 +7394,45 @@ packages: hasBin: true dev: true + /ts-node/10.9.1_x553fjfla674sodvstc3oio7dy: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.16.5 + acorn: 8.8.2 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.0.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true /tslib/2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + + /tweetnacl/0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true /type-detect/4.0.8: @@ -5709,6 +7445,11 @@ packages: engines: {node: '>=10'} dev: true + /type-fest/0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + /type-fest/3.10.0_typescript@5.0.4: resolution: {integrity: sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==} engines: {node: '>=14.16'} @@ -5839,18 +7580,24 @@ packages: /uuid/8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - dev: true /uuid/9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true dev: true + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + /value-or-promise/1.0.12: resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} engines: {node: '>=12'} dev: true + /varint/6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + /vary/1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -5981,6 +7728,14 @@ packages: defaults: 1.0.4 dev: true + /web-encoding/1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + dev: true + /web-streams-polyfill/3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} @@ -6093,6 +7848,14 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true + /write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + /ws/3.3.3: resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} peerDependencies: @@ -6223,6 +7986,11 @@ packages: y18n: 3.2.2 dev: true + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + /yocto-queue/1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} @@ -6249,3 +8017,44 @@ packages: compress-commons: 4.1.1 readable-stream: 3.6.2 dev: true + + file:../w3up/packages/aggregate-api: + resolution: {directory: ../w3up/packages/aggregate-api, type: directory} + name: '@web3-storage/aggregate-api' + version: 0.0.0 + engines: {node: '>=16.15'} + dependencies: + '@ucanto/client': 8.0.0 + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + '@ucanto/server': 8.0.1 + '@ucanto/transport': 8.0.0 + '@web3-storage/capabilities': file:../w3up/packages/capabilities + w3protocol: link:../w3up + dev: false + + file:../w3up/packages/aggregate-client: + resolution: {directory: ../w3up/packages/aggregate-client, type: directory} + name: '@web3-storage/aggregate-client' + version: 0.0.0 + dependencies: + '@ipld/dag-cbor': 9.0.0 + '@ipld/dag-ucan': 3.3.2 + '@ucanto/client': 8.0.0 + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + '@ucanto/transport': 8.0.0 + '@web3-storage/capabilities': file:../w3up/packages/capabilities + dev: false + + file:../w3up/packages/capabilities: + resolution: {directory: ../w3up/packages/capabilities, type: directory} + name: '@web3-storage/capabilities' + version: 5.0.1 + dependencies: + '@ucanto/core': 8.0.0 + '@ucanto/interface': 8.0.0 + '@ucanto/principal': 8.0.0 + '@ucanto/transport': 8.0.0 + '@ucanto/validator': 8.0.0 + dev: false diff --git a/sst.config.ts b/sst.config.ts index 09ec499..3e1ccd1 100644 --- a/sst.config.ts +++ b/sst.config.ts @@ -1,6 +1,7 @@ import { Tags } from 'aws-cdk-lib'; import { SSTConfig } from 'sst'; import { ApiStack } from './stacks/ApiStack'; +import { DataStack } from './stacks/DataStack'; export default { config(_input) { @@ -20,6 +21,7 @@ export default { sourcemap: true } }) + app.stack(DataStack); app.stack(ApiStack); // tags let us discover all the aws resource costs incurred by this app diff --git a/stacks/ApiStack.ts b/stacks/ApiStack.ts index 3212c00..270d304 100644 --- a/stacks/ApiStack.ts +++ b/stacks/ApiStack.ts @@ -1,8 +1,11 @@ import { Api, + Config, StackContext, + use } from 'sst/constructs'; +import { DataStack } from './DataStack'; import { getApiPackageJson, getCustomDomain, @@ -11,6 +14,8 @@ import { } from './config'; export function ApiStack({ app, stack }: StackContext) { + const { offerBucket } = use(DataStack) + // Setup app monitoring with Sentry setupSentry(app, stack) @@ -18,20 +23,29 @@ export function ApiStack({ app, stack }: StackContext) { const customDomain = getCustomDomain(stack.stage, process.env.HOSTED_ZONE) const pkg = getApiPackageJson() const git = getGitInfo() + const privateKey = new Config.Secret(stack, 'PRIVATE_KEY') const api = new Api(stack, 'api', { customDomain, defaults: { function: { + permissions: [ + offerBucket + ], environment: { + OFFER_BUCKET_NAME: offerBucket.bucketName, NAME: pkg.name, VERSION: pkg.version, COMMIT: git.commmit, STAGE: stack.stage, - } + }, + bind: [ + privateKey + ] } }, routes: { + 'POST /': 'packages/functions/src/api/ucan-invocation-router.handler', 'GET /version': 'packages/functions/src/api/version.handler', 'GET /error': 'packages/functions/src/api/error.handler', } diff --git a/stacks/DataStack.ts b/stacks/DataStack.ts new file mode 100644 index 0000000..e1c8091 --- /dev/null +++ b/stacks/DataStack.ts @@ -0,0 +1,17 @@ +import { Bucket, StackContext } from 'sst/constructs'; + +import { getBucketConfig } from './config'; + +export function DataStack({ stack }: StackContext) { + const bucket = getBucketConfig('offer-store', stack.stage) + const offerBucket = new Bucket(stack, bucket.bucketName, { + cors: true, + cdk: { + bucket + } + }) + + return { + offerBucket + } +}