├── pnpm-workspace.yaml ├── services ├── transcoder │ ├── .env.example │ ├── src │ │ ├── utils │ │ │ ├── s3.ts │ │ │ ├── utils.ts │ │ │ └── processVideo.ts │ │ └── index.ts │ ├── package.json │ ├── tsconfig.json │ └── pnpm-lock.yaml ├── upload-server │ ├── .env.example │ ├── src │ │ ├── routes │ │ │ └── upload.ts │ │ ├── utils │ │ │ ├── s3.ts │ │ │ └── multer.ts │ │ ├── server.ts │ │ └── controllers │ │ │ └── upload.ts │ ├── package.json │ └── tsconfig.json └── worker-server │ ├── .env.example │ ├── package.json │ ├── src │ └── index.ts │ ├── tsconfig.json │ └── pnpm-lock.yaml ├── shared ├── database │ ├── .gitignore │ ├── prisma │ │ ├── migrations │ │ │ ├── migration_lock.toml │ │ │ └── 20250123114150_init │ │ │ │ └── migration.sql │ │ └── schema.prisma │ ├── .env.example │ ├── tsconfig.json │ ├── src │ │ └── index.ts │ ├── package.json │ └── pnpm-lock.yaml └── rabbitmq │ ├── src │ ├── index.ts │ ├── producer.ts │ └── consumer.ts │ ├── tsconfig.json │ └── package.json ├── assets └── architecture.png ├── package.json ├── docker-compose.yml ├── LICENSE ├── README.md └── .gitignore /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'shared/*' 3 | - 'services/*' -------------------------------------------------------------------------------- /services/transcoder/.env.example: -------------------------------------------------------------------------------- 1 | AWS_ACCESS_KEY_ID= 2 | AWS_SECRET_ACCESS_KEY= 3 | 4 | OUTPUT_BUCKET= -------------------------------------------------------------------------------- /shared/database/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | # Keep environment variables out of version control 3 | .env 4 | -------------------------------------------------------------------------------- /assets/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rehan-adi/video-transcoding-pipeline/HEAD/assets/architecture.png -------------------------------------------------------------------------------- /services/upload-server/.env.example: -------------------------------------------------------------------------------- 1 | PORT= 2 | 3 | AWS_BUCKET_NAME= 4 | AWS_ACCESS_KEY_ID= 5 | AWS_SECRET_ACCESS_KEY= -------------------------------------------------------------------------------- /services/worker-server/.env.example: -------------------------------------------------------------------------------- 1 | AWS_ACCESS_KEY_ID= 2 | AWS_SECRET_ACCESS_KEY= 3 | AWS_REGION= 4 | SQS_QUEUE_URL= 5 | -------------------------------------------------------------------------------- /shared/rabbitmq/src/index.ts: -------------------------------------------------------------------------------- 1 | export { connectProducer, publishMessage } from "./producer"; 2 | export { connectConsumer, consumeMessages } from "./consumer"; -------------------------------------------------------------------------------- /shared/database/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (e.g., Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /shared/database/.env.example: -------------------------------------------------------------------------------- 1 | POSTGRES_USER=postgres 2 | POSTGRES_PASSWORD=user 3 | POSTGRES_DB=video-transcoder-db 4 | 5 | DATABASE_URL="postgresql://postgres:user@localhost:5432/video-transcoder-db?schema=public" -------------------------------------------------------------------------------- /services/upload-server/src/routes/upload.ts: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import { upload } from "../utils/multer"; 3 | import { uploadFile } from "../controllers/upload"; 4 | 5 | export const uploadRouter = express.Router(); 6 | 7 | uploadRouter.post("/", upload.single("video"), uploadFile); 8 | -------------------------------------------------------------------------------- /shared/database/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2018", 4 | "module": "commonjs", 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "strict": true, 8 | "esModuleInterop": true, 9 | "declaration": true, 10 | "skipLibCheck": true 11 | }, 12 | "include": ["src/**/*"] 13 | } -------------------------------------------------------------------------------- /shared/rabbitmq/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2018", 4 | "module": "commonjs", 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "strict": true, 8 | "esModuleInterop": true, 9 | "declaration": true, 10 | "skipLibCheck": true 11 | }, 12 | "include": ["src/**/*"] 13 | } 14 | -------------------------------------------------------------------------------- /services/transcoder/src/utils/s3.ts: -------------------------------------------------------------------------------- 1 | import env from "dotenv"; 2 | import { S3Client } from "@aws-sdk/client-s3"; 3 | 4 | env.config(); 5 | 6 | export const s3 = new S3Client({ 7 | region: "ap-south-1", 8 | credentials: { 9 | accessKeyId: process.env.AWS_ACCESS_KEY_ID!, 10 | secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!, 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /services/upload-server/src/utils/s3.ts: -------------------------------------------------------------------------------- 1 | import env from "dotenv"; 2 | import { S3Client } from "@aws-sdk/client-s3"; 3 | 4 | env.config(); 5 | 6 | export const s3 = new S3Client({ 7 | region: "ap-south-1", 8 | credentials: { 9 | accessKeyId: process.env.AWS_ACCESS_KEY_ID!, 10 | secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!, 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /shared/database/src/index.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | 3 | const prismaClientSingleton = () => { 4 | return new PrismaClient(); 5 | }; 6 | 7 | declare global { 8 | var prisma: undefined | ReturnType; 9 | } 10 | 11 | const prisma = globalThis.prisma ?? prismaClientSingleton(); 12 | 13 | export default prisma; 14 | 15 | if (process.env.NODE_ENV !== "production") globalThis.prisma = prisma; -------------------------------------------------------------------------------- /services/upload-server/src/utils/multer.ts: -------------------------------------------------------------------------------- 1 | import multer from "multer"; 2 | 3 | const storage = multer.diskStorage({ 4 | destination: function (req, file, cb) { 5 | cb(null, "./uploads"); 6 | }, 7 | filename: function (req, file, cb) { 8 | const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9); 9 | cb(null, file.fieldname + "-" + uniqueSuffix); 10 | }, 11 | }); 12 | 13 | export const upload = multer({ storage: storage }); 14 | -------------------------------------------------------------------------------- /shared/rabbitmq/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rabbitmq", 3 | "version": "1.0.0", 4 | "private": true, 5 | "types": "dist/index.d.ts", 6 | "main": "index.js", 7 | "scripts": { 8 | "build": "tsc" 9 | }, 10 | "dependencies": { 11 | "amqplib": "^0.10.5" 12 | }, 13 | "devDependencies": { 14 | "@types/amqplib": "^0.10.6" 15 | }, 16 | "exports": { 17 | ".": { 18 | "import": "./dist/index.js", 19 | "require": "./dist/index.js" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "video-transcoding-pipeline", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "Video transcoding pipeline with microservices", 6 | "scripts": { 7 | "start": "pnpm -r run start", 8 | "build": "pnpm -r run build" 9 | }, 10 | "devDependencies": { 11 | "typescript": "^5.0.0" 12 | }, 13 | "author": "Rehan", 14 | "license": "MIT", 15 | "packageManager": "pnpm@9.12.1", 16 | "engines": { 17 | "node": ">=14.0.0" 18 | }, 19 | "workspaces": [ 20 | "shared/*", 21 | "services/*" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /services/worker-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "worker-server", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "", 6 | "main": "index.js", 7 | "scripts": { 8 | "start": "node ./dist/index.js", 9 | "build": "tsc" 10 | }, 11 | "author": "Rehan", 12 | "license": "MIT", 13 | "dependencies": { 14 | "database": "workspace:^1.0.0", 15 | "rabbitmq": "workspace:^1.0.0", 16 | "@aws-sdk/client-sqs": "^3.731.1", 17 | "dotenv": "^16.4.7" 18 | }, 19 | "devDependencies": { 20 | "@types/node": "^22.10.7" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /services/transcoder/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "transcoder", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node ./dist/index.js", 8 | "build": "tsc" 9 | }, 10 | "author": "Rehan", 11 | "license": "MIT", 12 | "dependencies": { 13 | "@aws-sdk/client-s3": "^3.732.0", 14 | "database": "workspace:*", 15 | "dotenv": "^16.4.7", 16 | "fluent-ffmpeg": "^2.1.3", 17 | "rabbitmq": "workspace:*", 18 | "uuid": "^11.0.5" 19 | }, 20 | "devDependencies": { 21 | "@types/fluent-ffmpeg": "^2.1.27" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | rabbitmq: 3 | image: rabbitmq:management 4 | container_name: rabbitmq-queue 5 | ports: 6 | - "5672:5672" 7 | - "15672:15672" 8 | environment: 9 | RABBITMQ_DEFAULT_USER: user 10 | RABBITMQ_DEFAULT_PASS: password 11 | 12 | postgres: 13 | image: postgres:15-alpine 14 | container_name: video-transcoder-db 15 | restart: always 16 | ports: 17 | - "5432:5432" 18 | env_file: 19 | - ./shared/database/.env 20 | volumes: 21 | - postgres-data:/var/lib/postgresql/data 22 | 23 | volumes: 24 | postgres-data: 25 | -------------------------------------------------------------------------------- /shared/database/prisma/schema.prisma: -------------------------------------------------------------------------------- 1 | generator client { 2 | provider = "prisma-client-js" 3 | } 4 | 5 | datasource db { 6 | provider = "postgresql" 7 | url = env("DATABASE_URL") 8 | } 9 | 10 | model Video { 11 | id String @id @default(cuid()) 12 | bucket String 13 | key String 14 | status VideoStatus @default(Pending) 15 | outputBucket String? 16 | outputKey String? 17 | createdAt DateTime @default(now()) 18 | updatedAt DateTime @updatedAt 19 | 20 | @@unique([bucket, key]) 21 | } 22 | 23 | enum VideoStatus { 24 | Pending 25 | Processing 26 | Published 27 | Failed 28 | } 29 | -------------------------------------------------------------------------------- /shared/database/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "database", 3 | "version": "1.0.0", 4 | "private": true, 5 | "types": "dist/index.d.ts", 6 | "description": "", 7 | "main": "index.js", 8 | "scripts": { 9 | "migrate": "npx prisma migrate dev", 10 | "build": "prisma generate && tsc" 11 | }, 12 | "author": "Rehan", 13 | "license": "MIT", 14 | "devDependencies": { 15 | "@types/node": "^22.10.7", 16 | "prisma": "^6.2.1" 17 | }, 18 | "dependencies": { 19 | "@prisma/client": "6.2.1" 20 | }, 21 | "exports": { 22 | ".": { 23 | "types": "./dist/index.d.ts", 24 | "default": "./dist/index.js" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /shared/database/prisma/migrations/20250123114150_init/migration.sql: -------------------------------------------------------------------------------- 1 | -- CreateEnum 2 | CREATE TYPE "VideoStatus" AS ENUM ('Pending', 'Processing', 'Published', 'Failed'); 3 | 4 | -- CreateTable 5 | CREATE TABLE "Video" ( 6 | "id" TEXT NOT NULL, 7 | "bucket" TEXT NOT NULL, 8 | "key" TEXT NOT NULL, 9 | "status" "VideoStatus" NOT NULL DEFAULT 'Pending', 10 | "outputBucket" TEXT, 11 | "outputKey" TEXT, 12 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, 13 | "updatedAt" TIMESTAMP(3) NOT NULL, 14 | 15 | CONSTRAINT "Video_pkey" PRIMARY KEY ("id") 16 | ); 17 | 18 | -- CreateIndex 19 | CREATE UNIQUE INDEX "Video_bucket_key_key" ON "Video"("bucket", "key"); 20 | -------------------------------------------------------------------------------- /services/upload-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "upload-server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "server.js", 6 | "scripts": { 7 | "start": "node ./dist/server.js", 8 | "build": "tsc" 9 | }, 10 | "keywords": [], 11 | "author": "Rehan", 12 | "license": "ISC", 13 | "dependencies": { 14 | "@aws-sdk/client-s3": "^3.732.0", 15 | "cors": "^2.8.5", 16 | "dotenv": "^16.4.7", 17 | "express": "^4.21.2", 18 | "helmet": "^8.0.0", 19 | "morgan": "^1.10.0", 20 | "multer": "1.4.5-lts.1" 21 | }, 22 | "devDependencies": { 23 | "@types/cors": "^2.8.17", 24 | "@types/express": "^5.0.0", 25 | "@types/morgan": "^1.9.9", 26 | "@types/multer": "^1.4.12" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /services/upload-server/src/server.ts: -------------------------------------------------------------------------------- 1 | import cors from "cors"; 2 | import env from "dotenv"; 3 | import morgan from "morgan"; 4 | import helmet from "helmet"; 5 | import express from "express"; 6 | import { uploadRouter } from "./routes/upload"; 7 | 8 | env.config(); 9 | 10 | const server = express(); 11 | 12 | // middleware 13 | server.use(cors()); 14 | server.use(express.json()); 15 | server.use(morgan("dev")); 16 | server.use(helmet()); 17 | 18 | // routes 19 | server.use("/api/v1/upload", uploadRouter); 20 | 21 | // health check 22 | server.get("/", (req, res) => { 23 | res.status(200).json({ success: true, message: "Ok" }); 24 | }); 25 | 26 | server.listen(process.env.PORT, () => { 27 | console.log(`Server is running on port ${process.env.PORT}`); 28 | }); 29 | -------------------------------------------------------------------------------- /shared/rabbitmq/src/producer.ts: -------------------------------------------------------------------------------- 1 | import amqp, { Channel, Connection } from "amqplib"; 2 | 3 | let channel: Channel; 4 | 5 | const connectProducer = async (): Promise => { 6 | const connection = await amqp.connect("amqp://user:password@localhost:5672"); 7 | channel = await connection.createChannel(); 8 | await channel.assertQueue("task_queue", { durable: true }); 9 | return connection; 10 | }; 11 | 12 | const publishMessage = async (message: string): Promise => { 13 | if (!channel) { 14 | throw new Error("Channel not initialized"); 15 | } 16 | channel.sendToQueue("task_queue", Buffer.from(message), { 17 | persistent: true, 18 | }); 19 | console.log(`Message sent: ${message}`); 20 | }; 21 | 22 | export { connectProducer, publishMessage }; 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Rehan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /services/upload-server/src/controllers/upload.ts: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | import { s3 } from "../utils/s3"; 3 | import { Request, Response } from "express"; 4 | import { PutObjectCommand } from "@aws-sdk/client-s3"; 5 | 6 | export const uploadFile = async (req: Request, res: Response) => { 7 | try { 8 | if (!req.file) { 9 | res.status(400).json({ success: false, message: "No file uploaded" }); 10 | return; 11 | } 12 | 13 | const params = { 14 | Bucket: process.env.AWS_BUCKET_NAME!, 15 | Key: req.file.originalname, 16 | Body: fs.createReadStream(req.file.path), 17 | ContentType: req.file.mimetype, 18 | }; 19 | 20 | const command = new PutObjectCommand(params); 21 | await s3.send(command); 22 | 23 | fs.unlink(req.file.path, (err) => { 24 | if (err) { 25 | console.error("Error deleting file from local storage:", err); 26 | } else { 27 | console.log("File deleted from local storage"); 28 | } 29 | }); 30 | 31 | res.status(200).json({ 32 | success: true, 33 | message: "Video uploaded successfully", 34 | }); 35 | } catch (error) { 36 | console.error("Error uploading file:", error); 37 | res.status(500).json({ success: false, message: "Internal Server Error" }); 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /shared/rabbitmq/src/consumer.ts: -------------------------------------------------------------------------------- 1 | import amqp, { Channel, Connection, ConsumeMessage } from "amqplib"; 2 | 3 | let channel: Channel; 4 | 5 | const connectConsumer = async (): Promise => { 6 | const connection = await amqp.connect("amqp://user:password@localhost:5672"); 7 | channel = await connection.createChannel(); 8 | await channel.assertQueue("task_queue", { durable: true }); 9 | return connection; 10 | }; 11 | 12 | const consumeMessages = async ( 13 | onMessage: ( 14 | messageContent: string, 15 | rawMessage: ConsumeMessage 16 | ) => Promise 17 | ): Promise => { 18 | if (!channel) { 19 | throw new Error( 20 | "Channel not initialized. Please connect to RabbitMQ first." 21 | ); 22 | } 23 | 24 | console.log('Waiting for messages in "task_queue"...'); 25 | 26 | channel.consume( 27 | "task_queue", 28 | async (msg) => { 29 | if (msg) { 30 | try { 31 | const content = msg.content.toString(); 32 | console.log(`Received message: ${content}`); 33 | 34 | // Pass the message content and the raw message to the callback 35 | await onMessage(content, msg); 36 | 37 | // Acknowledge the message after successful processing 38 | channel.ack(msg); 39 | } catch (error) { 40 | console.error("Error processing message:", error); 41 | 42 | // Optionally reject the message and don't requeue it 43 | channel.nack(msg, false, false); 44 | } 45 | } 46 | }, 47 | { noAck: false } // Ensures messages must be acknowledged manually 48 | ); 49 | }; 50 | 51 | export { connectConsumer, consumeMessages }; 52 | -------------------------------------------------------------------------------- /services/transcoder/src/utils/utils.ts: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | import fs, { 3 | existsSync, 4 | mkdirSync, 5 | promises as fsPromises, 6 | constants, 7 | } from "fs"; 8 | 9 | export const getAllFiles = (dir: string, fileList: string[] = []): string[] => { 10 | const files = fs.readdirSync(dir); 11 | files.forEach((file) => { 12 | const filePath = path.join(dir, file); 13 | if (fs.statSync(filePath).isDirectory()) { 14 | getAllFiles(filePath, fileList); 15 | } else if (file.endsWith(".mp4")) { 16 | fileList.push(filePath); 17 | } 18 | }); 19 | return fileList; 20 | }; 21 | 22 | export const ensureDownloadDirectory = () => { 23 | const downloadDir = path.resolve(__dirname, "../downloads"); 24 | if (!existsSync(downloadDir)) { 25 | mkdirSync(downloadDir, { recursive: true }); 26 | } 27 | return downloadDir; 28 | }; 29 | 30 | export const deleteDirectoryRecursive = async (dirPath: string) => { 31 | try { 32 | try { 33 | await fsPromises.access(dirPath, constants.F_OK); 34 | } catch (error) { 35 | console.log(`Directory not found: ${dirPath}`); 36 | return; 37 | } 38 | 39 | const files = await fsPromises.readdir(dirPath); 40 | for (const file of files) { 41 | const currentPath = path.join(dirPath, file); 42 | const stat = await fsPromises.lstat(currentPath); 43 | if (stat.isDirectory()) { 44 | await deleteDirectoryRecursive(currentPath); 45 | } else { 46 | await fsPromises.unlink(currentPath); 47 | } 48 | } 49 | 50 | // Now remove the empty directory 51 | await fsPromises.rmdir(dirPath); 52 | console.log(`Deleted directory: ${dirPath}`); 53 | } catch (error) { 54 | console.error(`Error deleting directory ${dirPath}:`, error); 55 | } 56 | }; 57 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Video Transcoding Pipeline 2 | 3 | This project is a backend-only video transcoding pipeline that handles video uploads, transcoding, and storage. It uses S3 for video storage, SQS for event-driven processing, and PostgreSQL for metadata and status tracking. The pipeline is designed to be scalable and efficient. 4 | 5 | ## Architecture Overview 6 | 7 | ![Architecture Diagram](assets/architecture.png) 8 | 9 | ### Workflow 10 | 11 | 1. **Upload Server:** 12 | - Accepts video uploads from clients. 13 | - Uploads the video to an S3 bucket (`temp-video-bucket`). 14 | 15 | 2. **S3 (temp-video-bucket):** 16 | - Stores the uploaded video. 17 | - Triggers an SQS event when a new video is uploaded. 18 | 19 | 3. **Worker Server:** 20 | - Listens to the SQS for new video upload events. 21 | - Adds the video metadata (bucket, key, status) to the database with status `Pending`. 22 | - Enqueues the video for transcoding in the task queue. 23 | 24 | 4. **Transcoder:** 25 | - Processes videos from the task queue. 26 | - Downloads the video from S3, transcodes it into multiple resolutions (480p, 720p, 1080p) using FFMPEG. 27 | - Uploads the output (`.mp4` files) to a new S3 bucket (`output-video-bucket`). 28 | - Updates the database with the transcoded file locations and sets the status to `Published`. 29 | - Deletes the original video from the `temp-video-bucket`. 30 | 31 | 5. **Database:** 32 | - Stores video metadata, including: 33 | - `id`: Unique video ID. 34 | - `bucket`: S3 bucket for the raw video. 35 | - `key`: S3 key for the raw video. 36 | - `status`: Current status of the video (`Pending`, `Processing`, `Published`, `Failed`). 37 | - `outputBucket`: S3 bucket for the transcoded files. 38 | - `outputKey`: S3 key for the transcoded files (e.g., `480p.mp4`, `720p.mp4`, `1080p.mp4`). 39 | - `createdAt`: Timestamp of video upload. 40 | - `updatedAt`: Timestamp of last status update. 41 | 42 | ## Technologies Used 43 | 44 | - **AWS S3**: For storing raw and transcoded video files. 45 | - **AWS SQS**: For event-driven processing of video uploads and transcoding tasks. 46 | - **PostgreSQL**: For storing video metadata and status. 47 | - **FFMPEG**: For transcoding video into multiple resolutions. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /services/worker-server/src/index.ts: -------------------------------------------------------------------------------- 1 | import env from "dotenv"; 2 | import prisma from "database"; 3 | import { connectProducer, publishMessage } from "rabbitmq"; 4 | import { 5 | SQSClient, 6 | ReceiveMessageCommand, 7 | DeleteMessageCommand, 8 | QueueAttributeName, 9 | } from "@aws-sdk/client-sqs"; 10 | 11 | env.config(); 12 | 13 | const sqsClient = new SQSClient({ 14 | region: "ap-south-1", 15 | credentials: { 16 | accessKeyId: process.env.AWS_ACCESS_KEY_ID!, 17 | secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!, 18 | }, 19 | }); 20 | 21 | // Initialize RabbitMQ connection once 22 | let producerConnected = false; 23 | const initializeRabbitMQ = async (): Promise => { 24 | if (!producerConnected) { 25 | try { 26 | await connectProducer(); 27 | producerConnected = true; 28 | console.log("Connected to RabbitMQ"); 29 | } catch (error) { 30 | console.error("Error connecting to RabbitMQ:", error); 31 | throw new Error( 32 | "Failed to connect to RabbitMQ, stopping further processing" 33 | ); 34 | } 35 | } 36 | }; 37 | 38 | const receiveMessages = async (): Promise => { 39 | // params for receiving messages 40 | const params = { 41 | QueueUrl: process.env.SQS_QUEUE_URL!, 42 | MaxNumberOfMessages: 1, 43 | WaitTimeSeconds: 20, 44 | AttributeNames: [QueueAttributeName.All], 45 | MessageAttributeNames: ["All"], 46 | }; 47 | 48 | try { 49 | const command = new ReceiveMessageCommand(params); 50 | const data = await sqsClient.send(command); 51 | 52 | if (data.Messages && data.Messages.length > 0) { 53 | if (data.Messages[0].Body) { 54 | const message = JSON.parse(data.Messages[0].Body); 55 | 56 | // Extract bucket and key from the correct path 57 | const record = message.Records[0]; 58 | const bucket = record.s3.bucket.name; 59 | const key = record.s3.object.key; 60 | 61 | // Insert video key and bucket into the database 62 | try { 63 | await prisma.video.create({ 64 | data: { 65 | key, 66 | bucket, 67 | status: "Pending", 68 | }, 69 | }); 70 | console.log("Video inserted into database"); 71 | } catch (error) { 72 | console.error("Error inserting video into database:", error); 73 | } 74 | await initializeRabbitMQ(); 75 | 76 | try { 77 | await publishMessage(JSON.stringify({ key, bucket })); 78 | console.log("Message sent to RabbitMQ"); 79 | } catch (rabbitmqError) { 80 | console.error("Error sending message to RabbitMQ:", rabbitmqError); 81 | return; 82 | } 83 | } else { 84 | throw new Error("Message body is undefined"); 85 | } 86 | 87 | const deleteParams = { 88 | QueueUrl: process.env.SQS_QUEUE_URL!, 89 | ReceiptHandle: data.Messages[0].ReceiptHandle!, 90 | }; 91 | 92 | const deleteCommand = new DeleteMessageCommand(deleteParams); 93 | await sqsClient.send(deleteCommand); 94 | console.log("Message deleted from queue"); 95 | } else { 96 | console.log("No messages to process"); 97 | } 98 | } catch (err) { 99 | console.error("Error receiving message:", err); 100 | } 101 | }; 102 | 103 | // Continuously poll for messages 104 | const startPolling = () => { 105 | setInterval(() => { 106 | receiveMessages(); 107 | }, 10000); 108 | }; 109 | 110 | startPolling(); 111 | -------------------------------------------------------------------------------- /shared/database/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@prisma/client': 12 | specifier: 6.2.1 13 | version: 6.2.1(prisma@6.2.1) 14 | devDependencies: 15 | '@types/node': 16 | specifier: ^22.10.7 17 | version: 22.10.7 18 | prisma: 19 | specifier: ^6.2.1 20 | version: 6.2.1 21 | 22 | packages: 23 | 24 | '@prisma/client@6.2.1': 25 | resolution: {integrity: sha512-msKY2iRLISN8t5X0Tj7hU0UWet1u0KuxSPHWuf3IRkB4J95mCvGpyQBfQ6ufcmvKNOMQSq90O2iUmJEN2e5fiA==} 26 | engines: {node: '>=18.18'} 27 | peerDependencies: 28 | prisma: '*' 29 | peerDependenciesMeta: 30 | prisma: 31 | optional: true 32 | 33 | '@prisma/debug@6.2.1': 34 | resolution: {integrity: sha512-0KItvt39CmQxWkEw6oW+RQMD6RZ43SJWgEUnzxN8VC9ixMysa7MzZCZf22LCK5DSooiLNf8vM3LHZm/I/Ni7bQ==} 35 | 36 | '@prisma/engines-version@6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69': 37 | resolution: {integrity: sha512-7tw1qs/9GWSX6qbZs4He09TOTg1ff3gYsB3ubaVNN0Pp1zLm9NC5C5MZShtkz7TyQjx7blhpknB7HwEhlG+PrQ==} 38 | 39 | '@prisma/engines@6.2.1': 40 | resolution: {integrity: sha512-lTBNLJBCxVT9iP5I7Mn6GlwqAxTpS5qMERrhebkUhtXpGVkBNd/jHnNJBZQW4kGDCKaQg/r2vlJYkzOHnAb7ZQ==} 41 | 42 | '@prisma/fetch-engine@6.2.1': 43 | resolution: {integrity: sha512-OO7O9d6Mrx2F9i+Gu1LW+DGXXyUFkP7OE5aj9iBfA/2jjDXEJjqa9X0ZmM9NZNo8Uo7ql6zKm6yjDcbAcRrw1A==} 44 | 45 | '@prisma/get-platform@6.2.1': 46 | resolution: {integrity: sha512-zp53yvroPl5m5/gXYLz7tGCNG33bhG+JYCm74ohxOq1pPnrL47VQYFfF3RbTZ7TzGWCrR3EtoiYMywUBw7UK6Q==} 47 | 48 | '@types/node@22.10.7': 49 | resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==} 50 | 51 | fsevents@2.3.3: 52 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 53 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 54 | os: [darwin] 55 | 56 | prisma@6.2.1: 57 | resolution: {integrity: sha512-hhyM0H13pQleQ+br4CkzGizS5I0oInoeTw3JfLw1BRZduBSQxPILlJLwi+46wZzj9Je7ndyQEMGw/n5cN2fknA==} 58 | engines: {node: '>=18.18'} 59 | hasBin: true 60 | 61 | undici-types@6.20.0: 62 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 63 | 64 | snapshots: 65 | 66 | '@prisma/client@6.2.1(prisma@6.2.1)': 67 | optionalDependencies: 68 | prisma: 6.2.1 69 | 70 | '@prisma/debug@6.2.1': {} 71 | 72 | '@prisma/engines-version@6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69': {} 73 | 74 | '@prisma/engines@6.2.1': 75 | dependencies: 76 | '@prisma/debug': 6.2.1 77 | '@prisma/engines-version': 6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69 78 | '@prisma/fetch-engine': 6.2.1 79 | '@prisma/get-platform': 6.2.1 80 | 81 | '@prisma/fetch-engine@6.2.1': 82 | dependencies: 83 | '@prisma/debug': 6.2.1 84 | '@prisma/engines-version': 6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69 85 | '@prisma/get-platform': 6.2.1 86 | 87 | '@prisma/get-platform@6.2.1': 88 | dependencies: 89 | '@prisma/debug': 6.2.1 90 | 91 | '@types/node@22.10.7': 92 | dependencies: 93 | undici-types: 6.20.0 94 | 95 | fsevents@2.3.3: 96 | optional: true 97 | 98 | prisma@6.2.1: 99 | dependencies: 100 | '@prisma/engines': 6.2.1 101 | optionalDependencies: 102 | fsevents: 2.3.3 103 | 104 | undici-types@6.20.0: {} 105 | -------------------------------------------------------------------------------- /services/transcoder/src/utils/processVideo.ts: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | import path from "path"; 3 | import prisma from "database"; 4 | import ffmpeg from "fluent-ffmpeg"; 5 | import { v4 as uuidv4 } from "uuid"; 6 | 7 | export const processVideoForHLS = async ( 8 | inputFile: string, 9 | outputDir: string, 10 | key: string, 11 | bucket: string 12 | ) => { 13 | return new Promise((resolve, reject) => { 14 | // Generate a unique video ID based on the original key and current timestamp 15 | const videoId = `${path.basename( 16 | key, 17 | path.extname(key) 18 | )}_${Date.now()}_${uuidv4()}`; 19 | const videoOutputDir = path.join(outputDir, videoId); 20 | 21 | if (!fs.existsSync(videoOutputDir)) { 22 | fs.mkdirSync(videoOutputDir, { recursive: true }); 23 | } 24 | 25 | const resolutions = [ 26 | { label: "480p", size: "854x480" }, 27 | { label: "720p", size: "1280x720" }, 28 | { label: "1080p", size: "1920x1080" }, 29 | ]; 30 | 31 | const ffmpegInstance = ffmpeg(inputFile); 32 | 33 | resolutions.forEach(({ label, size }) => { 34 | const resolutionDir = path.join(videoOutputDir, label); 35 | 36 | if (!fs.existsSync(resolutionDir)) { 37 | fs.mkdirSync(resolutionDir, { recursive: true }); 38 | } 39 | 40 | // HLS Output 41 | ffmpegInstance 42 | .output(path.join(resolutionDir, `${label}.m3u8`)) 43 | .videoCodec("libx264") 44 | .size(size) 45 | .outputOptions( 46 | "-preset", 47 | "veryfast", 48 | "-g", 49 | "48", 50 | "-sc_threshold", 51 | "0", 52 | "-hls_time", 53 | "6", 54 | "-hls_playlist_type", 55 | "vod" 56 | ); 57 | 58 | // MP4 Output 59 | ffmpegInstance 60 | .output(path.join(videoOutputDir, `${label}.mp4`)) 61 | .videoCodec("libx264") 62 | .size(size) 63 | .outputOptions("-preset", "veryfast", "-crf", "23"); 64 | }); 65 | 66 | ffmpegInstance 67 | .on("start", async (commandLine) => { 68 | console.log("FFmpeg process started with command:", commandLine); 69 | 70 | try { 71 | await prisma.video.update({ 72 | where: { 73 | bucket_key: { 74 | bucket: bucket, 75 | key: key, 76 | }, 77 | }, 78 | data: { 79 | status: "Processing", 80 | }, 81 | }); 82 | console.log(`Video status updated to 'Processing' for ${key}`); 83 | } catch (err) { 84 | console.error("Error updating video status to 'Processing':", err); 85 | } 86 | }) 87 | .on("progress", (progress) => { 88 | console.log(`Processing: ${progress.percent?.toFixed(2)}%`); 89 | }) 90 | .on("error", async (err: Error) => { 91 | try { 92 | await prisma.video.update({ 93 | where: { 94 | bucket_key: { 95 | bucket: bucket, 96 | key: key, 97 | }, 98 | }, 99 | data: { 100 | status: "Failed", 101 | updatedAt: new Date(), 102 | }, 103 | }); 104 | } catch (error) { 105 | console.error("Error during video processing database update", error); 106 | } 107 | console.error("Error during video processing:", err.message); 108 | reject(err); 109 | }) 110 | .on("end", async () => { 111 | console.log("Video processing complete."); 112 | try { 113 | await prisma.video.update({ 114 | where: { 115 | bucket_key: { 116 | bucket: bucket, 117 | key: key, 118 | }, 119 | }, 120 | data: { 121 | status: "Published", 122 | updatedAt: new Date(), 123 | }, 124 | }); 125 | } catch (error) { 126 | console.error("Error updating video status to 'Published':", error); 127 | } 128 | resolve(videoId); 129 | }) 130 | .run(); 131 | }); 132 | }; 133 | -------------------------------------------------------------------------------- /services/transcoder/src/index.ts: -------------------------------------------------------------------------------- 1 | import fs from "fs"; 2 | import path from "path"; 3 | import env from "dotenv"; 4 | import prisma from "database"; 5 | import { s3 } from "./utils/s3"; 6 | import { promisify } from "util"; 7 | import { pipeline } from "stream"; 8 | import { createWriteStream } from "fs"; 9 | import { processVideoForHLS } from "./utils/processVideo"; 10 | import { connectConsumer, consumeMessages } from "rabbitmq"; 11 | import { 12 | GetObjectCommand, 13 | PutObjectCommand, 14 | DeleteObjectCommand, 15 | } from "@aws-sdk/client-s3"; 16 | import { 17 | getAllFiles, 18 | ensureDownloadDirectory, 19 | deleteDirectoryRecursive, 20 | } from "./utils/utils"; 21 | 22 | env.config(); 23 | 24 | const OUTPUT_BUCKET = process.env.OUTPUT_BUCKET!; 25 | 26 | const pipelineAsync = promisify(pipeline); 27 | 28 | const main = async () => { 29 | try { 30 | await connectConsumer(); 31 | console.log("Connected to RabbitMQ"); 32 | 33 | await consumeMessages(async (messageContent, rawMessage) => { 34 | let filePath; 35 | try { 36 | const { bucket, key } = JSON.parse(messageContent); 37 | 38 | const downloadDir = ensureDownloadDirectory(); 39 | 40 | const safeFileName = path.basename(key).replace(/[^a-zA-Z0-9.-]/g, "_"); 41 | filePath = path.join(downloadDir, safeFileName); 42 | 43 | // Download from S3 44 | const command = new GetObjectCommand({ Bucket: bucket, Key: key }); 45 | const { Body } = await s3.send(command); 46 | 47 | if (!Body) { 48 | throw new Error("No body found in S3 object"); 49 | } 50 | 51 | // Create write stream 52 | const writeStream = createWriteStream(filePath); 53 | 54 | console.log("Downloading video file..."); 55 | const bodyStream = Body as unknown as NodeJS.ReadableStream; 56 | await pipelineAsync(bodyStream, writeStream); 57 | 58 | console.log(`Video downloaded successfully to ${filePath}`); 59 | 60 | const outputDir = path.join(__dirname, "output"); 61 | 62 | try { 63 | const videoId = await processVideoForHLS( 64 | filePath, 65 | outputDir, 66 | key, 67 | bucket 68 | ); 69 | console.log("Video processing complete"); 70 | 71 | const videoOutputDir = path.join(outputDir, videoId); 72 | 73 | // Upload the entire videoId folder to S3 74 | const mp4Files = getAllFiles(videoOutputDir); 75 | console.log("MP4 files to upload:", mp4Files); 76 | 77 | for (const mp4FilePath of mp4Files) { 78 | const resolution = path.basename(mp4FilePath, ".mp4"); 79 | const uploadKey = path.join(videoId, `${resolution}.mp4`); 80 | 81 | // Read file content 82 | const fileContent = await fs.promises.readFile(mp4FilePath); 83 | 84 | await s3.send( 85 | new PutObjectCommand({ 86 | Bucket: OUTPUT_BUCKET, 87 | Key: uploadKey, 88 | Body: fileContent, 89 | ContentType: "video/mp4", 90 | }) 91 | ); 92 | 93 | console.log( 94 | `Uploaded ${resolution}.mp4 to ${OUTPUT_BUCKET}/${uploadKey}` 95 | ); 96 | 97 | await prisma.video.update({ 98 | where: { 99 | bucket_key: { bucket, key }, 100 | }, 101 | data: { 102 | outputBucket: OUTPUT_BUCKET, 103 | outputKey: videoId, 104 | }, 105 | }); 106 | } 107 | 108 | // Delete the processed video from S3 109 | const deleteCommand = new DeleteObjectCommand({ 110 | Bucket: bucket, 111 | Key: key, 112 | }); 113 | 114 | await s3.send(deleteCommand); 115 | console.log("Deleted video file from S3"); 116 | 117 | // Delete the output directory 118 | try { 119 | deleteDirectoryRecursive(videoOutputDir); 120 | } catch (error) { 121 | console.error("Error deleting video output directory:", error); 122 | } 123 | } catch (error) { 124 | console.error("Error during video processing:", error); 125 | } finally { 126 | if (fs.existsSync(filePath)) { 127 | fs.unlinkSync(filePath); 128 | console.log("Deleted video file from downloads folder"); 129 | } 130 | } 131 | } catch (error) { 132 | console.error("Error processing message:", error); 133 | throw error; 134 | } 135 | }); 136 | } catch (error) { 137 | console.error("Error in main:", error); 138 | } 139 | }; 140 | 141 | main().catch((err) => { 142 | console.error("Unhandled error in main:", err); 143 | }); 144 | -------------------------------------------------------------------------------- /services/upload-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "commonjs" /* Specify what module code is generated. */, 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | "rootDirs": [ 34 | "./src" 35 | ] /* Allow multiple folders to be treated as one when resolving modules. */, 36 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 37 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 38 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 39 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 40 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 41 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 42 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 43 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 44 | // "resolveJsonModule": true, /* Enable importing .json files. */ 45 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 46 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 47 | 48 | /* JavaScript Support */ 49 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 50 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 51 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 52 | 53 | /* Emit */ 54 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 55 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 56 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 57 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 58 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 59 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 60 | "outDir": "./dist" /* Specify an output folder for all emitted files. */, 61 | // "removeComments": true, /* Disable emitting comments. */ 62 | // "noEmit": true, /* Disable emitting files from a compilation. */ 63 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 64 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 65 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 66 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 67 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 68 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 69 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 70 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 71 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 72 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 73 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 74 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 75 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 76 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 77 | 78 | /* Interop Constraints */ 79 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 80 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 81 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 82 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, 83 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 84 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 85 | 86 | /* Type Checking */ 87 | "strict": true /* Enable all strict type-checking options. */, 88 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 89 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 90 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 91 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 92 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 93 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 94 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 95 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 96 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 97 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 98 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 99 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 100 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 101 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 102 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 103 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 104 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 105 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 106 | 107 | /* Completeness */ 108 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 109 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /services/worker-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "commonjs" /* Specify what module code is generated. */, 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | "baseUrl": ".", /* Specify the base directory to resolve non-relative module names. */ 32 | "paths": { 33 | "database": ["../database/src"] 34 | } /* Specify a set of entries that re-map imports to additional lookup locations. */, 35 | "rootDirs": [ 36 | "./src" 37 | ] /* Allow multiple folders to be treated as one when resolving modules. */, 38 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 39 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 40 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 41 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 42 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 43 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 44 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 45 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 46 | // "resolveJsonModule": true, /* Enable importing .json files. */ 47 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 48 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 49 | 50 | /* JavaScript Support */ 51 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 52 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 53 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 54 | 55 | /* Emit */ 56 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 57 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 58 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 59 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 60 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 61 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 62 | "outDir": "./dist" /* Specify an output folder for all emitted files. */, 63 | // "removeComments": true, /* Disable emitting comments. */ 64 | // "noEmit": true, /* Disable emitting files from a compilation. */ 65 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 66 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 67 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 68 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 69 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 70 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 71 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 72 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 73 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 74 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 75 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 76 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 77 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 78 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 79 | 80 | /* Interop Constraints */ 81 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 82 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 83 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 84 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, 85 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 86 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 87 | 88 | /* Type Checking */ 89 | "strict": true /* Enable all strict type-checking options. */, 90 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 91 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 92 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 93 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 94 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 95 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 96 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 97 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 98 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 99 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 100 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 101 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 102 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 103 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 104 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 105 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 106 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 107 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 108 | 109 | /* Completeness */ 110 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 111 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /services/transcoder/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "commonjs" /* Specify what module code is generated. */, 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | "rootDirs": [ 34 | "./src" 35 | ] /* Allow multiple folders to be treated as one when resolving modules. */, 36 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 37 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 38 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 39 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 40 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 41 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 42 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 43 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 44 | // "resolveJsonModule": true, /* Enable importing .json files. */ 45 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 46 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 47 | 48 | /* JavaScript Support */ 49 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 50 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 51 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 52 | 53 | /* Emit */ 54 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 55 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 56 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 57 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 58 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 59 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 60 | "outDir": "./dist" /* Specify an output folder for all emitted files. */, 61 | // "removeComments": true, /* Disable emitting comments. */ 62 | // "noEmit": true, /* Disable emitting files from a compilation. */ 63 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 64 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 65 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 66 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 67 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 68 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 69 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 70 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 71 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 72 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 73 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 74 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 75 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 76 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 77 | 78 | /* Interop Constraints */ 79 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 80 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 81 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 82 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, 83 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 84 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 85 | 86 | /* Type Checking */ 87 | "strict": true /* Enable all strict type-checking options. */, 88 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 89 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 90 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 91 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 92 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 93 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 94 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 95 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 96 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 97 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 98 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 99 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 100 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 101 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 102 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 103 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 104 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 105 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 106 | 107 | /* Completeness */ 108 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 109 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /services/worker-server/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@aws-sdk/client-sqs': 12 | specifier: ^3.731.1 13 | version: 3.731.1 14 | amqplib: 15 | specifier: ^0.10.5 16 | version: 0.10.5 17 | dotenv: 18 | specifier: ^16.4.7 19 | version: 16.4.7 20 | devDependencies: 21 | '@types/amqplib': 22 | specifier: ^0.10.6 23 | version: 0.10.6 24 | '@types/node': 25 | specifier: ^22.10.7 26 | version: 22.10.7 27 | 28 | packages: 29 | 30 | '@acuminous/bitsyntax@0.1.2': 31 | resolution: {integrity: sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==} 32 | engines: {node: '>=0.8'} 33 | 34 | '@aws-crypto/sha256-browser@5.2.0': 35 | resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} 36 | 37 | '@aws-crypto/sha256-js@5.2.0': 38 | resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} 39 | engines: {node: '>=16.0.0'} 40 | 41 | '@aws-crypto/supports-web-crypto@5.2.0': 42 | resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} 43 | 44 | '@aws-crypto/util@5.2.0': 45 | resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} 46 | 47 | '@aws-sdk/client-sqs@3.731.1': 48 | resolution: {integrity: sha512-agdP8z51mjPLYaBX4KmK5mbkY6xQ3jy7A79q3a3YIF7NBawwrIszBVMLWQFATELZhPBxRpykBolGK8MQipduIw==} 49 | engines: {node: '>=18.0.0'} 50 | 51 | '@aws-sdk/client-sso@3.731.0': 52 | resolution: {integrity: sha512-O4C/UYGgqMsBg21MMApFdgyh8BX568hQhbdoNFmRVTBoSnCZ3w+H4a1wBPX4Gyl0NX+ab6Xxo9rId8HiyPXJ0A==} 53 | engines: {node: '>=18.0.0'} 54 | 55 | '@aws-sdk/core@3.731.0': 56 | resolution: {integrity: sha512-ithBN1VWASkvAIlozJmenqDvNnFddr/SZXAs58+jCnBHgy3tXLHABZGVNCjetZkHRqNdXEO1kirnoxaFeXMeDA==} 57 | engines: {node: '>=18.0.0'} 58 | 59 | '@aws-sdk/credential-provider-env@3.731.0': 60 | resolution: {integrity: sha512-h0WWZg4QMLgFVyIvQrC43zpVqsUWg1mPM1clpogP43B8+wEhDEQ4qWRzvFs3dQ4cqx/FLyDUZZF4cqgd94z7kw==} 61 | engines: {node: '>=18.0.0'} 62 | 63 | '@aws-sdk/credential-provider-http@3.731.0': 64 | resolution: {integrity: sha512-iRtrjtcYaWgbvtu2cvDhIsPWXZGvhy1Hgks4682MEBNTc9AUwlfvDrYz2EEnTtJJyrbOdEHVrYrzqD8qPyVLCg==} 65 | engines: {node: '>=18.0.0'} 66 | 67 | '@aws-sdk/credential-provider-ini@3.731.1': 68 | resolution: {integrity: sha512-0M0ejuqW8iHNcTH2ZXSY9m+I7Y06qVkj6k3vfQU9XaB//mTUCxxfGfqWAtgfr7Yi73egABTcPc0jyPdcvSW4Kw==} 69 | engines: {node: '>=18.0.0'} 70 | 71 | '@aws-sdk/credential-provider-node@3.731.1': 72 | resolution: {integrity: sha512-5c0ZiagMTPmWilXNffeXJCLoCEz97jilHr3QJWwf2GaTay4tzN+Ld71rpdfEenzUR7fuxEWFfVlwQbFOzFNYHg==} 73 | engines: {node: '>=18.0.0'} 74 | 75 | '@aws-sdk/credential-provider-process@3.731.0': 76 | resolution: {integrity: sha512-6yNMY6q3xHLbs2f2+C6GhvMrjTgtFBiPJJqKaPLsTIhlTRvh4sK8pGm3ITcma0jOxtPDIuoPfBAV8N8XVMBlZg==} 77 | engines: {node: '>=18.0.0'} 78 | 79 | '@aws-sdk/credential-provider-sso@3.731.1': 80 | resolution: {integrity: sha512-p1tp+rMUf5YNQLr8rVRmDgNtKGYLL0KCdq3K2hwwvFnx9MjReF1sA4lfm3xWsxBQM+j3QN9AvMQqBzDJ+NOSdw==} 81 | engines: {node: '>=18.0.0'} 82 | 83 | '@aws-sdk/credential-provider-web-identity@3.731.1': 84 | resolution: {integrity: sha512-+ynAvEGWDR5ZJFxgpwwzhvlQ3WQ7BleWXU6JwpIw3yFrD4eZEn85b8DZC1aEz7C9kb1HSV6B3gpqHqlyS6wj8g==} 85 | engines: {node: '>=18.0.0'} 86 | 87 | '@aws-sdk/middleware-host-header@3.731.0': 88 | resolution: {integrity: sha512-ndAJsm5uWPPJRZowLKpB1zuL17qWlWVtCJP4I/ynBkq1PU1DijDXBul2UZaG6Mpvsgms1NXo/h9noHuK7T3v8w==} 89 | engines: {node: '>=18.0.0'} 90 | 91 | '@aws-sdk/middleware-logger@3.731.0': 92 | resolution: {integrity: sha512-IIZrOdjbY2vKzPJPrwE7FoFQCIPEL6UqURi8LEaiVyCag4p2fvaTN5pgKuQtGC2+iYd/HHcGT4qn2bAqF5Jmmw==} 93 | engines: {node: '>=18.0.0'} 94 | 95 | '@aws-sdk/middleware-recursion-detection@3.731.0': 96 | resolution: {integrity: sha512-y6FLASB1iKWuR5tUipMyo77bt0lEl3OnCrrd2xw/H24avq1HhJjjPR0HHhJE6QKJzF/FYXeV88tcyPSMe32VDw==} 97 | engines: {node: '>=18.0.0'} 98 | 99 | '@aws-sdk/middleware-sdk-sqs@3.731.0': 100 | resolution: {integrity: sha512-XoApEmYx8fQaSOR9fdWzcw82lsfYs345IIeBu09/UFckdmNqYfdQj5Jcv8pgwr/+2XWmueqpBOdXnOALgCLNgA==} 101 | engines: {node: '>=18.0.0'} 102 | 103 | '@aws-sdk/middleware-user-agent@3.731.0': 104 | resolution: {integrity: sha512-Ngr2Gz0aec/uduoKaO3srN52SYkEHndYtFzkK/gDUyQwQzi4ha2eIisxPiuHEX6RvXT31V9ouqn/YtVkt0R76A==} 105 | engines: {node: '>=18.0.0'} 106 | 107 | '@aws-sdk/nested-clients@3.731.1': 108 | resolution: {integrity: sha512-/L8iVrulnXZl+kgmTn+oxRxNnhcSIbf+r12C06vGUq60w0YMidLvxJZN7vt8H9SnCAGCHqud2MS7ExCEvhc0gA==} 109 | engines: {node: '>=18.0.0'} 110 | 111 | '@aws-sdk/region-config-resolver@3.731.0': 112 | resolution: {integrity: sha512-XlDpRNkDVHF59f07JmkuAidEv//m3hT6/JL85h0l3+zrpaRWhf8n8lVUyAPNq35ZujK8AcorYM+93u7hdWsliQ==} 113 | engines: {node: '>=18.0.0'} 114 | 115 | '@aws-sdk/token-providers@3.731.1': 116 | resolution: {integrity: sha512-t34GOPwBZsX7zGHjiTXmMHGY3kHM7fLiQ60Jqk0On9P0ASHTDE5U75RgCXboE3u+qEv9wyKyaqMNyMWj9qQlFg==} 117 | engines: {node: '>=18.0.0'} 118 | 119 | '@aws-sdk/types@3.731.0': 120 | resolution: {integrity: sha512-NrdkJg6oOUbXR2r9WvHP408CLyvST8cJfp1/jP9pemtjvjPoh6NukbCtiSFdOOb1eryP02CnqQWItfJC1p2Y/Q==} 121 | engines: {node: '>=18.0.0'} 122 | 123 | '@aws-sdk/util-endpoints@3.731.0': 124 | resolution: {integrity: sha512-riztxTAfncFS9yQWcBJffGgOgLoKSa63ph+rxWJxKl6BHAmWEvHICj1qDcVmnWfIcvJ5cClclY75l9qKaUH7rQ==} 125 | engines: {node: '>=18.0.0'} 126 | 127 | '@aws-sdk/util-locate-window@3.723.0': 128 | resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} 129 | engines: {node: '>=18.0.0'} 130 | 131 | '@aws-sdk/util-user-agent-browser@3.731.0': 132 | resolution: {integrity: sha512-EnYXxTkCNCjTTBjW/pelRPv4Thsi9jepoB6qQjPMA9/ixrZ71BhhQecz9kgqzZLR9BPCwb6hgJ/Yd702jqJ4aQ==} 133 | 134 | '@aws-sdk/util-user-agent-node@3.731.0': 135 | resolution: {integrity: sha512-Rze78Ym5Bx7aWMvmZE2iL3JPo2INNCC5N9rLVx98Gg1G0ZaxclVRUvJrh1AojNlOFxU+otkxAe7FA3Foy2iLLQ==} 136 | engines: {node: '>=18.0.0'} 137 | peerDependencies: 138 | aws-crt: '>=1.0.0' 139 | peerDependenciesMeta: 140 | aws-crt: 141 | optional: true 142 | 143 | '@smithy/abort-controller@4.0.1': 144 | resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} 145 | engines: {node: '>=18.0.0'} 146 | 147 | '@smithy/config-resolver@4.0.1': 148 | resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} 149 | engines: {node: '>=18.0.0'} 150 | 151 | '@smithy/core@3.1.1': 152 | resolution: {integrity: sha512-hhUZlBWYuh9t6ycAcN90XOyG76C1AzwxZZgaCVPMYpWqqk9uMFo7HGG5Zu2cEhCJn7DdOi5krBmlibWWWPgdsw==} 153 | engines: {node: '>=18.0.0'} 154 | 155 | '@smithy/credential-provider-imds@4.0.1': 156 | resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} 157 | engines: {node: '>=18.0.0'} 158 | 159 | '@smithy/fetch-http-handler@5.0.1': 160 | resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} 161 | engines: {node: '>=18.0.0'} 162 | 163 | '@smithy/hash-node@4.0.1': 164 | resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} 165 | engines: {node: '>=18.0.0'} 166 | 167 | '@smithy/invalid-dependency@4.0.1': 168 | resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} 169 | engines: {node: '>=18.0.0'} 170 | 171 | '@smithy/is-array-buffer@2.2.0': 172 | resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} 173 | engines: {node: '>=14.0.0'} 174 | 175 | '@smithy/is-array-buffer@4.0.0': 176 | resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} 177 | engines: {node: '>=18.0.0'} 178 | 179 | '@smithy/md5-js@4.0.1': 180 | resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} 181 | engines: {node: '>=18.0.0'} 182 | 183 | '@smithy/middleware-content-length@4.0.1': 184 | resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} 185 | engines: {node: '>=18.0.0'} 186 | 187 | '@smithy/middleware-endpoint@4.0.2': 188 | resolution: {integrity: sha512-Z9m67CXizGpj8CF/AW/7uHqYNh1VXXOn9Ap54fenWsCa0HnT4cJuE61zqG3cBkTZJDCy0wHJphilI41co/PE5g==} 189 | engines: {node: '>=18.0.0'} 190 | 191 | '@smithy/middleware-retry@4.0.3': 192 | resolution: {integrity: sha512-TiKwwQTwUDeDtwWW8UWURTqu7s6F3wN2pmziLU215u7bqpVT9Mk2oEvURjpRLA+5XeQhM68R5BpAGzVtomsqgA==} 193 | engines: {node: '>=18.0.0'} 194 | 195 | '@smithy/middleware-serde@4.0.1': 196 | resolution: {integrity: sha512-Fh0E2SOF+S+P1+CsgKyiBInAt3o2b6Qk7YOp2W0Qx2XnfTdfMuSDKUEcnrtpxCzgKJnqXeLUZYqtThaP0VGqtA==} 197 | engines: {node: '>=18.0.0'} 198 | 199 | '@smithy/middleware-stack@4.0.1': 200 | resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} 201 | engines: {node: '>=18.0.0'} 202 | 203 | '@smithy/node-config-provider@4.0.1': 204 | resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} 205 | engines: {node: '>=18.0.0'} 206 | 207 | '@smithy/node-http-handler@4.0.2': 208 | resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==} 209 | engines: {node: '>=18.0.0'} 210 | 211 | '@smithy/property-provider@4.0.1': 212 | resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} 213 | engines: {node: '>=18.0.0'} 214 | 215 | '@smithy/protocol-http@5.0.1': 216 | resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} 217 | engines: {node: '>=18.0.0'} 218 | 219 | '@smithy/querystring-builder@4.0.1': 220 | resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} 221 | engines: {node: '>=18.0.0'} 222 | 223 | '@smithy/querystring-parser@4.0.1': 224 | resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} 225 | engines: {node: '>=18.0.0'} 226 | 227 | '@smithy/service-error-classification@4.0.1': 228 | resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} 229 | engines: {node: '>=18.0.0'} 230 | 231 | '@smithy/shared-ini-file-loader@4.0.1': 232 | resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} 233 | engines: {node: '>=18.0.0'} 234 | 235 | '@smithy/signature-v4@5.0.1': 236 | resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} 237 | engines: {node: '>=18.0.0'} 238 | 239 | '@smithy/smithy-client@4.1.2': 240 | resolution: {integrity: sha512-0yApeHWBqocelHGK22UivZyShNxFbDNrgREBllGh5Ws0D0rg/yId/CJfeoKKpjbfY2ju8j6WgDUGZHYQmINZ5w==} 241 | engines: {node: '>=18.0.0'} 242 | 243 | '@smithy/types@4.1.0': 244 | resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} 245 | engines: {node: '>=18.0.0'} 246 | 247 | '@smithy/url-parser@4.0.1': 248 | resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} 249 | engines: {node: '>=18.0.0'} 250 | 251 | '@smithy/util-base64@4.0.0': 252 | resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} 253 | engines: {node: '>=18.0.0'} 254 | 255 | '@smithy/util-body-length-browser@4.0.0': 256 | resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} 257 | engines: {node: '>=18.0.0'} 258 | 259 | '@smithy/util-body-length-node@4.0.0': 260 | resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} 261 | engines: {node: '>=18.0.0'} 262 | 263 | '@smithy/util-buffer-from@2.2.0': 264 | resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} 265 | engines: {node: '>=14.0.0'} 266 | 267 | '@smithy/util-buffer-from@4.0.0': 268 | resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} 269 | engines: {node: '>=18.0.0'} 270 | 271 | '@smithy/util-config-provider@4.0.0': 272 | resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} 273 | engines: {node: '>=18.0.0'} 274 | 275 | '@smithy/util-defaults-mode-browser@4.0.3': 276 | resolution: {integrity: sha512-7c5SF1fVK0EOs+2EOf72/qF199zwJflU1d02AevwKbAUPUZyE9RUZiyJxeUmhVxfKDWdUKaaVojNiaDQgnHL9g==} 277 | engines: {node: '>=18.0.0'} 278 | 279 | '@smithy/util-defaults-mode-node@4.0.3': 280 | resolution: {integrity: sha512-CVnD42qYD3JKgDlImZ9+On+MqJHzq9uJgPbMdeBE8c2x8VJ2kf2R3XO/yVFx+30ts5lD/GlL0eFIShY3x9ROgQ==} 281 | engines: {node: '>=18.0.0'} 282 | 283 | '@smithy/util-endpoints@3.0.1': 284 | resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} 285 | engines: {node: '>=18.0.0'} 286 | 287 | '@smithy/util-hex-encoding@4.0.0': 288 | resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} 289 | engines: {node: '>=18.0.0'} 290 | 291 | '@smithy/util-middleware@4.0.1': 292 | resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} 293 | engines: {node: '>=18.0.0'} 294 | 295 | '@smithy/util-retry@4.0.1': 296 | resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} 297 | engines: {node: '>=18.0.0'} 298 | 299 | '@smithy/util-stream@4.0.2': 300 | resolution: {integrity: sha512-0eZ4G5fRzIoewtHtwaYyl8g2C+osYOT4KClXgfdNEDAgkbe2TYPqcnw4GAWabqkZCax2ihRGPe9LZnsPdIUIHA==} 301 | engines: {node: '>=18.0.0'} 302 | 303 | '@smithy/util-uri-escape@4.0.0': 304 | resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} 305 | engines: {node: '>=18.0.0'} 306 | 307 | '@smithy/util-utf8@2.3.0': 308 | resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} 309 | engines: {node: '>=14.0.0'} 310 | 311 | '@smithy/util-utf8@4.0.0': 312 | resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} 313 | engines: {node: '>=18.0.0'} 314 | 315 | '@types/amqplib@0.10.6': 316 | resolution: {integrity: sha512-vQLVypBS1JQcfTXhl1Td1EEeLdtb+vuulOb4TrzYiLyP2aYLMAEzB3pNmEA0jBm0xIXu946Y7Xwl19Eidl32SQ==} 317 | 318 | '@types/node@22.10.7': 319 | resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==} 320 | 321 | amqplib@0.10.5: 322 | resolution: {integrity: sha512-Dx5zmy0Ur+Q7LPPdhz+jx5IzmJBoHd15tOeAfQ8SuvEtyPJ20hBemhOBA4b1WeORCRa0ENM/kHCzmem1w/zHvQ==} 323 | engines: {node: '>=10'} 324 | 325 | bowser@2.11.0: 326 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 327 | 328 | buffer-more-ints@1.0.0: 329 | resolution: {integrity: sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==} 330 | 331 | debug@4.4.0: 332 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 333 | engines: {node: '>=6.0'} 334 | peerDependencies: 335 | supports-color: '*' 336 | peerDependenciesMeta: 337 | supports-color: 338 | optional: true 339 | 340 | dotenv@16.4.7: 341 | resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} 342 | engines: {node: '>=12'} 343 | 344 | fast-xml-parser@4.4.1: 345 | resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} 346 | hasBin: true 347 | 348 | ms@2.1.3: 349 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 350 | 351 | querystringify@2.2.0: 352 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 353 | 354 | requires-port@1.0.0: 355 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 356 | 357 | safe-buffer@5.1.2: 358 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 359 | 360 | strnum@1.0.5: 361 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 362 | 363 | tslib@2.8.1: 364 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 365 | 366 | undici-types@6.20.0: 367 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 368 | 369 | url-parse@1.5.10: 370 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 371 | 372 | uuid@9.0.1: 373 | resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 374 | hasBin: true 375 | 376 | snapshots: 377 | 378 | '@acuminous/bitsyntax@0.1.2': 379 | dependencies: 380 | buffer-more-ints: 1.0.0 381 | debug: 4.4.0 382 | safe-buffer: 5.1.2 383 | transitivePeerDependencies: 384 | - supports-color 385 | 386 | '@aws-crypto/sha256-browser@5.2.0': 387 | dependencies: 388 | '@aws-crypto/sha256-js': 5.2.0 389 | '@aws-crypto/supports-web-crypto': 5.2.0 390 | '@aws-crypto/util': 5.2.0 391 | '@aws-sdk/types': 3.731.0 392 | '@aws-sdk/util-locate-window': 3.723.0 393 | '@smithy/util-utf8': 2.3.0 394 | tslib: 2.8.1 395 | 396 | '@aws-crypto/sha256-js@5.2.0': 397 | dependencies: 398 | '@aws-crypto/util': 5.2.0 399 | '@aws-sdk/types': 3.731.0 400 | tslib: 2.8.1 401 | 402 | '@aws-crypto/supports-web-crypto@5.2.0': 403 | dependencies: 404 | tslib: 2.8.1 405 | 406 | '@aws-crypto/util@5.2.0': 407 | dependencies: 408 | '@aws-sdk/types': 3.731.0 409 | '@smithy/util-utf8': 2.3.0 410 | tslib: 2.8.1 411 | 412 | '@aws-sdk/client-sqs@3.731.1': 413 | dependencies: 414 | '@aws-crypto/sha256-browser': 5.2.0 415 | '@aws-crypto/sha256-js': 5.2.0 416 | '@aws-sdk/core': 3.731.0 417 | '@aws-sdk/credential-provider-node': 3.731.1 418 | '@aws-sdk/middleware-host-header': 3.731.0 419 | '@aws-sdk/middleware-logger': 3.731.0 420 | '@aws-sdk/middleware-recursion-detection': 3.731.0 421 | '@aws-sdk/middleware-sdk-sqs': 3.731.0 422 | '@aws-sdk/middleware-user-agent': 3.731.0 423 | '@aws-sdk/region-config-resolver': 3.731.0 424 | '@aws-sdk/types': 3.731.0 425 | '@aws-sdk/util-endpoints': 3.731.0 426 | '@aws-sdk/util-user-agent-browser': 3.731.0 427 | '@aws-sdk/util-user-agent-node': 3.731.0 428 | '@smithy/config-resolver': 4.0.1 429 | '@smithy/core': 3.1.1 430 | '@smithy/fetch-http-handler': 5.0.1 431 | '@smithy/hash-node': 4.0.1 432 | '@smithy/invalid-dependency': 4.0.1 433 | '@smithy/md5-js': 4.0.1 434 | '@smithy/middleware-content-length': 4.0.1 435 | '@smithy/middleware-endpoint': 4.0.2 436 | '@smithy/middleware-retry': 4.0.3 437 | '@smithy/middleware-serde': 4.0.1 438 | '@smithy/middleware-stack': 4.0.1 439 | '@smithy/node-config-provider': 4.0.1 440 | '@smithy/node-http-handler': 4.0.2 441 | '@smithy/protocol-http': 5.0.1 442 | '@smithy/smithy-client': 4.1.2 443 | '@smithy/types': 4.1.0 444 | '@smithy/url-parser': 4.0.1 445 | '@smithy/util-base64': 4.0.0 446 | '@smithy/util-body-length-browser': 4.0.0 447 | '@smithy/util-body-length-node': 4.0.0 448 | '@smithy/util-defaults-mode-browser': 4.0.3 449 | '@smithy/util-defaults-mode-node': 4.0.3 450 | '@smithy/util-endpoints': 3.0.1 451 | '@smithy/util-middleware': 4.0.1 452 | '@smithy/util-retry': 4.0.1 453 | '@smithy/util-utf8': 4.0.0 454 | tslib: 2.8.1 455 | transitivePeerDependencies: 456 | - aws-crt 457 | 458 | '@aws-sdk/client-sso@3.731.0': 459 | dependencies: 460 | '@aws-crypto/sha256-browser': 5.2.0 461 | '@aws-crypto/sha256-js': 5.2.0 462 | '@aws-sdk/core': 3.731.0 463 | '@aws-sdk/middleware-host-header': 3.731.0 464 | '@aws-sdk/middleware-logger': 3.731.0 465 | '@aws-sdk/middleware-recursion-detection': 3.731.0 466 | '@aws-sdk/middleware-user-agent': 3.731.0 467 | '@aws-sdk/region-config-resolver': 3.731.0 468 | '@aws-sdk/types': 3.731.0 469 | '@aws-sdk/util-endpoints': 3.731.0 470 | '@aws-sdk/util-user-agent-browser': 3.731.0 471 | '@aws-sdk/util-user-agent-node': 3.731.0 472 | '@smithy/config-resolver': 4.0.1 473 | '@smithy/core': 3.1.1 474 | '@smithy/fetch-http-handler': 5.0.1 475 | '@smithy/hash-node': 4.0.1 476 | '@smithy/invalid-dependency': 4.0.1 477 | '@smithy/middleware-content-length': 4.0.1 478 | '@smithy/middleware-endpoint': 4.0.2 479 | '@smithy/middleware-retry': 4.0.3 480 | '@smithy/middleware-serde': 4.0.1 481 | '@smithy/middleware-stack': 4.0.1 482 | '@smithy/node-config-provider': 4.0.1 483 | '@smithy/node-http-handler': 4.0.2 484 | '@smithy/protocol-http': 5.0.1 485 | '@smithy/smithy-client': 4.1.2 486 | '@smithy/types': 4.1.0 487 | '@smithy/url-parser': 4.0.1 488 | '@smithy/util-base64': 4.0.0 489 | '@smithy/util-body-length-browser': 4.0.0 490 | '@smithy/util-body-length-node': 4.0.0 491 | '@smithy/util-defaults-mode-browser': 4.0.3 492 | '@smithy/util-defaults-mode-node': 4.0.3 493 | '@smithy/util-endpoints': 3.0.1 494 | '@smithy/util-middleware': 4.0.1 495 | '@smithy/util-retry': 4.0.1 496 | '@smithy/util-utf8': 4.0.0 497 | tslib: 2.8.1 498 | transitivePeerDependencies: 499 | - aws-crt 500 | 501 | '@aws-sdk/core@3.731.0': 502 | dependencies: 503 | '@aws-sdk/types': 3.731.0 504 | '@smithy/core': 3.1.1 505 | '@smithy/node-config-provider': 4.0.1 506 | '@smithy/property-provider': 4.0.1 507 | '@smithy/protocol-http': 5.0.1 508 | '@smithy/signature-v4': 5.0.1 509 | '@smithy/smithy-client': 4.1.2 510 | '@smithy/types': 4.1.0 511 | '@smithy/util-middleware': 4.0.1 512 | fast-xml-parser: 4.4.1 513 | tslib: 2.8.1 514 | 515 | '@aws-sdk/credential-provider-env@3.731.0': 516 | dependencies: 517 | '@aws-sdk/core': 3.731.0 518 | '@aws-sdk/types': 3.731.0 519 | '@smithy/property-provider': 4.0.1 520 | '@smithy/types': 4.1.0 521 | tslib: 2.8.1 522 | 523 | '@aws-sdk/credential-provider-http@3.731.0': 524 | dependencies: 525 | '@aws-sdk/core': 3.731.0 526 | '@aws-sdk/types': 3.731.0 527 | '@smithy/fetch-http-handler': 5.0.1 528 | '@smithy/node-http-handler': 4.0.2 529 | '@smithy/property-provider': 4.0.1 530 | '@smithy/protocol-http': 5.0.1 531 | '@smithy/smithy-client': 4.1.2 532 | '@smithy/types': 4.1.0 533 | '@smithy/util-stream': 4.0.2 534 | tslib: 2.8.1 535 | 536 | '@aws-sdk/credential-provider-ini@3.731.1': 537 | dependencies: 538 | '@aws-sdk/core': 3.731.0 539 | '@aws-sdk/credential-provider-env': 3.731.0 540 | '@aws-sdk/credential-provider-http': 3.731.0 541 | '@aws-sdk/credential-provider-process': 3.731.0 542 | '@aws-sdk/credential-provider-sso': 3.731.1 543 | '@aws-sdk/credential-provider-web-identity': 3.731.1 544 | '@aws-sdk/nested-clients': 3.731.1 545 | '@aws-sdk/types': 3.731.0 546 | '@smithy/credential-provider-imds': 4.0.1 547 | '@smithy/property-provider': 4.0.1 548 | '@smithy/shared-ini-file-loader': 4.0.1 549 | '@smithy/types': 4.1.0 550 | tslib: 2.8.1 551 | transitivePeerDependencies: 552 | - aws-crt 553 | 554 | '@aws-sdk/credential-provider-node@3.731.1': 555 | dependencies: 556 | '@aws-sdk/credential-provider-env': 3.731.0 557 | '@aws-sdk/credential-provider-http': 3.731.0 558 | '@aws-sdk/credential-provider-ini': 3.731.1 559 | '@aws-sdk/credential-provider-process': 3.731.0 560 | '@aws-sdk/credential-provider-sso': 3.731.1 561 | '@aws-sdk/credential-provider-web-identity': 3.731.1 562 | '@aws-sdk/types': 3.731.0 563 | '@smithy/credential-provider-imds': 4.0.1 564 | '@smithy/property-provider': 4.0.1 565 | '@smithy/shared-ini-file-loader': 4.0.1 566 | '@smithy/types': 4.1.0 567 | tslib: 2.8.1 568 | transitivePeerDependencies: 569 | - aws-crt 570 | 571 | '@aws-sdk/credential-provider-process@3.731.0': 572 | dependencies: 573 | '@aws-sdk/core': 3.731.0 574 | '@aws-sdk/types': 3.731.0 575 | '@smithy/property-provider': 4.0.1 576 | '@smithy/shared-ini-file-loader': 4.0.1 577 | '@smithy/types': 4.1.0 578 | tslib: 2.8.1 579 | 580 | '@aws-sdk/credential-provider-sso@3.731.1': 581 | dependencies: 582 | '@aws-sdk/client-sso': 3.731.0 583 | '@aws-sdk/core': 3.731.0 584 | '@aws-sdk/token-providers': 3.731.1 585 | '@aws-sdk/types': 3.731.0 586 | '@smithy/property-provider': 4.0.1 587 | '@smithy/shared-ini-file-loader': 4.0.1 588 | '@smithy/types': 4.1.0 589 | tslib: 2.8.1 590 | transitivePeerDependencies: 591 | - aws-crt 592 | 593 | '@aws-sdk/credential-provider-web-identity@3.731.1': 594 | dependencies: 595 | '@aws-sdk/core': 3.731.0 596 | '@aws-sdk/nested-clients': 3.731.1 597 | '@aws-sdk/types': 3.731.0 598 | '@smithy/property-provider': 4.0.1 599 | '@smithy/types': 4.1.0 600 | tslib: 2.8.1 601 | transitivePeerDependencies: 602 | - aws-crt 603 | 604 | '@aws-sdk/middleware-host-header@3.731.0': 605 | dependencies: 606 | '@aws-sdk/types': 3.731.0 607 | '@smithy/protocol-http': 5.0.1 608 | '@smithy/types': 4.1.0 609 | tslib: 2.8.1 610 | 611 | '@aws-sdk/middleware-logger@3.731.0': 612 | dependencies: 613 | '@aws-sdk/types': 3.731.0 614 | '@smithy/types': 4.1.0 615 | tslib: 2.8.1 616 | 617 | '@aws-sdk/middleware-recursion-detection@3.731.0': 618 | dependencies: 619 | '@aws-sdk/types': 3.731.0 620 | '@smithy/protocol-http': 5.0.1 621 | '@smithy/types': 4.1.0 622 | tslib: 2.8.1 623 | 624 | '@aws-sdk/middleware-sdk-sqs@3.731.0': 625 | dependencies: 626 | '@aws-sdk/types': 3.731.0 627 | '@smithy/smithy-client': 4.1.2 628 | '@smithy/types': 4.1.0 629 | '@smithy/util-hex-encoding': 4.0.0 630 | '@smithy/util-utf8': 4.0.0 631 | tslib: 2.8.1 632 | 633 | '@aws-sdk/middleware-user-agent@3.731.0': 634 | dependencies: 635 | '@aws-sdk/core': 3.731.0 636 | '@aws-sdk/types': 3.731.0 637 | '@aws-sdk/util-endpoints': 3.731.0 638 | '@smithy/core': 3.1.1 639 | '@smithy/protocol-http': 5.0.1 640 | '@smithy/types': 4.1.0 641 | tslib: 2.8.1 642 | 643 | '@aws-sdk/nested-clients@3.731.1': 644 | dependencies: 645 | '@aws-crypto/sha256-browser': 5.2.0 646 | '@aws-crypto/sha256-js': 5.2.0 647 | '@aws-sdk/core': 3.731.0 648 | '@aws-sdk/middleware-host-header': 3.731.0 649 | '@aws-sdk/middleware-logger': 3.731.0 650 | '@aws-sdk/middleware-recursion-detection': 3.731.0 651 | '@aws-sdk/middleware-user-agent': 3.731.0 652 | '@aws-sdk/region-config-resolver': 3.731.0 653 | '@aws-sdk/types': 3.731.0 654 | '@aws-sdk/util-endpoints': 3.731.0 655 | '@aws-sdk/util-user-agent-browser': 3.731.0 656 | '@aws-sdk/util-user-agent-node': 3.731.0 657 | '@smithy/config-resolver': 4.0.1 658 | '@smithy/core': 3.1.1 659 | '@smithy/fetch-http-handler': 5.0.1 660 | '@smithy/hash-node': 4.0.1 661 | '@smithy/invalid-dependency': 4.0.1 662 | '@smithy/middleware-content-length': 4.0.1 663 | '@smithy/middleware-endpoint': 4.0.2 664 | '@smithy/middleware-retry': 4.0.3 665 | '@smithy/middleware-serde': 4.0.1 666 | '@smithy/middleware-stack': 4.0.1 667 | '@smithy/node-config-provider': 4.0.1 668 | '@smithy/node-http-handler': 4.0.2 669 | '@smithy/protocol-http': 5.0.1 670 | '@smithy/smithy-client': 4.1.2 671 | '@smithy/types': 4.1.0 672 | '@smithy/url-parser': 4.0.1 673 | '@smithy/util-base64': 4.0.0 674 | '@smithy/util-body-length-browser': 4.0.0 675 | '@smithy/util-body-length-node': 4.0.0 676 | '@smithy/util-defaults-mode-browser': 4.0.3 677 | '@smithy/util-defaults-mode-node': 4.0.3 678 | '@smithy/util-endpoints': 3.0.1 679 | '@smithy/util-middleware': 4.0.1 680 | '@smithy/util-retry': 4.0.1 681 | '@smithy/util-utf8': 4.0.0 682 | tslib: 2.8.1 683 | transitivePeerDependencies: 684 | - aws-crt 685 | 686 | '@aws-sdk/region-config-resolver@3.731.0': 687 | dependencies: 688 | '@aws-sdk/types': 3.731.0 689 | '@smithy/node-config-provider': 4.0.1 690 | '@smithy/types': 4.1.0 691 | '@smithy/util-config-provider': 4.0.0 692 | '@smithy/util-middleware': 4.0.1 693 | tslib: 2.8.1 694 | 695 | '@aws-sdk/token-providers@3.731.1': 696 | dependencies: 697 | '@aws-sdk/nested-clients': 3.731.1 698 | '@aws-sdk/types': 3.731.0 699 | '@smithy/property-provider': 4.0.1 700 | '@smithy/shared-ini-file-loader': 4.0.1 701 | '@smithy/types': 4.1.0 702 | tslib: 2.8.1 703 | transitivePeerDependencies: 704 | - aws-crt 705 | 706 | '@aws-sdk/types@3.731.0': 707 | dependencies: 708 | '@smithy/types': 4.1.0 709 | tslib: 2.8.1 710 | 711 | '@aws-sdk/util-endpoints@3.731.0': 712 | dependencies: 713 | '@aws-sdk/types': 3.731.0 714 | '@smithy/types': 4.1.0 715 | '@smithy/util-endpoints': 3.0.1 716 | tslib: 2.8.1 717 | 718 | '@aws-sdk/util-locate-window@3.723.0': 719 | dependencies: 720 | tslib: 2.8.1 721 | 722 | '@aws-sdk/util-user-agent-browser@3.731.0': 723 | dependencies: 724 | '@aws-sdk/types': 3.731.0 725 | '@smithy/types': 4.1.0 726 | bowser: 2.11.0 727 | tslib: 2.8.1 728 | 729 | '@aws-sdk/util-user-agent-node@3.731.0': 730 | dependencies: 731 | '@aws-sdk/middleware-user-agent': 3.731.0 732 | '@aws-sdk/types': 3.731.0 733 | '@smithy/node-config-provider': 4.0.1 734 | '@smithy/types': 4.1.0 735 | tslib: 2.8.1 736 | 737 | '@smithy/abort-controller@4.0.1': 738 | dependencies: 739 | '@smithy/types': 4.1.0 740 | tslib: 2.8.1 741 | 742 | '@smithy/config-resolver@4.0.1': 743 | dependencies: 744 | '@smithy/node-config-provider': 4.0.1 745 | '@smithy/types': 4.1.0 746 | '@smithy/util-config-provider': 4.0.0 747 | '@smithy/util-middleware': 4.0.1 748 | tslib: 2.8.1 749 | 750 | '@smithy/core@3.1.1': 751 | dependencies: 752 | '@smithy/middleware-serde': 4.0.1 753 | '@smithy/protocol-http': 5.0.1 754 | '@smithy/types': 4.1.0 755 | '@smithy/util-body-length-browser': 4.0.0 756 | '@smithy/util-middleware': 4.0.1 757 | '@smithy/util-stream': 4.0.2 758 | '@smithy/util-utf8': 4.0.0 759 | tslib: 2.8.1 760 | 761 | '@smithy/credential-provider-imds@4.0.1': 762 | dependencies: 763 | '@smithy/node-config-provider': 4.0.1 764 | '@smithy/property-provider': 4.0.1 765 | '@smithy/types': 4.1.0 766 | '@smithy/url-parser': 4.0.1 767 | tslib: 2.8.1 768 | 769 | '@smithy/fetch-http-handler@5.0.1': 770 | dependencies: 771 | '@smithy/protocol-http': 5.0.1 772 | '@smithy/querystring-builder': 4.0.1 773 | '@smithy/types': 4.1.0 774 | '@smithy/util-base64': 4.0.0 775 | tslib: 2.8.1 776 | 777 | '@smithy/hash-node@4.0.1': 778 | dependencies: 779 | '@smithy/types': 4.1.0 780 | '@smithy/util-buffer-from': 4.0.0 781 | '@smithy/util-utf8': 4.0.0 782 | tslib: 2.8.1 783 | 784 | '@smithy/invalid-dependency@4.0.1': 785 | dependencies: 786 | '@smithy/types': 4.1.0 787 | tslib: 2.8.1 788 | 789 | '@smithy/is-array-buffer@2.2.0': 790 | dependencies: 791 | tslib: 2.8.1 792 | 793 | '@smithy/is-array-buffer@4.0.0': 794 | dependencies: 795 | tslib: 2.8.1 796 | 797 | '@smithy/md5-js@4.0.1': 798 | dependencies: 799 | '@smithy/types': 4.1.0 800 | '@smithy/util-utf8': 4.0.0 801 | tslib: 2.8.1 802 | 803 | '@smithy/middleware-content-length@4.0.1': 804 | dependencies: 805 | '@smithy/protocol-http': 5.0.1 806 | '@smithy/types': 4.1.0 807 | tslib: 2.8.1 808 | 809 | '@smithy/middleware-endpoint@4.0.2': 810 | dependencies: 811 | '@smithy/core': 3.1.1 812 | '@smithy/middleware-serde': 4.0.1 813 | '@smithy/node-config-provider': 4.0.1 814 | '@smithy/shared-ini-file-loader': 4.0.1 815 | '@smithy/types': 4.1.0 816 | '@smithy/url-parser': 4.0.1 817 | '@smithy/util-middleware': 4.0.1 818 | tslib: 2.8.1 819 | 820 | '@smithy/middleware-retry@4.0.3': 821 | dependencies: 822 | '@smithy/node-config-provider': 4.0.1 823 | '@smithy/protocol-http': 5.0.1 824 | '@smithy/service-error-classification': 4.0.1 825 | '@smithy/smithy-client': 4.1.2 826 | '@smithy/types': 4.1.0 827 | '@smithy/util-middleware': 4.0.1 828 | '@smithy/util-retry': 4.0.1 829 | tslib: 2.8.1 830 | uuid: 9.0.1 831 | 832 | '@smithy/middleware-serde@4.0.1': 833 | dependencies: 834 | '@smithy/types': 4.1.0 835 | tslib: 2.8.1 836 | 837 | '@smithy/middleware-stack@4.0.1': 838 | dependencies: 839 | '@smithy/types': 4.1.0 840 | tslib: 2.8.1 841 | 842 | '@smithy/node-config-provider@4.0.1': 843 | dependencies: 844 | '@smithy/property-provider': 4.0.1 845 | '@smithy/shared-ini-file-loader': 4.0.1 846 | '@smithy/types': 4.1.0 847 | tslib: 2.8.1 848 | 849 | '@smithy/node-http-handler@4.0.2': 850 | dependencies: 851 | '@smithy/abort-controller': 4.0.1 852 | '@smithy/protocol-http': 5.0.1 853 | '@smithy/querystring-builder': 4.0.1 854 | '@smithy/types': 4.1.0 855 | tslib: 2.8.1 856 | 857 | '@smithy/property-provider@4.0.1': 858 | dependencies: 859 | '@smithy/types': 4.1.0 860 | tslib: 2.8.1 861 | 862 | '@smithy/protocol-http@5.0.1': 863 | dependencies: 864 | '@smithy/types': 4.1.0 865 | tslib: 2.8.1 866 | 867 | '@smithy/querystring-builder@4.0.1': 868 | dependencies: 869 | '@smithy/types': 4.1.0 870 | '@smithy/util-uri-escape': 4.0.0 871 | tslib: 2.8.1 872 | 873 | '@smithy/querystring-parser@4.0.1': 874 | dependencies: 875 | '@smithy/types': 4.1.0 876 | tslib: 2.8.1 877 | 878 | '@smithy/service-error-classification@4.0.1': 879 | dependencies: 880 | '@smithy/types': 4.1.0 881 | 882 | '@smithy/shared-ini-file-loader@4.0.1': 883 | dependencies: 884 | '@smithy/types': 4.1.0 885 | tslib: 2.8.1 886 | 887 | '@smithy/signature-v4@5.0.1': 888 | dependencies: 889 | '@smithy/is-array-buffer': 4.0.0 890 | '@smithy/protocol-http': 5.0.1 891 | '@smithy/types': 4.1.0 892 | '@smithy/util-hex-encoding': 4.0.0 893 | '@smithy/util-middleware': 4.0.1 894 | '@smithy/util-uri-escape': 4.0.0 895 | '@smithy/util-utf8': 4.0.0 896 | tslib: 2.8.1 897 | 898 | '@smithy/smithy-client@4.1.2': 899 | dependencies: 900 | '@smithy/core': 3.1.1 901 | '@smithy/middleware-endpoint': 4.0.2 902 | '@smithy/middleware-stack': 4.0.1 903 | '@smithy/protocol-http': 5.0.1 904 | '@smithy/types': 4.1.0 905 | '@smithy/util-stream': 4.0.2 906 | tslib: 2.8.1 907 | 908 | '@smithy/types@4.1.0': 909 | dependencies: 910 | tslib: 2.8.1 911 | 912 | '@smithy/url-parser@4.0.1': 913 | dependencies: 914 | '@smithy/querystring-parser': 4.0.1 915 | '@smithy/types': 4.1.0 916 | tslib: 2.8.1 917 | 918 | '@smithy/util-base64@4.0.0': 919 | dependencies: 920 | '@smithy/util-buffer-from': 4.0.0 921 | '@smithy/util-utf8': 4.0.0 922 | tslib: 2.8.1 923 | 924 | '@smithy/util-body-length-browser@4.0.0': 925 | dependencies: 926 | tslib: 2.8.1 927 | 928 | '@smithy/util-body-length-node@4.0.0': 929 | dependencies: 930 | tslib: 2.8.1 931 | 932 | '@smithy/util-buffer-from@2.2.0': 933 | dependencies: 934 | '@smithy/is-array-buffer': 2.2.0 935 | tslib: 2.8.1 936 | 937 | '@smithy/util-buffer-from@4.0.0': 938 | dependencies: 939 | '@smithy/is-array-buffer': 4.0.0 940 | tslib: 2.8.1 941 | 942 | '@smithy/util-config-provider@4.0.0': 943 | dependencies: 944 | tslib: 2.8.1 945 | 946 | '@smithy/util-defaults-mode-browser@4.0.3': 947 | dependencies: 948 | '@smithy/property-provider': 4.0.1 949 | '@smithy/smithy-client': 4.1.2 950 | '@smithy/types': 4.1.0 951 | bowser: 2.11.0 952 | tslib: 2.8.1 953 | 954 | '@smithy/util-defaults-mode-node@4.0.3': 955 | dependencies: 956 | '@smithy/config-resolver': 4.0.1 957 | '@smithy/credential-provider-imds': 4.0.1 958 | '@smithy/node-config-provider': 4.0.1 959 | '@smithy/property-provider': 4.0.1 960 | '@smithy/smithy-client': 4.1.2 961 | '@smithy/types': 4.1.0 962 | tslib: 2.8.1 963 | 964 | '@smithy/util-endpoints@3.0.1': 965 | dependencies: 966 | '@smithy/node-config-provider': 4.0.1 967 | '@smithy/types': 4.1.0 968 | tslib: 2.8.1 969 | 970 | '@smithy/util-hex-encoding@4.0.0': 971 | dependencies: 972 | tslib: 2.8.1 973 | 974 | '@smithy/util-middleware@4.0.1': 975 | dependencies: 976 | '@smithy/types': 4.1.0 977 | tslib: 2.8.1 978 | 979 | '@smithy/util-retry@4.0.1': 980 | dependencies: 981 | '@smithy/service-error-classification': 4.0.1 982 | '@smithy/types': 4.1.0 983 | tslib: 2.8.1 984 | 985 | '@smithy/util-stream@4.0.2': 986 | dependencies: 987 | '@smithy/fetch-http-handler': 5.0.1 988 | '@smithy/node-http-handler': 4.0.2 989 | '@smithy/types': 4.1.0 990 | '@smithy/util-base64': 4.0.0 991 | '@smithy/util-buffer-from': 4.0.0 992 | '@smithy/util-hex-encoding': 4.0.0 993 | '@smithy/util-utf8': 4.0.0 994 | tslib: 2.8.1 995 | 996 | '@smithy/util-uri-escape@4.0.0': 997 | dependencies: 998 | tslib: 2.8.1 999 | 1000 | '@smithy/util-utf8@2.3.0': 1001 | dependencies: 1002 | '@smithy/util-buffer-from': 2.2.0 1003 | tslib: 2.8.1 1004 | 1005 | '@smithy/util-utf8@4.0.0': 1006 | dependencies: 1007 | '@smithy/util-buffer-from': 4.0.0 1008 | tslib: 2.8.1 1009 | 1010 | '@types/amqplib@0.10.6': 1011 | dependencies: 1012 | '@types/node': 22.10.7 1013 | 1014 | '@types/node@22.10.7': 1015 | dependencies: 1016 | undici-types: 6.20.0 1017 | 1018 | amqplib@0.10.5: 1019 | dependencies: 1020 | '@acuminous/bitsyntax': 0.1.2 1021 | buffer-more-ints: 1.0.0 1022 | url-parse: 1.5.10 1023 | transitivePeerDependencies: 1024 | - supports-color 1025 | 1026 | bowser@2.11.0: {} 1027 | 1028 | buffer-more-ints@1.0.0: {} 1029 | 1030 | debug@4.4.0: 1031 | dependencies: 1032 | ms: 2.1.3 1033 | 1034 | dotenv@16.4.7: {} 1035 | 1036 | fast-xml-parser@4.4.1: 1037 | dependencies: 1038 | strnum: 1.0.5 1039 | 1040 | ms@2.1.3: {} 1041 | 1042 | querystringify@2.2.0: {} 1043 | 1044 | requires-port@1.0.0: {} 1045 | 1046 | safe-buffer@5.1.2: {} 1047 | 1048 | strnum@1.0.5: {} 1049 | 1050 | tslib@2.8.1: {} 1051 | 1052 | undici-types@6.20.0: {} 1053 | 1054 | url-parse@1.5.10: 1055 | dependencies: 1056 | querystringify: 2.2.0 1057 | requires-port: 1.0.0 1058 | 1059 | uuid@9.0.1: {} 1060 | -------------------------------------------------------------------------------- /services/transcoder/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@aws-sdk/client-s3': 12 | specifier: ^3.732.0 13 | version: 3.732.0 14 | amqplib: 15 | specifier: ^0.10.5 16 | version: 0.10.5 17 | devDependencies: 18 | '@types/amqplib': 19 | specifier: ^0.10.6 20 | version: 0.10.6 21 | 22 | packages: 23 | 24 | '@acuminous/bitsyntax@0.1.2': 25 | resolution: {integrity: sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==} 26 | engines: {node: '>=0.8'} 27 | 28 | '@aws-crypto/crc32@5.2.0': 29 | resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} 30 | engines: {node: '>=16.0.0'} 31 | 32 | '@aws-crypto/crc32c@5.2.0': 33 | resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} 34 | 35 | '@aws-crypto/sha1-browser@5.2.0': 36 | resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} 37 | 38 | '@aws-crypto/sha256-browser@5.2.0': 39 | resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} 40 | 41 | '@aws-crypto/sha256-js@5.2.0': 42 | resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} 43 | engines: {node: '>=16.0.0'} 44 | 45 | '@aws-crypto/supports-web-crypto@5.2.0': 46 | resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} 47 | 48 | '@aws-crypto/util@5.2.0': 49 | resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} 50 | 51 | '@aws-sdk/client-s3@3.732.0': 52 | resolution: {integrity: sha512-ITPcG40qdiLXZRvNQ8V3u4yB16afcdIabdRBN6Blba31rk0MfeBGWwah0+lLSTFo1ZIrIQvBl6PAQ7mO0mkKLg==} 53 | engines: {node: '>=18.0.0'} 54 | 55 | '@aws-sdk/client-sso@3.731.0': 56 | resolution: {integrity: sha512-O4C/UYGgqMsBg21MMApFdgyh8BX568hQhbdoNFmRVTBoSnCZ3w+H4a1wBPX4Gyl0NX+ab6Xxo9rId8HiyPXJ0A==} 57 | engines: {node: '>=18.0.0'} 58 | 59 | '@aws-sdk/core@3.731.0': 60 | resolution: {integrity: sha512-ithBN1VWASkvAIlozJmenqDvNnFddr/SZXAs58+jCnBHgy3tXLHABZGVNCjetZkHRqNdXEO1kirnoxaFeXMeDA==} 61 | engines: {node: '>=18.0.0'} 62 | 63 | '@aws-sdk/credential-provider-env@3.731.0': 64 | resolution: {integrity: sha512-h0WWZg4QMLgFVyIvQrC43zpVqsUWg1mPM1clpogP43B8+wEhDEQ4qWRzvFs3dQ4cqx/FLyDUZZF4cqgd94z7kw==} 65 | engines: {node: '>=18.0.0'} 66 | 67 | '@aws-sdk/credential-provider-http@3.731.0': 68 | resolution: {integrity: sha512-iRtrjtcYaWgbvtu2cvDhIsPWXZGvhy1Hgks4682MEBNTc9AUwlfvDrYz2EEnTtJJyrbOdEHVrYrzqD8qPyVLCg==} 69 | engines: {node: '>=18.0.0'} 70 | 71 | '@aws-sdk/credential-provider-ini@3.731.1': 72 | resolution: {integrity: sha512-0M0ejuqW8iHNcTH2ZXSY9m+I7Y06qVkj6k3vfQU9XaB//mTUCxxfGfqWAtgfr7Yi73egABTcPc0jyPdcvSW4Kw==} 73 | engines: {node: '>=18.0.0'} 74 | 75 | '@aws-sdk/credential-provider-node@3.731.1': 76 | resolution: {integrity: sha512-5c0ZiagMTPmWilXNffeXJCLoCEz97jilHr3QJWwf2GaTay4tzN+Ld71rpdfEenzUR7fuxEWFfVlwQbFOzFNYHg==} 77 | engines: {node: '>=18.0.0'} 78 | 79 | '@aws-sdk/credential-provider-process@3.731.0': 80 | resolution: {integrity: sha512-6yNMY6q3xHLbs2f2+C6GhvMrjTgtFBiPJJqKaPLsTIhlTRvh4sK8pGm3ITcma0jOxtPDIuoPfBAV8N8XVMBlZg==} 81 | engines: {node: '>=18.0.0'} 82 | 83 | '@aws-sdk/credential-provider-sso@3.731.1': 84 | resolution: {integrity: sha512-p1tp+rMUf5YNQLr8rVRmDgNtKGYLL0KCdq3K2hwwvFnx9MjReF1sA4lfm3xWsxBQM+j3QN9AvMQqBzDJ+NOSdw==} 85 | engines: {node: '>=18.0.0'} 86 | 87 | '@aws-sdk/credential-provider-web-identity@3.731.1': 88 | resolution: {integrity: sha512-+ynAvEGWDR5ZJFxgpwwzhvlQ3WQ7BleWXU6JwpIw3yFrD4eZEn85b8DZC1aEz7C9kb1HSV6B3gpqHqlyS6wj8g==} 89 | engines: {node: '>=18.0.0'} 90 | 91 | '@aws-sdk/middleware-bucket-endpoint@3.731.0': 92 | resolution: {integrity: sha512-G9vuGW5GWCbzGOwlGFJcOkfxhw1cB6vzcv75QTT0CmciLXK+Cio8O2pqMSTTF2kg9Y6iHVC2BlOtLRkJAVOxVQ==} 93 | engines: {node: '>=18.0.0'} 94 | 95 | '@aws-sdk/middleware-expect-continue@3.731.0': 96 | resolution: {integrity: sha512-oY4nsY/mb5O5eZCzIuWpyvzO45Bi6UBtE48IaJsoyVctagA1l8hB66aczH9M1NHNjvbS4Beu1agwh3Nyb1eJug==} 97 | engines: {node: '>=18.0.0'} 98 | 99 | '@aws-sdk/middleware-flexible-checksums@3.732.0': 100 | resolution: {integrity: sha512-MIbF6cYWg5noRO1kRZNC0vewj6qzSYL/BGNlPxRQcqb6egUiGrhPEi8Y/qqweB7MlBHsqSO5YNPwH/Py8ToSVw==} 101 | engines: {node: '>=18.0.0'} 102 | 103 | '@aws-sdk/middleware-host-header@3.731.0': 104 | resolution: {integrity: sha512-ndAJsm5uWPPJRZowLKpB1zuL17qWlWVtCJP4I/ynBkq1PU1DijDXBul2UZaG6Mpvsgms1NXo/h9noHuK7T3v8w==} 105 | engines: {node: '>=18.0.0'} 106 | 107 | '@aws-sdk/middleware-location-constraint@3.731.0': 108 | resolution: {integrity: sha512-1I2EjAFxrQksrzqdN7YYuY/q2YsjqeX4l7f9VOkdBjiZeDvVIEdM99IT5sISJB/r6CjNrYX5MhqGhE8i1VFchA==} 109 | engines: {node: '>=18.0.0'} 110 | 111 | '@aws-sdk/middleware-logger@3.731.0': 112 | resolution: {integrity: sha512-IIZrOdjbY2vKzPJPrwE7FoFQCIPEL6UqURi8LEaiVyCag4p2fvaTN5pgKuQtGC2+iYd/HHcGT4qn2bAqF5Jmmw==} 113 | engines: {node: '>=18.0.0'} 114 | 115 | '@aws-sdk/middleware-recursion-detection@3.731.0': 116 | resolution: {integrity: sha512-y6FLASB1iKWuR5tUipMyo77bt0lEl3OnCrrd2xw/H24avq1HhJjjPR0HHhJE6QKJzF/FYXeV88tcyPSMe32VDw==} 117 | engines: {node: '>=18.0.0'} 118 | 119 | '@aws-sdk/middleware-sdk-s3@3.731.0': 120 | resolution: {integrity: sha512-J9aKyQaVoec5eWTSDfO4h2sKHNP0wTzN15LFcHnkD+e/d0rdmOi7BTkkbJrIaynma9WShIasmrtM3HNi9GiiTA==} 121 | engines: {node: '>=18.0.0'} 122 | 123 | '@aws-sdk/middleware-ssec@3.731.0': 124 | resolution: {integrity: sha512-1HP4lxGcQx4awXgxfL8t9faBK7TqEL7zkAZrm/YBbLrT9oQomxZOHKIOHvo5VVh4qmsNBdqnH2XUlSMY71gsww==} 125 | engines: {node: '>=18.0.0'} 126 | 127 | '@aws-sdk/middleware-user-agent@3.731.0': 128 | resolution: {integrity: sha512-Ngr2Gz0aec/uduoKaO3srN52SYkEHndYtFzkK/gDUyQwQzi4ha2eIisxPiuHEX6RvXT31V9ouqn/YtVkt0R76A==} 129 | engines: {node: '>=18.0.0'} 130 | 131 | '@aws-sdk/nested-clients@3.731.1': 132 | resolution: {integrity: sha512-/L8iVrulnXZl+kgmTn+oxRxNnhcSIbf+r12C06vGUq60w0YMidLvxJZN7vt8H9SnCAGCHqud2MS7ExCEvhc0gA==} 133 | engines: {node: '>=18.0.0'} 134 | 135 | '@aws-sdk/region-config-resolver@3.731.0': 136 | resolution: {integrity: sha512-XlDpRNkDVHF59f07JmkuAidEv//m3hT6/JL85h0l3+zrpaRWhf8n8lVUyAPNq35ZujK8AcorYM+93u7hdWsliQ==} 137 | engines: {node: '>=18.0.0'} 138 | 139 | '@aws-sdk/signature-v4-multi-region@3.731.0': 140 | resolution: {integrity: sha512-1r/b4Os15dR+BCVRRLVQJMF7Krq6xX6IKHxN43kuvODYWz8Nv3XDlaSpeRpAzyJuzW/fTp4JgE+z0+gmJfdEeA==} 141 | engines: {node: '>=18.0.0'} 142 | 143 | '@aws-sdk/token-providers@3.731.1': 144 | resolution: {integrity: sha512-t34GOPwBZsX7zGHjiTXmMHGY3kHM7fLiQ60Jqk0On9P0ASHTDE5U75RgCXboE3u+qEv9wyKyaqMNyMWj9qQlFg==} 145 | engines: {node: '>=18.0.0'} 146 | 147 | '@aws-sdk/types@3.731.0': 148 | resolution: {integrity: sha512-NrdkJg6oOUbXR2r9WvHP408CLyvST8cJfp1/jP9pemtjvjPoh6NukbCtiSFdOOb1eryP02CnqQWItfJC1p2Y/Q==} 149 | engines: {node: '>=18.0.0'} 150 | 151 | '@aws-sdk/util-arn-parser@3.723.0': 152 | resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} 153 | engines: {node: '>=18.0.0'} 154 | 155 | '@aws-sdk/util-endpoints@3.731.0': 156 | resolution: {integrity: sha512-riztxTAfncFS9yQWcBJffGgOgLoKSa63ph+rxWJxKl6BHAmWEvHICj1qDcVmnWfIcvJ5cClclY75l9qKaUH7rQ==} 157 | engines: {node: '>=18.0.0'} 158 | 159 | '@aws-sdk/util-locate-window@3.723.0': 160 | resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} 161 | engines: {node: '>=18.0.0'} 162 | 163 | '@aws-sdk/util-user-agent-browser@3.731.0': 164 | resolution: {integrity: sha512-EnYXxTkCNCjTTBjW/pelRPv4Thsi9jepoB6qQjPMA9/ixrZ71BhhQecz9kgqzZLR9BPCwb6hgJ/Yd702jqJ4aQ==} 165 | 166 | '@aws-sdk/util-user-agent-node@3.731.0': 167 | resolution: {integrity: sha512-Rze78Ym5Bx7aWMvmZE2iL3JPo2INNCC5N9rLVx98Gg1G0ZaxclVRUvJrh1AojNlOFxU+otkxAe7FA3Foy2iLLQ==} 168 | engines: {node: '>=18.0.0'} 169 | peerDependencies: 170 | aws-crt: '>=1.0.0' 171 | peerDependenciesMeta: 172 | aws-crt: 173 | optional: true 174 | 175 | '@aws-sdk/xml-builder@3.723.0': 176 | resolution: {integrity: sha512-5xK2SqGU1mzzsOeemy7cy3fGKxR1sEpUs4pEiIjaT0OIvU+fZaDVUEYWOqsgns6wI90XZEQJlXtI8uAHX/do5Q==} 177 | engines: {node: '>=18.0.0'} 178 | 179 | '@smithy/abort-controller@4.0.1': 180 | resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} 181 | engines: {node: '>=18.0.0'} 182 | 183 | '@smithy/chunked-blob-reader-native@4.0.0': 184 | resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} 185 | engines: {node: '>=18.0.0'} 186 | 187 | '@smithy/chunked-blob-reader@5.0.0': 188 | resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} 189 | engines: {node: '>=18.0.0'} 190 | 191 | '@smithy/config-resolver@4.0.1': 192 | resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} 193 | engines: {node: '>=18.0.0'} 194 | 195 | '@smithy/core@3.1.1': 196 | resolution: {integrity: sha512-hhUZlBWYuh9t6ycAcN90XOyG76C1AzwxZZgaCVPMYpWqqk9uMFo7HGG5Zu2cEhCJn7DdOi5krBmlibWWWPgdsw==} 197 | engines: {node: '>=18.0.0'} 198 | 199 | '@smithy/credential-provider-imds@4.0.1': 200 | resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} 201 | engines: {node: '>=18.0.0'} 202 | 203 | '@smithy/eventstream-codec@4.0.1': 204 | resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} 205 | engines: {node: '>=18.0.0'} 206 | 207 | '@smithy/eventstream-serde-browser@4.0.1': 208 | resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} 209 | engines: {node: '>=18.0.0'} 210 | 211 | '@smithy/eventstream-serde-config-resolver@4.0.1': 212 | resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} 213 | engines: {node: '>=18.0.0'} 214 | 215 | '@smithy/eventstream-serde-node@4.0.1': 216 | resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} 217 | engines: {node: '>=18.0.0'} 218 | 219 | '@smithy/eventstream-serde-universal@4.0.1': 220 | resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} 221 | engines: {node: '>=18.0.0'} 222 | 223 | '@smithy/fetch-http-handler@5.0.1': 224 | resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} 225 | engines: {node: '>=18.0.0'} 226 | 227 | '@smithy/hash-blob-browser@4.0.1': 228 | resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==} 229 | engines: {node: '>=18.0.0'} 230 | 231 | '@smithy/hash-node@4.0.1': 232 | resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} 233 | engines: {node: '>=18.0.0'} 234 | 235 | '@smithy/hash-stream-node@4.0.1': 236 | resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==} 237 | engines: {node: '>=18.0.0'} 238 | 239 | '@smithy/invalid-dependency@4.0.1': 240 | resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} 241 | engines: {node: '>=18.0.0'} 242 | 243 | '@smithy/is-array-buffer@2.2.0': 244 | resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} 245 | engines: {node: '>=14.0.0'} 246 | 247 | '@smithy/is-array-buffer@4.0.0': 248 | resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} 249 | engines: {node: '>=18.0.0'} 250 | 251 | '@smithy/md5-js@4.0.1': 252 | resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} 253 | engines: {node: '>=18.0.0'} 254 | 255 | '@smithy/middleware-content-length@4.0.1': 256 | resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} 257 | engines: {node: '>=18.0.0'} 258 | 259 | '@smithy/middleware-endpoint@4.0.2': 260 | resolution: {integrity: sha512-Z9m67CXizGpj8CF/AW/7uHqYNh1VXXOn9Ap54fenWsCa0HnT4cJuE61zqG3cBkTZJDCy0wHJphilI41co/PE5g==} 261 | engines: {node: '>=18.0.0'} 262 | 263 | '@smithy/middleware-retry@4.0.3': 264 | resolution: {integrity: sha512-TiKwwQTwUDeDtwWW8UWURTqu7s6F3wN2pmziLU215u7bqpVT9Mk2oEvURjpRLA+5XeQhM68R5BpAGzVtomsqgA==} 265 | engines: {node: '>=18.0.0'} 266 | 267 | '@smithy/middleware-serde@4.0.1': 268 | resolution: {integrity: sha512-Fh0E2SOF+S+P1+CsgKyiBInAt3o2b6Qk7YOp2W0Qx2XnfTdfMuSDKUEcnrtpxCzgKJnqXeLUZYqtThaP0VGqtA==} 269 | engines: {node: '>=18.0.0'} 270 | 271 | '@smithy/middleware-stack@4.0.1': 272 | resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} 273 | engines: {node: '>=18.0.0'} 274 | 275 | '@smithy/node-config-provider@4.0.1': 276 | resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} 277 | engines: {node: '>=18.0.0'} 278 | 279 | '@smithy/node-http-handler@4.0.2': 280 | resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==} 281 | engines: {node: '>=18.0.0'} 282 | 283 | '@smithy/property-provider@4.0.1': 284 | resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} 285 | engines: {node: '>=18.0.0'} 286 | 287 | '@smithy/protocol-http@5.0.1': 288 | resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} 289 | engines: {node: '>=18.0.0'} 290 | 291 | '@smithy/querystring-builder@4.0.1': 292 | resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} 293 | engines: {node: '>=18.0.0'} 294 | 295 | '@smithy/querystring-parser@4.0.1': 296 | resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} 297 | engines: {node: '>=18.0.0'} 298 | 299 | '@smithy/service-error-classification@4.0.1': 300 | resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} 301 | engines: {node: '>=18.0.0'} 302 | 303 | '@smithy/shared-ini-file-loader@4.0.1': 304 | resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} 305 | engines: {node: '>=18.0.0'} 306 | 307 | '@smithy/signature-v4@5.0.1': 308 | resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} 309 | engines: {node: '>=18.0.0'} 310 | 311 | '@smithy/smithy-client@4.1.2': 312 | resolution: {integrity: sha512-0yApeHWBqocelHGK22UivZyShNxFbDNrgREBllGh5Ws0D0rg/yId/CJfeoKKpjbfY2ju8j6WgDUGZHYQmINZ5w==} 313 | engines: {node: '>=18.0.0'} 314 | 315 | '@smithy/types@4.1.0': 316 | resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} 317 | engines: {node: '>=18.0.0'} 318 | 319 | '@smithy/url-parser@4.0.1': 320 | resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} 321 | engines: {node: '>=18.0.0'} 322 | 323 | '@smithy/util-base64@4.0.0': 324 | resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} 325 | engines: {node: '>=18.0.0'} 326 | 327 | '@smithy/util-body-length-browser@4.0.0': 328 | resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} 329 | engines: {node: '>=18.0.0'} 330 | 331 | '@smithy/util-body-length-node@4.0.0': 332 | resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} 333 | engines: {node: '>=18.0.0'} 334 | 335 | '@smithy/util-buffer-from@2.2.0': 336 | resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} 337 | engines: {node: '>=14.0.0'} 338 | 339 | '@smithy/util-buffer-from@4.0.0': 340 | resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} 341 | engines: {node: '>=18.0.0'} 342 | 343 | '@smithy/util-config-provider@4.0.0': 344 | resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} 345 | engines: {node: '>=18.0.0'} 346 | 347 | '@smithy/util-defaults-mode-browser@4.0.3': 348 | resolution: {integrity: sha512-7c5SF1fVK0EOs+2EOf72/qF199zwJflU1d02AevwKbAUPUZyE9RUZiyJxeUmhVxfKDWdUKaaVojNiaDQgnHL9g==} 349 | engines: {node: '>=18.0.0'} 350 | 351 | '@smithy/util-defaults-mode-node@4.0.3': 352 | resolution: {integrity: sha512-CVnD42qYD3JKgDlImZ9+On+MqJHzq9uJgPbMdeBE8c2x8VJ2kf2R3XO/yVFx+30ts5lD/GlL0eFIShY3x9ROgQ==} 353 | engines: {node: '>=18.0.0'} 354 | 355 | '@smithy/util-endpoints@3.0.1': 356 | resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} 357 | engines: {node: '>=18.0.0'} 358 | 359 | '@smithy/util-hex-encoding@4.0.0': 360 | resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} 361 | engines: {node: '>=18.0.0'} 362 | 363 | '@smithy/util-middleware@4.0.1': 364 | resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} 365 | engines: {node: '>=18.0.0'} 366 | 367 | '@smithy/util-retry@4.0.1': 368 | resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} 369 | engines: {node: '>=18.0.0'} 370 | 371 | '@smithy/util-stream@4.0.2': 372 | resolution: {integrity: sha512-0eZ4G5fRzIoewtHtwaYyl8g2C+osYOT4KClXgfdNEDAgkbe2TYPqcnw4GAWabqkZCax2ihRGPe9LZnsPdIUIHA==} 373 | engines: {node: '>=18.0.0'} 374 | 375 | '@smithy/util-uri-escape@4.0.0': 376 | resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} 377 | engines: {node: '>=18.0.0'} 378 | 379 | '@smithy/util-utf8@2.3.0': 380 | resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} 381 | engines: {node: '>=14.0.0'} 382 | 383 | '@smithy/util-utf8@4.0.0': 384 | resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} 385 | engines: {node: '>=18.0.0'} 386 | 387 | '@smithy/util-waiter@4.0.2': 388 | resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} 389 | engines: {node: '>=18.0.0'} 390 | 391 | '@types/amqplib@0.10.6': 392 | resolution: {integrity: sha512-vQLVypBS1JQcfTXhl1Td1EEeLdtb+vuulOb4TrzYiLyP2aYLMAEzB3pNmEA0jBm0xIXu946Y7Xwl19Eidl32SQ==} 393 | 394 | '@types/node@22.10.7': 395 | resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==} 396 | 397 | amqplib@0.10.5: 398 | resolution: {integrity: sha512-Dx5zmy0Ur+Q7LPPdhz+jx5IzmJBoHd15tOeAfQ8SuvEtyPJ20hBemhOBA4b1WeORCRa0ENM/kHCzmem1w/zHvQ==} 399 | engines: {node: '>=10'} 400 | 401 | bowser@2.11.0: 402 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 403 | 404 | buffer-more-ints@1.0.0: 405 | resolution: {integrity: sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==} 406 | 407 | debug@4.4.0: 408 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 409 | engines: {node: '>=6.0'} 410 | peerDependencies: 411 | supports-color: '*' 412 | peerDependenciesMeta: 413 | supports-color: 414 | optional: true 415 | 416 | fast-xml-parser@4.4.1: 417 | resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} 418 | hasBin: true 419 | 420 | ms@2.1.3: 421 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 422 | 423 | querystringify@2.2.0: 424 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 425 | 426 | requires-port@1.0.0: 427 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 428 | 429 | safe-buffer@5.1.2: 430 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 431 | 432 | strnum@1.0.5: 433 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 434 | 435 | tslib@2.8.1: 436 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 437 | 438 | undici-types@6.20.0: 439 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 440 | 441 | url-parse@1.5.10: 442 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 443 | 444 | uuid@9.0.1: 445 | resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 446 | hasBin: true 447 | 448 | snapshots: 449 | 450 | '@acuminous/bitsyntax@0.1.2': 451 | dependencies: 452 | buffer-more-ints: 1.0.0 453 | debug: 4.4.0 454 | safe-buffer: 5.1.2 455 | transitivePeerDependencies: 456 | - supports-color 457 | 458 | '@aws-crypto/crc32@5.2.0': 459 | dependencies: 460 | '@aws-crypto/util': 5.2.0 461 | '@aws-sdk/types': 3.731.0 462 | tslib: 2.8.1 463 | 464 | '@aws-crypto/crc32c@5.2.0': 465 | dependencies: 466 | '@aws-crypto/util': 5.2.0 467 | '@aws-sdk/types': 3.731.0 468 | tslib: 2.8.1 469 | 470 | '@aws-crypto/sha1-browser@5.2.0': 471 | dependencies: 472 | '@aws-crypto/supports-web-crypto': 5.2.0 473 | '@aws-crypto/util': 5.2.0 474 | '@aws-sdk/types': 3.731.0 475 | '@aws-sdk/util-locate-window': 3.723.0 476 | '@smithy/util-utf8': 2.3.0 477 | tslib: 2.8.1 478 | 479 | '@aws-crypto/sha256-browser@5.2.0': 480 | dependencies: 481 | '@aws-crypto/sha256-js': 5.2.0 482 | '@aws-crypto/supports-web-crypto': 5.2.0 483 | '@aws-crypto/util': 5.2.0 484 | '@aws-sdk/types': 3.731.0 485 | '@aws-sdk/util-locate-window': 3.723.0 486 | '@smithy/util-utf8': 2.3.0 487 | tslib: 2.8.1 488 | 489 | '@aws-crypto/sha256-js@5.2.0': 490 | dependencies: 491 | '@aws-crypto/util': 5.2.0 492 | '@aws-sdk/types': 3.731.0 493 | tslib: 2.8.1 494 | 495 | '@aws-crypto/supports-web-crypto@5.2.0': 496 | dependencies: 497 | tslib: 2.8.1 498 | 499 | '@aws-crypto/util@5.2.0': 500 | dependencies: 501 | '@aws-sdk/types': 3.731.0 502 | '@smithy/util-utf8': 2.3.0 503 | tslib: 2.8.1 504 | 505 | '@aws-sdk/client-s3@3.732.0': 506 | dependencies: 507 | '@aws-crypto/sha1-browser': 5.2.0 508 | '@aws-crypto/sha256-browser': 5.2.0 509 | '@aws-crypto/sha256-js': 5.2.0 510 | '@aws-sdk/core': 3.731.0 511 | '@aws-sdk/credential-provider-node': 3.731.1 512 | '@aws-sdk/middleware-bucket-endpoint': 3.731.0 513 | '@aws-sdk/middleware-expect-continue': 3.731.0 514 | '@aws-sdk/middleware-flexible-checksums': 3.732.0 515 | '@aws-sdk/middleware-host-header': 3.731.0 516 | '@aws-sdk/middleware-location-constraint': 3.731.0 517 | '@aws-sdk/middleware-logger': 3.731.0 518 | '@aws-sdk/middleware-recursion-detection': 3.731.0 519 | '@aws-sdk/middleware-sdk-s3': 3.731.0 520 | '@aws-sdk/middleware-ssec': 3.731.0 521 | '@aws-sdk/middleware-user-agent': 3.731.0 522 | '@aws-sdk/region-config-resolver': 3.731.0 523 | '@aws-sdk/signature-v4-multi-region': 3.731.0 524 | '@aws-sdk/types': 3.731.0 525 | '@aws-sdk/util-endpoints': 3.731.0 526 | '@aws-sdk/util-user-agent-browser': 3.731.0 527 | '@aws-sdk/util-user-agent-node': 3.731.0 528 | '@aws-sdk/xml-builder': 3.723.0 529 | '@smithy/config-resolver': 4.0.1 530 | '@smithy/core': 3.1.1 531 | '@smithy/eventstream-serde-browser': 4.0.1 532 | '@smithy/eventstream-serde-config-resolver': 4.0.1 533 | '@smithy/eventstream-serde-node': 4.0.1 534 | '@smithy/fetch-http-handler': 5.0.1 535 | '@smithy/hash-blob-browser': 4.0.1 536 | '@smithy/hash-node': 4.0.1 537 | '@smithy/hash-stream-node': 4.0.1 538 | '@smithy/invalid-dependency': 4.0.1 539 | '@smithy/md5-js': 4.0.1 540 | '@smithy/middleware-content-length': 4.0.1 541 | '@smithy/middleware-endpoint': 4.0.2 542 | '@smithy/middleware-retry': 4.0.3 543 | '@smithy/middleware-serde': 4.0.1 544 | '@smithy/middleware-stack': 4.0.1 545 | '@smithy/node-config-provider': 4.0.1 546 | '@smithy/node-http-handler': 4.0.2 547 | '@smithy/protocol-http': 5.0.1 548 | '@smithy/smithy-client': 4.1.2 549 | '@smithy/types': 4.1.0 550 | '@smithy/url-parser': 4.0.1 551 | '@smithy/util-base64': 4.0.0 552 | '@smithy/util-body-length-browser': 4.0.0 553 | '@smithy/util-body-length-node': 4.0.0 554 | '@smithy/util-defaults-mode-browser': 4.0.3 555 | '@smithy/util-defaults-mode-node': 4.0.3 556 | '@smithy/util-endpoints': 3.0.1 557 | '@smithy/util-middleware': 4.0.1 558 | '@smithy/util-retry': 4.0.1 559 | '@smithy/util-stream': 4.0.2 560 | '@smithy/util-utf8': 4.0.0 561 | '@smithy/util-waiter': 4.0.2 562 | tslib: 2.8.1 563 | transitivePeerDependencies: 564 | - aws-crt 565 | 566 | '@aws-sdk/client-sso@3.731.0': 567 | dependencies: 568 | '@aws-crypto/sha256-browser': 5.2.0 569 | '@aws-crypto/sha256-js': 5.2.0 570 | '@aws-sdk/core': 3.731.0 571 | '@aws-sdk/middleware-host-header': 3.731.0 572 | '@aws-sdk/middleware-logger': 3.731.0 573 | '@aws-sdk/middleware-recursion-detection': 3.731.0 574 | '@aws-sdk/middleware-user-agent': 3.731.0 575 | '@aws-sdk/region-config-resolver': 3.731.0 576 | '@aws-sdk/types': 3.731.0 577 | '@aws-sdk/util-endpoints': 3.731.0 578 | '@aws-sdk/util-user-agent-browser': 3.731.0 579 | '@aws-sdk/util-user-agent-node': 3.731.0 580 | '@smithy/config-resolver': 4.0.1 581 | '@smithy/core': 3.1.1 582 | '@smithy/fetch-http-handler': 5.0.1 583 | '@smithy/hash-node': 4.0.1 584 | '@smithy/invalid-dependency': 4.0.1 585 | '@smithy/middleware-content-length': 4.0.1 586 | '@smithy/middleware-endpoint': 4.0.2 587 | '@smithy/middleware-retry': 4.0.3 588 | '@smithy/middleware-serde': 4.0.1 589 | '@smithy/middleware-stack': 4.0.1 590 | '@smithy/node-config-provider': 4.0.1 591 | '@smithy/node-http-handler': 4.0.2 592 | '@smithy/protocol-http': 5.0.1 593 | '@smithy/smithy-client': 4.1.2 594 | '@smithy/types': 4.1.0 595 | '@smithy/url-parser': 4.0.1 596 | '@smithy/util-base64': 4.0.0 597 | '@smithy/util-body-length-browser': 4.0.0 598 | '@smithy/util-body-length-node': 4.0.0 599 | '@smithy/util-defaults-mode-browser': 4.0.3 600 | '@smithy/util-defaults-mode-node': 4.0.3 601 | '@smithy/util-endpoints': 3.0.1 602 | '@smithy/util-middleware': 4.0.1 603 | '@smithy/util-retry': 4.0.1 604 | '@smithy/util-utf8': 4.0.0 605 | tslib: 2.8.1 606 | transitivePeerDependencies: 607 | - aws-crt 608 | 609 | '@aws-sdk/core@3.731.0': 610 | dependencies: 611 | '@aws-sdk/types': 3.731.0 612 | '@smithy/core': 3.1.1 613 | '@smithy/node-config-provider': 4.0.1 614 | '@smithy/property-provider': 4.0.1 615 | '@smithy/protocol-http': 5.0.1 616 | '@smithy/signature-v4': 5.0.1 617 | '@smithy/smithy-client': 4.1.2 618 | '@smithy/types': 4.1.0 619 | '@smithy/util-middleware': 4.0.1 620 | fast-xml-parser: 4.4.1 621 | tslib: 2.8.1 622 | 623 | '@aws-sdk/credential-provider-env@3.731.0': 624 | dependencies: 625 | '@aws-sdk/core': 3.731.0 626 | '@aws-sdk/types': 3.731.0 627 | '@smithy/property-provider': 4.0.1 628 | '@smithy/types': 4.1.0 629 | tslib: 2.8.1 630 | 631 | '@aws-sdk/credential-provider-http@3.731.0': 632 | dependencies: 633 | '@aws-sdk/core': 3.731.0 634 | '@aws-sdk/types': 3.731.0 635 | '@smithy/fetch-http-handler': 5.0.1 636 | '@smithy/node-http-handler': 4.0.2 637 | '@smithy/property-provider': 4.0.1 638 | '@smithy/protocol-http': 5.0.1 639 | '@smithy/smithy-client': 4.1.2 640 | '@smithy/types': 4.1.0 641 | '@smithy/util-stream': 4.0.2 642 | tslib: 2.8.1 643 | 644 | '@aws-sdk/credential-provider-ini@3.731.1': 645 | dependencies: 646 | '@aws-sdk/core': 3.731.0 647 | '@aws-sdk/credential-provider-env': 3.731.0 648 | '@aws-sdk/credential-provider-http': 3.731.0 649 | '@aws-sdk/credential-provider-process': 3.731.0 650 | '@aws-sdk/credential-provider-sso': 3.731.1 651 | '@aws-sdk/credential-provider-web-identity': 3.731.1 652 | '@aws-sdk/nested-clients': 3.731.1 653 | '@aws-sdk/types': 3.731.0 654 | '@smithy/credential-provider-imds': 4.0.1 655 | '@smithy/property-provider': 4.0.1 656 | '@smithy/shared-ini-file-loader': 4.0.1 657 | '@smithy/types': 4.1.0 658 | tslib: 2.8.1 659 | transitivePeerDependencies: 660 | - aws-crt 661 | 662 | '@aws-sdk/credential-provider-node@3.731.1': 663 | dependencies: 664 | '@aws-sdk/credential-provider-env': 3.731.0 665 | '@aws-sdk/credential-provider-http': 3.731.0 666 | '@aws-sdk/credential-provider-ini': 3.731.1 667 | '@aws-sdk/credential-provider-process': 3.731.0 668 | '@aws-sdk/credential-provider-sso': 3.731.1 669 | '@aws-sdk/credential-provider-web-identity': 3.731.1 670 | '@aws-sdk/types': 3.731.0 671 | '@smithy/credential-provider-imds': 4.0.1 672 | '@smithy/property-provider': 4.0.1 673 | '@smithy/shared-ini-file-loader': 4.0.1 674 | '@smithy/types': 4.1.0 675 | tslib: 2.8.1 676 | transitivePeerDependencies: 677 | - aws-crt 678 | 679 | '@aws-sdk/credential-provider-process@3.731.0': 680 | dependencies: 681 | '@aws-sdk/core': 3.731.0 682 | '@aws-sdk/types': 3.731.0 683 | '@smithy/property-provider': 4.0.1 684 | '@smithy/shared-ini-file-loader': 4.0.1 685 | '@smithy/types': 4.1.0 686 | tslib: 2.8.1 687 | 688 | '@aws-sdk/credential-provider-sso@3.731.1': 689 | dependencies: 690 | '@aws-sdk/client-sso': 3.731.0 691 | '@aws-sdk/core': 3.731.0 692 | '@aws-sdk/token-providers': 3.731.1 693 | '@aws-sdk/types': 3.731.0 694 | '@smithy/property-provider': 4.0.1 695 | '@smithy/shared-ini-file-loader': 4.0.1 696 | '@smithy/types': 4.1.0 697 | tslib: 2.8.1 698 | transitivePeerDependencies: 699 | - aws-crt 700 | 701 | '@aws-sdk/credential-provider-web-identity@3.731.1': 702 | dependencies: 703 | '@aws-sdk/core': 3.731.0 704 | '@aws-sdk/nested-clients': 3.731.1 705 | '@aws-sdk/types': 3.731.0 706 | '@smithy/property-provider': 4.0.1 707 | '@smithy/types': 4.1.0 708 | tslib: 2.8.1 709 | transitivePeerDependencies: 710 | - aws-crt 711 | 712 | '@aws-sdk/middleware-bucket-endpoint@3.731.0': 713 | dependencies: 714 | '@aws-sdk/types': 3.731.0 715 | '@aws-sdk/util-arn-parser': 3.723.0 716 | '@smithy/node-config-provider': 4.0.1 717 | '@smithy/protocol-http': 5.0.1 718 | '@smithy/types': 4.1.0 719 | '@smithy/util-config-provider': 4.0.0 720 | tslib: 2.8.1 721 | 722 | '@aws-sdk/middleware-expect-continue@3.731.0': 723 | dependencies: 724 | '@aws-sdk/types': 3.731.0 725 | '@smithy/protocol-http': 5.0.1 726 | '@smithy/types': 4.1.0 727 | tslib: 2.8.1 728 | 729 | '@aws-sdk/middleware-flexible-checksums@3.732.0': 730 | dependencies: 731 | '@aws-crypto/crc32': 5.2.0 732 | '@aws-crypto/crc32c': 5.2.0 733 | '@aws-crypto/util': 5.2.0 734 | '@aws-sdk/core': 3.731.0 735 | '@aws-sdk/types': 3.731.0 736 | '@smithy/is-array-buffer': 4.0.0 737 | '@smithy/node-config-provider': 4.0.1 738 | '@smithy/protocol-http': 5.0.1 739 | '@smithy/types': 4.1.0 740 | '@smithy/util-middleware': 4.0.1 741 | '@smithy/util-stream': 4.0.2 742 | '@smithy/util-utf8': 4.0.0 743 | tslib: 2.8.1 744 | 745 | '@aws-sdk/middleware-host-header@3.731.0': 746 | dependencies: 747 | '@aws-sdk/types': 3.731.0 748 | '@smithy/protocol-http': 5.0.1 749 | '@smithy/types': 4.1.0 750 | tslib: 2.8.1 751 | 752 | '@aws-sdk/middleware-location-constraint@3.731.0': 753 | dependencies: 754 | '@aws-sdk/types': 3.731.0 755 | '@smithy/types': 4.1.0 756 | tslib: 2.8.1 757 | 758 | '@aws-sdk/middleware-logger@3.731.0': 759 | dependencies: 760 | '@aws-sdk/types': 3.731.0 761 | '@smithy/types': 4.1.0 762 | tslib: 2.8.1 763 | 764 | '@aws-sdk/middleware-recursion-detection@3.731.0': 765 | dependencies: 766 | '@aws-sdk/types': 3.731.0 767 | '@smithy/protocol-http': 5.0.1 768 | '@smithy/types': 4.1.0 769 | tslib: 2.8.1 770 | 771 | '@aws-sdk/middleware-sdk-s3@3.731.0': 772 | dependencies: 773 | '@aws-sdk/core': 3.731.0 774 | '@aws-sdk/types': 3.731.0 775 | '@aws-sdk/util-arn-parser': 3.723.0 776 | '@smithy/core': 3.1.1 777 | '@smithy/node-config-provider': 4.0.1 778 | '@smithy/protocol-http': 5.0.1 779 | '@smithy/signature-v4': 5.0.1 780 | '@smithy/smithy-client': 4.1.2 781 | '@smithy/types': 4.1.0 782 | '@smithy/util-config-provider': 4.0.0 783 | '@smithy/util-middleware': 4.0.1 784 | '@smithy/util-stream': 4.0.2 785 | '@smithy/util-utf8': 4.0.0 786 | tslib: 2.8.1 787 | 788 | '@aws-sdk/middleware-ssec@3.731.0': 789 | dependencies: 790 | '@aws-sdk/types': 3.731.0 791 | '@smithy/types': 4.1.0 792 | tslib: 2.8.1 793 | 794 | '@aws-sdk/middleware-user-agent@3.731.0': 795 | dependencies: 796 | '@aws-sdk/core': 3.731.0 797 | '@aws-sdk/types': 3.731.0 798 | '@aws-sdk/util-endpoints': 3.731.0 799 | '@smithy/core': 3.1.1 800 | '@smithy/protocol-http': 5.0.1 801 | '@smithy/types': 4.1.0 802 | tslib: 2.8.1 803 | 804 | '@aws-sdk/nested-clients@3.731.1': 805 | dependencies: 806 | '@aws-crypto/sha256-browser': 5.2.0 807 | '@aws-crypto/sha256-js': 5.2.0 808 | '@aws-sdk/core': 3.731.0 809 | '@aws-sdk/middleware-host-header': 3.731.0 810 | '@aws-sdk/middleware-logger': 3.731.0 811 | '@aws-sdk/middleware-recursion-detection': 3.731.0 812 | '@aws-sdk/middleware-user-agent': 3.731.0 813 | '@aws-sdk/region-config-resolver': 3.731.0 814 | '@aws-sdk/types': 3.731.0 815 | '@aws-sdk/util-endpoints': 3.731.0 816 | '@aws-sdk/util-user-agent-browser': 3.731.0 817 | '@aws-sdk/util-user-agent-node': 3.731.0 818 | '@smithy/config-resolver': 4.0.1 819 | '@smithy/core': 3.1.1 820 | '@smithy/fetch-http-handler': 5.0.1 821 | '@smithy/hash-node': 4.0.1 822 | '@smithy/invalid-dependency': 4.0.1 823 | '@smithy/middleware-content-length': 4.0.1 824 | '@smithy/middleware-endpoint': 4.0.2 825 | '@smithy/middleware-retry': 4.0.3 826 | '@smithy/middleware-serde': 4.0.1 827 | '@smithy/middleware-stack': 4.0.1 828 | '@smithy/node-config-provider': 4.0.1 829 | '@smithy/node-http-handler': 4.0.2 830 | '@smithy/protocol-http': 5.0.1 831 | '@smithy/smithy-client': 4.1.2 832 | '@smithy/types': 4.1.0 833 | '@smithy/url-parser': 4.0.1 834 | '@smithy/util-base64': 4.0.0 835 | '@smithy/util-body-length-browser': 4.0.0 836 | '@smithy/util-body-length-node': 4.0.0 837 | '@smithy/util-defaults-mode-browser': 4.0.3 838 | '@smithy/util-defaults-mode-node': 4.0.3 839 | '@smithy/util-endpoints': 3.0.1 840 | '@smithy/util-middleware': 4.0.1 841 | '@smithy/util-retry': 4.0.1 842 | '@smithy/util-utf8': 4.0.0 843 | tslib: 2.8.1 844 | transitivePeerDependencies: 845 | - aws-crt 846 | 847 | '@aws-sdk/region-config-resolver@3.731.0': 848 | dependencies: 849 | '@aws-sdk/types': 3.731.0 850 | '@smithy/node-config-provider': 4.0.1 851 | '@smithy/types': 4.1.0 852 | '@smithy/util-config-provider': 4.0.0 853 | '@smithy/util-middleware': 4.0.1 854 | tslib: 2.8.1 855 | 856 | '@aws-sdk/signature-v4-multi-region@3.731.0': 857 | dependencies: 858 | '@aws-sdk/middleware-sdk-s3': 3.731.0 859 | '@aws-sdk/types': 3.731.0 860 | '@smithy/protocol-http': 5.0.1 861 | '@smithy/signature-v4': 5.0.1 862 | '@smithy/types': 4.1.0 863 | tslib: 2.8.1 864 | 865 | '@aws-sdk/token-providers@3.731.1': 866 | dependencies: 867 | '@aws-sdk/nested-clients': 3.731.1 868 | '@aws-sdk/types': 3.731.0 869 | '@smithy/property-provider': 4.0.1 870 | '@smithy/shared-ini-file-loader': 4.0.1 871 | '@smithy/types': 4.1.0 872 | tslib: 2.8.1 873 | transitivePeerDependencies: 874 | - aws-crt 875 | 876 | '@aws-sdk/types@3.731.0': 877 | dependencies: 878 | '@smithy/types': 4.1.0 879 | tslib: 2.8.1 880 | 881 | '@aws-sdk/util-arn-parser@3.723.0': 882 | dependencies: 883 | tslib: 2.8.1 884 | 885 | '@aws-sdk/util-endpoints@3.731.0': 886 | dependencies: 887 | '@aws-sdk/types': 3.731.0 888 | '@smithy/types': 4.1.0 889 | '@smithy/util-endpoints': 3.0.1 890 | tslib: 2.8.1 891 | 892 | '@aws-sdk/util-locate-window@3.723.0': 893 | dependencies: 894 | tslib: 2.8.1 895 | 896 | '@aws-sdk/util-user-agent-browser@3.731.0': 897 | dependencies: 898 | '@aws-sdk/types': 3.731.0 899 | '@smithy/types': 4.1.0 900 | bowser: 2.11.0 901 | tslib: 2.8.1 902 | 903 | '@aws-sdk/util-user-agent-node@3.731.0': 904 | dependencies: 905 | '@aws-sdk/middleware-user-agent': 3.731.0 906 | '@aws-sdk/types': 3.731.0 907 | '@smithy/node-config-provider': 4.0.1 908 | '@smithy/types': 4.1.0 909 | tslib: 2.8.1 910 | 911 | '@aws-sdk/xml-builder@3.723.0': 912 | dependencies: 913 | '@smithy/types': 4.1.0 914 | tslib: 2.8.1 915 | 916 | '@smithy/abort-controller@4.0.1': 917 | dependencies: 918 | '@smithy/types': 4.1.0 919 | tslib: 2.8.1 920 | 921 | '@smithy/chunked-blob-reader-native@4.0.0': 922 | dependencies: 923 | '@smithy/util-base64': 4.0.0 924 | tslib: 2.8.1 925 | 926 | '@smithy/chunked-blob-reader@5.0.0': 927 | dependencies: 928 | tslib: 2.8.1 929 | 930 | '@smithy/config-resolver@4.0.1': 931 | dependencies: 932 | '@smithy/node-config-provider': 4.0.1 933 | '@smithy/types': 4.1.0 934 | '@smithy/util-config-provider': 4.0.0 935 | '@smithy/util-middleware': 4.0.1 936 | tslib: 2.8.1 937 | 938 | '@smithy/core@3.1.1': 939 | dependencies: 940 | '@smithy/middleware-serde': 4.0.1 941 | '@smithy/protocol-http': 5.0.1 942 | '@smithy/types': 4.1.0 943 | '@smithy/util-body-length-browser': 4.0.0 944 | '@smithy/util-middleware': 4.0.1 945 | '@smithy/util-stream': 4.0.2 946 | '@smithy/util-utf8': 4.0.0 947 | tslib: 2.8.1 948 | 949 | '@smithy/credential-provider-imds@4.0.1': 950 | dependencies: 951 | '@smithy/node-config-provider': 4.0.1 952 | '@smithy/property-provider': 4.0.1 953 | '@smithy/types': 4.1.0 954 | '@smithy/url-parser': 4.0.1 955 | tslib: 2.8.1 956 | 957 | '@smithy/eventstream-codec@4.0.1': 958 | dependencies: 959 | '@aws-crypto/crc32': 5.2.0 960 | '@smithy/types': 4.1.0 961 | '@smithy/util-hex-encoding': 4.0.0 962 | tslib: 2.8.1 963 | 964 | '@smithy/eventstream-serde-browser@4.0.1': 965 | dependencies: 966 | '@smithy/eventstream-serde-universal': 4.0.1 967 | '@smithy/types': 4.1.0 968 | tslib: 2.8.1 969 | 970 | '@smithy/eventstream-serde-config-resolver@4.0.1': 971 | dependencies: 972 | '@smithy/types': 4.1.0 973 | tslib: 2.8.1 974 | 975 | '@smithy/eventstream-serde-node@4.0.1': 976 | dependencies: 977 | '@smithy/eventstream-serde-universal': 4.0.1 978 | '@smithy/types': 4.1.0 979 | tslib: 2.8.1 980 | 981 | '@smithy/eventstream-serde-universal@4.0.1': 982 | dependencies: 983 | '@smithy/eventstream-codec': 4.0.1 984 | '@smithy/types': 4.1.0 985 | tslib: 2.8.1 986 | 987 | '@smithy/fetch-http-handler@5.0.1': 988 | dependencies: 989 | '@smithy/protocol-http': 5.0.1 990 | '@smithy/querystring-builder': 4.0.1 991 | '@smithy/types': 4.1.0 992 | '@smithy/util-base64': 4.0.0 993 | tslib: 2.8.1 994 | 995 | '@smithy/hash-blob-browser@4.0.1': 996 | dependencies: 997 | '@smithy/chunked-blob-reader': 5.0.0 998 | '@smithy/chunked-blob-reader-native': 4.0.0 999 | '@smithy/types': 4.1.0 1000 | tslib: 2.8.1 1001 | 1002 | '@smithy/hash-node@4.0.1': 1003 | dependencies: 1004 | '@smithy/types': 4.1.0 1005 | '@smithy/util-buffer-from': 4.0.0 1006 | '@smithy/util-utf8': 4.0.0 1007 | tslib: 2.8.1 1008 | 1009 | '@smithy/hash-stream-node@4.0.1': 1010 | dependencies: 1011 | '@smithy/types': 4.1.0 1012 | '@smithy/util-utf8': 4.0.0 1013 | tslib: 2.8.1 1014 | 1015 | '@smithy/invalid-dependency@4.0.1': 1016 | dependencies: 1017 | '@smithy/types': 4.1.0 1018 | tslib: 2.8.1 1019 | 1020 | '@smithy/is-array-buffer@2.2.0': 1021 | dependencies: 1022 | tslib: 2.8.1 1023 | 1024 | '@smithy/is-array-buffer@4.0.0': 1025 | dependencies: 1026 | tslib: 2.8.1 1027 | 1028 | '@smithy/md5-js@4.0.1': 1029 | dependencies: 1030 | '@smithy/types': 4.1.0 1031 | '@smithy/util-utf8': 4.0.0 1032 | tslib: 2.8.1 1033 | 1034 | '@smithy/middleware-content-length@4.0.1': 1035 | dependencies: 1036 | '@smithy/protocol-http': 5.0.1 1037 | '@smithy/types': 4.1.0 1038 | tslib: 2.8.1 1039 | 1040 | '@smithy/middleware-endpoint@4.0.2': 1041 | dependencies: 1042 | '@smithy/core': 3.1.1 1043 | '@smithy/middleware-serde': 4.0.1 1044 | '@smithy/node-config-provider': 4.0.1 1045 | '@smithy/shared-ini-file-loader': 4.0.1 1046 | '@smithy/types': 4.1.0 1047 | '@smithy/url-parser': 4.0.1 1048 | '@smithy/util-middleware': 4.0.1 1049 | tslib: 2.8.1 1050 | 1051 | '@smithy/middleware-retry@4.0.3': 1052 | dependencies: 1053 | '@smithy/node-config-provider': 4.0.1 1054 | '@smithy/protocol-http': 5.0.1 1055 | '@smithy/service-error-classification': 4.0.1 1056 | '@smithy/smithy-client': 4.1.2 1057 | '@smithy/types': 4.1.0 1058 | '@smithy/util-middleware': 4.0.1 1059 | '@smithy/util-retry': 4.0.1 1060 | tslib: 2.8.1 1061 | uuid: 9.0.1 1062 | 1063 | '@smithy/middleware-serde@4.0.1': 1064 | dependencies: 1065 | '@smithy/types': 4.1.0 1066 | tslib: 2.8.1 1067 | 1068 | '@smithy/middleware-stack@4.0.1': 1069 | dependencies: 1070 | '@smithy/types': 4.1.0 1071 | tslib: 2.8.1 1072 | 1073 | '@smithy/node-config-provider@4.0.1': 1074 | dependencies: 1075 | '@smithy/property-provider': 4.0.1 1076 | '@smithy/shared-ini-file-loader': 4.0.1 1077 | '@smithy/types': 4.1.0 1078 | tslib: 2.8.1 1079 | 1080 | '@smithy/node-http-handler@4.0.2': 1081 | dependencies: 1082 | '@smithy/abort-controller': 4.0.1 1083 | '@smithy/protocol-http': 5.0.1 1084 | '@smithy/querystring-builder': 4.0.1 1085 | '@smithy/types': 4.1.0 1086 | tslib: 2.8.1 1087 | 1088 | '@smithy/property-provider@4.0.1': 1089 | dependencies: 1090 | '@smithy/types': 4.1.0 1091 | tslib: 2.8.1 1092 | 1093 | '@smithy/protocol-http@5.0.1': 1094 | dependencies: 1095 | '@smithy/types': 4.1.0 1096 | tslib: 2.8.1 1097 | 1098 | '@smithy/querystring-builder@4.0.1': 1099 | dependencies: 1100 | '@smithy/types': 4.1.0 1101 | '@smithy/util-uri-escape': 4.0.0 1102 | tslib: 2.8.1 1103 | 1104 | '@smithy/querystring-parser@4.0.1': 1105 | dependencies: 1106 | '@smithy/types': 4.1.0 1107 | tslib: 2.8.1 1108 | 1109 | '@smithy/service-error-classification@4.0.1': 1110 | dependencies: 1111 | '@smithy/types': 4.1.0 1112 | 1113 | '@smithy/shared-ini-file-loader@4.0.1': 1114 | dependencies: 1115 | '@smithy/types': 4.1.0 1116 | tslib: 2.8.1 1117 | 1118 | '@smithy/signature-v4@5.0.1': 1119 | dependencies: 1120 | '@smithy/is-array-buffer': 4.0.0 1121 | '@smithy/protocol-http': 5.0.1 1122 | '@smithy/types': 4.1.0 1123 | '@smithy/util-hex-encoding': 4.0.0 1124 | '@smithy/util-middleware': 4.0.1 1125 | '@smithy/util-uri-escape': 4.0.0 1126 | '@smithy/util-utf8': 4.0.0 1127 | tslib: 2.8.1 1128 | 1129 | '@smithy/smithy-client@4.1.2': 1130 | dependencies: 1131 | '@smithy/core': 3.1.1 1132 | '@smithy/middleware-endpoint': 4.0.2 1133 | '@smithy/middleware-stack': 4.0.1 1134 | '@smithy/protocol-http': 5.0.1 1135 | '@smithy/types': 4.1.0 1136 | '@smithy/util-stream': 4.0.2 1137 | tslib: 2.8.1 1138 | 1139 | '@smithy/types@4.1.0': 1140 | dependencies: 1141 | tslib: 2.8.1 1142 | 1143 | '@smithy/url-parser@4.0.1': 1144 | dependencies: 1145 | '@smithy/querystring-parser': 4.0.1 1146 | '@smithy/types': 4.1.0 1147 | tslib: 2.8.1 1148 | 1149 | '@smithy/util-base64@4.0.0': 1150 | dependencies: 1151 | '@smithy/util-buffer-from': 4.0.0 1152 | '@smithy/util-utf8': 4.0.0 1153 | tslib: 2.8.1 1154 | 1155 | '@smithy/util-body-length-browser@4.0.0': 1156 | dependencies: 1157 | tslib: 2.8.1 1158 | 1159 | '@smithy/util-body-length-node@4.0.0': 1160 | dependencies: 1161 | tslib: 2.8.1 1162 | 1163 | '@smithy/util-buffer-from@2.2.0': 1164 | dependencies: 1165 | '@smithy/is-array-buffer': 2.2.0 1166 | tslib: 2.8.1 1167 | 1168 | '@smithy/util-buffer-from@4.0.0': 1169 | dependencies: 1170 | '@smithy/is-array-buffer': 4.0.0 1171 | tslib: 2.8.1 1172 | 1173 | '@smithy/util-config-provider@4.0.0': 1174 | dependencies: 1175 | tslib: 2.8.1 1176 | 1177 | '@smithy/util-defaults-mode-browser@4.0.3': 1178 | dependencies: 1179 | '@smithy/property-provider': 4.0.1 1180 | '@smithy/smithy-client': 4.1.2 1181 | '@smithy/types': 4.1.0 1182 | bowser: 2.11.0 1183 | tslib: 2.8.1 1184 | 1185 | '@smithy/util-defaults-mode-node@4.0.3': 1186 | dependencies: 1187 | '@smithy/config-resolver': 4.0.1 1188 | '@smithy/credential-provider-imds': 4.0.1 1189 | '@smithy/node-config-provider': 4.0.1 1190 | '@smithy/property-provider': 4.0.1 1191 | '@smithy/smithy-client': 4.1.2 1192 | '@smithy/types': 4.1.0 1193 | tslib: 2.8.1 1194 | 1195 | '@smithy/util-endpoints@3.0.1': 1196 | dependencies: 1197 | '@smithy/node-config-provider': 4.0.1 1198 | '@smithy/types': 4.1.0 1199 | tslib: 2.8.1 1200 | 1201 | '@smithy/util-hex-encoding@4.0.0': 1202 | dependencies: 1203 | tslib: 2.8.1 1204 | 1205 | '@smithy/util-middleware@4.0.1': 1206 | dependencies: 1207 | '@smithy/types': 4.1.0 1208 | tslib: 2.8.1 1209 | 1210 | '@smithy/util-retry@4.0.1': 1211 | dependencies: 1212 | '@smithy/service-error-classification': 4.0.1 1213 | '@smithy/types': 4.1.0 1214 | tslib: 2.8.1 1215 | 1216 | '@smithy/util-stream@4.0.2': 1217 | dependencies: 1218 | '@smithy/fetch-http-handler': 5.0.1 1219 | '@smithy/node-http-handler': 4.0.2 1220 | '@smithy/types': 4.1.0 1221 | '@smithy/util-base64': 4.0.0 1222 | '@smithy/util-buffer-from': 4.0.0 1223 | '@smithy/util-hex-encoding': 4.0.0 1224 | '@smithy/util-utf8': 4.0.0 1225 | tslib: 2.8.1 1226 | 1227 | '@smithy/util-uri-escape@4.0.0': 1228 | dependencies: 1229 | tslib: 2.8.1 1230 | 1231 | '@smithy/util-utf8@2.3.0': 1232 | dependencies: 1233 | '@smithy/util-buffer-from': 2.2.0 1234 | tslib: 2.8.1 1235 | 1236 | '@smithy/util-utf8@4.0.0': 1237 | dependencies: 1238 | '@smithy/util-buffer-from': 4.0.0 1239 | tslib: 2.8.1 1240 | 1241 | '@smithy/util-waiter@4.0.2': 1242 | dependencies: 1243 | '@smithy/abort-controller': 4.0.1 1244 | '@smithy/types': 4.1.0 1245 | tslib: 2.8.1 1246 | 1247 | '@types/amqplib@0.10.6': 1248 | dependencies: 1249 | '@types/node': 22.10.7 1250 | 1251 | '@types/node@22.10.7': 1252 | dependencies: 1253 | undici-types: 6.20.0 1254 | 1255 | amqplib@0.10.5: 1256 | dependencies: 1257 | '@acuminous/bitsyntax': 0.1.2 1258 | buffer-more-ints: 1.0.0 1259 | url-parse: 1.5.10 1260 | transitivePeerDependencies: 1261 | - supports-color 1262 | 1263 | bowser@2.11.0: {} 1264 | 1265 | buffer-more-ints@1.0.0: {} 1266 | 1267 | debug@4.4.0: 1268 | dependencies: 1269 | ms: 2.1.3 1270 | 1271 | fast-xml-parser@4.4.1: 1272 | dependencies: 1273 | strnum: 1.0.5 1274 | 1275 | ms@2.1.3: {} 1276 | 1277 | querystringify@2.2.0: {} 1278 | 1279 | requires-port@1.0.0: {} 1280 | 1281 | safe-buffer@5.1.2: {} 1282 | 1283 | strnum@1.0.5: {} 1284 | 1285 | tslib@2.8.1: {} 1286 | 1287 | undici-types@6.20.0: {} 1288 | 1289 | url-parse@1.5.10: 1290 | dependencies: 1291 | querystringify: 2.2.0 1292 | requires-port: 1.0.0 1293 | 1294 | uuid@9.0.1: {} 1295 | --------------------------------------------------------------------------------