diff --git a/.dockerignore b/.dockerignore index f3006cb251..049a67b542 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,4 @@ -target/ -node_modules/ -crates/ +target +crates +**/node_modules +**/.next diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 827c80e279..d53554a4da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,8 +115,6 @@ jobs: echo 'VITE_POSTHOG_KEY=${{ secrets.NEXT_PUBLIC_POSTHOG_KEY }}' >> .env echo 'VITE_POSTHOG_HOST=${{ secrets.NEXT_PUBLIC_POSTHOG_HOST }}' >> .env echo 'VITE_SERVER_URL=${{ secrets.NEXT_PUBLIC_WEB_URL }}' >> .env - echo "NEXT_PUBLIC_CAP_AWS_REGION=${{ secrets.NEXT_PUBLIC_CAP_AWS_REGION }}" >> .env - echo "NEXT_PUBLIC_CAP_AWS_BUCKET=${{ secrets.NEXT_PUBLIC_CAP_AWS_BUCKET }}" >> .env cat .env >> $GITHUB_ENV @@ -185,8 +183,6 @@ jobs: echo 'VITE_POSTHOG_KEY=${{ secrets.NEXT_PUBLIC_POSTHOG_KEY }}' >> .env echo 'VITE_POSTHOG_HOST=${{ secrets.NEXT_PUBLIC_POSTHOG_HOST }}' >> .env echo 'VITE_SERVER_URL=${{ secrets.NEXT_PUBLIC_WEB_URL }}' >> .env - echo "NEXT_PUBLIC_CAP_AWS_REGION=${{ secrets.NEXT_PUBLIC_CAP_AWS_REGION }}" >> .env - echo "NEXT_PUBLIC_CAP_AWS_BUCKET=${{ secrets.NEXT_PUBLIC_CAP_AWS_BUCKET }}" >> .env - name: Copy .env to apps/desktop run: cp .env apps/desktop/.env diff --git a/.github/workflows/docker-build-web.yml b/.github/workflows/docker-build-web.yml index af6a883dd2..a6bbbd1014 100644 --- a/.github/workflows/docker-build-web.yml +++ b/.github/workflows/docker-build-web.yml @@ -36,8 +36,6 @@ jobs: run: | echo "WEB_URL=http://localhost:3000" > .env echo "NEXT_PUBLIC_DOCKER_BUILD=true" >> .env - echo "NEXT_PUBLIC_CAP_AWS_BUCKET=capso" >> .env - echo "NEXT_PUBLIC_CAP_AWS_REGION=us-east-1" >> .env - name: Login to GitHub Container Registry uses: docker/login-action@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d0e1222fad..770f552ded 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -185,8 +185,6 @@ jobs: echo 'VITE_POSTHOG_KEY=${{ secrets.VITE_POSTHOG_KEY }}' >> .env echo 'VITE_POSTHOG_HOST=${{ secrets.VITE_POSTHOG_HOST }}' >> .env echo 'VITE_SERVER_URL=${{ secrets.NEXT_PUBLIC_WEB_URL }}' >> .env - echo "NEXT_PUBLIC_CAP_AWS_REGION=${{ secrets.NEXT_PUBLIC_CAP_AWS_REGION }}" >> .env - echo "NEXT_PUBLIC_CAP_AWS_BUCKET=${{ secrets.NEXT_PUBLIC_CAP_AWS_BUCKET }}" >> .env echo 'RUST_TARGET_TRIPLE=${{ matrix.settings.target }}' >> .env - name: Build app diff --git a/.npmrc b/.npmrc index ded82e2f63..5af059cef4 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ auto-install-peers = true +force-legacy-deploy = true diff --git a/CLAUDE.md b/CLAUDE.md index eb48022aaa..47d58dbf00 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -171,7 +171,7 @@ import { getCurrentUser } from "@cap/database/auth/session"; export async function updateVideo(data: FormData) { const user = await getCurrentUser(); if (!user?.id) throw new Error("Unauthorized"); - + // Database operations with Drizzle return await db().update(videos).set({ ... }).where(eq(videos.id, id)); } @@ -220,7 +220,6 @@ const updateMutation = useMutation({ ### Build/Client (selected) - `NEXT_PUBLIC_WEB_URL` -- `NEXT_PUBLIC_CAP_AWS_BUCKET`, `NEXT_PUBLIC_CAP_AWS_REGION` - `NEXT_PUBLIC_POSTHOG_KEY`, `NEXT_PUBLIC_POSTHOG_HOST` - `NEXT_PUBLIC_DOCKER_BUILD` (enables Next.js standalone output) @@ -268,7 +267,7 @@ const updateMutation = useMutation({ - **Connection errors**: Verify Docker containers are running - **Schema drift**: Run `pnpm --dir packages/database db:check` -### Desktop App Issues +### Desktop App Issues - **IPC binding errors**: Restart dev server to regenerate `tauri.ts` - **Rust compile errors**: Check Cargo.toml dependencies - **Permission issues**: macOS/Windows may require app permissions @@ -392,8 +391,8 @@ Minimize `useEffect` usage: compute during render, handle logic in event handler ### Media Processing Flow ``` -Desktop Recording → Local Files → Upload to S3 → -Background Processing (tasks service) → +Desktop Recording → Local Files → Upload to S3 → +Background Processing (tasks service) → Transcription/AI Enhancement → Database Storage ``` diff --git a/apps/web-cluster/src/runner/index.ts b/apps/web-cluster/src/runner/index.ts index 11e773bc05..7f0a77ab14 100644 --- a/apps/web-cluster/src/runner/index.ts +++ b/apps/web-cluster/src/runner/index.ts @@ -4,6 +4,7 @@ import { ClusterWorkflowEngine, RunnerAddress } from "@effect/cluster"; import * as NodeSdk from "@effect/opentelemetry/NodeSdk"; import { FetchHttpClient, + Headers, HttpApiBuilder, HttpMiddleware, HttpRouter, @@ -24,6 +25,12 @@ import { ContainerMetadata } from "../cluster/container-metadata.ts"; import { DatabaseLive, ShardDatabaseLive } from "../shared/database.ts"; import { HealthServerLive } from "./health-server.ts"; +class RpcAuthSecret extends Effect.Service()("RpcAuthSecret", { + effect: Effect.map(Config.string("WORKFLOWS_RPC_SECRET"), (v) => ({ + authSecret: v, + })), +}) {} + const ClusterWorkflowLive = Layer.unwrapEffect( Effect.gen(function* () { const containerMeta = yield* ContainerMetadata; @@ -48,6 +55,28 @@ const RpcsLive = RpcServer.layer(Workflows.RpcGroup).pipe( Layer.provide(Workflows.WorkflowsLayer), Layer.provide(ClusterWorkflowLive), Layer.provide(RpcServer.layerProtocolHttp({ path: "/" })), + Layer.provide( + Layer.effect( + Workflows.SecretAuthMiddleware, + Effect.gen(function* () { + const { authSecret } = yield* RpcAuthSecret; + + return Workflows.SecretAuthMiddleware.of( + Effect.fn(function* (options) { + const authHeader = Headers.get(options.headers, "authorization"); + if (Option.isNone(authHeader) || authHeader.value !== authSecret) { + if (Option.isNone(authHeader)) + yield* Effect.log("No auth header provided"); + + return yield* new Workflows.InvalidRpcAuth(); + } + + return yield* options.next; + }), + ); + }), + ), + ), Layer.provide(Workflows.RpcSerialization), ); @@ -92,6 +121,7 @@ HttpRouter.Default.serve().pipe( Layer.provide(FetchHttpClient.layer), Layer.provide(DatabaseLive), Layer.provide(TracingLayer), + Layer.provide(RpcAuthSecret.Default), Layer.launch, NodeRuntime.runMain, ); diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 634120f807..7250c97a41 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -12,8 +12,6 @@ RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm i --fro ARG NEXT_PUBLIC_DOCKER_BUILD=true ENV NEXT_PUBLIC_WEB_URL=http://localhost:3000 -ENV NEXT_PUBLIC_CAP_AWS_BUCKET=capso -ENV NEXT_PUBLIC_CAP_AWS_REGION=us-east-1 RUN pnpm run build:web diff --git a/apps/web/lib/server.ts b/apps/web/lib/server.ts index 6c196e4a67..adef04d2a2 100644 --- a/apps/web/lib/server.ts +++ b/apps/web/lib/server.ts @@ -16,13 +16,14 @@ import { import { type HttpAuthMiddleware, Video } from "@cap/web-domain"; import { FetchHttpClient, + Headers, type HttpApi, HttpApiBuilder, HttpApiClient, HttpMiddleware, HttpServer, } from "@effect/platform"; -import { RpcClient } from "@effect/rpc"; +import { RpcClient, RpcMessage, RpcMiddleware } from "@effect/rpc"; import { Cause, Config, @@ -31,6 +32,7 @@ import { Layer, ManagedRuntime, Option, + Redacted, } from "effect"; import { cookies } from "next/headers"; @@ -50,11 +52,21 @@ const CookiePasswordAttachmentLive = Layer.effect( }), ); +class WorkflowRpcSecret extends Effect.Service()( + "WorkflowRpcSecret", + { + effect: Effect.map( + Config.redacted(Config.string("WORKFLOWS_RPC_SECRET")), + (v) => ({ authSecret: v }), + ), + }, +) {} + const WorkflowRpcLive = Layer.scoped( Workflows.RpcClient, Effect.gen(function* () { const url = Option.getOrElse( - yield* Config.option(Config.string("REMOTE_WORKFLOW_URL")), + yield* Config.option(Config.string("WORKFLOWS_RPC_URL")), () => "http://127.0.0.1:42169", ); @@ -66,6 +78,22 @@ const WorkflowRpcLive = Layer.scoped( ), ); }), +).pipe( + Layer.provide( + RpcMiddleware.layerClient(Workflows.SecretAuthMiddleware, ({ request }) => + Effect.gen(function* () { + const { authSecret } = yield* WorkflowRpcSecret; + return { + ...request, + headers: Headers.set( + request.headers, + "authorization", + Redacted.value(authSecret), + ), + }; + }), + ), + ), ); export const Dependencies = Layer.mergeAll( @@ -79,7 +107,13 @@ export const Dependencies = Layer.mergeAll( WorkflowRpcLive, layerTracer, ).pipe( - Layer.provideMerge(Layer.mergeAll(Database.Default, FetchHttpClient.layer)), + Layer.provideMerge( + Layer.mergeAll( + Database.Default, + FetchHttpClient.layer, + WorkflowRpcSecret.Default, + ), + ), ); // purposefully not exposed @@ -132,6 +166,7 @@ export const apiToHandler = ( Layer.provide( HttpApiBuilder.middleware(Effect.provide(CookiePasswordAttachmentLive)), ), + Layer.provide(layerTracer), Layer.provideMerge(Dependencies), HttpApiBuilder.toWebHandler, (v) => (req: Request) => v.handler(req), diff --git a/crates/recording/src/output_pipeline/core.rs b/crates/recording/src/output_pipeline/core.rs index 817fb123bb..017f787a99 100644 --- a/crates/recording/src/output_pipeline/core.rs +++ b/crates/recording/src/output_pipeline/core.rs @@ -128,7 +128,7 @@ impl TaskPool { let res = future.await; match &res { Ok(_) => info!("Task finished successfully"), - Err(err) => error!("Task failed: {}", err), + Err(err) => error!("Task failed: {:#}", err), } res } diff --git a/infra/sst-env.d.ts b/infra/sst-env.d.ts index 2f7e8de340..ba2fdf30c1 100644 --- a/infra/sst-env.d.ts +++ b/infra/sst-env.d.ts @@ -5,52 +5,10 @@ declare module "sst" { export interface Resource { - AuroraDB: { - clusterArn: string; - database: string; - host: string; - password: string; - port: number; - reader: string; - secretArn: string; - type: "sst.aws.Aurora"; - username: string; - }; - CAP_AWS_ACCESS_KEY: { + DATABASE_URL: { type: "sst.sst.Secret"; value: string; }; - CAP_AWS_SECRET_KEY: { - type: "sst.sst.Secret"; - value: string; - }; - DATABASE_URL_HTTP: { - type: "sst.sst.Secret"; - value: string; - }; - DATABASE_URL_MYSQL: { - type: "sst.sst.Secret"; - value: string; - }; - GITHUB_PAT: { - type: "sst.sst.Secret"; - value: string; - }; - MyApi: { - type: "sst.aws.ApiGatewayV2"; - url: string; - }; - Runner: { - service: string; - type: "sst.aws.Service"; - }; - ShardManager: { - service: string; - type: "sst.aws.Service"; - }; - Vpc: { - type: "sst.aws.Vpc"; - }; } } /// diff --git a/infra/sst.config.ts b/infra/sst.config.ts index 60ed3f1081..88f17fdb36 100644 --- a/infra/sst.config.ts +++ b/infra/sst.config.ts @@ -1,5 +1,7 @@ /// +import type { Input, Output } from "@pulumi/pulumi"; + const GITHUB_ORG = "CapSoftware"; const GITHUB_REPO = "Cap"; const GITHUB_APP_ID = "1196731"; @@ -30,6 +32,7 @@ export default $config({ aws: {}, planetscale: true, awsx: "2.21.1", + random: true, }, }; }, @@ -151,7 +154,11 @@ export default $config({ if ($app.stage === "staging" || $app.stage === "production") { [ ...vercelVariables, - { key: "REMOTE_WORKFLOW_URL", value: workflowCluster.api.url }, + { key: "WORKFLOWS_RPC_URL", value: workflowCluster.api.url }, + { + key: "WORKFLOWS_RPC_SECRET", + value: secrets.WORKFLOWS_RPC_SECRET.result, + }, { key: "VERCEL_AWS_ROLE_ARN", value: vercelAwsAccessRole.arn }, ].map( (v) => @@ -178,6 +185,9 @@ function Secrets() { CAP_AWS_ACCESS_KEY: new sst.Secret("CAP_AWS_ACCESS_KEY"), CAP_AWS_SECRET_KEY: new sst.Secret("CAP_AWS_SECRET_KEY"), GITHUB_PAT: new sst.Secret("GITHUB_PAT"), + WORKFLOWS_RPC_SECRET: new random.RandomString("WORKFLOWS_RPC_SECRET", { + length: 48, + }), }; } @@ -289,11 +299,10 @@ async function WorkflowCluster(bucket: aws.s3.BucketV2, secrets: Secrets) { CAP_AWS_BUCKET: bucket.bucket, SHARD_DATABASE_URL: $interpolate`mysql://${db.username}:${db.password}@${db.host}:${db.port}/${db.database}`, DATABASE_URL: secrets.DATABASE_URL_MYSQL.value, - CAP_AWS_ACCESS_KEY: secrets.CAP_AWS_ACCESS_KEY.value, - CAP_AWS_SECRET_KEY: secrets.CAP_AWS_SECRET_KEY.value, AXIOM_API_TOKEN, AXIOM_DOMAIN: "api.axiom.co", AXIOM_DATASET, + WORKFLOWS_RPC_SECRET: secrets.WORKFLOWS_RPC_SECRET.result, }; const ghcrCredentialsSecret = new aws.secretsmanager.Secret( @@ -408,6 +417,12 @@ async function WorkflowCluster(bucket: aws.s3.BucketV2, secrets: Secrets) { ghcrCredentialsTransform.taskDefinition(args); }, }, + permissions: [ + { + actions: ["s3:*"], + resources: [bucket.arn, $interpolate`${bucket.arn}/*`], + }, + ], }); const api = new sst.aws.ApiGatewayV2("MyApi", { diff --git a/packages/env/build.ts b/packages/env/build.ts index 04d0f79196..a46bfb2788 100644 --- a/packages/env/build.ts +++ b/packages/env/build.ts @@ -14,10 +14,6 @@ const create = () => NEXT_PUBLIC_META_PIXEL_ID: z.string().optional(), NEXT_PUBLIC_GOOGLE_AW_ID: z.string().optional(), NEXT_PUBLIC_WEB_URL: z.string(), - NEXT_PUBLIC_CAP_AWS_BUCKET: z.string(), - NEXT_PUBLIC_CAP_AWS_REGION: z.string(), - NEXT_PUBLIC_CAP_AWS_ENDPOINT: z.string().optional(), - NEXT_PUBLIC_CAP_AWS_BUCKET_URL: z.string().optional(), NEXT_PUBLIC_DOCKER_BUILD: z.string().optional(), }, runtimeEnv: { @@ -28,15 +24,6 @@ const create = () => NEXT_PUBLIC_GOOGLE_AW_ID: process.env.NEXT_PUBLIC_GOOGLE_AW_ID, NEXT_PUBLIC_WEB_URL: process.env.WEB_URL ?? process.env.NEXT_PUBLIC_WEB_URL, - NEXT_PUBLIC_CAP_AWS_BUCKET: - process.env.CAP_AWS_BUCKET ?? process.env.NEXT_PUBLIC_CAP_AWS_BUCKET, - NEXT_PUBLIC_CAP_AWS_REGION: - process.env.CAP_AWS_REGION ?? process.env.NEXT_PUBLIC_CAP_AWS_REGION, - NEXT_PUBLIC_CAP_AWS_ENDPOINT: - process.env.CAP_AWS_ENDPOINT ?? - process.env.NEXT_PUBLIC_CAP_AWS_ENDPOINT, - NEXT_PUBLIC_CAP_AWS_BUCKET_URL: - process.env.CAP_AWS_URL ?? process.env.NEXT_PUBLIC_CAP_AWS_BUCKET_URL, NEXT_PUBLIC_DOCKER_BUILD: process.env.NEXT_PUBLIC_DOCKER_BUILD, }, }); diff --git a/packages/web-backend/package.json b/packages/web-backend/package.json index 2d54cba6e2..22b0d0ef47 100644 --- a/packages/web-backend/package.json +++ b/packages/web-backend/package.json @@ -13,6 +13,7 @@ "dependencies": { "@aws-sdk/client-s3": "^3.485.0", "@aws-sdk/cloudfront-signer": "^3.821.0", + "@aws-sdk/credential-providers": "^3.908.0", "@aws-sdk/s3-presigned-post": "^3.485.0", "@aws-sdk/s3-request-presigner": "^3.485.0", "@cap/database": "workspace:*", diff --git a/packages/web-backend/src/Http/Errors.ts b/packages/web-backend/src/Http/Errors.ts index f15bd1f9d0..44ef6cb440 100644 --- a/packages/web-backend/src/Http/Errors.ts +++ b/packages/web-backend/src/Http/Errors.ts @@ -1,5 +1,6 @@ import { DatabaseError, Http, S3Error } from "@cap/web-domain"; import { Effect, Schema } from "effect"; +import { InvalidRpcAuth } from "../Workflows.ts"; export const handleDomainError = (e: Effect.Effect) => e.pipe( @@ -9,6 +10,10 @@ export const handleDomainError = (e: Effect.Effect) => ), Effect.catchIf( (e) => Schema.is(S3Error)(e), - () => new Http.InternalServerError({ cause: "database" }), + () => new Http.InternalServerError({ cause: "s3" }), + ), + Effect.catchIf( + (e) => Schema.is(InvalidRpcAuth)(e), + () => new Http.InternalServerError({ cause: "unknown" }), ), ); diff --git a/packages/web-backend/src/Loom/Http.ts b/packages/web-backend/src/Loom/Http.ts index d702761a8d..3c29f782d8 100644 --- a/packages/web-backend/src/Loom/Http.ts +++ b/packages/web-backend/src/Loom/Http.ts @@ -1,4 +1,4 @@ -import { CurrentUser, Http, Policy, Video } from "@cap/web-domain"; +import { CurrentUser, Http, Policy } from "@cap/web-domain"; import { HttpApiBuilder } from "@effect/platform"; import { Effect } from "effect"; @@ -17,6 +17,8 @@ export const LoomHttpLive = HttpApiBuilder.group( return handlers.handle("importVideo", ({ payload }) => Effect.gen(function* () { const user = yield* CurrentUser; + if (!user.email.endsWith("@cap.so")) + return yield* Effect.die("Internal access only"); const result = yield* workflows .LoomImportVideo({ diff --git a/packages/web-backend/src/Loom/ImportVideo.ts b/packages/web-backend/src/Loom/ImportVideo.ts index 5fa85f543f..fde9f79f12 100644 --- a/packages/web-backend/src/Loom/ImportVideo.ts +++ b/packages/web-backend/src/Loom/ImportVideo.ts @@ -16,7 +16,7 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( yield* Activity.make({ name: "VerifyURLValid", - error: Schema.Union(Loom.VideoURLInvalidError, Loom.ExternalLoomError), + error: Schema.Union(Loom.VideoInvalidError, Loom.ExternalLoomError), execute: http .get(payload.loom.video.downloadUrl, { headers: { range: "bytes=0-0" }, @@ -29,12 +29,12 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( cause, ): Effect.Effect< never, - Loom.VideoURLInvalidError | Loom.ExternalLoomError + Loom.VideoInvalidError | Loom.ExternalLoomError > => { if (cause.response.status < 500) return Effect.fail( - new Loom.VideoURLInvalidError({ - status: cause.response.status, + new Loom.VideoInvalidError({ + cause: "NotFound", }), ); @@ -46,7 +46,7 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( Effect.retry({ schedule: Schedule.exponential("200 millis"), times: 3, - while: (e) => e._tag !== "VideoURLInvalidError", + while: (e) => e._tag !== "VideoInvalidError", }), Effect.catchTag("RequestError", Effect.die), ), @@ -103,7 +103,12 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( yield* Activity.make({ name: "DownloadVideo", - error: Schema.Union(S3Error, DatabaseError, Loom.ExternalLoomError), + error: Schema.Union( + S3Error, + DatabaseError, + Loom.VideoInvalidError, + Loom.ExternalLoomError, + ), execute: Effect.gen(function* () { const [s3Bucket] = yield* s3Buckets.getBucketAccess(customBucketId); @@ -113,9 +118,15 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( .pipe( Effect.catchAll((cause) => new Loom.ExternalLoomError({ cause })), ); - const contentLength = Headers.get(resp.headers, "content-length").pipe( + const contentLength = yield* Headers.get( + resp.headers, + "content-length", + ).pipe( Option.map((v) => Number(v)), - Option.getOrUndefined, + Effect.catchTag( + "NoSuchElementException", + () => new Loom.VideoInvalidError({ cause: "InvalidContentLength" }), + ), ); yield* Effect.log(`Downloading ${contentLength} bytes`); @@ -123,8 +134,17 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( const key = source.getFileKey(); - yield* s3Bucket - .putObject( + yield* Effect.gen(function* () { + // TODO: Connect this with upload progress + yield* Effect.repeat( + Effect.gen(function* () { + const bytes = yield* Effect.succeed(downloadedBytes); + yield* Effect.log(`Downloaded ${bytes}/${contentLength} bytes`); + }), + Schedule.forever.pipe(Schedule.delayed(() => "2 seconds")), + ).pipe(Effect.delay("100 millis"), Effect.forkScoped); + + yield* s3Bucket.putObject( key, resp.stream.pipe( Stream.tap((bytes) => { @@ -133,21 +153,8 @@ export const LoomImportVideoLive = Loom.ImportVideo.toLayer( }), ), { contentLength }, - ) - .pipe( - Effect.race( - // TODO: Connect this with upload progress - Effect.repeat( - Effect.gen(function* () { - const bytes = yield* Effect.succeed(downloadedBytes); - yield* Effect.log( - `Downloaded ${bytes}/${contentLength} bytes`, - ); - }), - Schedule.forever.pipe(Schedule.delayed(() => "2 seconds")), - ).pipe(Effect.delay("100 millis")), - ), ); + }).pipe(Effect.scoped); yield* Effect.log( `Uploaded video for user '${payload.cap.userId}' at key '${key}'`, diff --git a/packages/web-backend/src/S3Buckets/index.ts b/packages/web-backend/src/S3Buckets/index.ts index ccb60f6957..0ba4f99c76 100644 --- a/packages/web-backend/src/S3Buckets/index.ts +++ b/packages/web-backend/src/S3Buckets/index.ts @@ -1,5 +1,6 @@ import * as S3 from "@aws-sdk/client-s3"; import * as CloudFrontPresigner from "@aws-sdk/cloudfront-signer"; +import { fromContainerMetadata, fromSSO } from "@aws-sdk/credential-providers"; import { decrypt } from "@cap/database/crypto"; import type { S3Bucket, User } from "@cap/web-domain"; import { awsCredentialsProvider } from "@vercel/functions/oidc"; @@ -24,24 +25,33 @@ export class S3Buckets extends Effect.Service()("S3Buckets", { Config.option, ), region: yield* Config.string("CAP_AWS_REGION"), - credentials: Option.getOrUndefined( - yield* Config.option( - Config.all([ - Config.string("CAP_AWS_ACCESS_KEY"), - Config.string("CAP_AWS_SECRET_KEY"), - ]).pipe( - Config.map(([accessKeyId, secretAccessKey]) => ({ - accessKeyId, - secretAccessKey, - })), - Config.orElse(() => - Config.string("VERCEL_AWS_ROLE_ARN").pipe( - Config.map((arn) => awsCredentialsProvider({ roleArn: arn })), - ), + credentials: yield* Config.option( + Config.all([ + Config.string("CAP_AWS_ACCESS_KEY"), + Config.string("CAP_AWS_SECRET_KEY"), + ]).pipe( + Config.map(([accessKeyId, secretAccessKey]) => ({ + accessKeyId, + secretAccessKey, + })), + Config.orElse(() => + Config.string("VERCEL_AWS_ROLE_ARN").pipe( + Config.map((arn) => awsCredentialsProvider({ roleArn: arn })), + ), + ), + ), + ).pipe( + Effect.flatMap( + Effect.catchTag("NoSuchElementException", () => + Effect.succeed( + process.env.NODE_ENV === "development" + ? fromSSO({ profile: process.env.AWS_DEFAULT_PROFILE }) + : fromContainerMetadata(), ), ), ), ), + forcePathStyle: Option.getOrNull( yield* Config.boolean("S3_PATH_STYLE").pipe(Config.option), @@ -57,6 +67,7 @@ export class S3Buckets extends Effect.Service()("S3Buckets", { region: defaultConfigs.region, credentials: defaultConfigs.credentials, forcePathStyle: defaultConfigs.forcePathStyle, + requestStreamBufferSize: 16 * 1024, }); const createBucketClient = async (bucket: S3Bucket.S3Bucket) => { diff --git a/packages/web-backend/src/Spaces/index.ts b/packages/web-backend/src/Spaces/index.ts index 854da82ce1..c0aecf7ba5 100644 --- a/packages/web-backend/src/Spaces/index.ts +++ b/packages/web-backend/src/Spaces/index.ts @@ -3,9 +3,9 @@ import { type Organisation, Policy, type Space } from "@cap/web-domain"; import * as Dz from "drizzle-orm"; import { Effect } from "effect"; -import { Database } from "../Database"; -import { OrganisationsPolicy } from "../Organisations/OrganisationsPolicy"; -import { SpacesPolicy } from "./SpacesPolicy"; +import { Database } from "../Database.ts"; +import { OrganisationsPolicy } from "../Organisations/OrganisationsPolicy.ts"; +import { SpacesPolicy } from "./SpacesPolicy.ts"; export class Spaces extends Effect.Service()("Spaces", { effect: Effect.gen(function* () { diff --git a/packages/web-backend/src/Workflows.ts b/packages/web-backend/src/Workflows.ts index 2a2a469f9b..e689148f4b 100644 --- a/packages/web-backend/src/Workflows.ts +++ b/packages/web-backend/src/Workflows.ts @@ -2,12 +2,22 @@ import { Loom } from "@cap/web-domain"; import { HttpApi, type HttpApiClient } from "@effect/platform"; import * as Rpc from "@effect/rpc"; import { WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"; -import { Context, Layer } from "effect"; +import { Context, Layer, Schema } from "effect"; import { LoomImportVideoLive } from "./Loom/index.ts"; +export class InvalidRpcAuth extends Schema.TaggedError()( + "InvalidRpcAuth", + {}, +) {} +export class SecretAuthMiddleware extends Rpc.RpcMiddleware.Tag()( + "SecretAuthMiddleware", + { requiredForClient: true, wrap: true, failure: InvalidRpcAuth }, +) {} + export const Workflows = [Loom.ImportVideo] as const; -export const RpcGroup = WorkflowProxy.toRpcGroup(Workflows); +export const RpcGroup = + WorkflowProxy.toRpcGroup(Workflows).middleware(SecretAuthMiddleware); export const RpcSerialization = Rpc.RpcSerialization.layerJson; export class RpcClient extends Context.Tag("Workflows/RpcClient")< diff --git a/packages/web-domain/src/Loom.ts b/packages/web-domain/src/Loom.ts index 032f5a1520..067ed396df 100644 --- a/packages/web-domain/src/Loom.ts +++ b/packages/web-domain/src/Loom.ts @@ -22,10 +22,10 @@ export class ExternalLoomError extends Schema.TaggedError()( HttpApiSchema.annotations({ status: 500 }), ) {} -export class VideoURLInvalidError extends Schema.TaggedError()( - "VideoURLInvalidError", - { status: Schema.Number }, - HttpApiSchema.annotations({ status: 404 }), +export class VideoInvalidError extends Schema.TaggedError()( + "VideoInvalidError", + { cause: Schema.Literal("NotFound", "InvalidContentLength") }, + HttpApiSchema.annotations({ status: 400 }), ) {} export const ImportVideoLoomData = Schema.Struct({ @@ -60,7 +60,7 @@ export const ImportVideo = Workflow.make({ Video.NotFoundError, S3Error, ExternalLoomError, - VideoURLInvalidError, + VideoInvalidError, ), idempotencyKey: (p) => `${p.cap.userId}-${p.loom.orgId}-${p.loom.video.id}-${p.attempt ?? 0}`, @@ -76,7 +76,7 @@ export class LoomHttpApi extends HttpApiGroup.make("loom") }), ) .addSuccess(Schema.Struct({ videoId: Video.VideoId })) - .addError(VideoURLInvalidError) + .addError(VideoInvalidError) .addError(InternalServerError) .addError(PolicyDeniedError) .addError(Video.NotFoundError) diff --git a/packages/web-domain/src/S3Bucket.ts b/packages/web-domain/src/S3Bucket.ts index c0dc494642..60f264f3ce 100644 --- a/packages/web-domain/src/S3Bucket.ts +++ b/packages/web-domain/src/S3Bucket.ts @@ -1,5 +1,5 @@ import { Schema } from "effect"; -import { UserId } from "./User"; +import { UserId } from "./User.ts"; export const S3BucketId = Schema.String.pipe(Schema.brand("S3BucketId")); export type S3BucketId = typeof S3BucketId.Type; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0bebfa9cac..2165747bc7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -608,7 +608,7 @@ importers: version: 2.4.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@vercel/functions': specifier: ^3.1.0 - version: 3.1.0(@aws-sdk/credential-provider-web-identity@3.804.0) + version: 3.1.0(@aws-sdk/credential-provider-web-identity@3.908.0) '@vercel/otel': specifier: ^2.0.1 version: 2.0.1(@opentelemetry/api-logs@0.206.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.55.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.206.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)) @@ -1321,6 +1321,9 @@ importers: '@aws-sdk/cloudfront-signer': specifier: ^3.821.0 version: 3.821.0 + '@aws-sdk/credential-providers': + specifier: ^3.908.0 + version: 3.908.0 '@aws-sdk/s3-presigned-post': specifier: ^3.485.0 version: 3.804.0 @@ -1353,7 +1356,7 @@ importers: version: 4.3.1 '@vercel/functions': specifier: ^3.1.0 - version: 3.1.0(@aws-sdk/credential-provider-web-identity@3.804.0) + version: 3.1.0(@aws-sdk/credential-provider-web-identity@3.908.0) drizzle-orm: specifier: 0.44.6 version: 0.44.6(@cloudflare/workers-types@4.20250507.0)(@opentelemetry/api@1.9.0)(@planetscale/database@1.19.0)(mysql2@3.15.2) @@ -1444,6 +1447,10 @@ packages: resolution: {integrity: sha512-ssZX7+bEWPXjfmKRJTDzoP18Uyz8b0dCHLpvV1LDcd+vaJ9lRqIc45XgCfK40OwJm57TNFJcNpzADk/0kqvovw==} engines: {node: '>=18.0.0'} + '@aws-sdk/client-cognito-identity@3.908.0': + resolution: {integrity: sha512-XEva6l07dtF+6QNzTZHB+PEOX03sdcOudh+XVa4UjlUPlqrl/LAk/MzRxbw6pHScG5DPMx6Iyeicm7pJBOTdYg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/client-mediaconvert@3.804.0': resolution: {integrity: sha512-xjgAXzcwm2dp2okjrJZPjTby8WunxJ+mUngSksLs7jLA+6pTpxWbYgRcBizDo5Zc2UxrXDWQSTnyCDFRckHjAA==} engines: {node: '>=18.0.0'} @@ -1456,6 +1463,10 @@ packages: resolution: {integrity: sha512-6D5iQbL0MqlJ7B5aaHdP21k9+3H/od0jHjHSXegvFd4h2KQbD+QVTdEOSLeakgBGgHYRfiQXsrdMMzUz8vcpsw==} engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.908.0': + resolution: {integrity: sha512-PseFMWvtac+Q+zaY9DMISE+2+glNh0ROJ1yR4gMzeafNHSwkdYu4qcgxLWIOnIodGydBv/tQ6nzHPzExXnUUgw==} + engines: {node: '>=18.0.0'} + '@aws-sdk/cloudfront-signer@3.821.0': resolution: {integrity: sha512-5sDWEB23+eAzGklyjV1rYi4bSPWpG42N2+1WQhxF0491g5cElXwKN+eLgh/zT4Im3fq3Pum4Oj7P7SmMJLbATw==} engines: {node: '>=18.0.0'} @@ -1464,34 +1475,74 @@ packages: resolution: {integrity: sha512-KrYDEc6HaJE+Mx5lrwq6uhJxj1RYYfggQ+X+zQeKRyrZHl2GOxFl7PdnpdwtnaQIjX0gNkDzquhZSdyT0ar5rA==} engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.908.0': + resolution: {integrity: sha512-okl6FC2cQT1Oidvmnmvyp/IEvqENBagKO0ww4YV5UtBkf0VlhAymCWkZqhovtklsqgq0otag2VRPAgnrMt6nVQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-cognito-identity@3.908.0': + resolution: {integrity: sha512-Lmb5GatPNDY5cODfwH3XGWpKZqg/lh7ghCn4Y9BTMi5W9Z/E2Jq5YF7yaLobOjOpx+lVoxS+EsVrtSm6p3ffuw==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.804.0': resolution: {integrity: sha512-5mjrWPa4iaBK9/HDEIVN8lGxsnjk60eBjwGaJV0I2uqxnTo1EuQmpLV3XdY/OzQeqJdpuH/DbC6XUIdy9bXNQA==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.908.0': + resolution: {integrity: sha512-FK2YuxoI5CxUflPOIMbVAwDbi6Xvu+2sXopXLmrHc2PfI39M3vmjEoQwYCP8WuQSRb+TbAP3xAkxHjFSBFR35w==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.804.0': resolution: {integrity: sha512-TD84TXS/iDWcf+ggCq3n6yx36p1WXB2qgyHkbP/yVbdmix/vKU1twuB5qJvaY0PJWI0TOwBa9680XfsYrzaJAA==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.908.0': + resolution: {integrity: sha512-eLbz0geVW9EykujQNnYfR35Of8MreI6pau5K6XDFDUSWO9GF8wqH7CQwbXpXHBlCTHtq4QSLxzorD8U5CROhUw==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.804.0': resolution: {integrity: sha512-LfReL9TnOOunJWeZbDXPePFEnvJE+jcA7iY/ItsThUALgTy+ydLUdOiwzMZFo1f0JZN/Rfrsb9FOd/xTOoZiFw==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.908.0': + resolution: {integrity: sha512-7Cgnv5wabgFtsgr+Uc/76EfPNGyxmbG8aICn3g3D3iJlcO4uuOZI8a77i0afoDdchZrTC6TG6UusS/NAW6zEoQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.804.0': resolution: {integrity: sha512-L2EK5fy2+7El7j7TcRcuwr2lzU5tQfXsfscg+dtFkLPjOqShknnqV/lXylb3QlWx8B3K/c/KK5rcWQl6cYUiDQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.908.0': + resolution: {integrity: sha512-8OKbykpGw5bdfF/pLTf8YfUi1Kl8o1CTjBqWQTsLOkE3Ho3hsp1eQx8Cz4ttrpv0919kb+lox62DgmAOEmTr1w==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.804.0': resolution: {integrity: sha512-s6ng/rZj7WP8GGgxBXsoPZYlSu7MZAm9O8OLgSSWcw8/vaYW7hBVSEVVNMEUkJiJeEo7Lh+Y/3d6SY27S1of/g==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.908.0': + resolution: {integrity: sha512-sWnbkGjDPBi6sODUzrAh5BCDpnPw0wpK8UC/hWI13Q8KGfyatAmCBfr+9OeO3+xBHa8N5AskMncr7C4qS846yQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.804.0': resolution: {integrity: sha512-9Tt5zmhiK2nBfJv52Is5gNtW6bhK0W20GRhckg4T+BlnxOkPy//2ui23DzYacrwETH6TE3kdoyL3xgEL++HSLg==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.908.0': + resolution: {integrity: sha512-WV/aOzuS6ZZhrkPty6TJ3ZG24iS8NXP0m3GuTVuZ5tKi9Guss31/PJ1CrKPRCYGm15CsIjf+mrUxVnNYv9ap5g==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.804.0': resolution: {integrity: sha512-eBICjQUnqaoiHl9/AHKVPt/YkrifDddAUNGWUj+9cb3bRml6PEBSHE0k/tbbCTMq1xz7CCP+gmnnAA92ChnseA==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.908.0': + resolution: {integrity: sha512-9xWrFn6nWlF5KlV4XYW+7E6F33S3wUUEGRZ/+pgDhkIZd527ycT2nPG2dZ3fWUZMlRmzijP20QIJDqEbbGWe1Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-providers@3.908.0': + resolution: {integrity: sha512-WuAttxDemeKyMAgNEwBdgz11/W8IOosDxAU9GOk8ZbNJI/Cp0SiCp5p9bu0hlroq2V4HxECIRIMNeJZLh7fIgg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-bucket-endpoint@3.804.0': resolution: {integrity: sha512-vVphifJ5Ab2JUjB27UvdNV51ezxTn3f/jNbC/Y+KF1vNcYkwWXqo+U1gD8SUsDK+NhnD3wasfVBVLOdJa7qqKw==} engines: {node: '>=18.0.0'} @@ -1508,6 +1559,10 @@ packages: resolution: {integrity: sha512-bum1hLVBrn2lJCi423Z2fMUYtsbkGI2s4N+2RI2WSjvbaVyMSv/WcejIrjkqiiMR+2Y7m5exgoKeg4/TODLDPQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-host-header@3.901.0': + resolution: {integrity: sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-location-constraint@3.804.0': resolution: {integrity: sha512-AMtKnllIWKgoo7hiJfphLYotEwTERfjVMO2+cKAncz9w1g+bnYhHxiVhJJoR94y047c06X4PU5MsTxvdQ73Znw==} engines: {node: '>=18.0.0'} @@ -1516,10 +1571,18 @@ packages: resolution: {integrity: sha512-w/qLwL3iq0KOPQNat0Kb7sKndl9BtceigINwBU7SpkYWX9L/Lem6f8NPEKrC9Tl4wDBht3Yztub4oRTy/horJA==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-logger@3.901.0': + resolution: {integrity: sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.804.0': resolution: {integrity: sha512-zqHOrvLRdsUdN/ehYfZ9Tf8svhbiLLz5VaWUz22YndFv6m9qaAcijkpAOlKexsv3nLBMJdSdJ6GUTAeIy3BZzw==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.901.0': + resolution: {integrity: sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-sdk-s3@3.804.0': resolution: {integrity: sha512-kiuqjV2ozoyI6w34+KMhZU+YVOLTPgh1Kp1DSpuS+tbkwkxnQCrPGziQhuSA5/Y0bUFaa2zLwUh2jpCmJQbLyA==} engines: {node: '>=18.0.0'} @@ -1532,14 +1595,26 @@ packages: resolution: {integrity: sha512-HoBaun4t3vAFhMj/I7L/HNBKBrAYu7Sb5bTFINx8kFCxPbqsvF+jOrEE8WiljHNy7FbPjz0mPVRUwO7RZSYNiQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-user-agent@3.908.0': + resolution: {integrity: sha512-R0ePEOku72EvyJWy/D0Z5f/Ifpfxa0U9gySO3stpNhOox87XhsILpcIsCHPy0OHz1a7cMoZsF6rMKSzDeCnogQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/nested-clients@3.804.0': resolution: {integrity: sha512-IOUcw6stjqYBMhLoAXlLVipYpAqLlA17jcyI0OzpS0pTD1RvBqEBckYibF4HJeReI+IiEHu/m0If0SKVR5WyXQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/nested-clients@3.908.0': + resolution: {integrity: sha512-ZxDYrfxOKXNFHLyvJtT96TJ0p4brZOhwRE4csRXrezEVUN+pNgxuem95YvMALPVhlVqON2CTzr8BX+CcBKvX9Q==} + engines: {node: '>=18.0.0'} + '@aws-sdk/region-config-resolver@3.804.0': resolution: {integrity: sha512-Qlr8jVUL5U8Ej+84ElUTGeOok6hQXcJdx5IOSRoqKs6bCKVa8TtwgX1zZIajzjMhMgMlR3/V+M8oDVDKPB43Ug==} engines: {node: '>=18.0.0'} + '@aws-sdk/region-config-resolver@3.901.0': + resolution: {integrity: sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A==} + engines: {node: '>=18.0.0'} + '@aws-sdk/s3-presigned-post@3.804.0': resolution: {integrity: sha512-j+f/XG+i127XSln0UHsBzoMoXNK9slMV+O+3zcrX8fTbLqVDD+aqnxzpb17+6DQeHsGvoiK2Vk+KQ29/FdLlSQ==} engines: {node: '>=18.0.0'} @@ -1556,10 +1631,18 @@ packages: resolution: {integrity: sha512-ndcLGD1nHEVJdWRl0lK8SfC0dN4j3X4gcGXEJxK16KZD23veMB2adHP69ySYXNFNo5gI6W9Ct9QXnB+tJCCS1Q==} engines: {node: '>=18.0.0'} + '@aws-sdk/token-providers@3.908.0': + resolution: {integrity: sha512-4SosHWRQ8hj1X2yDenCYHParcCjHcd7S+Mdb/lelwF0JBFCNC+dNCI9ws3cP/dFdZO/AIhJQGUBzEQtieloixw==} + engines: {node: '>=18.0.0'} + '@aws-sdk/types@3.804.0': resolution: {integrity: sha512-A9qnsy9zQ8G89vrPPlNG9d1d8QcKRGqJKqwyGgS0dclJpwy6d1EWgQLIolKPl6vcFpLoe6avLOLxr+h8ur5wpg==} engines: {node: '>=18.0.0'} + '@aws-sdk/types@3.901.0': + resolution: {integrity: sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/util-arn-parser@3.804.0': resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} engines: {node: '>=18.0.0'} @@ -1568,6 +1651,10 @@ packages: resolution: {integrity: sha512-mT2R1De1fBT3vgm00ELVFoaArblW3PqGUCVteGGSUdJA525To7h6xPThrNrw3Dn8blAcR8VYGYte/JX7vKgFxw==} engines: {node: '>=18.0.0'} + '@aws-sdk/util-endpoints@3.901.0': + resolution: {integrity: sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/util-format-url@3.804.0': resolution: {integrity: sha512-1nOwSg7B0bj5LFGor0udF/HSdvDuSCxP+NC0IuSOJ5RgJ2AphFo03pLtK2UwArHY5WWZaejAEz5VBND6xxOEhA==} engines: {node: '>=18.0.0'} @@ -1579,6 +1666,9 @@ packages: '@aws-sdk/util-user-agent-browser@3.804.0': resolution: {integrity: sha512-KfW6T6nQHHM/vZBBdGn6fMyG/MgX5lq82TDdX4HRQRRuHKLgBWGpKXqqvBwqIaCdXwWHgDrg2VQups6GqOWW2A==} + '@aws-sdk/util-user-agent-browser@3.907.0': + resolution: {integrity: sha512-Hus/2YCQmtCEfr4Ls88d07Q99Ex59uvtktiPTV963Q7w7LHuIT/JBjrbwNxtSm2KlJR9PHNdqxwN+fSuNsMGMQ==} + '@aws-sdk/util-user-agent-node@3.804.0': resolution: {integrity: sha512-TacXL50ZHOeTUvN9LbHjS3muvvJNpzZp9cAtGRKpKXzlu8zCxPHrVU7dGOF6ONuNG30GpN2xzz81/XcCtg+8/A==} engines: {node: '>=18.0.0'} @@ -1588,10 +1678,27 @@ packages: aws-crt: optional: true + '@aws-sdk/util-user-agent-node@3.908.0': + resolution: {integrity: sha512-l6AEaKUAYarcEy8T8NZ+dNZ00VGLs3fW2Cqu1AuPENaSad0/ahEU+VU7MpXS8FhMRGPgplxKVgCTLyTY0Lbssw==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + '@aws-sdk/xml-builder@3.804.0': resolution: {integrity: sha512-JbGWp36IG9dgxtvC6+YXwt5WDZYfuamWFtVfK6fQpnmL96dx+GUPOXPKRWdw67WLKf2comHY28iX2d3z35I53Q==} engines: {node: '>=18.0.0'} + '@aws-sdk/xml-builder@3.901.0': + resolution: {integrity: sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw==} + engines: {node: '>=18.0.0'} + + '@aws/lambda-invoke-store@0.0.1': + resolution: {integrity: sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==} + engines: {node: '>=18.0.0'} + '@babel/code-frame@7.12.11': resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} @@ -4396,6 +4503,10 @@ packages: resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} + '@opentelemetry/semantic-conventions@1.36.0': + resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} + engines: {node: '>=14'} + '@opentelemetry/semantic-conventions@1.37.0': resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} @@ -5748,6 +5859,10 @@ packages: resolution: {integrity: sha512-Sl/78VDtgqKxN2+1qduaVE140XF+Xg+TafkncspwM4jFP/LHr76ZHmIY/y3V1M0mMLNk+Je6IGbzxy23RSToMw==} engines: {node: '>=18.0.0'} + '@smithy/abort-controller@4.2.0': + resolution: {integrity: sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg==} + engines: {node: '>=18.0.0'} + '@smithy/chunked-blob-reader-native@4.0.0': resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} engines: {node: '>=18.0.0'} @@ -5760,6 +5875,14 @@ packages: resolution: {integrity: sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==} engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.3.0': + resolution: {integrity: sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.15.0': + resolution: {integrity: sha512-VJWncXgt+ExNn0U2+Y7UywuATtRYaodGQKFo9mDyh70q+fJGedfrqi2XuKU1BhiLeXgg6RZrW7VEKfeqFhHAJA==} + engines: {node: '>=18.0.0'} + '@smithy/core@3.3.1': resolution: {integrity: sha512-W7AppgQD3fP1aBmo8wWo0id5zeR2/aYRy067vZsDVaa6v/mdhkg6DxXwEVuSPjZl+ZnvWAQbUMCd5ckw38+tHQ==} engines: {node: '>=18.0.0'} @@ -5768,6 +5891,10 @@ packages: resolution: {integrity: sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==} engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.2.0': + resolution: {integrity: sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big==} + engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@4.0.2': resolution: {integrity: sha512-p+f2kLSK7ZrXVfskU/f5dzksKTewZk8pJLPvER3aFHPt76C2MxD9vNatSfLzzQSQB4FNO96RK4PSXfhD1TTeMQ==} engines: {node: '>=18.0.0'} @@ -5792,6 +5919,10 @@ packages: resolution: {integrity: sha512-+9Dz8sakS9pe7f2cBocpJXdeVjMopUDLgZs1yWeu7h++WqSbjUYv/JAJwKwXw1HV6gq1jyWjxuyn24E2GhoEcQ==} engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.3.1': + resolution: {integrity: sha512-3AvYYbB+Dv5EPLqnJIAgYw/9+WzeBiUYS8B+rU0pHq5NMQMvrZmevUROS4V2GAt0jEOn9viBzPLrZE+riTNd5Q==} + engines: {node: '>=18.0.0'} + '@smithy/hash-blob-browser@4.0.2': resolution: {integrity: sha512-3g188Z3DyhtzfBRxpZjU8R9PpOQuYsbNnyStc/ZVS+9nVX1f6XeNOa9IrAh35HwwIZg+XWk8bFVtNINVscBP+g==} engines: {node: '>=18.0.0'} @@ -5800,6 +5931,10 @@ packages: resolution: {integrity: sha512-VnTpYPnRUE7yVhWozFdlxcYknv9UN7CeOqSrMH+V877v4oqtVYuoqhIhtSjmGPvYrYnAkaM61sLMKHvxL138yg==} engines: {node: '>=18.0.0'} + '@smithy/hash-node@4.2.0': + resolution: {integrity: sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA==} + engines: {node: '>=18.0.0'} + '@smithy/hash-stream-node@4.0.2': resolution: {integrity: sha512-POWDuTznzbIwlEXEvvXoPMS10y0WKXK790soe57tFRfvf4zBHyzE529HpZMqmDdwG9MfFflnyzndUQ8j78ZdSg==} engines: {node: '>=18.0.0'} @@ -5808,6 +5943,10 @@ packages: resolution: {integrity: sha512-GatB4+2DTpgWPday+mnUkoumP54u/MDM/5u44KF9hIu8jF0uafZtQLcdfIKkIcUNuF/fBojpLEHZS/56JqPeXQ==} engines: {node: '>=18.0.0'} + '@smithy/invalid-dependency@4.2.0': + resolution: {integrity: sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A==} + engines: {node: '>=18.0.0'} + '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} @@ -5816,6 +5955,10 @@ packages: resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} engines: {node: '>=18.0.0'} + '@smithy/is-array-buffer@4.2.0': + resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} + engines: {node: '>=18.0.0'} + '@smithy/md5-js@4.0.2': resolution: {integrity: sha512-Hc0R8EiuVunUewCse2syVgA2AfSRco3LyAv07B/zCOMa+jpXI9ll+Q21Nc6FAlYPcpNcAXqBzMhNs1CD/pP2bA==} engines: {node: '>=18.0.0'} @@ -5824,42 +5967,82 @@ packages: resolution: {integrity: sha512-hAfEXm1zU+ELvucxqQ7I8SszwQ4znWMbNv6PLMndN83JJN41EPuS93AIyh2N+gJ6x8QFhzSO6b7q2e6oClDI8A==} engines: {node: '>=18.0.0'} + '@smithy/middleware-content-length@4.2.0': + resolution: {integrity: sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.1.2': resolution: {integrity: sha512-EqOy3xaEGQpsKxLlzYstDRJ8eY90CbyBP4cl+w7r45mE60S8YliyL9AgWsdWcyNiB95E2PMqHBEv67nNl1zLfg==} engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.3.1': + resolution: {integrity: sha512-JtM4SjEgImLEJVXdsbvWHYiJ9dtuKE8bqLlvkvGi96LbejDL6qnVpVxEFUximFodoQbg0Gnkyff9EKUhFhVJFw==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.1.3': resolution: {integrity: sha512-AsJtI9KiFoEGAhcEKZyzzPfrszAQGcf4HSYKmenz0WGx/6YNvoPPv4OSGfZTCsDmgPHv4pXzxE+7QV7jcGWNKw==} engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.4.1': + resolution: {integrity: sha512-wXxS4ex8cJJteL0PPQmWYkNi9QKDWZIpsndr0wZI2EL+pSSvA/qqxXU60gBOJoIc2YgtZSWY/PE86qhKCCKP1w==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.0.3': resolution: {integrity: sha512-rfgDVrgLEVMmMn0BI8O+8OVr6vXzjV7HZj57l0QxslhzbvVfikZbVfBVthjLHqib4BW44QhcIgJpvebHlRaC9A==} engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.2.0': + resolution: {integrity: sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.0.2': resolution: {integrity: sha512-eSPVcuJJGVYrFYu2hEq8g8WWdJav3sdrI4o2c6z/rjnYDd3xH9j9E7deZQCzFn4QvGPouLngH3dQ+QVTxv5bOQ==} engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.2.0': + resolution: {integrity: sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg==} + engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@4.0.2': resolution: {integrity: sha512-WgCkILRZfJwJ4Da92a6t3ozN/zcvYyJGUTmfGbgS/FkCcoCjl7G4FJaCDN1ySdvLvemnQeo25FdkyMSTSwulsw==} engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@4.3.0': + resolution: {integrity: sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA==} + engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.0.4': resolution: {integrity: sha512-/mdqabuAT3o/ihBGjL94PUbTSPSRJ0eeVTdgADzow0wRJ0rN4A27EOrtlK56MYiO1fDvlO3jVTCxQtQmK9dZ1g==} engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.3.0': + resolution: {integrity: sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q==} + engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.0.2': resolution: {integrity: sha512-wNRoQC1uISOuNc2s4hkOYwYllmiyrvVXWMtq+TysNRVQaHm4yoafYQyjN/goYZS+QbYlPIbb/QRjaUZMuzwQ7A==} engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.2.0': + resolution: {integrity: sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw==} + engines: {node: '>=18.0.0'} + '@smithy/protocol-http@5.1.0': resolution: {integrity: sha512-KxAOL1nUNw2JTYrtviRRjEnykIDhxc84qMBzxvu1MUfQfHTuBlCG7PA6EdVwqpJjH7glw7FqQoFxUJSyBQgu7g==} engines: {node: '>=18.0.0'} + '@smithy/protocol-http@5.3.0': + resolution: {integrity: sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q==} + engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@4.0.2': resolution: {integrity: sha512-NTOs0FwHw1vimmQM4ebh+wFQvOwkEf/kQL6bSM1Lock+Bv4I89B3hGYoUEPkmvYPkDKyp5UdXJYu+PoTQ3T31Q==} engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@4.2.0': + resolution: {integrity: sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A==} + engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@4.0.2': resolution: {integrity: sha512-v6w8wnmZcVXjfVLjxw8qF7OwESD9wnpjp0Dqry/Pod0/5vcEA3qxCr+BhbOHlxS8O+29eLpT3aagxXGwIoEk7Q==} engines: {node: '>=18.0.0'} @@ -5868,26 +6051,50 @@ packages: resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@4.2.0': + resolution: {integrity: sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA==} + engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@4.0.3': resolution: {integrity: sha512-FTbcajmltovWMjj3tksDQdD23b2w6gH+A0DYA1Yz3iSpjDj8fmkwy62UnXcWMy4d5YoMoSyLFHMfkEVEzbiN8Q==} engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@4.2.0': + resolution: {integrity: sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA==} + engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@4.0.2': resolution: {integrity: sha512-J9/gTWBGVuFZ01oVA6vdb4DAjf1XbDhK6sLsu3OS9qmLrS6KB5ygpeHiM3miIbj1qgSJ96GYszXFWv6ErJ8QEw==} engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@4.3.0': + resolution: {integrity: sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ==} + engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.1.0': resolution: {integrity: sha512-4t5WX60sL3zGJF/CtZsUQTs3UrZEDO2P7pEaElrekbLqkWPYkgqNW1oeiNYC6xXifBnT9dVBOnNQRvOE9riU9w==} engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.3.0': + resolution: {integrity: sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g==} + engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.2.2': resolution: {integrity: sha512-3AnHfsMdq9Wg7+3BeR1HuLWI9+DMA/SoHVpCWq6xSsa52ikNd6nlF/wFzdpHyGtVa+Aji6lMgvwOF4sGcVA7SA==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.7.1': + resolution: {integrity: sha512-WXVbiyNf/WOS/RHUoFMkJ6leEVpln5ojCjNBnzoZeMsnCg3A0BRhLK3WYc4V7PmYcYPZh9IYzzAg9XcNSzYxYQ==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.3.1': resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} engines: {node: '>=18.0.0'} + '@smithy/types@4.6.0': + resolution: {integrity: sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA==} + engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.0.2': resolution: {integrity: sha512-Bm8n3j2ScqnT+kJaClSVCMeiSenK6jVAzZCNewsYWuZtnBehEz4r2qP0riZySZVfzB+03XZHJeqfmJDkeeSLiQ==} engines: {node: '>=18.0.0'} @@ -5896,18 +6103,34 @@ packages: resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.2.0': + resolution: {integrity: sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A==} + engines: {node: '>=18.0.0'} + '@smithy/util-base64@4.0.0': resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} engines: {node: '>=18.0.0'} + '@smithy/util-base64@4.3.0': + resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-body-length-browser@4.0.0': resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} engines: {node: '>=18.0.0'} + '@smithy/util-body-length-browser@4.2.0': + resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==} + engines: {node: '>=18.0.0'} + '@smithy/util-body-length-node@4.0.0': resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} engines: {node: '>=18.0.0'} + '@smithy/util-body-length-node@4.2.1': + resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==} + engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -5916,42 +6139,82 @@ packages: resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@4.2.0': + resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==} + engines: {node: '>=18.0.0'} + '@smithy/util-config-provider@4.0.0': resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} engines: {node: '>=18.0.0'} + '@smithy/util-config-provider@4.2.0': + resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.0.10': resolution: {integrity: sha512-2k6fgUNOZ1Rn0gEjvGPGrDEINLG8qSBHsN7xlkkbO+fnHJ36BQPDzhFfMmYSDS8AgzoygqQiDOQ+6Hp2vBTUdA==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.3.0': + resolution: {integrity: sha512-H4MAj8j8Yp19Mr7vVtGgi7noJjvjJbsKQJkvNnLlrIFduRFT5jq5Eri1k838YW7rN2g5FTnXpz5ktKVr1KVgPQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.0.10': resolution: {integrity: sha512-2XR1WRglLVmoIFts7bODUTgBdVyvkfKNkydHrlsI5VxW9q3s1hnJCuY+f1OHzvj5ue23q4vydM2fjrMjf2HSdQ==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.2.1': + resolution: {integrity: sha512-PuDcgx7/qKEMzV1QFHJ7E4/MMeEjaA7+zS5UNcHCLPvvn59AeZQ0DSDGMpqC2xecfa/1cNGm4l8Ec/VxCuY7Ug==} + engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.0.2': resolution: {integrity: sha512-6QSutU5ZyrpNbnd51zRTL7goojlcnuOB55+F9VBD+j8JpRY50IGamsjlycrmpn8PQkmJucFW8A0LSfXj7jjtLQ==} engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.2.0': + resolution: {integrity: sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg==} + engines: {node: '>=18.0.0'} + '@smithy/util-hex-encoding@4.0.0': resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} engines: {node: '>=18.0.0'} + '@smithy/util-hex-encoding@4.2.0': + resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} + engines: {node: '>=18.0.0'} + '@smithy/util-middleware@4.0.2': resolution: {integrity: sha512-6GDamTGLuBQVAEuQ4yDQ+ti/YINf/MEmIegrEeg7DdB/sld8BX1lqt9RRuIcABOhAGTA50bRbPzErez7SlDtDQ==} engines: {node: '>=18.0.0'} + '@smithy/util-middleware@4.2.0': + resolution: {integrity: sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA==} + engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.0.3': resolution: {integrity: sha512-DPuYjZQDXmKr/sNvy9Spu8R/ESa2e22wXZzSAY6NkjOLj6spbIje/Aq8rT97iUMdDj0qHMRIe+bTxvlU74d9Ng==} engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.2.0': + resolution: {integrity: sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg==} + engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.2.0': resolution: {integrity: sha512-Vj1TtwWnuWqdgQI6YTUF5hQ/0jmFiOYsc51CSMgj7QfyO+RF4EnT2HNjoviNlOOmgzgvf3f5yno+EiC4vrnaWQ==} engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.5.0': + resolution: {integrity: sha512-0TD5M5HCGu5diEvZ/O/WquSjhJPasqv7trjoqHyWjNh/FBeBl7a0ztl9uFMOsauYtRfd8jvpzIAQhDHbx+nvZw==} + engines: {node: '>=18.0.0'} + '@smithy/util-uri-escape@4.0.0': resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} engines: {node: '>=18.0.0'} + '@smithy/util-uri-escape@4.2.0': + resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==} + engines: {node: '>=18.0.0'} + '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} @@ -5960,10 +6223,18 @@ packages: resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} engines: {node: '>=18.0.0'} + '@smithy/util-utf8@4.2.0': + resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} + engines: {node: '>=18.0.0'} + '@smithy/util-waiter@4.0.3': resolution: {integrity: sha512-JtaY3FxmD+te+KSI2FJuEcfNC9T/DGGVf551babM7fAaXhjJUt7oSYurH1Devxd2+BOSUACCgt3buinx4UnmEA==} engines: {node: '>=18.0.0'} + '@smithy/uuid@1.1.0': + resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==} + engines: {node: '>=18.0.0'} + '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} @@ -6880,8 +7151,8 @@ packages: '@types/node@20.19.19': resolution: {integrity: sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==} - '@types/node@20.19.20': - resolution: {integrity: sha512-2Q7WS25j4pS1cS8yw3d6buNCVJukOTeQ39bAnwR6sOJbaxvyCGebzTMypDFN82CxBLnl+lSWVdCCWbRY6y9yZQ==} + '@types/node@20.19.21': + resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==} '@types/node@22.15.14': resolution: {integrity: sha512-BL1eyu/XWsFGTtDWOYULQEs4KR0qdtYfCxYAUYRoB7JP7h9ETYLgQTww6kH8Sj2C0pFGgrpM0XKv6/kbIzYJ1g==} @@ -7786,8 +8057,8 @@ packages: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} - baseline-browser-mapping@2.8.15: - resolution: {integrity: sha512-qsJ8/X+UypqxHXN75M7dF88jNK37dLBRW7LeUzCPz+TNs37G8cfWy9nWzS+LS//g600zrt2le9KuXt0rWfDz5Q==} + baseline-browser-mapping@2.8.16: + resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} hasBin: true basic-auth@2.0.1: @@ -7979,8 +8250,8 @@ packages: caniuse-lite@1.0.30001743: resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} - caniuse-lite@1.0.30001749: - resolution: {integrity: sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==} + caniuse-lite@1.0.30001750: + resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} canvas-confetti@1.9.3: resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} @@ -9464,6 +9735,10 @@ packages: resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true + fast-xml-parser@5.2.5: + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + hasBin: true + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -12225,10 +12500,6 @@ packages: property-information@7.0.0: resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} - protobufjs@7.4.0: - resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} - engines: {node: '>=12.0.0'} - protobufjs@7.5.4: resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} @@ -13290,6 +13561,9 @@ packages: strnum@1.1.2: resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + strnum@2.1.1: + resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -14862,6 +15136,50 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/client-cognito-identity@3.908.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.908.0 + '@aws-sdk/credential-provider-node': 3.908.0 + '@aws-sdk/middleware-host-header': 3.901.0 + '@aws-sdk/middleware-logger': 3.901.0 + '@aws-sdk/middleware-recursion-detection': 3.901.0 + '@aws-sdk/middleware-user-agent': 3.908.0 + '@aws-sdk/region-config-resolver': 3.901.0 + '@aws-sdk/types': 3.901.0 + '@aws-sdk/util-endpoints': 3.901.0 + '@aws-sdk/util-user-agent-browser': 3.907.0 + '@aws-sdk/util-user-agent-node': 3.908.0 + '@smithy/config-resolver': 4.3.0 + '@smithy/core': 3.15.0 + '@smithy/fetch-http-handler': 5.3.1 + '@smithy/hash-node': 4.2.0 + '@smithy/invalid-dependency': 4.2.0 + '@smithy/middleware-content-length': 4.2.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-retry': 4.4.1 + '@smithy/middleware-serde': 4.2.0 + '@smithy/middleware-stack': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/node-http-handler': 4.3.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.0 + '@smithy/util-defaults-mode-node': 4.2.1 + '@smithy/util-endpoints': 3.2.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-retry': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/client-mediaconvert@3.804.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 @@ -14998,7 +15316,7 @@ snapshots: '@smithy/protocol-http': 5.1.0 '@smithy/smithy-client': 4.2.2 '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.2 + '@smithy/url-parser': 4.0.4 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 @@ -15012,6 +15330,49 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/client-sso@3.908.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.908.0 + '@aws-sdk/middleware-host-header': 3.901.0 + '@aws-sdk/middleware-logger': 3.901.0 + '@aws-sdk/middleware-recursion-detection': 3.901.0 + '@aws-sdk/middleware-user-agent': 3.908.0 + '@aws-sdk/region-config-resolver': 3.901.0 + '@aws-sdk/types': 3.901.0 + '@aws-sdk/util-endpoints': 3.901.0 + '@aws-sdk/util-user-agent-browser': 3.907.0 + '@aws-sdk/util-user-agent-node': 3.908.0 + '@smithy/config-resolver': 4.3.0 + '@smithy/core': 3.15.0 + '@smithy/fetch-http-handler': 5.3.1 + '@smithy/hash-node': 4.2.0 + '@smithy/invalid-dependency': 4.2.0 + '@smithy/middleware-content-length': 4.2.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-retry': 4.4.1 + '@smithy/middleware-serde': 4.2.0 + '@smithy/middleware-stack': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/node-http-handler': 4.3.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.0 + '@smithy/util-defaults-mode-node': 4.2.1 + '@smithy/util-endpoints': 3.2.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-retry': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/cloudfront-signer@3.821.0': dependencies: '@smithy/url-parser': 4.0.4 @@ -15031,6 +15392,32 @@ snapshots: fast-xml-parser: 4.4.1 tslib: 2.8.1 + '@aws-sdk/core@3.908.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@aws-sdk/xml-builder': 3.901.0 + '@smithy/core': 3.15.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/property-provider': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/signature-v4': 5.3.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-cognito-identity@3.908.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/property-provider': 4.2.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-env@3.804.0': dependencies: '@aws-sdk/core': 3.804.0 @@ -15039,6 +15426,14 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/property-provider': 4.2.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.804.0': dependencies: '@aws-sdk/core': 3.804.0 @@ -15052,6 +15447,19 @@ snapshots: '@smithy/util-stream': 4.2.0 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/fetch-http-handler': 5.3.1 + '@smithy/node-http-handler': 4.3.0 + '@smithy/property-provider': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/util-stream': 4.5.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.804.0': dependencies: '@aws-sdk/core': 3.804.0 @@ -15070,6 +15478,24 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-ini@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/credential-provider-env': 3.908.0 + '@aws-sdk/credential-provider-http': 3.908.0 + '@aws-sdk/credential-provider-process': 3.908.0 + '@aws-sdk/credential-provider-sso': 3.908.0 + '@aws-sdk/credential-provider-web-identity': 3.908.0 + '@aws-sdk/nested-clients': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/credential-provider-imds': 4.2.0 + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-node@3.804.0': dependencies: '@aws-sdk/credential-provider-env': 3.804.0 @@ -15087,6 +15513,23 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-node@3.908.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.908.0 + '@aws-sdk/credential-provider-http': 3.908.0 + '@aws-sdk/credential-provider-ini': 3.908.0 + '@aws-sdk/credential-provider-process': 3.908.0 + '@aws-sdk/credential-provider-sso': 3.908.0 + '@aws-sdk/credential-provider-web-identity': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/credential-provider-imds': 4.2.0 + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-process@3.804.0': dependencies: '@aws-sdk/core': 3.804.0 @@ -15096,6 +15539,15 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.804.0': dependencies: '@aws-sdk/client-sso': 3.804.0 @@ -15109,6 +15561,19 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-sso@3.908.0': + dependencies: + '@aws-sdk/client-sso': 3.908.0 + '@aws-sdk/core': 3.908.0 + '@aws-sdk/token-providers': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-web-identity@3.804.0': dependencies: '@aws-sdk/core': 3.804.0 @@ -15120,6 +15585,42 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-web-identity@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/nested-clients': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-providers@3.908.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.908.0 + '@aws-sdk/core': 3.908.0 + '@aws-sdk/credential-provider-cognito-identity': 3.908.0 + '@aws-sdk/credential-provider-env': 3.908.0 + '@aws-sdk/credential-provider-http': 3.908.0 + '@aws-sdk/credential-provider-ini': 3.908.0 + '@aws-sdk/credential-provider-node': 3.908.0 + '@aws-sdk/credential-provider-process': 3.908.0 + '@aws-sdk/credential-provider-sso': 3.908.0 + '@aws-sdk/credential-provider-web-identity': 3.908.0 + '@aws-sdk/nested-clients': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/config-resolver': 4.3.0 + '@smithy/core': 3.15.0 + '@smithy/credential-provider-imds': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/property-provider': 4.2.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/middleware-bucket-endpoint@3.804.0': dependencies: '@aws-sdk/types': 3.804.0 @@ -15160,6 +15661,13 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.901.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/middleware-location-constraint@3.804.0': dependencies: '@aws-sdk/types': 3.804.0 @@ -15172,6 +15680,12 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/middleware-logger@3.901.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/middleware-recursion-detection@3.804.0': dependencies: '@aws-sdk/types': 3.804.0 @@ -15179,6 +15693,14 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/middleware-recursion-detection@3.901.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@aws/lambda-invoke-store': 0.0.1 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/middleware-sdk-s3@3.804.0': dependencies: '@aws-sdk/core': 3.804.0 @@ -15212,6 +15734,16 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/middleware-user-agent@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@aws-sdk/util-endpoints': 3.901.0 + '@smithy/core': 3.15.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/nested-clients@3.804.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 @@ -15241,7 +15773,7 @@ snapshots: '@smithy/protocol-http': 5.1.0 '@smithy/smithy-client': 4.2.2 '@smithy/types': 4.3.1 - '@smithy/url-parser': 4.0.2 + '@smithy/url-parser': 4.0.4 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 @@ -15255,6 +15787,49 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/nested-clients@3.908.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.908.0 + '@aws-sdk/middleware-host-header': 3.901.0 + '@aws-sdk/middleware-logger': 3.901.0 + '@aws-sdk/middleware-recursion-detection': 3.901.0 + '@aws-sdk/middleware-user-agent': 3.908.0 + '@aws-sdk/region-config-resolver': 3.901.0 + '@aws-sdk/types': 3.901.0 + '@aws-sdk/util-endpoints': 3.901.0 + '@aws-sdk/util-user-agent-browser': 3.907.0 + '@aws-sdk/util-user-agent-node': 3.908.0 + '@smithy/config-resolver': 4.3.0 + '@smithy/core': 3.15.0 + '@smithy/fetch-http-handler': 5.3.1 + '@smithy/hash-node': 4.2.0 + '@smithy/invalid-dependency': 4.2.0 + '@smithy/middleware-content-length': 4.2.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-retry': 4.4.1 + '@smithy/middleware-serde': 4.2.0 + '@smithy/middleware-stack': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/node-http-handler': 4.3.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.0 + '@smithy/util-defaults-mode-node': 4.2.1 + '@smithy/util-endpoints': 3.2.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-retry': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/region-config-resolver@3.804.0': dependencies: '@aws-sdk/types': 3.804.0 @@ -15264,6 +15839,15 @@ snapshots: '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 + '@aws-sdk/region-config-resolver@3.901.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.0 + tslib: 2.8.1 + '@aws-sdk/s3-presigned-post@3.804.0': dependencies: '@aws-sdk/client-s3': 3.804.0 @@ -15309,11 +15893,28 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/token-providers@3.908.0': + dependencies: + '@aws-sdk/core': 3.908.0 + '@aws-sdk/nested-clients': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/types@3.804.0': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/types@3.901.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/util-arn-parser@3.804.0': dependencies: tslib: 2.8.1 @@ -15325,6 +15926,14 @@ snapshots: '@smithy/util-endpoints': 3.0.2 tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.901.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + '@smithy/util-endpoints': 3.2.0 + tslib: 2.8.1 + '@aws-sdk/util-format-url@3.804.0': dependencies: '@aws-sdk/types': 3.804.0 @@ -15343,6 +15952,13 @@ snapshots: bowser: 2.11.0 tslib: 2.8.1 + '@aws-sdk/util-user-agent-browser@3.907.0': + dependencies: + '@aws-sdk/types': 3.901.0 + '@smithy/types': 4.6.0 + bowser: 2.11.0 + tslib: 2.8.1 + '@aws-sdk/util-user-agent-node@3.804.0': dependencies: '@aws-sdk/middleware-user-agent': 3.804.0 @@ -15351,11 +15967,27 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/util-user-agent-node@3.908.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.908.0 + '@aws-sdk/types': 3.901.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@aws-sdk/xml-builder@3.804.0': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@aws-sdk/xml-builder@3.901.0': + dependencies: + '@smithy/types': 4.6.0 + fast-xml-parser: 5.2.5 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.0.1': {} + '@babel/code-frame@7.12.11': dependencies: '@babel/highlight': 7.25.9 @@ -15911,7 +16543,7 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 + '@opentelemetry/semantic-conventions': 1.36.0 chokidar: 3.6.0 hash-wasm: 4.12.0 inflection: 3.0.2 @@ -16754,7 +17386,7 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.4.0 + protobufjs: 7.5.4 yargs: 17.7.2 '@headlessui/react@1.7.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': @@ -17319,7 +17951,7 @@ snapshots: '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': dependencies: - detect-libc: 2.1.2 + detect-libc: 2.1.1 https-proxy-agent: 5.0.1 make-dir: 3.1.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -18116,7 +18748,7 @@ snapshots: '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - protobufjs: 7.4.0 + protobufjs: 7.5.4 '@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)': dependencies: @@ -18222,6 +18854,8 @@ snapshots: '@opentelemetry/semantic-conventions@1.28.0': {} + '@opentelemetry/semantic-conventions@1.36.0': {} + '@opentelemetry/semantic-conventions@1.37.0': {} '@oxc-project/types@0.94.0': {} @@ -19494,6 +20128,11 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/abort-controller@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/chunked-blob-reader-native@4.0.0': dependencies: '@smithy/util-base64': 4.0.0 @@ -19511,6 +20150,27 @@ snapshots: '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 + '@smithy/config-resolver@4.3.0': + dependencies: + '@smithy/node-config-provider': 4.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.0 + tslib: 2.8.1 + + '@smithy/core@3.15.0': + dependencies: + '@smithy/middleware-serde': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-stream': 4.5.0 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + '@smithy/core@3.3.1': dependencies: '@smithy/middleware-serde': 4.0.3 @@ -19530,6 +20190,14 @@ snapshots: '@smithy/url-parser': 4.0.2 tslib: 2.8.1 + '@smithy/credential-provider-imds@4.2.0': + dependencies: + '@smithy/node-config-provider': 4.3.0 + '@smithy/property-provider': 4.2.0 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + tslib: 2.8.1 + '@smithy/eventstream-codec@4.0.2': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -19568,6 +20236,14 @@ snapshots: '@smithy/util-base64': 4.0.0 tslib: 2.8.1 + '@smithy/fetch-http-handler@5.3.1': + dependencies: + '@smithy/protocol-http': 5.3.0 + '@smithy/querystring-builder': 4.2.0 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + '@smithy/hash-blob-browser@4.0.2': dependencies: '@smithy/chunked-blob-reader': 5.0.0 @@ -19582,6 +20258,13 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/hash-node@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + '@smithy/hash-stream-node@4.0.2': dependencies: '@smithy/types': 4.3.1 @@ -19593,6 +20276,11 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/invalid-dependency@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 @@ -19601,6 +20289,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/is-array-buffer@4.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/md5-js@4.0.2': dependencies: '@smithy/types': 4.3.1 @@ -19613,6 +20305,12 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/middleware-content-length@4.2.0': + dependencies: + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/middleware-endpoint@4.1.2': dependencies: '@smithy/core': 3.3.1 @@ -19624,6 +20322,17 @@ snapshots: '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 + '@smithy/middleware-endpoint@4.3.1': + dependencies: + '@smithy/core': 3.15.0 + '@smithy/middleware-serde': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + '@smithy/util-middleware': 4.2.0 + tslib: 2.8.1 + '@smithy/middleware-retry@4.1.3': dependencies: '@smithy/node-config-provider': 4.0.2 @@ -19636,16 +20345,39 @@ snapshots: tslib: 2.8.1 uuid: 9.0.1 + '@smithy/middleware-retry@4.4.1': + dependencies: + '@smithy/node-config-provider': 4.3.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/service-error-classification': 4.2.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-retry': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + '@smithy/middleware-serde@4.0.3': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/middleware-serde@4.2.0': + dependencies: + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/middleware-stack@4.0.2': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/middleware-stack@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/node-config-provider@4.0.2': dependencies: '@smithy/property-provider': 4.0.2 @@ -19653,6 +20385,13 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/node-config-provider@4.3.0': + dependencies: + '@smithy/property-provider': 4.2.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/node-http-handler@4.0.4': dependencies: '@smithy/abort-controller': 4.0.2 @@ -19661,22 +20400,46 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/node-http-handler@4.3.0': + dependencies: + '@smithy/abort-controller': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/querystring-builder': 4.2.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/property-provider@4.0.2': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/property-provider@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/protocol-http@5.1.0': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/protocol-http@5.3.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/querystring-builder@4.0.2': dependencies: '@smithy/types': 4.3.1 '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 + '@smithy/querystring-builder@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + '@smithy/util-uri-escape': 4.2.0 + tslib: 2.8.1 + '@smithy/querystring-parser@4.0.2': dependencies: '@smithy/types': 4.3.1 @@ -19687,15 +20450,29 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/querystring-parser@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/service-error-classification@4.0.3': dependencies: '@smithy/types': 4.3.1 + '@smithy/service-error-classification@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + '@smithy/shared-ini-file-loader@4.0.2': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/shared-ini-file-loader@4.3.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/signature-v4@5.1.0': dependencies: '@smithy/is-array-buffer': 4.0.0 @@ -19707,6 +20484,17 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/signature-v4@5.3.0': + dependencies: + '@smithy/is-array-buffer': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-uri-escape': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + '@smithy/smithy-client@4.2.2': dependencies: '@smithy/core': 3.3.1 @@ -19717,10 +20505,24 @@ snapshots: '@smithy/util-stream': 4.2.0 tslib: 2.8.1 + '@smithy/smithy-client@4.7.1': + dependencies: + '@smithy/core': 3.15.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-stack': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-stream': 4.5.0 + tslib: 2.8.1 + '@smithy/types@4.3.1': dependencies: tslib: 2.8.1 + '@smithy/types@4.6.0': + dependencies: + tslib: 2.8.1 + '@smithy/url-parser@4.0.2': dependencies: '@smithy/querystring-parser': 4.0.2 @@ -19733,20 +20535,40 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/url-parser@4.2.0': + dependencies: + '@smithy/querystring-parser': 4.2.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/util-base64@4.0.0': dependencies: '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/util-base64@4.3.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + '@smithy/util-body-length-browser@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-body-length-browser@4.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/util-body-length-node@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-body-length-node@4.2.1': + dependencies: + tslib: 2.8.1 + '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 @@ -19757,10 +20579,19 @@ snapshots: '@smithy/is-array-buffer': 4.0.0 tslib: 2.8.1 + '@smithy/util-buffer-from@4.2.0': + dependencies: + '@smithy/is-array-buffer': 4.2.0 + tslib: 2.8.1 + '@smithy/util-config-provider@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-config-provider@4.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.0.10': dependencies: '@smithy/property-provider': 4.0.2 @@ -19769,6 +20600,13 @@ snapshots: bowser: 2.11.0 tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.3.0': + dependencies: + '@smithy/property-provider': 4.2.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.0.10': dependencies: '@smithy/config-resolver': 4.1.0 @@ -19779,27 +20617,58 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.2.1': + dependencies: + '@smithy/config-resolver': 4.3.0 + '@smithy/credential-provider-imds': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/property-provider': 4.2.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/util-endpoints@3.0.2': dependencies: '@smithy/node-config-provider': 4.0.2 '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/util-endpoints@3.2.0': + dependencies: + '@smithy/node-config-provider': 4.3.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-hex-encoding@4.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/util-middleware@4.0.2': dependencies: '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/util-middleware@4.2.0': + dependencies: + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/util-retry@4.0.3': dependencies: '@smithy/service-error-classification': 4.0.3 '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/util-retry@4.2.0': + dependencies: + '@smithy/service-error-classification': 4.2.0 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + '@smithy/util-stream@4.2.0': dependencies: '@smithy/fetch-http-handler': 5.0.2 @@ -19811,10 +20680,25 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/util-stream@4.5.0': + dependencies: + '@smithy/fetch-http-handler': 5.3.1 + '@smithy/node-http-handler': 4.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + '@smithy/util-uri-escape@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-uri-escape@4.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 @@ -19825,12 +20709,21 @@ snapshots: '@smithy/util-buffer-from': 4.0.0 tslib: 2.8.1 + '@smithy/util-utf8@4.2.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + tslib: 2.8.1 + '@smithy/util-waiter@4.0.3': dependencies: '@smithy/abort-controller': 4.0.2 '@smithy/types': 4.3.1 tslib: 2.8.1 + '@smithy/uuid@1.1.0': + dependencies: + tslib: 2.8.1 + '@socket.io/component-emitter@3.1.2': {} '@solid-primitives/bounds@0.0.122(solid-js@1.9.6)': @@ -20888,7 +21781,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@20.19.20': + '@types/node@20.19.21': dependencies: undici-types: 6.21.0 @@ -21277,11 +22170,11 @@ snapshots: '@vercel/edge@1.2.1': {} - '@vercel/functions@3.1.0(@aws-sdk/credential-provider-web-identity@3.804.0)': + '@vercel/functions@3.1.0(@aws-sdk/credential-provider-web-identity@3.908.0)': dependencies: '@vercel/oidc': 3.0.0 optionalDependencies: - '@aws-sdk/credential-provider-web-identity': 3.804.0 + '@aws-sdk/credential-provider-web-identity': 3.908.0 '@vercel/nft@0.27.7(encoding@0.1.13)(rollup@4.40.2)': dependencies: @@ -22071,7 +22964,7 @@ snapshots: base64id@2.0.0: {} - baseline-browser-mapping@2.8.15: {} + baseline-browser-mapping@2.8.16: {} basic-auth@2.0.1: dependencies: @@ -22182,8 +23075,8 @@ snapshots: browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.15 - caniuse-lite: 1.0.30001749 + baseline-browser-mapping: 2.8.16 + caniuse-lite: 1.0.30001750 electron-to-chromium: 1.5.234 node-releases: 2.0.23 update-browserslist-db: 1.1.3(browserslist@4.26.3) @@ -22311,7 +23204,7 @@ snapshots: caniuse-lite@1.0.30001743: {} - caniuse-lite@1.0.30001749: {} + caniuse-lite@1.0.30001750: {} canvas-confetti@1.9.3: {} @@ -22853,7 +23746,8 @@ snapshots: detect-libc@2.1.1: {} - detect-libc@2.1.2: {} + detect-libc@2.1.2: + optional: true detect-newline@3.1.0: {} @@ -24200,6 +25094,10 @@ snapshots: dependencies: strnum: 1.1.2 + fast-xml-parser@5.2.5: + dependencies: + strnum: 2.1.1 + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -25577,7 +26475,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.19.20 + '@types/node': 20.19.21 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -27557,21 +28455,6 @@ snapshots: property-information@7.0.0: {} - protobufjs@7.4.0: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/node': 20.19.19 - long: 5.3.2 - protobufjs@7.5.4: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -28956,6 +29839,8 @@ snapshots: strnum@1.1.2: {} + strnum@2.1.1: {} + style-to-js@1.1.16: dependencies: style-to-object: 1.0.8 diff --git a/scripts/env-cli.js b/scripts/env-cli.js index d54af88133..a4b7328606 100644 --- a/scripts/env-cli.js +++ b/scripts/env-cli.js @@ -58,6 +58,7 @@ async function main() { envs.VITE_SERVER_URL = "http://localhost:3000"; envs.WEB_URL = "http://localhost:3000"; envs.NEXTAUTH_URL = envs.WEB_URL; + envs.WORKFLOWS_RPC_SECRET = crypto.randomBytes(32).toString("base64"); if (!allEnvs.NEXTAUTH_SECRET) { allEnvs.NEXTAUTH_SECRET = crypto.randomBytes(32).toString("base64"); @@ -127,18 +128,6 @@ async function main() { defaultValue: allEnvs.CAP_AWS_BUCKET, placeholder: allEnvs.CAP_AWS_BUCKET, }), - CAP_AWS_REGION: () => - text({ - message: "CAP_AWS_REGION", - defaultValue: allEnvs.NEXT_PUBLIC_CAP_AWS_REGION, - placeholder: allEnvs.NEXT_PUBLIC_CAP_AWS_REGION, - }), - CAP_AWS_ENDPOINT: () => - text({ - message: "CAP_AWS_ENDPOINT", - defaultValue: allEnvs.NEXT_PUBLIC_CAP_AWS_ENDPOINT, - placeholder: allEnvs.NEXT_PUBLIC_CAP_AWS_ENDPOINT, - }), CAP_AWS_BUCKET_URL: () => text({ message: "CAP_AWS_BUCKET_URL" }), CAP_CLOUDFRONT_DISTRIBUTION_ID: () => text({ message: "CAP_CLOUDFRONT_DISTRIBUTION_ID" }), @@ -159,8 +148,6 @@ async function main() { } envs.NEXT_PUBLIC_WEB_URL = envs.WEB_URL; - envs.NEXT_PUBLIC_CAP_AWS_BUCKET = envs.CAP_AWS_BUCKET; - envs.NEXT_PUBLIC_CAP_AWS_REGION = envs.CAP_AWS_REGION; } if (hasDesktop) {