├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── bin └── aws-microservices.ts ├── cdk.json ├── jest.config.js ├── lib ├── apigateway.ts ├── aws-microservices-stack.ts ├── database.ts ├── eventbus.ts ├── microservice.ts └── queue.ts ├── package-lock.json ├── package.json ├── src ├── basket │ ├── checkoutbasketevents.json │ ├── ddbClient.js │ ├── eventBridgeClient.js │ ├── index.js │ ├── package-lock.json │ └── package.json ├── ordering │ ├── ddbClient.js │ ├── index.js │ ├── package-lock.json │ └── package.json └── product │ ├── ddbClient.js │ ├── index.js │ ├── package-lock.json │ └── package.json ├── test └── aws-microservices.test.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | !jest.config.js 2 | *.d.ts 3 | node_modules 4 | 5 | # CDK asset staging directory 6 | .cdk.staging 7 | cdk.out -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | *.ts 2 | !*.d.ts 3 | 4 | # CDK asset staging directory 5 | .cdk.staging 6 | cdk.out 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 awsrun 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Serverless Event-driven E-commerce Microservices 2 | 3 | **UDEMY COURSE WITH DISCOUNTED - Step by Step Development of this Repository -> https://www.udemy.com/course/aws-serverless-microservices-lambda-eventbridge-sqs-apigateway/?couponCode=MAYY25** 4 | 5 | ![course2](https://user-images.githubusercontent.com/1147445/158019166-96732203-6642-4242-b1d9-d53ece2e1ed3.png) 6 | 7 | This is a Serverless Event-driven E-commerce project for TypeScript development with CDK. 8 | The `cdk.json` file tells the CDK Toolkit how to execute your app. 9 | 10 | ### Check Explanation of this Repository on Medium 11 | * [AWS Event-driven Serverless Microservices using AWS Lambda, API Gateway, EventBridge, SQS, DynamoDB and CDK for IaC](https://mehmetozkaya.medium.com/aws-event-driven-serverless-microservices-using-aws-lambda-api-gateway-eventbridge-sqs-dynamodb-a7f46220b738) 12 | * [See All Articles - AWS Serverless Microservices with Patterns & Best Practices](https://medium.com/aws-serverless-microservices-with-patterns-best) 13 | 14 | ## Whats Including In This Repository 15 | We will be following the reference architecture above which is a real-world **Serverless E-commerce application** and it includes; 16 | 17 | * **REST API** and **CRUD** endpoints with using **AWS Lambda, API Gateway** 18 | * **Data persistence** with using **AWS DynamoDB** 19 | * **Decouple microservices** with events using **Amazon EventBridge** 20 | * **Message Queues** for cross-service communication using **AWS SQS** 21 | * **Cloud stack development** with **IaC** using **AWS CloudFormation and AWS CDK** 22 | 23 | ## Prerequisites 24 | You will need the following tools: 25 | 26 | * AWS Account and User 27 | * AWS CLI 28 | * NodeJS 29 | * AWS CDK Toolkit 30 | * Docker 31 | 32 | ### Run The Project 33 | Follow these steps to get your development environment set up: (Before Run Start the Docker Desktop) 34 | 1. Clone the repository 35 | 2. At the root directory which include **cdk.json** files, run below command: 36 | ```csharp 37 | cdk deploy 38 | ``` 39 | >Note: Make sure that your Docker Desktop is running before execute the cdk deploy command. 40 | 41 | 4. Wait for provision all microservices into aws cloud. That’s it! 42 | 43 | 5. You can **launch microservices** as below urls: 44 | 45 | * **Product API -> https://xxx.execute-api.ap-southeast-1.amazonaws.com/prod/product** 46 | * **Basket API -> https://xxx.execute-api.ap-southeast-1.amazonaws.com/prod/basket** 47 | * **Ordering API -> https://xxx.execute-api.ap-southeast-1.amazonaws.com/prod/order** 48 | 49 | ## Useful commands 50 | 51 | * `npm run build` compile typescript to js 52 | * `npm run watch` watch for changes and compile 53 | * `npm run test` perform the jest unit tests 54 | * `cdk deploy` deploy this stack to your default AWS account/region 55 | * `cdk diff` compare deployed stack with current state 56 | * `cdk synth` emits the synthesized CloudFormation template 57 | 58 | ## Authors 59 | 60 | * **Mehmet Ozkaya** - *Initial work* - [mehmetozkaya](https://github.com/mehmetozkaya) 61 | 62 | See also the list of [contributors](https://github.com/aspnetrun/run-core/contributors) who participated in this project. Check also [gihtub page of repository.](https://aspnetrun.github.io/run-aspnetcore-angular-realworld/) 63 | -------------------------------------------------------------------------------- /bin/aws-microservices.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import 'source-map-support/register'; 3 | import * as cdk from 'aws-cdk-lib'; 4 | import { AwsMicroservicesStack } from '../lib/aws-microservices-stack'; 5 | 6 | const app = new cdk.App(); 7 | new AwsMicroservicesStack(app, 'AwsMicroservicesStack', { 8 | /* If you don't specify 'env', this stack will be environment-agnostic. 9 | * Account/Region-dependent features and context lookups will not work, 10 | * but a single synthesized template can be deployed anywhere. */ 11 | 12 | /* Uncomment the next line to specialize this stack for the AWS Account 13 | * and Region that are implied by the current CLI configuration. */ 14 | // env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION }, 15 | 16 | /* Uncomment the next line if you know exactly what Account and Region you 17 | * want to deploy the stack to. */ 18 | // env: { account: '123456789012', region: 'us-east-1' }, 19 | 20 | /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */ 21 | }); -------------------------------------------------------------------------------- /cdk.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "npx ts-node --prefer-ts-exts bin/aws-microservices.ts", 3 | "watch": { 4 | "include": [ 5 | "**" 6 | ], 7 | "exclude": [ 8 | "README.md", 9 | "cdk*.json", 10 | "**/*.d.ts", 11 | "**/*.js", 12 | "tsconfig.json", 13 | "package*.json", 14 | "yarn.lock", 15 | "node_modules", 16 | "test" 17 | ] 18 | }, 19 | "context": { 20 | "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, 21 | "@aws-cdk/core:stackRelativeExports": true, 22 | "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, 23 | "@aws-cdk/aws-lambda:recognizeVersionProps": true, 24 | "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, 25 | "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, 26 | "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, 27 | "@aws-cdk/core:target-partitions": [ 28 | "aws", 29 | "aws-cn" 30 | ] 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testEnvironment: 'node', 3 | roots: ['/test'], 4 | testMatch: ['**/*.test.ts'], 5 | transform: { 6 | '^.+\\.tsx?$': 'ts-jest' 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /lib/apigateway.ts: -------------------------------------------------------------------------------- 1 | import { LambdaRestApi } from "aws-cdk-lib/aws-apigateway"; 2 | import { IFunction } from "aws-cdk-lib/aws-lambda"; 3 | import { Construct } from "constructs"; 4 | 5 | interface SwnApiGatewayProps { 6 | productMicroservice: IFunction, 7 | basketMicroservice: IFunction, 8 | orderingMicroservices: IFunction 9 | } 10 | 11 | export class SwnApiGateway extends Construct { 12 | 13 | constructor(scope: Construct, id: string, props: SwnApiGatewayProps) { 14 | super(scope, id); 15 | 16 | // Product api gateway 17 | this.createProductApi(props.productMicroservice); 18 | // Basket api gateway 19 | this.createBasketApi(props.basketMicroservice); 20 | // Ordering api gateway 21 | this.createOrderApi(props.orderingMicroservices); 22 | } 23 | 24 | private createProductApi(productMicroservice: IFunction) { 25 | // Product microservices api gateway 26 | // root name = product 27 | 28 | // GET /product 29 | // POST /product 30 | 31 | // Single product with id parameter 32 | // GET /product/{id} 33 | // PUT /product/{id} 34 | // DELETE /product/{id} 35 | 36 | const apigw = new LambdaRestApi(this, 'productApi', { 37 | restApiName: 'Product Service', 38 | handler: productMicroservice, 39 | proxy: false 40 | }); 41 | 42 | const product = apigw.root.addResource('product'); 43 | product.addMethod('GET'); // GET /product 44 | product.addMethod('POST'); // POST /product 45 | 46 | const singleProduct = product.addResource('{id}'); // product/{id} 47 | singleProduct.addMethod('GET'); // GET /product/{id} 48 | singleProduct.addMethod('PUT'); // PUT /product/{id} 49 | singleProduct.addMethod('DELETE'); // DELETE /product/{id} 50 | } 51 | 52 | private createBasketApi(basketMicroservice: IFunction) { 53 | // Basket microservices api gateway 54 | // root name = basket 55 | 56 | // GET /basket 57 | // POST /basket 58 | 59 | // // Single basket with userName parameter - resource name = basket/{userName} 60 | // GET /basket/{userName} 61 | // DELETE /basket/{userName} 62 | 63 | // checkout basket async flow 64 | // POST /basket/checkout 65 | 66 | const apigw = new LambdaRestApi(this, 'basketApi', { 67 | restApiName: 'Basket Service', 68 | handler: basketMicroservice, 69 | proxy: false 70 | }); 71 | 72 | const basket = apigw.root.addResource('basket'); 73 | basket.addMethod('GET'); // GET /basket 74 | basket.addMethod('POST'); // POST /basket 75 | 76 | const singleBasket = basket.addResource('{userName}'); 77 | singleBasket.addMethod('GET'); // GET /basket/{userName} 78 | singleBasket.addMethod('DELETE'); // DELETE /basket/{userName} 79 | 80 | const basketCheckout = basket.addResource('checkout'); 81 | basketCheckout.addMethod('POST'); // POST /basket/checkout 82 | // expected request payload : { userName : swn } 83 | } 84 | 85 | private createOrderApi(orderingMicroservices: IFunction) { 86 | // Ordering microservices api gateway 87 | // root name = order 88 | 89 | // GET /order 90 | // GET /order/{userName} 91 | // expected request : xxx/order/swn?orderDate=timestamp 92 | // ordering ms grap input and query parameters and filter to dynamo db 93 | 94 | const apigw = new LambdaRestApi(this, 'orderApi', { 95 | restApiName: 'Order Service', 96 | handler: orderingMicroservices, 97 | proxy: false 98 | }); 99 | 100 | const order = apigw.root.addResource('order'); 101 | order.addMethod('GET'); // GET /order 102 | 103 | const singleOrder = order.addResource('{userName}'); 104 | singleOrder.addMethod('GET'); // GET /order/{userName} 105 | // expected request : xxx/order/swn?orderDate=timestamp 106 | // ordering ms grap input and query parameters and filter to dynamo db 107 | 108 | return singleOrder; 109 | } 110 | } -------------------------------------------------------------------------------- /lib/aws-microservices-stack.ts: -------------------------------------------------------------------------------- 1 | import { Stack, StackProps } from 'aws-cdk-lib'; 2 | import { Construct } from 'constructs'; 3 | import { SwnApiGateway } from './apigateway'; 4 | import { SwnDatabase } from './database'; 5 | import { SwnEventBus } from './eventbus'; 6 | import { SwnMicroservices } from './microservice'; 7 | import { SwnQueue } from './queue'; 8 | 9 | export class AwsMicroservicesStack extends Stack { 10 | constructor(scope: Construct, id: string, props?: StackProps) { 11 | super(scope, id, props); 12 | 13 | const database = new SwnDatabase(this, 'Database'); 14 | 15 | const microservices = new SwnMicroservices(this, 'Microservices', { 16 | productTable: database.productTable, 17 | basketTable: database.basketTable, 18 | orderTable: database.orderTable 19 | }); 20 | 21 | const apigateway = new SwnApiGateway(this, 'ApiGateway', { 22 | productMicroservice: microservices.productMicroservice, 23 | basketMicroservice: microservices.basketMicroservice, 24 | orderingMicroservices: microservices.orderingMicroservice 25 | }); 26 | 27 | const queue = new SwnQueue(this, 'Queue', { 28 | consumer: microservices.orderingMicroservice 29 | }); 30 | 31 | const eventbus = new SwnEventBus(this, 'EventBus', { 32 | publisherFuntion: microservices.basketMicroservice, 33 | targetQueue: queue.orderQueue 34 | }); 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/database.ts: -------------------------------------------------------------------------------- 1 | import { RemovalPolicy } from "aws-cdk-lib"; 2 | import { AttributeType, BillingMode, ITable, Table } from "aws-cdk-lib/aws-dynamodb"; 3 | import { Construct } from "constructs"; 4 | 5 | export class SwnDatabase extends Construct { 6 | 7 | public readonly productTable: ITable; 8 | public readonly basketTable: ITable; 9 | public readonly orderTable: ITable; 10 | 11 | constructor(scope: Construct, id: string) { 12 | super(scope, id); 13 | 14 | //product table 15 | this.productTable = this.createProductTable(); 16 | //basket table 17 | this.basketTable = this.createBasketTable(); 18 | //order table 19 | this.orderTable = this.createOrderTable(); 20 | } 21 | 22 | // Product DynamoDb Table Creation 23 | // product : PK: id -- name - description - imageFile - price - category 24 | private createProductTable() : ITable { 25 | const productTable = new Table(this, 'product', { 26 | partitionKey: { 27 | name: 'id', 28 | type: AttributeType.STRING 29 | }, 30 | tableName: 'product', 31 | removalPolicy: RemovalPolicy.DESTROY, 32 | billingMode: BillingMode.PAY_PER_REQUEST 33 | }); 34 | return productTable; 35 | } 36 | 37 | // Basket DynamoDb Table Creation 38 | // basket : PK: userName -- items (SET-MAP object) 39 | // item1 - { quantity - color - price - productId - productName } 40 | // item2 - { quantity - color - price - productId - productName } 41 | private createBasketTable() : ITable { 42 | const basketTable = new Table(this, 'basket', { 43 | partitionKey: { 44 | name: 'userName', 45 | type: AttributeType.STRING, 46 | }, 47 | tableName: 'basket', 48 | removalPolicy: RemovalPolicy.DESTROY, 49 | billingMode: BillingMode.PAY_PER_REQUEST 50 | }); 51 | return basketTable; 52 | } 53 | 54 | // Order DynamoDb Table Creation 55 | // order : PK: userName - SK: orderDate -- totalPrice - firstName - lastName - email - address - paymentMethod - cardInfo 56 | private createOrderTable() : ITable { 57 | const orderTable = new Table(this, 'order', { 58 | partitionKey: { 59 | name: 'userName', 60 | type: AttributeType.STRING, 61 | }, 62 | sortKey: { 63 | name: 'orderDate', 64 | type: AttributeType.STRING, 65 | }, 66 | tableName: 'order', 67 | removalPolicy: RemovalPolicy.DESTROY, 68 | billingMode: BillingMode.PAY_PER_REQUEST 69 | }); 70 | return orderTable; 71 | } 72 | 73 | } 74 | 75 | -------------------------------------------------------------------------------- /lib/eventbus.ts: -------------------------------------------------------------------------------- 1 | import { EventBus, Rule } from "aws-cdk-lib/aws-events"; 2 | import { SqsQueue } from "aws-cdk-lib/aws-events-targets"; 3 | import { IFunction } from "aws-cdk-lib/aws-lambda"; 4 | import { IQueue } from "aws-cdk-lib/aws-sqs"; 5 | import { Construct } from "constructs"; 6 | 7 | interface SwnEventBusProps { 8 | publisherFuntion: IFunction; 9 | targetQueue: IQueue; 10 | } 11 | 12 | export class SwnEventBus extends Construct { 13 | 14 | constructor(scope: Construct, id: string, props: SwnEventBusProps) { 15 | super(scope, id); 16 | 17 | //eventbus 18 | const bus = new EventBus(this, 'SwnEventBus', { 19 | eventBusName: 'SwnEventBus' 20 | }); 21 | 22 | const checkoutBasketRule = new Rule(this, 'CheckoutBasketRule', { 23 | eventBus: bus, 24 | enabled: true, 25 | description: 'When Basket microservice checkout the basket', 26 | eventPattern: { 27 | source: ['com.swn.basket.checkoutbasket'], 28 | detailType: ['CheckoutBasket'] 29 | }, 30 | ruleName: 'CheckoutBasketRule' 31 | }); 32 | 33 | // // need to pass target to Ordering Lambda service 34 | // checkoutBasketRule.addTarget(new LambdaFunction(props.targetFuntion)); 35 | 36 | // need to pass target to Ordering Lambda service 37 | checkoutBasketRule.addTarget(new SqsQueue(props.targetQueue)); 38 | 39 | bus.grantPutEventsTo(props.publisherFuntion); 40 | // AccessDeniedException - is not authorized to perform: events:PutEvents 41 | 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /lib/microservice.ts: -------------------------------------------------------------------------------- 1 | import { ITable } from "aws-cdk-lib/aws-dynamodb"; 2 | import { Runtime } from "aws-cdk-lib/aws-lambda"; 3 | import { NodejsFunction, NodejsFunctionProps } from "aws-cdk-lib/aws-lambda-nodejs"; 4 | import { Construct } from "constructs"; 5 | import { join } from "path"; 6 | 7 | interface SwnMicroservicesProps { 8 | productTable: ITable; 9 | basketTable: ITable; 10 | orderTable: ITable; 11 | } 12 | 13 | export class SwnMicroservices extends Construct { 14 | 15 | public readonly productMicroservice: NodejsFunction; 16 | public readonly basketMicroservice: NodejsFunction; 17 | public readonly orderingMicroservice: NodejsFunction; 18 | 19 | constructor(scope: Construct, id: string, props: SwnMicroservicesProps) { 20 | super(scope, id); 21 | 22 | // product microservices 23 | this.productMicroservice = this.createProductFunction(props.productTable); 24 | // basket microservices 25 | this.basketMicroservice = this.createBasketFunction(props.basketTable); 26 | // ordering Microservice 27 | this.orderingMicroservice = this.createOrderingFunction(props.orderTable); 28 | } 29 | 30 | private createProductFunction(productTable: ITable) : NodejsFunction { 31 | const nodeJsFunctionProps: NodejsFunctionProps = { 32 | bundling: { 33 | externalModules: [ 34 | 'aws-sdk' 35 | ] 36 | }, 37 | environment: { 38 | PRIMARY_KEY: 'id', 39 | DYNAMODB_TABLE_NAME: productTable.tableName 40 | }, 41 | runtime: Runtime.NODEJS_14_X 42 | } 43 | 44 | // Product microservices lambda function 45 | const productFunction = new NodejsFunction(this, 'productLambdaFunction', { 46 | entry: join(__dirname, `/../src/product/index.js`), 47 | ...nodeJsFunctionProps, 48 | }); 49 | 50 | productTable.grantReadWriteData(productFunction); 51 | 52 | return productFunction; 53 | } 54 | 55 | private createBasketFunction(basketTable: ITable) : NodejsFunction { 56 | const basketFunctionProps: NodejsFunctionProps = { 57 | bundling: { 58 | externalModules: [ 59 | 'aws-sdk', // Use the 'aws-sdk' available in the Lambda runtime 60 | ], 61 | }, 62 | environment: { 63 | PRIMARY_KEY: 'userName', 64 | DYNAMODB_TABLE_NAME: basketTable.tableName, 65 | EVENT_SOURCE: "com.swn.basket.checkoutbasket", 66 | EVENT_DETAILTYPE: "CheckoutBasket", 67 | EVENT_BUSNAME: "SwnEventBus" 68 | }, 69 | runtime: Runtime.NODEJS_14_X, 70 | } 71 | 72 | const basketFunction = new NodejsFunction(this, 'basketLambdaFunction', { 73 | entry: join(__dirname, `/../src/basket/index.js`), 74 | ...basketFunctionProps, 75 | }); 76 | 77 | basketTable.grantReadWriteData(basketFunction); 78 | return basketFunction; 79 | } 80 | 81 | private createOrderingFunction(orderTable: ITable) : NodejsFunction { 82 | const nodeJsFunctionProps: NodejsFunctionProps = { 83 | bundling: { 84 | externalModules: [ 85 | 'aws-sdk', // Use the 'aws-sdk' available in the Lambda runtime 86 | ], 87 | }, 88 | environment: { 89 | PRIMARY_KEY: 'userName', 90 | SORT_KEY: 'orderDate', 91 | DYNAMODB_TABLE_NAME: orderTable.tableName, 92 | }, 93 | runtime: Runtime.NODEJS_14_X, 94 | } 95 | 96 | const orderFunction = new NodejsFunction(this, 'orderingLambdaFunction', { 97 | entry: join(__dirname, `/../src/ordering/index.js`), 98 | ...nodeJsFunctionProps, 99 | }); 100 | 101 | orderTable.grantReadWriteData(orderFunction); 102 | return orderFunction; 103 | } 104 | 105 | } -------------------------------------------------------------------------------- /lib/queue.ts: -------------------------------------------------------------------------------- 1 | import { Duration } from "aws-cdk-lib"; 2 | import { IFunction } from "aws-cdk-lib/aws-lambda"; 3 | import { SqsEventSource } from "aws-cdk-lib/aws-lambda-event-sources"; 4 | import { IQueue, Queue } from "aws-cdk-lib/aws-sqs"; 5 | import { Construct } from "constructs"; 6 | 7 | interface SwnQueueProps { 8 | consumer: IFunction; 9 | } 10 | 11 | export class SwnQueue extends Construct { 12 | 13 | public readonly orderQueue: IQueue; 14 | 15 | constructor(scope: Construct, id: string, props: SwnQueueProps) { 16 | super(scope, id); 17 | 18 | //queue 19 | this.orderQueue = new Queue(this, 'OrderQueue', { 20 | queueName : 'OrderQueue', 21 | visibilityTimeout: Duration.seconds(30) // default value 22 | }); 23 | 24 | props.consumer.addEventSource(new SqsEventSource(this.orderQueue, { 25 | batchSize: 1 26 | })); 27 | } 28 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aws-microservices", 3 | "version": "0.1.0", 4 | "bin": { 5 | "aws-microservices": "bin/aws-microservices.js" 6 | }, 7 | "scripts": { 8 | "build": "tsc", 9 | "watch": "tsc -w", 10 | "test": "jest", 11 | "cdk": "cdk" 12 | }, 13 | "devDependencies": { 14 | "@types/jest": "^26.0.10", 15 | "@types/node": "10.17.27", 16 | "jest": "^26.4.2", 17 | "ts-jest": "^26.2.0", 18 | "aws-cdk": "2.17.0", 19 | "ts-node": "^9.0.0", 20 | "typescript": "~3.9.7" 21 | }, 22 | "dependencies": { 23 | "aws-cdk-lib": "2.17.0", 24 | "constructs": "^10.0.0", 25 | "source-map-support": "^0.5.16" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/basket/checkoutbasketevents.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "Source": "com.swn.basket.checkoutbasket", 4 | "Detail": "{ \"username\": \"swn\", \"basket\": \"phone1\" }", 5 | "Resources": [ 6 | "resource1", 7 | "resource2" 8 | ], 9 | "DetailType": "CheckoutBasket", 10 | "EventBusName": "SwnEventBus" 11 | }, 12 | { 13 | "Source": "com.swn.basket.checkoutbasket", 14 | "Detail": "{ \"username\": \"swn\", \"basket\": \"phone2\" }", 15 | "Resources": [ 16 | "resource1", 17 | "resource2" 18 | ], 19 | "DetailType": "CheckoutBasket", 20 | "EventBusName": "SwnEventBus" 21 | } 22 | ] -------------------------------------------------------------------------------- /src/basket/ddbClient.js: -------------------------------------------------------------------------------- 1 | // Create service client module using ES6 syntax. 2 | import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; 3 | // Create an Amazon DynamoDB service client object. 4 | const ddbClient = new DynamoDBClient(); 5 | export { ddbClient }; -------------------------------------------------------------------------------- /src/basket/eventBridgeClient.js: -------------------------------------------------------------------------------- 1 | import { EventBridgeClient } from "@aws-sdk/client-eventbridge"; 2 | // Create an Amazon EventBridge service client object. 3 | export const ebClient = new EventBridgeClient(); -------------------------------------------------------------------------------- /src/basket/index.js: -------------------------------------------------------------------------------- 1 | import { DeleteItemCommand, GetItemCommand, PutItemCommand, ScanCommand } from "@aws-sdk/client-dynamodb"; 2 | import { PutEventsCommand } from "@aws-sdk/client-eventbridge"; 3 | import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; 4 | import { ddbClient } from "./ddbClient"; 5 | import { ebClient } from "./eventBridgeClient"; 6 | 7 | exports.handler = async function(event) { 8 | console.log("request:", JSON.stringify(event, undefined, 2)); 9 | 10 | // TODO - switch case event.httpmethod to perform add/remove basket 11 | // and checkout basket operations with using ddbClient object 12 | 13 | // GET /basket + 14 | // POST /basket + 15 | // GET /basket/{userName} + 16 | // DELETE /basket/{userName} + 17 | // POST /basket/checkout + 18 | 19 | let body; 20 | 21 | try { 22 | switch (event.httpMethod) { 23 | case "GET": 24 | if (event.pathParameters != null) { 25 | body = await getBasket(event.pathParameters.userName); // GET /basket/{userName} 26 | } else { 27 | body = await getAllBaskets(); // GET /basket 28 | } 29 | break; 30 | case "POST": 31 | if (event.path == "/basket/checkout") { 32 | body = await checkoutBasket(event); // POST /basket/checkout 33 | } else { 34 | body = await createBasket(event); // POST /basket 35 | } 36 | break; 37 | case "DELETE": 38 | body = await deleteBasket(event.pathParameters.userName); // DELETE /basket/{userName} 39 | break; 40 | default: 41 | throw new Error(`Unsupported route: "${event.httpMethod}"`); 42 | } 43 | 44 | console.log(body); 45 | return { 46 | statusCode: 200, 47 | body: JSON.stringify({ 48 | message: `Successfully finished operation: "${event.httpMethod}"`, 49 | body: body 50 | }) 51 | }; 52 | 53 | } catch (e) { 54 | console.error(e); 55 | return { 56 | statusCode: 500, 57 | body: JSON.stringify({ 58 | message: "Failed to perform operation.", 59 | errorMsg: e.message, 60 | errorStack: e.stack, 61 | }) 62 | }; 63 | } 64 | }; 65 | 66 | const getBasket = async (userName) => { 67 | console.log("getBasket"); 68 | try { 69 | const params = { 70 | TableName: process.env.DYNAMODB_TABLE_NAME, 71 | Key: marshall({ userName: userName }) 72 | }; 73 | 74 | const { Item } = await ddbClient.send(new GetItemCommand(params)); 75 | 76 | console.log(Item); 77 | return (Item) ? unmarshall(Item) : {}; 78 | 79 | } catch(e) { 80 | console.error(e); 81 | throw e; 82 | } 83 | } 84 | 85 | const getAllBaskets = async () => { 86 | console.log("getAllBaskets"); 87 | try { 88 | const params = { 89 | TableName: process.env.DYNAMODB_TABLE_NAME 90 | }; 91 | 92 | const { Items } = await ddbClient.send(new ScanCommand(params)); 93 | 94 | console.log(Items); 95 | return (Items) ? Items.map((item) => unmarshall(item)) : {}; 96 | 97 | } catch(e) { 98 | console.error(e); 99 | throw e; 100 | } 101 | } 102 | 103 | const createBasket = async (event) => { 104 | console.log(`createBasket function. event : "${event}"`); 105 | try { 106 | const requestBody = JSON.parse(event.body); 107 | const params = { 108 | TableName: process.env.DYNAMODB_TABLE_NAME, 109 | Item: marshall(requestBody || {}) 110 | }; 111 | 112 | const createResult = await ddbClient.send(new PutItemCommand(params)); 113 | console.log(createResult); 114 | return createResult; 115 | 116 | } catch(e) { 117 | console.error(e); 118 | throw e; 119 | } 120 | } 121 | 122 | const deleteBasket = async (userName) => { 123 | console.log(`deleteBasket function. userName : "${userName}"`); 124 | try { 125 | const params = { 126 | TableName: process.env.DYNAMODB_TABLE_NAME, 127 | Key: marshall({ userName: userName }), 128 | }; 129 | 130 | const deleteResult = await ddbClient.send(new DeleteItemCommand(params)); 131 | console.log(deleteResult); 132 | return deleteResult; 133 | 134 | } catch(e) { 135 | console.error(e); 136 | throw e; 137 | } 138 | } 139 | 140 | const checkoutBasket = async (event) => { 141 | console.log("checkoutBasket"); 142 | 143 | // expected request payload : { userName : swn, attributes[firstName, lastName, email ..] 144 | const checkoutRequest = JSON.parse(event.body); 145 | if (checkoutRequest == null || checkoutRequest.userName == null) { 146 | throw new Error(`userName should exist in checkoutRequest: "${checkoutRequest}"`); 147 | } 148 | 149 | // 1- Get existing basket with items 150 | const basket = await getBasket(checkoutRequest.userName); 151 | 152 | // 2- create an event json object with basket items, 153 | // calculate totalprice, prepare order create json data to send ordering ms 154 | var checkoutPayload = prepareOrderPayload(checkoutRequest, basket); 155 | 156 | // 3- publish an event to eventbridge - this will subscribe by order microservice and start ordering process. 157 | const publishedEvent = await publishCheckoutBasketEvent(checkoutPayload); 158 | 159 | // 4- remove existing basket 160 | await deleteBasket(checkoutRequest.userName); 161 | 162 | } 163 | 164 | const prepareOrderPayload = (checkoutRequest, basket) => { 165 | console.log("prepareOrderPayload"); 166 | 167 | // prepare order payload -> calculate totalprice and combine checkoutRequest and basket items 168 | // aggregate and enrich request and basket data in order to create order payload 169 | try { 170 | if (basket == null || basket.items == null) { 171 | throw new Error(`basket should exist in items: "${basket}"`); 172 | } 173 | 174 | // calculate totalPrice 175 | let totalPrice = 0; 176 | basket.items.forEach(item => totalPrice = totalPrice + item.price); 177 | checkoutRequest.totalPrice = totalPrice; 178 | console.log(checkoutRequest); 179 | 180 | // copies all properties from basket into checkoutRequest 181 | Object.assign(checkoutRequest, basket); 182 | console.log("Success prepareOrderPayload, orderPayload:", checkoutRequest); 183 | return checkoutRequest; 184 | 185 | } catch(e) { 186 | console.error(e); 187 | throw e; 188 | } 189 | } 190 | 191 | const publishCheckoutBasketEvent = async (checkoutPayload) => { 192 | console.log("publishCheckoutBasketEvent with payload :", checkoutPayload); 193 | try { 194 | // eventbridge parameters for setting event to target system 195 | const params = { 196 | Entries: [ 197 | { 198 | Source: process.env.EVENT_SOURCE, 199 | Detail: JSON.stringify(checkoutPayload), 200 | DetailType: process.env.EVENT_DETAILTYPE, 201 | Resources: [ ], 202 | EventBusName: process.env.EVENT_BUSNAME 203 | }, 204 | ], 205 | }; 206 | 207 | const data = await ebClient.send(new PutEventsCommand(params)); 208 | 209 | console.log("Success, event sent; requestID:", data); 210 | return data; 211 | 212 | } catch(e) { 213 | console.error(e); 214 | throw e; 215 | } 216 | } -------------------------------------------------------------------------------- /src/basket/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@src/basket", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "dependencies": { 6 | "@aws-sdk/client-dynamodb": "^3.55.0", 7 | "@aws-sdk/client-eventbridge": "^3.58.0", 8 | "@aws-sdk/util-dynamodb": "^3.55.0" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/ordering/ddbClient.js: -------------------------------------------------------------------------------- 1 | // Create service client module using ES6 syntax. 2 | import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; 3 | // Create an Amazon DynamoDB service client object. 4 | const ddbClient = new DynamoDBClient(); 5 | export { ddbClient }; -------------------------------------------------------------------------------- /src/ordering/index.js: -------------------------------------------------------------------------------- 1 | import { PutItemCommand, QueryCommand, ScanCommand } from "@aws-sdk/client-dynamodb"; 2 | import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; 3 | import { ddbClient } from "./ddbClient"; 4 | 5 | exports.handler = async function(event) { 6 | console.log("request:", JSON.stringify(event, undefined, 2)); 7 | 8 | if(event.Records != null) { 9 | // SQS Invocation 10 | await sqsInvocation(event); 11 | } 12 | else if (event['detail-type'] !== undefined) { 13 | // EventBridge Invocation 14 | await eventBridgeInvocation(event); 15 | } else { 16 | // API Gateway Invocation -- return sync response 17 | return await apiGatewayInvocation(event); 18 | } 19 | }; 20 | 21 | const sqsInvocation = async (event) => { 22 | console.log(`sqsInvocation function. event : "${event}"`); 23 | 24 | event.Records.forEach(async (record) => { 25 | console.log('Record: %j', record); 26 | 27 | // expected request : { "detail-type\":\"CheckoutBasket\",\"source\":\"com.swn.basket.checkoutbasket\", "detail\":{\"userName\":\"swn\",\"totalPrice\":1820, .. } 28 | const checkoutEventRequest = JSON.parse(record.body); 29 | 30 | // create order item into db 31 | await createOrder(checkoutEventRequest.detail); 32 | // detail object should be checkoutbasket json object 33 | }); 34 | } 35 | 36 | const eventBridgeInvocation = async (event) => { 37 | console.log(`eventBridgeInvocation function. event : "${event}"`); 38 | 39 | // create order item into db 40 | await createOrder(event.detail); 41 | } 42 | 43 | const createOrder = async (basketCheckoutEvent) => { 44 | try { 45 | console.log(`createOrder function. event : "${basketCheckoutEvent}"`); 46 | 47 | // set orderDate for SK of order dynamodb 48 | const orderDate = new Date().toISOString(); 49 | basketCheckoutEvent.orderDate = orderDate; 50 | console.log(basketCheckoutEvent); 51 | 52 | const params = { 53 | TableName: process.env.DYNAMODB_TABLE_NAME, 54 | Item: marshall(basketCheckoutEvent || {}) 55 | }; 56 | 57 | const createResult = await ddbClient.send(new PutItemCommand(params)); 58 | console.log(createResult); 59 | return createResult; 60 | 61 | } catch(e) { 62 | console.error(e); 63 | throw e; 64 | } 65 | } 66 | 67 | const apiGatewayInvocation = async (event) => { 68 | // GET /order 69 | // GET /order/{userName} 70 | let body; 71 | 72 | try { 73 | switch (event.httpMethod) { 74 | case "GET": 75 | if (event.pathParameters != null) { 76 | body = await getOrder(event); 77 | } else { 78 | body = await getAllOrders(); 79 | } 80 | break; 81 | default: 82 | throw new Error(`Unsupported route: "${event.httpMethod}"`); 83 | } 84 | 85 | console.log(body); 86 | return { 87 | statusCode: 200, 88 | body: JSON.stringify({ 89 | message: `Successfully finished operation: "${event.httpMethod}"`, 90 | body: body 91 | }) 92 | }; 93 | } 94 | catch(e) { 95 | console.error(e); 96 | return { 97 | statusCode: 500, 98 | body: JSON.stringify({ 99 | message: "Failed to perform operation.", 100 | errorMsg: e.message, 101 | errorStack: e.stack, 102 | }) 103 | }; 104 | } 105 | } 106 | 107 | const getOrder = async (event) => { 108 | console.log("getOrder"); 109 | 110 | try { 111 | // expected request : xxx/order/swn?orderDate=timestamp 112 | const userName = event.pathParameters.userName; 113 | const orderDate = event.queryStringParameters.orderDate; 114 | 115 | const params = { 116 | KeyConditionExpression: "userName = :userName and orderDate = :orderDate", 117 | ExpressionAttributeValues: { 118 | ":userName": { S: userName }, 119 | ":orderDate": { S: orderDate } 120 | }, 121 | TableName: process.env.DYNAMODB_TABLE_NAME 122 | }; 123 | 124 | const { Items } = await ddbClient.send(new QueryCommand(params)); 125 | 126 | console.log(Items); 127 | return Items.map((item) => unmarshall(item)); 128 | } catch(e) { 129 | console.error(e); 130 | throw e; 131 | } 132 | } 133 | 134 | const getAllOrders = async () => { 135 | console.log("getAllOrders"); 136 | try { 137 | const params = { 138 | TableName: process.env.DYNAMODB_TABLE_NAME 139 | }; 140 | 141 | const { Items } = await ddbClient.send(new ScanCommand(params)); 142 | 143 | console.log(Items); 144 | return (Items) ? Items.map((item) => unmarshall(item)) : {}; 145 | 146 | } catch(e) { 147 | console.error(e); 148 | throw e; 149 | } 150 | } -------------------------------------------------------------------------------- /src/ordering/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@src/ordering", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@src/ordering", 9 | "version": "1.0.0", 10 | "dependencies": { 11 | "@aws-sdk/client-dynamodb": "^3.58.0", 12 | "@aws-sdk/util-dynamodb": "^3.58.0" 13 | } 14 | }, 15 | "node_modules/@aws-crypto/ie11-detection": { 16 | "version": "2.0.0", 17 | "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", 18 | "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", 19 | "dependencies": { 20 | "tslib": "^1.11.1" 21 | } 22 | }, 23 | "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { 24 | "version": "1.14.1", 25 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 26 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 27 | }, 28 | "node_modules/@aws-crypto/sha256-browser": { 29 | "version": "2.0.0", 30 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", 31 | "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", 32 | "dependencies": { 33 | "@aws-crypto/ie11-detection": "^2.0.0", 34 | "@aws-crypto/sha256-js": "^2.0.0", 35 | "@aws-crypto/supports-web-crypto": "^2.0.0", 36 | "@aws-crypto/util": "^2.0.0", 37 | "@aws-sdk/types": "^3.1.0", 38 | "@aws-sdk/util-locate-window": "^3.0.0", 39 | "@aws-sdk/util-utf8-browser": "^3.0.0", 40 | "tslib": "^1.11.1" 41 | } 42 | }, 43 | "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { 44 | "version": "1.14.1", 45 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 46 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 47 | }, 48 | "node_modules/@aws-crypto/sha256-js": { 49 | "version": "2.0.0", 50 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", 51 | "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", 52 | "dependencies": { 53 | "@aws-crypto/util": "^2.0.0", 54 | "@aws-sdk/types": "^3.1.0", 55 | "tslib": "^1.11.1" 56 | } 57 | }, 58 | "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { 59 | "version": "1.14.1", 60 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 61 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 62 | }, 63 | "node_modules/@aws-crypto/supports-web-crypto": { 64 | "version": "2.0.0", 65 | "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", 66 | "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", 67 | "dependencies": { 68 | "tslib": "^1.11.1" 69 | } 70 | }, 71 | "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { 72 | "version": "1.14.1", 73 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 74 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 75 | }, 76 | "node_modules/@aws-crypto/util": { 77 | "version": "2.0.1", 78 | "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", 79 | "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", 80 | "dependencies": { 81 | "@aws-sdk/types": "^3.1.0", 82 | "@aws-sdk/util-utf8-browser": "^3.0.0", 83 | "tslib": "^1.11.1" 84 | } 85 | }, 86 | "node_modules/@aws-crypto/util/node_modules/tslib": { 87 | "version": "1.14.1", 88 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 89 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 90 | }, 91 | "node_modules/@aws-sdk/abort-controller": { 92 | "version": "3.55.0", 93 | "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.55.0.tgz", 94 | "integrity": "sha512-rCcTxJDEFnmvo/PgbhCRv24/Uv03lEGfRslKZq7SjaMcOubflS/ZXYaMEgsjYHgAT0zlpSsyCIkJXmhFaM7H7w==", 95 | "dependencies": { 96 | "@aws-sdk/types": "3.55.0", 97 | "tslib": "^2.3.1" 98 | }, 99 | "engines": { 100 | "node": ">= 12.0.0" 101 | } 102 | }, 103 | "node_modules/@aws-sdk/client-dynamodb": { 104 | "version": "3.58.0", 105 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.58.0.tgz", 106 | "integrity": "sha512-54uclCvSVREutcty19NqfzC5V/0ebYSz51lz5jQpHYObP2uUAKOunTAWx1lnWACZ9U9Ka6SHWN/NhKFXeMKwgw==", 107 | "dependencies": { 108 | "@aws-crypto/sha256-browser": "2.0.0", 109 | "@aws-crypto/sha256-js": "2.0.0", 110 | "@aws-sdk/client-sts": "3.58.0", 111 | "@aws-sdk/config-resolver": "3.58.0", 112 | "@aws-sdk/credential-provider-node": "3.58.0", 113 | "@aws-sdk/fetch-http-handler": "3.58.0", 114 | "@aws-sdk/hash-node": "3.55.0", 115 | "@aws-sdk/invalid-dependency": "3.55.0", 116 | "@aws-sdk/middleware-content-length": "3.58.0", 117 | "@aws-sdk/middleware-endpoint-discovery": "3.58.0", 118 | "@aws-sdk/middleware-host-header": "3.58.0", 119 | "@aws-sdk/middleware-logger": "3.55.0", 120 | "@aws-sdk/middleware-retry": "3.58.0", 121 | "@aws-sdk/middleware-serde": "3.55.0", 122 | "@aws-sdk/middleware-signing": "3.58.0", 123 | "@aws-sdk/middleware-stack": "3.55.0", 124 | "@aws-sdk/middleware-user-agent": "3.58.0", 125 | "@aws-sdk/node-config-provider": "3.58.0", 126 | "@aws-sdk/node-http-handler": "3.58.0", 127 | "@aws-sdk/protocol-http": "3.58.0", 128 | "@aws-sdk/smithy-client": "3.55.0", 129 | "@aws-sdk/types": "3.55.0", 130 | "@aws-sdk/url-parser": "3.55.0", 131 | "@aws-sdk/util-base64-browser": "3.58.0", 132 | "@aws-sdk/util-base64-node": "3.55.0", 133 | "@aws-sdk/util-body-length-browser": "3.55.0", 134 | "@aws-sdk/util-body-length-node": "3.55.0", 135 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 136 | "@aws-sdk/util-defaults-mode-node": "3.58.0", 137 | "@aws-sdk/util-user-agent-browser": "3.58.0", 138 | "@aws-sdk/util-user-agent-node": "3.58.0", 139 | "@aws-sdk/util-utf8-browser": "3.55.0", 140 | "@aws-sdk/util-utf8-node": "3.55.0", 141 | "@aws-sdk/util-waiter": "3.55.0", 142 | "tslib": "^2.3.1", 143 | "uuid": "^8.3.2" 144 | }, 145 | "engines": { 146 | "node": ">=12.0.0" 147 | } 148 | }, 149 | "node_modules/@aws-sdk/client-sso": { 150 | "version": "3.58.0", 151 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.58.0.tgz", 152 | "integrity": "sha512-nS5G/OX8Bg4ajBa6+jLcbbr4PpEO+l5eJfGUzoJQwS4Zqa0lF/wC0kyjKm61gLp4JuvhrQskxIC/3IXUqB1XVQ==", 153 | "dependencies": { 154 | "@aws-crypto/sha256-browser": "2.0.0", 155 | "@aws-crypto/sha256-js": "2.0.0", 156 | "@aws-sdk/config-resolver": "3.58.0", 157 | "@aws-sdk/fetch-http-handler": "3.58.0", 158 | "@aws-sdk/hash-node": "3.55.0", 159 | "@aws-sdk/invalid-dependency": "3.55.0", 160 | "@aws-sdk/middleware-content-length": "3.58.0", 161 | "@aws-sdk/middleware-host-header": "3.58.0", 162 | "@aws-sdk/middleware-logger": "3.55.0", 163 | "@aws-sdk/middleware-retry": "3.58.0", 164 | "@aws-sdk/middleware-serde": "3.55.0", 165 | "@aws-sdk/middleware-stack": "3.55.0", 166 | "@aws-sdk/middleware-user-agent": "3.58.0", 167 | "@aws-sdk/node-config-provider": "3.58.0", 168 | "@aws-sdk/node-http-handler": "3.58.0", 169 | "@aws-sdk/protocol-http": "3.58.0", 170 | "@aws-sdk/smithy-client": "3.55.0", 171 | "@aws-sdk/types": "3.55.0", 172 | "@aws-sdk/url-parser": "3.55.0", 173 | "@aws-sdk/util-base64-browser": "3.58.0", 174 | "@aws-sdk/util-base64-node": "3.55.0", 175 | "@aws-sdk/util-body-length-browser": "3.55.0", 176 | "@aws-sdk/util-body-length-node": "3.55.0", 177 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 178 | "@aws-sdk/util-defaults-mode-node": "3.58.0", 179 | "@aws-sdk/util-user-agent-browser": "3.58.0", 180 | "@aws-sdk/util-user-agent-node": "3.58.0", 181 | "@aws-sdk/util-utf8-browser": "3.55.0", 182 | "@aws-sdk/util-utf8-node": "3.55.0", 183 | "tslib": "^2.3.1" 184 | }, 185 | "engines": { 186 | "node": ">=12.0.0" 187 | } 188 | }, 189 | "node_modules/@aws-sdk/client-sts": { 190 | "version": "3.58.0", 191 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.58.0.tgz", 192 | "integrity": "sha512-2cHZsG2eXv/Zl0hvsG9+rdHEuAclMFfkma/3LC3RRwSuZXo1rXoIhFkzHfGfIbivdk738YAo7FT3ZYGlrsK4ow==", 193 | "dependencies": { 194 | "@aws-crypto/sha256-browser": "2.0.0", 195 | "@aws-crypto/sha256-js": "2.0.0", 196 | "@aws-sdk/config-resolver": "3.58.0", 197 | "@aws-sdk/credential-provider-node": "3.58.0", 198 | "@aws-sdk/fetch-http-handler": "3.58.0", 199 | "@aws-sdk/hash-node": "3.55.0", 200 | "@aws-sdk/invalid-dependency": "3.55.0", 201 | "@aws-sdk/middleware-content-length": "3.58.0", 202 | "@aws-sdk/middleware-host-header": "3.58.0", 203 | "@aws-sdk/middleware-logger": "3.55.0", 204 | "@aws-sdk/middleware-retry": "3.58.0", 205 | "@aws-sdk/middleware-sdk-sts": "3.58.0", 206 | "@aws-sdk/middleware-serde": "3.55.0", 207 | "@aws-sdk/middleware-signing": "3.58.0", 208 | "@aws-sdk/middleware-stack": "3.55.0", 209 | "@aws-sdk/middleware-user-agent": "3.58.0", 210 | "@aws-sdk/node-config-provider": "3.58.0", 211 | "@aws-sdk/node-http-handler": "3.58.0", 212 | "@aws-sdk/protocol-http": "3.58.0", 213 | "@aws-sdk/smithy-client": "3.55.0", 214 | "@aws-sdk/types": "3.55.0", 215 | "@aws-sdk/url-parser": "3.55.0", 216 | "@aws-sdk/util-base64-browser": "3.58.0", 217 | "@aws-sdk/util-base64-node": "3.55.0", 218 | "@aws-sdk/util-body-length-browser": "3.55.0", 219 | "@aws-sdk/util-body-length-node": "3.55.0", 220 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 221 | "@aws-sdk/util-defaults-mode-node": "3.58.0", 222 | "@aws-sdk/util-user-agent-browser": "3.58.0", 223 | "@aws-sdk/util-user-agent-node": "3.58.0", 224 | "@aws-sdk/util-utf8-browser": "3.55.0", 225 | "@aws-sdk/util-utf8-node": "3.55.0", 226 | "entities": "2.2.0", 227 | "fast-xml-parser": "3.19.0", 228 | "tslib": "^2.3.1" 229 | }, 230 | "engines": { 231 | "node": ">=12.0.0" 232 | } 233 | }, 234 | "node_modules/@aws-sdk/config-resolver": { 235 | "version": "3.58.0", 236 | "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.58.0.tgz", 237 | "integrity": "sha512-NXEwYw0JrXcvenu42QpNMQXK+6pgZ+6bDGfCgOfCC0FmyI+w/CuF36lApwm7InHvHazOaDlwArXm2pfntErKoA==", 238 | "dependencies": { 239 | "@aws-sdk/signature-v4": "3.58.0", 240 | "@aws-sdk/types": "3.55.0", 241 | "@aws-sdk/util-config-provider": "3.55.0", 242 | "@aws-sdk/util-middleware": "3.55.0", 243 | "tslib": "^2.3.1" 244 | }, 245 | "engines": { 246 | "node": ">= 12.0.0" 247 | } 248 | }, 249 | "node_modules/@aws-sdk/credential-provider-env": { 250 | "version": "3.55.0", 251 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.55.0.tgz", 252 | "integrity": "sha512-4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==", 253 | "dependencies": { 254 | "@aws-sdk/property-provider": "3.55.0", 255 | "@aws-sdk/types": "3.55.0", 256 | "tslib": "^2.3.1" 257 | }, 258 | "engines": { 259 | "node": ">= 12.0.0" 260 | } 261 | }, 262 | "node_modules/@aws-sdk/credential-provider-imds": { 263 | "version": "3.58.0", 264 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.58.0.tgz", 265 | "integrity": "sha512-CdtnTQ9zqLx1FbXdbgjijLbMcIWOyQM03TFaLSCjI3FNbUwyt3T7StBU9tj/LtbypHhSdXyQBpzUtXTOMWCEhg==", 266 | "dependencies": { 267 | "@aws-sdk/node-config-provider": "3.58.0", 268 | "@aws-sdk/property-provider": "3.55.0", 269 | "@aws-sdk/types": "3.55.0", 270 | "@aws-sdk/url-parser": "3.55.0", 271 | "tslib": "^2.3.1" 272 | }, 273 | "engines": { 274 | "node": ">= 12.0.0" 275 | } 276 | }, 277 | "node_modules/@aws-sdk/credential-provider-ini": { 278 | "version": "3.58.0", 279 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.58.0.tgz", 280 | "integrity": "sha512-uM62hcHUVaHP1YFnbrjf2RlrRj1m/BvMPE+T5jdNRWdE3lvnunhEMawB26HZs9nQqCV6d25I8G9/fGWVL7g3Og==", 281 | "dependencies": { 282 | "@aws-sdk/credential-provider-env": "3.55.0", 283 | "@aws-sdk/credential-provider-imds": "3.58.0", 284 | "@aws-sdk/credential-provider-sso": "3.58.0", 285 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 286 | "@aws-sdk/property-provider": "3.55.0", 287 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 288 | "@aws-sdk/types": "3.55.0", 289 | "tslib": "^2.3.1" 290 | }, 291 | "engines": { 292 | "node": ">= 12.0.0" 293 | } 294 | }, 295 | "node_modules/@aws-sdk/credential-provider-node": { 296 | "version": "3.58.0", 297 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.58.0.tgz", 298 | "integrity": "sha512-f0wzcgMYCQUrii6TLP2ggCxkQP4HH8PW8tbbWEgt4cdIXcjE9KEuxN5yOV6sFHzL3eJh0QM9Yaz8WzhWn6fT2A==", 299 | "dependencies": { 300 | "@aws-sdk/credential-provider-env": "3.55.0", 301 | "@aws-sdk/credential-provider-imds": "3.58.0", 302 | "@aws-sdk/credential-provider-ini": "3.58.0", 303 | "@aws-sdk/credential-provider-process": "3.58.0", 304 | "@aws-sdk/credential-provider-sso": "3.58.0", 305 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 306 | "@aws-sdk/property-provider": "3.55.0", 307 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 308 | "@aws-sdk/types": "3.55.0", 309 | "tslib": "^2.3.1" 310 | }, 311 | "engines": { 312 | "node": ">=12.0.0" 313 | } 314 | }, 315 | "node_modules/@aws-sdk/credential-provider-process": { 316 | "version": "3.58.0", 317 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.58.0.tgz", 318 | "integrity": "sha512-npgFqPUjMhUamf1FvJjBYUdpbWx8XWkKCwJsX73I7IYQAvAi2atCOkdtKq+4rds0VWAYu6vzlaI1tXgFxjOPNQ==", 319 | "dependencies": { 320 | "@aws-sdk/property-provider": "3.55.0", 321 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 322 | "@aws-sdk/types": "3.55.0", 323 | "tslib": "^2.3.1" 324 | }, 325 | "engines": { 326 | "node": ">= 12.0.0" 327 | } 328 | }, 329 | "node_modules/@aws-sdk/credential-provider-sso": { 330 | "version": "3.58.0", 331 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.58.0.tgz", 332 | "integrity": "sha512-2qO34s9lJqvCC6zOF4UpopW6xURZpYfVC8xTUDpAUnvTOt4nS5hkx4vNyqPAXILoRHuFJsnlWsBH1UP5ZnBiZg==", 333 | "dependencies": { 334 | "@aws-sdk/client-sso": "3.58.0", 335 | "@aws-sdk/property-provider": "3.55.0", 336 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 337 | "@aws-sdk/types": "3.55.0", 338 | "tslib": "^2.3.1" 339 | }, 340 | "engines": { 341 | "node": ">= 12.0.0" 342 | } 343 | }, 344 | "node_modules/@aws-sdk/credential-provider-web-identity": { 345 | "version": "3.55.0", 346 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.55.0.tgz", 347 | "integrity": "sha512-aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==", 348 | "dependencies": { 349 | "@aws-sdk/property-provider": "3.55.0", 350 | "@aws-sdk/types": "3.55.0", 351 | "tslib": "^2.3.1" 352 | }, 353 | "engines": { 354 | "node": ">= 12.0.0" 355 | } 356 | }, 357 | "node_modules/@aws-sdk/endpoint-cache": { 358 | "version": "3.55.0", 359 | "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.55.0.tgz", 360 | "integrity": "sha512-kxDoHFDuQwZEEUZRp+ZLOg68EXuKPzUN86DcpIZantDVcmu7MSPTbbQp9DZd8MnKVEKCP7Sop5f7zCqOPl3LXw==", 361 | "dependencies": { 362 | "mnemonist": "0.38.3", 363 | "tslib": "^2.3.1" 364 | }, 365 | "engines": { 366 | "node": ">= 12.0.0" 367 | } 368 | }, 369 | "node_modules/@aws-sdk/fetch-http-handler": { 370 | "version": "3.58.0", 371 | "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.58.0.tgz", 372 | "integrity": "sha512-timF3FjPV5Bd+Kgph83LIKVlPCFObVYzious1a6doeLAT6YFwZpRrWbfP/HzS+DCoYiwUsH69oVJ91BoV66oyA==", 373 | "dependencies": { 374 | "@aws-sdk/protocol-http": "3.58.0", 375 | "@aws-sdk/querystring-builder": "3.55.0", 376 | "@aws-sdk/types": "3.55.0", 377 | "@aws-sdk/util-base64-browser": "3.58.0", 378 | "tslib": "^2.3.1" 379 | } 380 | }, 381 | "node_modules/@aws-sdk/hash-node": { 382 | "version": "3.55.0", 383 | "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.55.0.tgz", 384 | "integrity": "sha512-2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==", 385 | "dependencies": { 386 | "@aws-sdk/types": "3.55.0", 387 | "@aws-sdk/util-buffer-from": "3.55.0", 388 | "tslib": "^2.3.1" 389 | }, 390 | "engines": { 391 | "node": ">= 12.0.0" 392 | } 393 | }, 394 | "node_modules/@aws-sdk/invalid-dependency": { 395 | "version": "3.55.0", 396 | "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.55.0.tgz", 397 | "integrity": "sha512-delH0lV+78fdD/8MXIt9kTLS6IwHvdhqq9dw/ow5VjTUw+xBwUlfPfZplaai+3hKTKWh6a2WZCeDasNItBv9aA==", 398 | "dependencies": { 399 | "@aws-sdk/types": "3.55.0", 400 | "tslib": "^2.3.1" 401 | } 402 | }, 403 | "node_modules/@aws-sdk/is-array-buffer": { 404 | "version": "3.55.0", 405 | "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", 406 | "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", 407 | "dependencies": { 408 | "tslib": "^2.3.1" 409 | }, 410 | "engines": { 411 | "node": ">= 12.0.0" 412 | } 413 | }, 414 | "node_modules/@aws-sdk/middleware-content-length": { 415 | "version": "3.58.0", 416 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.58.0.tgz", 417 | "integrity": "sha512-h/BypPkhjv2CpCUbXA8Fa2s7V2GPiz9l11XhYK+sKSuQvQ7Lbq6VhaKaLqfeD3gLVZHgJZSLGl2btdHV1qHNNA==", 418 | "dependencies": { 419 | "@aws-sdk/protocol-http": "3.58.0", 420 | "@aws-sdk/types": "3.55.0", 421 | "tslib": "^2.3.1" 422 | }, 423 | "engines": { 424 | "node": ">= 12.0.0" 425 | } 426 | }, 427 | "node_modules/@aws-sdk/middleware-endpoint-discovery": { 428 | "version": "3.58.0", 429 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.58.0.tgz", 430 | "integrity": "sha512-Ll42zMPP8dDTHesv5VdnM0vgT4mW+kR2SgXCWBMuwnZdBn0FDH1A3E0BqJkLuuq2TKIah0/l1sA1qVC68GkAeA==", 431 | "dependencies": { 432 | "@aws-sdk/config-resolver": "3.58.0", 433 | "@aws-sdk/endpoint-cache": "3.55.0", 434 | "@aws-sdk/protocol-http": "3.58.0", 435 | "@aws-sdk/types": "3.55.0", 436 | "tslib": "^2.3.1" 437 | }, 438 | "engines": { 439 | "node": ">= 12.0.0" 440 | } 441 | }, 442 | "node_modules/@aws-sdk/middleware-host-header": { 443 | "version": "3.58.0", 444 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.58.0.tgz", 445 | "integrity": "sha512-q/UKGcanm9e6DBRNN6UKhVqLvpRRdZWbmmPCeDNr4HqhCmgT6i1OvWdhAMOnT++hvCX8DpTsIXzNSlY6zWAxBg==", 446 | "dependencies": { 447 | "@aws-sdk/protocol-http": "3.58.0", 448 | "@aws-sdk/types": "3.55.0", 449 | "tslib": "^2.3.1" 450 | }, 451 | "engines": { 452 | "node": ">= 12.0.0" 453 | } 454 | }, 455 | "node_modules/@aws-sdk/middleware-logger": { 456 | "version": "3.55.0", 457 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.55.0.tgz", 458 | "integrity": "sha512-PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==", 459 | "dependencies": { 460 | "@aws-sdk/types": "3.55.0", 461 | "tslib": "^2.3.1" 462 | }, 463 | "engines": { 464 | "node": ">= 12.0.0" 465 | } 466 | }, 467 | "node_modules/@aws-sdk/middleware-retry": { 468 | "version": "3.58.0", 469 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.58.0.tgz", 470 | "integrity": "sha512-sfSq+t0Yy47DQwrWGpA8iOx9sd26l4l1JDVTwHNi7+OKD4ClRPVCEdw3bTbbyYz/PV4f9AEfAZ6jwtSff4wkGw==", 471 | "dependencies": { 472 | "@aws-sdk/protocol-http": "3.58.0", 473 | "@aws-sdk/service-error-classification": "3.55.0", 474 | "@aws-sdk/types": "3.55.0", 475 | "@aws-sdk/util-middleware": "3.55.0", 476 | "tslib": "^2.3.1", 477 | "uuid": "^8.3.2" 478 | }, 479 | "engines": { 480 | "node": ">= 12.0.0" 481 | } 482 | }, 483 | "node_modules/@aws-sdk/middleware-sdk-sts": { 484 | "version": "3.58.0", 485 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.58.0.tgz", 486 | "integrity": "sha512-HUz7MhcsSDDTGygOwL61l4voc0pZco06J3z06JjTX19D5XxcQ7hSCtkHHHz0oMb9M1himVSiEon2tjhjsnB99g==", 487 | "dependencies": { 488 | "@aws-sdk/middleware-signing": "3.58.0", 489 | "@aws-sdk/property-provider": "3.55.0", 490 | "@aws-sdk/protocol-http": "3.58.0", 491 | "@aws-sdk/signature-v4": "3.58.0", 492 | "@aws-sdk/types": "3.55.0", 493 | "tslib": "^2.3.1" 494 | }, 495 | "engines": { 496 | "node": ">= 12.0.0" 497 | } 498 | }, 499 | "node_modules/@aws-sdk/middleware-serde": { 500 | "version": "3.55.0", 501 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.55.0.tgz", 502 | "integrity": "sha512-NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==", 503 | "dependencies": { 504 | "@aws-sdk/types": "3.55.0", 505 | "tslib": "^2.3.1" 506 | }, 507 | "engines": { 508 | "node": ">= 12.0.0" 509 | } 510 | }, 511 | "node_modules/@aws-sdk/middleware-signing": { 512 | "version": "3.58.0", 513 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.58.0.tgz", 514 | "integrity": "sha512-4FXubHB66GbhyZUlo6YPQoWpYfED15GNbEmHbJLSONzrVzZR3IkViSPLasDngVm1a050JqKuqNkFYGJBP4No/Q==", 515 | "dependencies": { 516 | "@aws-sdk/property-provider": "3.55.0", 517 | "@aws-sdk/protocol-http": "3.58.0", 518 | "@aws-sdk/signature-v4": "3.58.0", 519 | "@aws-sdk/types": "3.55.0", 520 | "tslib": "^2.3.1" 521 | }, 522 | "engines": { 523 | "node": ">= 12.0.0" 524 | } 525 | }, 526 | "node_modules/@aws-sdk/middleware-stack": { 527 | "version": "3.55.0", 528 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.55.0.tgz", 529 | "integrity": "sha512-ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==", 530 | "dependencies": { 531 | "tslib": "^2.3.1" 532 | }, 533 | "engines": { 534 | "node": ">= 12.0.0" 535 | } 536 | }, 537 | "node_modules/@aws-sdk/middleware-user-agent": { 538 | "version": "3.58.0", 539 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.58.0.tgz", 540 | "integrity": "sha512-1c69bIWM63JwXijXvb9IWwcwQ/gViKMZ1lhxv52NvdG5VSxWXXsFJ2jETEXZoAypwT97Hmf3xo9SYuaHcKoq+g==", 541 | "dependencies": { 542 | "@aws-sdk/protocol-http": "3.58.0", 543 | "@aws-sdk/types": "3.55.0", 544 | "tslib": "^2.3.1" 545 | }, 546 | "engines": { 547 | "node": ">= 12.0.0" 548 | } 549 | }, 550 | "node_modules/@aws-sdk/node-config-provider": { 551 | "version": "3.58.0", 552 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.58.0.tgz", 553 | "integrity": "sha512-AMcPqPhKxo/3/yOMS9PsKlI0GWp2/8eD6gSlhzdBpznPCKplyqXOSnSX7wS814Cyh373hFSjCaOrCOA9/EYtDg==", 554 | "dependencies": { 555 | "@aws-sdk/property-provider": "3.55.0", 556 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 557 | "@aws-sdk/types": "3.55.0", 558 | "tslib": "^2.3.1" 559 | }, 560 | "engines": { 561 | "node": ">= 12.0.0" 562 | } 563 | }, 564 | "node_modules/@aws-sdk/node-http-handler": { 565 | "version": "3.58.0", 566 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.58.0.tgz", 567 | "integrity": "sha512-D9xVZG2nfo4GbPsby3JuBiAhpqXTFk1+CfuQU0AZv0gQvE3fFTCnB3za83jo7JV/pyRPU+s+/LHIpxCWUHzStg==", 568 | "dependencies": { 569 | "@aws-sdk/abort-controller": "3.55.0", 570 | "@aws-sdk/protocol-http": "3.58.0", 571 | "@aws-sdk/querystring-builder": "3.55.0", 572 | "@aws-sdk/types": "3.55.0", 573 | "tslib": "^2.3.1" 574 | }, 575 | "engines": { 576 | "node": ">= 12.0.0" 577 | } 578 | }, 579 | "node_modules/@aws-sdk/property-provider": { 580 | "version": "3.55.0", 581 | "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.55.0.tgz", 582 | "integrity": "sha512-o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==", 583 | "dependencies": { 584 | "@aws-sdk/types": "3.55.0", 585 | "tslib": "^2.3.1" 586 | }, 587 | "engines": { 588 | "node": ">= 12.0.0" 589 | } 590 | }, 591 | "node_modules/@aws-sdk/protocol-http": { 592 | "version": "3.58.0", 593 | "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.58.0.tgz", 594 | "integrity": "sha512-0yFFRPbR+CCa9eOQBBQ2qtrIDLYqSMN0y7G4iqVM8wQdIw7n3QK1PsTI3RNPGJ3Oi2krFTw5uUKqQQZPZEBuVQ==", 595 | "dependencies": { 596 | "@aws-sdk/types": "3.55.0", 597 | "tslib": "^2.3.1" 598 | }, 599 | "engines": { 600 | "node": ">= 12.0.0" 601 | } 602 | }, 603 | "node_modules/@aws-sdk/querystring-builder": { 604 | "version": "3.55.0", 605 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.55.0.tgz", 606 | "integrity": "sha512-/ZAXNipt9nRR8k+eowwukE/YjXnQ49p5w/MkaQxsBk3IuIf7MAcgVg8glHr0igH84GfUQ7ZVP8v+G2S3tKUG+Q==", 607 | "dependencies": { 608 | "@aws-sdk/types": "3.55.0", 609 | "@aws-sdk/util-uri-escape": "3.55.0", 610 | "tslib": "^2.3.1" 611 | }, 612 | "engines": { 613 | "node": ">= 12.0.0" 614 | } 615 | }, 616 | "node_modules/@aws-sdk/querystring-parser": { 617 | "version": "3.55.0", 618 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.55.0.tgz", 619 | "integrity": "sha512-e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==", 620 | "dependencies": { 621 | "@aws-sdk/types": "3.55.0", 622 | "tslib": "^2.3.1" 623 | }, 624 | "engines": { 625 | "node": ">= 12.0.0" 626 | } 627 | }, 628 | "node_modules/@aws-sdk/service-error-classification": { 629 | "version": "3.55.0", 630 | "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.55.0.tgz", 631 | "integrity": "sha512-HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==", 632 | "engines": { 633 | "node": ">= 12.0.0" 634 | } 635 | }, 636 | "node_modules/@aws-sdk/shared-ini-file-loader": { 637 | "version": "3.58.0", 638 | "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.58.0.tgz", 639 | "integrity": "sha512-ARDKQerIzgNs/MFNdCEuK2lgRJ1lneAaJw0p9O1LkJUvcSibvkSATwny7vwJMueOf+ae1Pf+8+54OMNIt0nTkQ==", 640 | "dependencies": { 641 | "tslib": "^2.3.1" 642 | }, 643 | "engines": { 644 | "node": ">= 12.0.0" 645 | } 646 | }, 647 | "node_modules/@aws-sdk/signature-v4": { 648 | "version": "3.58.0", 649 | "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.58.0.tgz", 650 | "integrity": "sha512-flEo8p3XkzWoBDqnIUQre4jLuT5aLnmfQNI8c2uSjyJ3OBxpJ0iS1cDu3E++d1/pN6Q8o0KOmr2ypHeiyBOujw==", 651 | "dependencies": { 652 | "@aws-sdk/is-array-buffer": "3.55.0", 653 | "@aws-sdk/types": "3.55.0", 654 | "@aws-sdk/util-hex-encoding": "3.58.0", 655 | "@aws-sdk/util-middleware": "3.55.0", 656 | "@aws-sdk/util-uri-escape": "3.55.0", 657 | "tslib": "^2.3.1" 658 | }, 659 | "engines": { 660 | "node": ">= 12.0.0" 661 | } 662 | }, 663 | "node_modules/@aws-sdk/smithy-client": { 664 | "version": "3.55.0", 665 | "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz", 666 | "integrity": "sha512-YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==", 667 | "dependencies": { 668 | "@aws-sdk/middleware-stack": "3.55.0", 669 | "@aws-sdk/types": "3.55.0", 670 | "tslib": "^2.3.1" 671 | }, 672 | "engines": { 673 | "node": ">= 12.0.0" 674 | } 675 | }, 676 | "node_modules/@aws-sdk/types": { 677 | "version": "3.55.0", 678 | "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.55.0.tgz", 679 | "integrity": "sha512-wrDZjuy1CVAYxDCbm3bWQIKMGfNs7XXmG0eG4858Ixgqmq2avsIn5TORy8ynBxcXn9aekV/+tGEQ7BBSYzIVNQ==", 680 | "engines": { 681 | "node": ">= 12.0.0" 682 | } 683 | }, 684 | "node_modules/@aws-sdk/url-parser": { 685 | "version": "3.55.0", 686 | "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.55.0.tgz", 687 | "integrity": "sha512-qrTwN5xIgTLreqLnZ+x3cAudjNKfxi6srW1H/px2mk4lb2U9B4fpGjZ6VU+XV8U2kR+YlT8J6Jo5iwuVGfC91A==", 688 | "dependencies": { 689 | "@aws-sdk/querystring-parser": "3.55.0", 690 | "@aws-sdk/types": "3.55.0", 691 | "tslib": "^2.3.1" 692 | } 693 | }, 694 | "node_modules/@aws-sdk/util-base64-browser": { 695 | "version": "3.58.0", 696 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", 697 | "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", 698 | "dependencies": { 699 | "tslib": "^2.3.1" 700 | } 701 | }, 702 | "node_modules/@aws-sdk/util-base64-node": { 703 | "version": "3.55.0", 704 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", 705 | "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", 706 | "dependencies": { 707 | "@aws-sdk/util-buffer-from": "3.55.0", 708 | "tslib": "^2.3.1" 709 | }, 710 | "engines": { 711 | "node": ">= 12.0.0" 712 | } 713 | }, 714 | "node_modules/@aws-sdk/util-body-length-browser": { 715 | "version": "3.55.0", 716 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", 717 | "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", 718 | "dependencies": { 719 | "tslib": "^2.3.1" 720 | } 721 | }, 722 | "node_modules/@aws-sdk/util-body-length-node": { 723 | "version": "3.55.0", 724 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", 725 | "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", 726 | "dependencies": { 727 | "tslib": "^2.3.1" 728 | }, 729 | "engines": { 730 | "node": ">= 12.0.0" 731 | } 732 | }, 733 | "node_modules/@aws-sdk/util-buffer-from": { 734 | "version": "3.55.0", 735 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", 736 | "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", 737 | "dependencies": { 738 | "@aws-sdk/is-array-buffer": "3.55.0", 739 | "tslib": "^2.3.1" 740 | }, 741 | "engines": { 742 | "node": ">= 12.0.0" 743 | } 744 | }, 745 | "node_modules/@aws-sdk/util-config-provider": { 746 | "version": "3.55.0", 747 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", 748 | "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", 749 | "dependencies": { 750 | "tslib": "^2.3.1" 751 | }, 752 | "engines": { 753 | "node": ">= 12.0.0" 754 | } 755 | }, 756 | "node_modules/@aws-sdk/util-defaults-mode-browser": { 757 | "version": "3.55.0", 758 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz", 759 | "integrity": "sha512-OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==", 760 | "dependencies": { 761 | "@aws-sdk/property-provider": "3.55.0", 762 | "@aws-sdk/types": "3.55.0", 763 | "bowser": "^2.11.0", 764 | "tslib": "^2.3.1" 765 | }, 766 | "engines": { 767 | "node": ">= 10.0.0" 768 | } 769 | }, 770 | "node_modules/@aws-sdk/util-defaults-mode-node": { 771 | "version": "3.58.0", 772 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.58.0.tgz", 773 | "integrity": "sha512-KNUCp0MXI+z3Z3pQCKDkx3Stdy1TXDjcUB+ZJFxRTJGIuBYwX4fV6G8s/zeFJi5Qv1ztR3CJ9fWJGsrx9mQ5EA==", 774 | "dependencies": { 775 | "@aws-sdk/config-resolver": "3.58.0", 776 | "@aws-sdk/credential-provider-imds": "3.58.0", 777 | "@aws-sdk/node-config-provider": "3.58.0", 778 | "@aws-sdk/property-provider": "3.55.0", 779 | "@aws-sdk/types": "3.55.0", 780 | "tslib": "^2.3.1" 781 | }, 782 | "engines": { 783 | "node": ">= 10.0.0" 784 | } 785 | }, 786 | "node_modules/@aws-sdk/util-dynamodb": { 787 | "version": "3.58.0", 788 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.58.0.tgz", 789 | "integrity": "sha512-RO7/lrbG0RcIsNug7ijeo6p8YX/VyOSur0q/KFZlB6o7f1KQ0lA7i+qh09oGmz92LSALknk+SSTd3xzh50vfsQ==", 790 | "dependencies": { 791 | "tslib": "^2.3.1" 792 | }, 793 | "engines": { 794 | "node": ">= 12.0.0" 795 | } 796 | }, 797 | "node_modules/@aws-sdk/util-hex-encoding": { 798 | "version": "3.58.0", 799 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", 800 | "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", 801 | "dependencies": { 802 | "tslib": "^2.3.1" 803 | }, 804 | "engines": { 805 | "node": ">= 12.0.0" 806 | } 807 | }, 808 | "node_modules/@aws-sdk/util-locate-window": { 809 | "version": "3.55.0", 810 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", 811 | "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", 812 | "dependencies": { 813 | "tslib": "^2.3.1" 814 | }, 815 | "engines": { 816 | "node": ">= 12.0.0" 817 | } 818 | }, 819 | "node_modules/@aws-sdk/util-middleware": { 820 | "version": "3.55.0", 821 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.55.0.tgz", 822 | "integrity": "sha512-82fW2XV+rUalv8lkd4VlhpPp6xnXO5n9sckMp1N+TrQ+p8eqxqT0+o8n1/6s9Qsnkw64Y3m6+EfCdc8/uFOY2g==", 823 | "dependencies": { 824 | "tslib": "^2.3.1" 825 | }, 826 | "engines": { 827 | "node": ">= 12.0.0" 828 | } 829 | }, 830 | "node_modules/@aws-sdk/util-uri-escape": { 831 | "version": "3.55.0", 832 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", 833 | "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", 834 | "dependencies": { 835 | "tslib": "^2.3.1" 836 | }, 837 | "engines": { 838 | "node": ">= 12.0.0" 839 | } 840 | }, 841 | "node_modules/@aws-sdk/util-user-agent-browser": { 842 | "version": "3.58.0", 843 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.58.0.tgz", 844 | "integrity": "sha512-aJpqCvT09giJRg5xFTBDBRAVF0k0yq3OEf6UTuiOVf5azlL2MGp6PJ/xkJp9Z06PuQQkwBJ/2nIQZemo02a5Sw==", 845 | "dependencies": { 846 | "@aws-sdk/types": "3.55.0", 847 | "bowser": "^2.11.0", 848 | "tslib": "^2.3.1" 849 | } 850 | }, 851 | "node_modules/@aws-sdk/util-user-agent-node": { 852 | "version": "3.58.0", 853 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.58.0.tgz", 854 | "integrity": "sha512-VlbY/nzWdN2pfLUHqKvnlGBQ6tEeV4jyK9ggAD2Szjj0bkYvaaKwpBKswQmuJpi5/J2v7Bo4ayBLnqDL7PgzLA==", 855 | "dependencies": { 856 | "@aws-sdk/node-config-provider": "3.58.0", 857 | "@aws-sdk/types": "3.55.0", 858 | "tslib": "^2.3.1" 859 | }, 860 | "engines": { 861 | "node": ">= 12.0.0" 862 | } 863 | }, 864 | "node_modules/@aws-sdk/util-utf8-browser": { 865 | "version": "3.55.0", 866 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", 867 | "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", 868 | "dependencies": { 869 | "tslib": "^2.3.1" 870 | } 871 | }, 872 | "node_modules/@aws-sdk/util-utf8-node": { 873 | "version": "3.55.0", 874 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", 875 | "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", 876 | "dependencies": { 877 | "@aws-sdk/util-buffer-from": "3.55.0", 878 | "tslib": "^2.3.1" 879 | }, 880 | "engines": { 881 | "node": ">= 12.0.0" 882 | } 883 | }, 884 | "node_modules/@aws-sdk/util-waiter": { 885 | "version": "3.55.0", 886 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.55.0.tgz", 887 | "integrity": "sha512-Do34MKPFSC/+zVN6vY+FZ+0WN61hzga4nPoAC590AOjs8rW6/H6sDN6Gz1KAZbPnuQUZfvsIJjMxN7lblXHJkQ==", 888 | "dependencies": { 889 | "@aws-sdk/abort-controller": "3.55.0", 890 | "@aws-sdk/types": "3.55.0", 891 | "tslib": "^2.3.1" 892 | }, 893 | "engines": { 894 | "node": ">= 12.0.0" 895 | } 896 | }, 897 | "node_modules/bowser": { 898 | "version": "2.11.0", 899 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", 900 | "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" 901 | }, 902 | "node_modules/entities": { 903 | "version": "2.2.0", 904 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 905 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 906 | "funding": { 907 | "url": "https://github.com/fb55/entities?sponsor=1" 908 | } 909 | }, 910 | "node_modules/fast-xml-parser": { 911 | "version": "3.19.0", 912 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", 913 | "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", 914 | "bin": { 915 | "xml2js": "cli.js" 916 | }, 917 | "funding": { 918 | "type": "paypal", 919 | "url": "https://paypal.me/naturalintelligence" 920 | } 921 | }, 922 | "node_modules/mnemonist": { 923 | "version": "0.38.3", 924 | "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", 925 | "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", 926 | "dependencies": { 927 | "obliterator": "^1.6.1" 928 | } 929 | }, 930 | "node_modules/obliterator": { 931 | "version": "1.6.1", 932 | "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", 933 | "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==" 934 | }, 935 | "node_modules/tslib": { 936 | "version": "2.3.1", 937 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 938 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 939 | }, 940 | "node_modules/uuid": { 941 | "version": "8.3.2", 942 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 943 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 944 | "bin": { 945 | "uuid": "dist/bin/uuid" 946 | } 947 | } 948 | }, 949 | "dependencies": { 950 | "@aws-crypto/ie11-detection": { 951 | "version": "2.0.0", 952 | "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", 953 | "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", 954 | "requires": { 955 | "tslib": "^1.11.1" 956 | }, 957 | "dependencies": { 958 | "tslib": { 959 | "version": "1.14.1", 960 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 961 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 962 | } 963 | } 964 | }, 965 | "@aws-crypto/sha256-browser": { 966 | "version": "2.0.0", 967 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", 968 | "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", 969 | "requires": { 970 | "@aws-crypto/ie11-detection": "^2.0.0", 971 | "@aws-crypto/sha256-js": "^2.0.0", 972 | "@aws-crypto/supports-web-crypto": "^2.0.0", 973 | "@aws-crypto/util": "^2.0.0", 974 | "@aws-sdk/types": "^3.1.0", 975 | "@aws-sdk/util-locate-window": "^3.0.0", 976 | "@aws-sdk/util-utf8-browser": "^3.0.0", 977 | "tslib": "^1.11.1" 978 | }, 979 | "dependencies": { 980 | "tslib": { 981 | "version": "1.14.1", 982 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 983 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 984 | } 985 | } 986 | }, 987 | "@aws-crypto/sha256-js": { 988 | "version": "2.0.0", 989 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", 990 | "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", 991 | "requires": { 992 | "@aws-crypto/util": "^2.0.0", 993 | "@aws-sdk/types": "^3.1.0", 994 | "tslib": "^1.11.1" 995 | }, 996 | "dependencies": { 997 | "tslib": { 998 | "version": "1.14.1", 999 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1000 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1001 | } 1002 | } 1003 | }, 1004 | "@aws-crypto/supports-web-crypto": { 1005 | "version": "2.0.0", 1006 | "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", 1007 | "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", 1008 | "requires": { 1009 | "tslib": "^1.11.1" 1010 | }, 1011 | "dependencies": { 1012 | "tslib": { 1013 | "version": "1.14.1", 1014 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1015 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1016 | } 1017 | } 1018 | }, 1019 | "@aws-crypto/util": { 1020 | "version": "2.0.1", 1021 | "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", 1022 | "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", 1023 | "requires": { 1024 | "@aws-sdk/types": "^3.1.0", 1025 | "@aws-sdk/util-utf8-browser": "^3.0.0", 1026 | "tslib": "^1.11.1" 1027 | }, 1028 | "dependencies": { 1029 | "tslib": { 1030 | "version": "1.14.1", 1031 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1032 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1033 | } 1034 | } 1035 | }, 1036 | "@aws-sdk/abort-controller": { 1037 | "version": "3.55.0", 1038 | "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.55.0.tgz", 1039 | "integrity": "sha512-rCcTxJDEFnmvo/PgbhCRv24/Uv03lEGfRslKZq7SjaMcOubflS/ZXYaMEgsjYHgAT0zlpSsyCIkJXmhFaM7H7w==", 1040 | "requires": { 1041 | "@aws-sdk/types": "3.55.0", 1042 | "tslib": "^2.3.1" 1043 | } 1044 | }, 1045 | "@aws-sdk/client-dynamodb": { 1046 | "version": "3.58.0", 1047 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.58.0.tgz", 1048 | "integrity": "sha512-54uclCvSVREutcty19NqfzC5V/0ebYSz51lz5jQpHYObP2uUAKOunTAWx1lnWACZ9U9Ka6SHWN/NhKFXeMKwgw==", 1049 | "requires": { 1050 | "@aws-crypto/sha256-browser": "2.0.0", 1051 | "@aws-crypto/sha256-js": "2.0.0", 1052 | "@aws-sdk/client-sts": "3.58.0", 1053 | "@aws-sdk/config-resolver": "3.58.0", 1054 | "@aws-sdk/credential-provider-node": "3.58.0", 1055 | "@aws-sdk/fetch-http-handler": "3.58.0", 1056 | "@aws-sdk/hash-node": "3.55.0", 1057 | "@aws-sdk/invalid-dependency": "3.55.0", 1058 | "@aws-sdk/middleware-content-length": "3.58.0", 1059 | "@aws-sdk/middleware-endpoint-discovery": "3.58.0", 1060 | "@aws-sdk/middleware-host-header": "3.58.0", 1061 | "@aws-sdk/middleware-logger": "3.55.0", 1062 | "@aws-sdk/middleware-retry": "3.58.0", 1063 | "@aws-sdk/middleware-serde": "3.55.0", 1064 | "@aws-sdk/middleware-signing": "3.58.0", 1065 | "@aws-sdk/middleware-stack": "3.55.0", 1066 | "@aws-sdk/middleware-user-agent": "3.58.0", 1067 | "@aws-sdk/node-config-provider": "3.58.0", 1068 | "@aws-sdk/node-http-handler": "3.58.0", 1069 | "@aws-sdk/protocol-http": "3.58.0", 1070 | "@aws-sdk/smithy-client": "3.55.0", 1071 | "@aws-sdk/types": "3.55.0", 1072 | "@aws-sdk/url-parser": "3.55.0", 1073 | "@aws-sdk/util-base64-browser": "3.58.0", 1074 | "@aws-sdk/util-base64-node": "3.55.0", 1075 | "@aws-sdk/util-body-length-browser": "3.55.0", 1076 | "@aws-sdk/util-body-length-node": "3.55.0", 1077 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 1078 | "@aws-sdk/util-defaults-mode-node": "3.58.0", 1079 | "@aws-sdk/util-user-agent-browser": "3.58.0", 1080 | "@aws-sdk/util-user-agent-node": "3.58.0", 1081 | "@aws-sdk/util-utf8-browser": "3.55.0", 1082 | "@aws-sdk/util-utf8-node": "3.55.0", 1083 | "@aws-sdk/util-waiter": "3.55.0", 1084 | "tslib": "^2.3.1", 1085 | "uuid": "^8.3.2" 1086 | } 1087 | }, 1088 | "@aws-sdk/client-sso": { 1089 | "version": "3.58.0", 1090 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.58.0.tgz", 1091 | "integrity": "sha512-nS5G/OX8Bg4ajBa6+jLcbbr4PpEO+l5eJfGUzoJQwS4Zqa0lF/wC0kyjKm61gLp4JuvhrQskxIC/3IXUqB1XVQ==", 1092 | "requires": { 1093 | "@aws-crypto/sha256-browser": "2.0.0", 1094 | "@aws-crypto/sha256-js": "2.0.0", 1095 | "@aws-sdk/config-resolver": "3.58.0", 1096 | "@aws-sdk/fetch-http-handler": "3.58.0", 1097 | "@aws-sdk/hash-node": "3.55.0", 1098 | "@aws-sdk/invalid-dependency": "3.55.0", 1099 | "@aws-sdk/middleware-content-length": "3.58.0", 1100 | "@aws-sdk/middleware-host-header": "3.58.0", 1101 | "@aws-sdk/middleware-logger": "3.55.0", 1102 | "@aws-sdk/middleware-retry": "3.58.0", 1103 | "@aws-sdk/middleware-serde": "3.55.0", 1104 | "@aws-sdk/middleware-stack": "3.55.0", 1105 | "@aws-sdk/middleware-user-agent": "3.58.0", 1106 | "@aws-sdk/node-config-provider": "3.58.0", 1107 | "@aws-sdk/node-http-handler": "3.58.0", 1108 | "@aws-sdk/protocol-http": "3.58.0", 1109 | "@aws-sdk/smithy-client": "3.55.0", 1110 | "@aws-sdk/types": "3.55.0", 1111 | "@aws-sdk/url-parser": "3.55.0", 1112 | "@aws-sdk/util-base64-browser": "3.58.0", 1113 | "@aws-sdk/util-base64-node": "3.55.0", 1114 | "@aws-sdk/util-body-length-browser": "3.55.0", 1115 | "@aws-sdk/util-body-length-node": "3.55.0", 1116 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 1117 | "@aws-sdk/util-defaults-mode-node": "3.58.0", 1118 | "@aws-sdk/util-user-agent-browser": "3.58.0", 1119 | "@aws-sdk/util-user-agent-node": "3.58.0", 1120 | "@aws-sdk/util-utf8-browser": "3.55.0", 1121 | "@aws-sdk/util-utf8-node": "3.55.0", 1122 | "tslib": "^2.3.1" 1123 | } 1124 | }, 1125 | "@aws-sdk/client-sts": { 1126 | "version": "3.58.0", 1127 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.58.0.tgz", 1128 | "integrity": "sha512-2cHZsG2eXv/Zl0hvsG9+rdHEuAclMFfkma/3LC3RRwSuZXo1rXoIhFkzHfGfIbivdk738YAo7FT3ZYGlrsK4ow==", 1129 | "requires": { 1130 | "@aws-crypto/sha256-browser": "2.0.0", 1131 | "@aws-crypto/sha256-js": "2.0.0", 1132 | "@aws-sdk/config-resolver": "3.58.0", 1133 | "@aws-sdk/credential-provider-node": "3.58.0", 1134 | "@aws-sdk/fetch-http-handler": "3.58.0", 1135 | "@aws-sdk/hash-node": "3.55.0", 1136 | "@aws-sdk/invalid-dependency": "3.55.0", 1137 | "@aws-sdk/middleware-content-length": "3.58.0", 1138 | "@aws-sdk/middleware-host-header": "3.58.0", 1139 | "@aws-sdk/middleware-logger": "3.55.0", 1140 | "@aws-sdk/middleware-retry": "3.58.0", 1141 | "@aws-sdk/middleware-sdk-sts": "3.58.0", 1142 | "@aws-sdk/middleware-serde": "3.55.0", 1143 | "@aws-sdk/middleware-signing": "3.58.0", 1144 | "@aws-sdk/middleware-stack": "3.55.0", 1145 | "@aws-sdk/middleware-user-agent": "3.58.0", 1146 | "@aws-sdk/node-config-provider": "3.58.0", 1147 | "@aws-sdk/node-http-handler": "3.58.0", 1148 | "@aws-sdk/protocol-http": "3.58.0", 1149 | "@aws-sdk/smithy-client": "3.55.0", 1150 | "@aws-sdk/types": "3.55.0", 1151 | "@aws-sdk/url-parser": "3.55.0", 1152 | "@aws-sdk/util-base64-browser": "3.58.0", 1153 | "@aws-sdk/util-base64-node": "3.55.0", 1154 | "@aws-sdk/util-body-length-browser": "3.55.0", 1155 | "@aws-sdk/util-body-length-node": "3.55.0", 1156 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 1157 | "@aws-sdk/util-defaults-mode-node": "3.58.0", 1158 | "@aws-sdk/util-user-agent-browser": "3.58.0", 1159 | "@aws-sdk/util-user-agent-node": "3.58.0", 1160 | "@aws-sdk/util-utf8-browser": "3.55.0", 1161 | "@aws-sdk/util-utf8-node": "3.55.0", 1162 | "entities": "2.2.0", 1163 | "fast-xml-parser": "3.19.0", 1164 | "tslib": "^2.3.1" 1165 | } 1166 | }, 1167 | "@aws-sdk/config-resolver": { 1168 | "version": "3.58.0", 1169 | "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.58.0.tgz", 1170 | "integrity": "sha512-NXEwYw0JrXcvenu42QpNMQXK+6pgZ+6bDGfCgOfCC0FmyI+w/CuF36lApwm7InHvHazOaDlwArXm2pfntErKoA==", 1171 | "requires": { 1172 | "@aws-sdk/signature-v4": "3.58.0", 1173 | "@aws-sdk/types": "3.55.0", 1174 | "@aws-sdk/util-config-provider": "3.55.0", 1175 | "@aws-sdk/util-middleware": "3.55.0", 1176 | "tslib": "^2.3.1" 1177 | } 1178 | }, 1179 | "@aws-sdk/credential-provider-env": { 1180 | "version": "3.55.0", 1181 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.55.0.tgz", 1182 | "integrity": "sha512-4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==", 1183 | "requires": { 1184 | "@aws-sdk/property-provider": "3.55.0", 1185 | "@aws-sdk/types": "3.55.0", 1186 | "tslib": "^2.3.1" 1187 | } 1188 | }, 1189 | "@aws-sdk/credential-provider-imds": { 1190 | "version": "3.58.0", 1191 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.58.0.tgz", 1192 | "integrity": "sha512-CdtnTQ9zqLx1FbXdbgjijLbMcIWOyQM03TFaLSCjI3FNbUwyt3T7StBU9tj/LtbypHhSdXyQBpzUtXTOMWCEhg==", 1193 | "requires": { 1194 | "@aws-sdk/node-config-provider": "3.58.0", 1195 | "@aws-sdk/property-provider": "3.55.0", 1196 | "@aws-sdk/types": "3.55.0", 1197 | "@aws-sdk/url-parser": "3.55.0", 1198 | "tslib": "^2.3.1" 1199 | } 1200 | }, 1201 | "@aws-sdk/credential-provider-ini": { 1202 | "version": "3.58.0", 1203 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.58.0.tgz", 1204 | "integrity": "sha512-uM62hcHUVaHP1YFnbrjf2RlrRj1m/BvMPE+T5jdNRWdE3lvnunhEMawB26HZs9nQqCV6d25I8G9/fGWVL7g3Og==", 1205 | "requires": { 1206 | "@aws-sdk/credential-provider-env": "3.55.0", 1207 | "@aws-sdk/credential-provider-imds": "3.58.0", 1208 | "@aws-sdk/credential-provider-sso": "3.58.0", 1209 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 1210 | "@aws-sdk/property-provider": "3.55.0", 1211 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 1212 | "@aws-sdk/types": "3.55.0", 1213 | "tslib": "^2.3.1" 1214 | } 1215 | }, 1216 | "@aws-sdk/credential-provider-node": { 1217 | "version": "3.58.0", 1218 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.58.0.tgz", 1219 | "integrity": "sha512-f0wzcgMYCQUrii6TLP2ggCxkQP4HH8PW8tbbWEgt4cdIXcjE9KEuxN5yOV6sFHzL3eJh0QM9Yaz8WzhWn6fT2A==", 1220 | "requires": { 1221 | "@aws-sdk/credential-provider-env": "3.55.0", 1222 | "@aws-sdk/credential-provider-imds": "3.58.0", 1223 | "@aws-sdk/credential-provider-ini": "3.58.0", 1224 | "@aws-sdk/credential-provider-process": "3.58.0", 1225 | "@aws-sdk/credential-provider-sso": "3.58.0", 1226 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 1227 | "@aws-sdk/property-provider": "3.55.0", 1228 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 1229 | "@aws-sdk/types": "3.55.0", 1230 | "tslib": "^2.3.1" 1231 | } 1232 | }, 1233 | "@aws-sdk/credential-provider-process": { 1234 | "version": "3.58.0", 1235 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.58.0.tgz", 1236 | "integrity": "sha512-npgFqPUjMhUamf1FvJjBYUdpbWx8XWkKCwJsX73I7IYQAvAi2atCOkdtKq+4rds0VWAYu6vzlaI1tXgFxjOPNQ==", 1237 | "requires": { 1238 | "@aws-sdk/property-provider": "3.55.0", 1239 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 1240 | "@aws-sdk/types": "3.55.0", 1241 | "tslib": "^2.3.1" 1242 | } 1243 | }, 1244 | "@aws-sdk/credential-provider-sso": { 1245 | "version": "3.58.0", 1246 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.58.0.tgz", 1247 | "integrity": "sha512-2qO34s9lJqvCC6zOF4UpopW6xURZpYfVC8xTUDpAUnvTOt4nS5hkx4vNyqPAXILoRHuFJsnlWsBH1UP5ZnBiZg==", 1248 | "requires": { 1249 | "@aws-sdk/client-sso": "3.58.0", 1250 | "@aws-sdk/property-provider": "3.55.0", 1251 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 1252 | "@aws-sdk/types": "3.55.0", 1253 | "tslib": "^2.3.1" 1254 | } 1255 | }, 1256 | "@aws-sdk/credential-provider-web-identity": { 1257 | "version": "3.55.0", 1258 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.55.0.tgz", 1259 | "integrity": "sha512-aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==", 1260 | "requires": { 1261 | "@aws-sdk/property-provider": "3.55.0", 1262 | "@aws-sdk/types": "3.55.0", 1263 | "tslib": "^2.3.1" 1264 | } 1265 | }, 1266 | "@aws-sdk/endpoint-cache": { 1267 | "version": "3.55.0", 1268 | "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.55.0.tgz", 1269 | "integrity": "sha512-kxDoHFDuQwZEEUZRp+ZLOg68EXuKPzUN86DcpIZantDVcmu7MSPTbbQp9DZd8MnKVEKCP7Sop5f7zCqOPl3LXw==", 1270 | "requires": { 1271 | "mnemonist": "0.38.3", 1272 | "tslib": "^2.3.1" 1273 | } 1274 | }, 1275 | "@aws-sdk/fetch-http-handler": { 1276 | "version": "3.58.0", 1277 | "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.58.0.tgz", 1278 | "integrity": "sha512-timF3FjPV5Bd+Kgph83LIKVlPCFObVYzious1a6doeLAT6YFwZpRrWbfP/HzS+DCoYiwUsH69oVJ91BoV66oyA==", 1279 | "requires": { 1280 | "@aws-sdk/protocol-http": "3.58.0", 1281 | "@aws-sdk/querystring-builder": "3.55.0", 1282 | "@aws-sdk/types": "3.55.0", 1283 | "@aws-sdk/util-base64-browser": "3.58.0", 1284 | "tslib": "^2.3.1" 1285 | } 1286 | }, 1287 | "@aws-sdk/hash-node": { 1288 | "version": "3.55.0", 1289 | "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.55.0.tgz", 1290 | "integrity": "sha512-2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==", 1291 | "requires": { 1292 | "@aws-sdk/types": "3.55.0", 1293 | "@aws-sdk/util-buffer-from": "3.55.0", 1294 | "tslib": "^2.3.1" 1295 | } 1296 | }, 1297 | "@aws-sdk/invalid-dependency": { 1298 | "version": "3.55.0", 1299 | "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.55.0.tgz", 1300 | "integrity": "sha512-delH0lV+78fdD/8MXIt9kTLS6IwHvdhqq9dw/ow5VjTUw+xBwUlfPfZplaai+3hKTKWh6a2WZCeDasNItBv9aA==", 1301 | "requires": { 1302 | "@aws-sdk/types": "3.55.0", 1303 | "tslib": "^2.3.1" 1304 | } 1305 | }, 1306 | "@aws-sdk/is-array-buffer": { 1307 | "version": "3.55.0", 1308 | "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", 1309 | "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", 1310 | "requires": { 1311 | "tslib": "^2.3.1" 1312 | } 1313 | }, 1314 | "@aws-sdk/middleware-content-length": { 1315 | "version": "3.58.0", 1316 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.58.0.tgz", 1317 | "integrity": "sha512-h/BypPkhjv2CpCUbXA8Fa2s7V2GPiz9l11XhYK+sKSuQvQ7Lbq6VhaKaLqfeD3gLVZHgJZSLGl2btdHV1qHNNA==", 1318 | "requires": { 1319 | "@aws-sdk/protocol-http": "3.58.0", 1320 | "@aws-sdk/types": "3.55.0", 1321 | "tslib": "^2.3.1" 1322 | } 1323 | }, 1324 | "@aws-sdk/middleware-endpoint-discovery": { 1325 | "version": "3.58.0", 1326 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.58.0.tgz", 1327 | "integrity": "sha512-Ll42zMPP8dDTHesv5VdnM0vgT4mW+kR2SgXCWBMuwnZdBn0FDH1A3E0BqJkLuuq2TKIah0/l1sA1qVC68GkAeA==", 1328 | "requires": { 1329 | "@aws-sdk/config-resolver": "3.58.0", 1330 | "@aws-sdk/endpoint-cache": "3.55.0", 1331 | "@aws-sdk/protocol-http": "3.58.0", 1332 | "@aws-sdk/types": "3.55.0", 1333 | "tslib": "^2.3.1" 1334 | } 1335 | }, 1336 | "@aws-sdk/middleware-host-header": { 1337 | "version": "3.58.0", 1338 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.58.0.tgz", 1339 | "integrity": "sha512-q/UKGcanm9e6DBRNN6UKhVqLvpRRdZWbmmPCeDNr4HqhCmgT6i1OvWdhAMOnT++hvCX8DpTsIXzNSlY6zWAxBg==", 1340 | "requires": { 1341 | "@aws-sdk/protocol-http": "3.58.0", 1342 | "@aws-sdk/types": "3.55.0", 1343 | "tslib": "^2.3.1" 1344 | } 1345 | }, 1346 | "@aws-sdk/middleware-logger": { 1347 | "version": "3.55.0", 1348 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.55.0.tgz", 1349 | "integrity": "sha512-PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==", 1350 | "requires": { 1351 | "@aws-sdk/types": "3.55.0", 1352 | "tslib": "^2.3.1" 1353 | } 1354 | }, 1355 | "@aws-sdk/middleware-retry": { 1356 | "version": "3.58.0", 1357 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.58.0.tgz", 1358 | "integrity": "sha512-sfSq+t0Yy47DQwrWGpA8iOx9sd26l4l1JDVTwHNi7+OKD4ClRPVCEdw3bTbbyYz/PV4f9AEfAZ6jwtSff4wkGw==", 1359 | "requires": { 1360 | "@aws-sdk/protocol-http": "3.58.0", 1361 | "@aws-sdk/service-error-classification": "3.55.0", 1362 | "@aws-sdk/types": "3.55.0", 1363 | "@aws-sdk/util-middleware": "3.55.0", 1364 | "tslib": "^2.3.1", 1365 | "uuid": "^8.3.2" 1366 | } 1367 | }, 1368 | "@aws-sdk/middleware-sdk-sts": { 1369 | "version": "3.58.0", 1370 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.58.0.tgz", 1371 | "integrity": "sha512-HUz7MhcsSDDTGygOwL61l4voc0pZco06J3z06JjTX19D5XxcQ7hSCtkHHHz0oMb9M1himVSiEon2tjhjsnB99g==", 1372 | "requires": { 1373 | "@aws-sdk/middleware-signing": "3.58.0", 1374 | "@aws-sdk/property-provider": "3.55.0", 1375 | "@aws-sdk/protocol-http": "3.58.0", 1376 | "@aws-sdk/signature-v4": "3.58.0", 1377 | "@aws-sdk/types": "3.55.0", 1378 | "tslib": "^2.3.1" 1379 | } 1380 | }, 1381 | "@aws-sdk/middleware-serde": { 1382 | "version": "3.55.0", 1383 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.55.0.tgz", 1384 | "integrity": "sha512-NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==", 1385 | "requires": { 1386 | "@aws-sdk/types": "3.55.0", 1387 | "tslib": "^2.3.1" 1388 | } 1389 | }, 1390 | "@aws-sdk/middleware-signing": { 1391 | "version": "3.58.0", 1392 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.58.0.tgz", 1393 | "integrity": "sha512-4FXubHB66GbhyZUlo6YPQoWpYfED15GNbEmHbJLSONzrVzZR3IkViSPLasDngVm1a050JqKuqNkFYGJBP4No/Q==", 1394 | "requires": { 1395 | "@aws-sdk/property-provider": "3.55.0", 1396 | "@aws-sdk/protocol-http": "3.58.0", 1397 | "@aws-sdk/signature-v4": "3.58.0", 1398 | "@aws-sdk/types": "3.55.0", 1399 | "tslib": "^2.3.1" 1400 | } 1401 | }, 1402 | "@aws-sdk/middleware-stack": { 1403 | "version": "3.55.0", 1404 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.55.0.tgz", 1405 | "integrity": "sha512-ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==", 1406 | "requires": { 1407 | "tslib": "^2.3.1" 1408 | } 1409 | }, 1410 | "@aws-sdk/middleware-user-agent": { 1411 | "version": "3.58.0", 1412 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.58.0.tgz", 1413 | "integrity": "sha512-1c69bIWM63JwXijXvb9IWwcwQ/gViKMZ1lhxv52NvdG5VSxWXXsFJ2jETEXZoAypwT97Hmf3xo9SYuaHcKoq+g==", 1414 | "requires": { 1415 | "@aws-sdk/protocol-http": "3.58.0", 1416 | "@aws-sdk/types": "3.55.0", 1417 | "tslib": "^2.3.1" 1418 | } 1419 | }, 1420 | "@aws-sdk/node-config-provider": { 1421 | "version": "3.58.0", 1422 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.58.0.tgz", 1423 | "integrity": "sha512-AMcPqPhKxo/3/yOMS9PsKlI0GWp2/8eD6gSlhzdBpznPCKplyqXOSnSX7wS814Cyh373hFSjCaOrCOA9/EYtDg==", 1424 | "requires": { 1425 | "@aws-sdk/property-provider": "3.55.0", 1426 | "@aws-sdk/shared-ini-file-loader": "3.58.0", 1427 | "@aws-sdk/types": "3.55.0", 1428 | "tslib": "^2.3.1" 1429 | } 1430 | }, 1431 | "@aws-sdk/node-http-handler": { 1432 | "version": "3.58.0", 1433 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.58.0.tgz", 1434 | "integrity": "sha512-D9xVZG2nfo4GbPsby3JuBiAhpqXTFk1+CfuQU0AZv0gQvE3fFTCnB3za83jo7JV/pyRPU+s+/LHIpxCWUHzStg==", 1435 | "requires": { 1436 | "@aws-sdk/abort-controller": "3.55.0", 1437 | "@aws-sdk/protocol-http": "3.58.0", 1438 | "@aws-sdk/querystring-builder": "3.55.0", 1439 | "@aws-sdk/types": "3.55.0", 1440 | "tslib": "^2.3.1" 1441 | } 1442 | }, 1443 | "@aws-sdk/property-provider": { 1444 | "version": "3.55.0", 1445 | "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.55.0.tgz", 1446 | "integrity": "sha512-o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==", 1447 | "requires": { 1448 | "@aws-sdk/types": "3.55.0", 1449 | "tslib": "^2.3.1" 1450 | } 1451 | }, 1452 | "@aws-sdk/protocol-http": { 1453 | "version": "3.58.0", 1454 | "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.58.0.tgz", 1455 | "integrity": "sha512-0yFFRPbR+CCa9eOQBBQ2qtrIDLYqSMN0y7G4iqVM8wQdIw7n3QK1PsTI3RNPGJ3Oi2krFTw5uUKqQQZPZEBuVQ==", 1456 | "requires": { 1457 | "@aws-sdk/types": "3.55.0", 1458 | "tslib": "^2.3.1" 1459 | } 1460 | }, 1461 | "@aws-sdk/querystring-builder": { 1462 | "version": "3.55.0", 1463 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.55.0.tgz", 1464 | "integrity": "sha512-/ZAXNipt9nRR8k+eowwukE/YjXnQ49p5w/MkaQxsBk3IuIf7MAcgVg8glHr0igH84GfUQ7ZVP8v+G2S3tKUG+Q==", 1465 | "requires": { 1466 | "@aws-sdk/types": "3.55.0", 1467 | "@aws-sdk/util-uri-escape": "3.55.0", 1468 | "tslib": "^2.3.1" 1469 | } 1470 | }, 1471 | "@aws-sdk/querystring-parser": { 1472 | "version": "3.55.0", 1473 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.55.0.tgz", 1474 | "integrity": "sha512-e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==", 1475 | "requires": { 1476 | "@aws-sdk/types": "3.55.0", 1477 | "tslib": "^2.3.1" 1478 | } 1479 | }, 1480 | "@aws-sdk/service-error-classification": { 1481 | "version": "3.55.0", 1482 | "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.55.0.tgz", 1483 | "integrity": "sha512-HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==" 1484 | }, 1485 | "@aws-sdk/shared-ini-file-loader": { 1486 | "version": "3.58.0", 1487 | "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.58.0.tgz", 1488 | "integrity": "sha512-ARDKQerIzgNs/MFNdCEuK2lgRJ1lneAaJw0p9O1LkJUvcSibvkSATwny7vwJMueOf+ae1Pf+8+54OMNIt0nTkQ==", 1489 | "requires": { 1490 | "tslib": "^2.3.1" 1491 | } 1492 | }, 1493 | "@aws-sdk/signature-v4": { 1494 | "version": "3.58.0", 1495 | "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.58.0.tgz", 1496 | "integrity": "sha512-flEo8p3XkzWoBDqnIUQre4jLuT5aLnmfQNI8c2uSjyJ3OBxpJ0iS1cDu3E++d1/pN6Q8o0KOmr2ypHeiyBOujw==", 1497 | "requires": { 1498 | "@aws-sdk/is-array-buffer": "3.55.0", 1499 | "@aws-sdk/types": "3.55.0", 1500 | "@aws-sdk/util-hex-encoding": "3.58.0", 1501 | "@aws-sdk/util-middleware": "3.55.0", 1502 | "@aws-sdk/util-uri-escape": "3.55.0", 1503 | "tslib": "^2.3.1" 1504 | } 1505 | }, 1506 | "@aws-sdk/smithy-client": { 1507 | "version": "3.55.0", 1508 | "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz", 1509 | "integrity": "sha512-YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==", 1510 | "requires": { 1511 | "@aws-sdk/middleware-stack": "3.55.0", 1512 | "@aws-sdk/types": "3.55.0", 1513 | "tslib": "^2.3.1" 1514 | } 1515 | }, 1516 | "@aws-sdk/types": { 1517 | "version": "3.55.0", 1518 | "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.55.0.tgz", 1519 | "integrity": "sha512-wrDZjuy1CVAYxDCbm3bWQIKMGfNs7XXmG0eG4858Ixgqmq2avsIn5TORy8ynBxcXn9aekV/+tGEQ7BBSYzIVNQ==" 1520 | }, 1521 | "@aws-sdk/url-parser": { 1522 | "version": "3.55.0", 1523 | "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.55.0.tgz", 1524 | "integrity": "sha512-qrTwN5xIgTLreqLnZ+x3cAudjNKfxi6srW1H/px2mk4lb2U9B4fpGjZ6VU+XV8U2kR+YlT8J6Jo5iwuVGfC91A==", 1525 | "requires": { 1526 | "@aws-sdk/querystring-parser": "3.55.0", 1527 | "@aws-sdk/types": "3.55.0", 1528 | "tslib": "^2.3.1" 1529 | } 1530 | }, 1531 | "@aws-sdk/util-base64-browser": { 1532 | "version": "3.58.0", 1533 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", 1534 | "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", 1535 | "requires": { 1536 | "tslib": "^2.3.1" 1537 | } 1538 | }, 1539 | "@aws-sdk/util-base64-node": { 1540 | "version": "3.55.0", 1541 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", 1542 | "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", 1543 | "requires": { 1544 | "@aws-sdk/util-buffer-from": "3.55.0", 1545 | "tslib": "^2.3.1" 1546 | } 1547 | }, 1548 | "@aws-sdk/util-body-length-browser": { 1549 | "version": "3.55.0", 1550 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", 1551 | "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", 1552 | "requires": { 1553 | "tslib": "^2.3.1" 1554 | } 1555 | }, 1556 | "@aws-sdk/util-body-length-node": { 1557 | "version": "3.55.0", 1558 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", 1559 | "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", 1560 | "requires": { 1561 | "tslib": "^2.3.1" 1562 | } 1563 | }, 1564 | "@aws-sdk/util-buffer-from": { 1565 | "version": "3.55.0", 1566 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", 1567 | "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", 1568 | "requires": { 1569 | "@aws-sdk/is-array-buffer": "3.55.0", 1570 | "tslib": "^2.3.1" 1571 | } 1572 | }, 1573 | "@aws-sdk/util-config-provider": { 1574 | "version": "3.55.0", 1575 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", 1576 | "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", 1577 | "requires": { 1578 | "tslib": "^2.3.1" 1579 | } 1580 | }, 1581 | "@aws-sdk/util-defaults-mode-browser": { 1582 | "version": "3.55.0", 1583 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz", 1584 | "integrity": "sha512-OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==", 1585 | "requires": { 1586 | "@aws-sdk/property-provider": "3.55.0", 1587 | "@aws-sdk/types": "3.55.0", 1588 | "bowser": "^2.11.0", 1589 | "tslib": "^2.3.1" 1590 | } 1591 | }, 1592 | "@aws-sdk/util-defaults-mode-node": { 1593 | "version": "3.58.0", 1594 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.58.0.tgz", 1595 | "integrity": "sha512-KNUCp0MXI+z3Z3pQCKDkx3Stdy1TXDjcUB+ZJFxRTJGIuBYwX4fV6G8s/zeFJi5Qv1ztR3CJ9fWJGsrx9mQ5EA==", 1596 | "requires": { 1597 | "@aws-sdk/config-resolver": "3.58.0", 1598 | "@aws-sdk/credential-provider-imds": "3.58.0", 1599 | "@aws-sdk/node-config-provider": "3.58.0", 1600 | "@aws-sdk/property-provider": "3.55.0", 1601 | "@aws-sdk/types": "3.55.0", 1602 | "tslib": "^2.3.1" 1603 | } 1604 | }, 1605 | "@aws-sdk/util-dynamodb": { 1606 | "version": "3.58.0", 1607 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.58.0.tgz", 1608 | "integrity": "sha512-RO7/lrbG0RcIsNug7ijeo6p8YX/VyOSur0q/KFZlB6o7f1KQ0lA7i+qh09oGmz92LSALknk+SSTd3xzh50vfsQ==", 1609 | "requires": { 1610 | "tslib": "^2.3.1" 1611 | } 1612 | }, 1613 | "@aws-sdk/util-hex-encoding": { 1614 | "version": "3.58.0", 1615 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", 1616 | "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", 1617 | "requires": { 1618 | "tslib": "^2.3.1" 1619 | } 1620 | }, 1621 | "@aws-sdk/util-locate-window": { 1622 | "version": "3.55.0", 1623 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", 1624 | "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", 1625 | "requires": { 1626 | "tslib": "^2.3.1" 1627 | } 1628 | }, 1629 | "@aws-sdk/util-middleware": { 1630 | "version": "3.55.0", 1631 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.55.0.tgz", 1632 | "integrity": "sha512-82fW2XV+rUalv8lkd4VlhpPp6xnXO5n9sckMp1N+TrQ+p8eqxqT0+o8n1/6s9Qsnkw64Y3m6+EfCdc8/uFOY2g==", 1633 | "requires": { 1634 | "tslib": "^2.3.1" 1635 | } 1636 | }, 1637 | "@aws-sdk/util-uri-escape": { 1638 | "version": "3.55.0", 1639 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", 1640 | "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", 1641 | "requires": { 1642 | "tslib": "^2.3.1" 1643 | } 1644 | }, 1645 | "@aws-sdk/util-user-agent-browser": { 1646 | "version": "3.58.0", 1647 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.58.0.tgz", 1648 | "integrity": "sha512-aJpqCvT09giJRg5xFTBDBRAVF0k0yq3OEf6UTuiOVf5azlL2MGp6PJ/xkJp9Z06PuQQkwBJ/2nIQZemo02a5Sw==", 1649 | "requires": { 1650 | "@aws-sdk/types": "3.55.0", 1651 | "bowser": "^2.11.0", 1652 | "tslib": "^2.3.1" 1653 | } 1654 | }, 1655 | "@aws-sdk/util-user-agent-node": { 1656 | "version": "3.58.0", 1657 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.58.0.tgz", 1658 | "integrity": "sha512-VlbY/nzWdN2pfLUHqKvnlGBQ6tEeV4jyK9ggAD2Szjj0bkYvaaKwpBKswQmuJpi5/J2v7Bo4ayBLnqDL7PgzLA==", 1659 | "requires": { 1660 | "@aws-sdk/node-config-provider": "3.58.0", 1661 | "@aws-sdk/types": "3.55.0", 1662 | "tslib": "^2.3.1" 1663 | } 1664 | }, 1665 | "@aws-sdk/util-utf8-browser": { 1666 | "version": "3.55.0", 1667 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", 1668 | "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", 1669 | "requires": { 1670 | "tslib": "^2.3.1" 1671 | } 1672 | }, 1673 | "@aws-sdk/util-utf8-node": { 1674 | "version": "3.55.0", 1675 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", 1676 | "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", 1677 | "requires": { 1678 | "@aws-sdk/util-buffer-from": "3.55.0", 1679 | "tslib": "^2.3.1" 1680 | } 1681 | }, 1682 | "@aws-sdk/util-waiter": { 1683 | "version": "3.55.0", 1684 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.55.0.tgz", 1685 | "integrity": "sha512-Do34MKPFSC/+zVN6vY+FZ+0WN61hzga4nPoAC590AOjs8rW6/H6sDN6Gz1KAZbPnuQUZfvsIJjMxN7lblXHJkQ==", 1686 | "requires": { 1687 | "@aws-sdk/abort-controller": "3.55.0", 1688 | "@aws-sdk/types": "3.55.0", 1689 | "tslib": "^2.3.1" 1690 | } 1691 | }, 1692 | "bowser": { 1693 | "version": "2.11.0", 1694 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", 1695 | "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" 1696 | }, 1697 | "entities": { 1698 | "version": "2.2.0", 1699 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 1700 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" 1701 | }, 1702 | "fast-xml-parser": { 1703 | "version": "3.19.0", 1704 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", 1705 | "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" 1706 | }, 1707 | "mnemonist": { 1708 | "version": "0.38.3", 1709 | "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", 1710 | "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", 1711 | "requires": { 1712 | "obliterator": "^1.6.1" 1713 | } 1714 | }, 1715 | "obliterator": { 1716 | "version": "1.6.1", 1717 | "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", 1718 | "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==" 1719 | }, 1720 | "tslib": { 1721 | "version": "2.3.1", 1722 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 1723 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 1724 | }, 1725 | "uuid": { 1726 | "version": "8.3.2", 1727 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 1728 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" 1729 | } 1730 | } 1731 | } 1732 | -------------------------------------------------------------------------------- /src/ordering/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@src/ordering", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "dependencies": { 6 | "@aws-sdk/client-dynamodb": "^3.58.0", 7 | "@aws-sdk/util-dynamodb": "^3.58.0" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/product/ddbClient.js: -------------------------------------------------------------------------------- 1 | // Create service client module using ES6 syntax. 2 | import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; 3 | // Create an Amazon DynamoDB service client object. 4 | const ddbClient = new DynamoDBClient(); 5 | export { ddbClient }; -------------------------------------------------------------------------------- /src/product/index.js: -------------------------------------------------------------------------------- 1 | import { DeleteItemCommand, GetItemCommand, PutItemCommand, QueryCommand, ScanCommand, UpdateItemCommand } from "@aws-sdk/client-dynamodb"; 2 | import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; 3 | import { ddbClient } from "./ddbClient"; 4 | import { v4 as uuidv4 } from 'uuid'; 5 | 6 | exports.handler = async function(event) { 7 | console.log("request:", JSON.stringify(event, undefined, 2)); 8 | 9 | let body; 10 | 11 | try { 12 | switch (event.httpMethod) { 13 | case "GET": 14 | if(event.queryStringParameters != null) { 15 | body = await getProductsByCategory(event); // GET product/1234?category=Phone 16 | } 17 | else if (event.pathParameters != null) { 18 | body = await getProduct(event.pathParameters.id); // GET product/{id} 19 | } else { 20 | body = await getAllProducts(); // GET product 21 | } 22 | break; 23 | case "POST": 24 | body = await createProduct(event); // POST /product 25 | break; 26 | case "DELETE": 27 | body = await deleteProduct(event.pathParameters.id); // DELETE /product/{id} 28 | break; 29 | case "PUT": 30 | body = await updateProduct(event); // PUT /product/{id} 31 | break; 32 | default: 33 | throw new Error(`Unsupported route: "${event.httpMethod}"`); 34 | } 35 | 36 | console.log(body); 37 | return { 38 | statusCode: 200, 39 | body: JSON.stringify({ 40 | message: `Successfully finished operation: "${event.httpMethod}"`, 41 | body: body 42 | }) 43 | }; 44 | 45 | } catch (e) { 46 | console.error(e); 47 | return { 48 | statusCode: 500, 49 | body: JSON.stringify({ 50 | message: "Failed to perform operation.", 51 | errorMsg: e.message, 52 | errorStack: e.stack, 53 | }) 54 | }; 55 | } 56 | }; 57 | 58 | const getProduct = async (productId) => { 59 | console.log("getProduct"); 60 | 61 | try { 62 | const params = { 63 | TableName: process.env.DYNAMODB_TABLE_NAME, 64 | Key: marshall({ id: productId }) 65 | }; 66 | 67 | const { Item } = await ddbClient.send(new GetItemCommand(params)); 68 | 69 | console.log(Item); 70 | return (Item) ? unmarshall(Item) : {}; 71 | 72 | } catch(e) { 73 | console.error(e); 74 | throw e; 75 | } 76 | } 77 | 78 | const getAllProducts = async () => { 79 | console.log("getAllProducts"); 80 | try { 81 | const params = { 82 | TableName: process.env.DYNAMODB_TABLE_NAME 83 | }; 84 | 85 | const { Items } = await ddbClient.send(new ScanCommand(params)); 86 | 87 | console.log(Items); 88 | return (Items) ? Items.map((item) => unmarshall(item)) : {}; 89 | 90 | } catch(e) { 91 | console.error(e); 92 | throw e; 93 | } 94 | } 95 | 96 | const createProduct = async (event) => { 97 | console.log(`createProduct function. event : "${event}"`); 98 | try { 99 | const productRequest = JSON.parse(event.body); 100 | // set productid 101 | const productId = uuidv4(); 102 | productRequest.id = productId; 103 | 104 | const params = { 105 | TableName: process.env.DYNAMODB_TABLE_NAME, 106 | Item: marshall(productRequest || {}) 107 | }; 108 | 109 | const createResult = await ddbClient.send(new PutItemCommand(params)); 110 | 111 | console.log(createResult); 112 | return createResult; 113 | 114 | } catch(e) { 115 | console.error(e); 116 | throw e; 117 | } 118 | } 119 | 120 | const deleteProduct = async (productId) => { 121 | console.log(`deleteProduct function. productId : "${productId}"`); 122 | 123 | try { 124 | const params = { 125 | TableName: process.env.DYNAMODB_TABLE_NAME, 126 | Key: marshall({ id: productId }), 127 | }; 128 | 129 | const deleteResult = await ddbClient.send(new DeleteItemCommand(params)); 130 | 131 | console.log(deleteResult); 132 | return deleteResult; 133 | } catch(e) { 134 | console.error(e); 135 | throw e; 136 | } 137 | } 138 | 139 | const updateProduct = async (event) => { 140 | console.log(`updateProduct function. event : "${event}"`); 141 | try { 142 | const requestBody = JSON.parse(event.body); 143 | const objKeys = Object.keys(requestBody); 144 | console.log(`updateProduct function. requestBody : "${requestBody}", objKeys: "${objKeys}"`); 145 | 146 | const params = { 147 | TableName: process.env.DYNAMODB_TABLE_NAME, 148 | Key: marshall({ id: event.pathParameters.id }), 149 | UpdateExpression: `SET ${objKeys.map((_, index) => `#key${index} = :value${index}`).join(", ")}`, 150 | ExpressionAttributeNames: objKeys.reduce((acc, key, index) => ({ 151 | ...acc, 152 | [`#key${index}`]: key, 153 | }), {}), 154 | ExpressionAttributeValues: marshall(objKeys.reduce((acc, key, index) => ({ 155 | ...acc, 156 | [`:value${index}`]: requestBody[key], 157 | }), {})), 158 | }; 159 | 160 | const updateResult = await ddbClient.send(new UpdateItemCommand(params)); 161 | 162 | console.log(updateResult); 163 | return updateResult; 164 | } catch(e) { 165 | console.error(e); 166 | throw e; 167 | } 168 | 169 | } 170 | 171 | const getProductsByCategory = async (event) => { 172 | console.log("getProductsByCategory"); 173 | try { 174 | // GET product/1234?category=Phone 175 | const productId = event.pathParameters.id; 176 | const category = event.queryStringParameters.category; 177 | 178 | const params = { 179 | KeyConditionExpression: "id = :productId", 180 | FilterExpression: "contains (category, :category)", 181 | ExpressionAttributeValues: { 182 | ":productId": { S: productId }, 183 | ":category": { S: category } 184 | }, 185 | TableName: process.env.DYNAMODB_TABLE_NAME 186 | }; 187 | 188 | const { Items } = await ddbClient.send(new QueryCommand(params)); 189 | 190 | console.log(Items); 191 | return Items.map((item) => unmarshall(item)); 192 | } catch(e) { 193 | console.error(e); 194 | throw e; 195 | } 196 | } -------------------------------------------------------------------------------- /src/product/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@src/product", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "@src/product", 9 | "version": "1.0.0", 10 | "dependencies": { 11 | "@aws-sdk/client-dynamodb": "^3.55.0", 12 | "@aws-sdk/util-dynamodb": "^3.55.0" 13 | } 14 | }, 15 | "node_modules/@aws-crypto/ie11-detection": { 16 | "version": "2.0.0", 17 | "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", 18 | "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", 19 | "dependencies": { 20 | "tslib": "^1.11.1" 21 | } 22 | }, 23 | "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { 24 | "version": "1.14.1", 25 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 26 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 27 | }, 28 | "node_modules/@aws-crypto/sha256-browser": { 29 | "version": "2.0.0", 30 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", 31 | "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", 32 | "dependencies": { 33 | "@aws-crypto/ie11-detection": "^2.0.0", 34 | "@aws-crypto/sha256-js": "^2.0.0", 35 | "@aws-crypto/supports-web-crypto": "^2.0.0", 36 | "@aws-crypto/util": "^2.0.0", 37 | "@aws-sdk/types": "^3.1.0", 38 | "@aws-sdk/util-locate-window": "^3.0.0", 39 | "@aws-sdk/util-utf8-browser": "^3.0.0", 40 | "tslib": "^1.11.1" 41 | } 42 | }, 43 | "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { 44 | "version": "1.14.1", 45 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 46 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 47 | }, 48 | "node_modules/@aws-crypto/sha256-js": { 49 | "version": "2.0.0", 50 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", 51 | "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", 52 | "dependencies": { 53 | "@aws-crypto/util": "^2.0.0", 54 | "@aws-sdk/types": "^3.1.0", 55 | "tslib": "^1.11.1" 56 | } 57 | }, 58 | "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { 59 | "version": "1.14.1", 60 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 61 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 62 | }, 63 | "node_modules/@aws-crypto/supports-web-crypto": { 64 | "version": "2.0.0", 65 | "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", 66 | "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", 67 | "dependencies": { 68 | "tslib": "^1.11.1" 69 | } 70 | }, 71 | "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { 72 | "version": "1.14.1", 73 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 74 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 75 | }, 76 | "node_modules/@aws-crypto/util": { 77 | "version": "2.0.1", 78 | "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", 79 | "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", 80 | "dependencies": { 81 | "@aws-sdk/types": "^3.1.0", 82 | "@aws-sdk/util-utf8-browser": "^3.0.0", 83 | "tslib": "^1.11.1" 84 | } 85 | }, 86 | "node_modules/@aws-crypto/util/node_modules/tslib": { 87 | "version": "1.14.1", 88 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 89 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 90 | }, 91 | "node_modules/@aws-sdk/abort-controller": { 92 | "version": "3.55.0", 93 | "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.55.0.tgz", 94 | "integrity": "sha512-rCcTxJDEFnmvo/PgbhCRv24/Uv03lEGfRslKZq7SjaMcOubflS/ZXYaMEgsjYHgAT0zlpSsyCIkJXmhFaM7H7w==", 95 | "dependencies": { 96 | "@aws-sdk/types": "3.55.0", 97 | "tslib": "^2.3.1" 98 | }, 99 | "engines": { 100 | "node": ">= 12.0.0" 101 | } 102 | }, 103 | "node_modules/@aws-sdk/client-dynamodb": { 104 | "version": "3.55.0", 105 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.55.0.tgz", 106 | "integrity": "sha512-INXDvGzltlO91y/iqNIyPBI6kW1gYwZzHXUTBtDZO1hQCedukj/AXX3kIkksfd5XG96Sj8FTB+1u/bV74dfyVA==", 107 | "dependencies": { 108 | "@aws-crypto/sha256-browser": "2.0.0", 109 | "@aws-crypto/sha256-js": "2.0.0", 110 | "@aws-sdk/client-sts": "3.55.0", 111 | "@aws-sdk/config-resolver": "3.55.0", 112 | "@aws-sdk/credential-provider-node": "3.55.0", 113 | "@aws-sdk/fetch-http-handler": "3.55.0", 114 | "@aws-sdk/hash-node": "3.55.0", 115 | "@aws-sdk/invalid-dependency": "3.55.0", 116 | "@aws-sdk/middleware-content-length": "3.55.0", 117 | "@aws-sdk/middleware-endpoint-discovery": "3.55.0", 118 | "@aws-sdk/middleware-host-header": "3.55.0", 119 | "@aws-sdk/middleware-logger": "3.55.0", 120 | "@aws-sdk/middleware-retry": "3.55.0", 121 | "@aws-sdk/middleware-serde": "3.55.0", 122 | "@aws-sdk/middleware-signing": "3.55.0", 123 | "@aws-sdk/middleware-stack": "3.55.0", 124 | "@aws-sdk/middleware-user-agent": "3.55.0", 125 | "@aws-sdk/node-config-provider": "3.55.0", 126 | "@aws-sdk/node-http-handler": "3.55.0", 127 | "@aws-sdk/protocol-http": "3.55.0", 128 | "@aws-sdk/smithy-client": "3.55.0", 129 | "@aws-sdk/types": "3.55.0", 130 | "@aws-sdk/url-parser": "3.55.0", 131 | "@aws-sdk/util-base64-browser": "3.55.0", 132 | "@aws-sdk/util-base64-node": "3.55.0", 133 | "@aws-sdk/util-body-length-browser": "3.55.0", 134 | "@aws-sdk/util-body-length-node": "3.55.0", 135 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 136 | "@aws-sdk/util-defaults-mode-node": "3.55.0", 137 | "@aws-sdk/util-user-agent-browser": "3.55.0", 138 | "@aws-sdk/util-user-agent-node": "3.55.0", 139 | "@aws-sdk/util-utf8-browser": "3.55.0", 140 | "@aws-sdk/util-utf8-node": "3.55.0", 141 | "@aws-sdk/util-waiter": "3.55.0", 142 | "tslib": "^2.3.1", 143 | "uuid": "^8.3.2" 144 | }, 145 | "engines": { 146 | "node": ">=12.0.0" 147 | } 148 | }, 149 | "node_modules/@aws-sdk/client-sso": { 150 | "version": "3.55.0", 151 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.55.0.tgz", 152 | "integrity": "sha512-bIGy2xkWZ00Vn5ByLIQamHVbzSE6Pbcs67873otNWtpkygfMzvQRFZ8RB6J+C6BuAwT3xTLI0aNi40RxxwM4HQ==", 153 | "dependencies": { 154 | "@aws-crypto/sha256-browser": "2.0.0", 155 | "@aws-crypto/sha256-js": "2.0.0", 156 | "@aws-sdk/config-resolver": "3.55.0", 157 | "@aws-sdk/fetch-http-handler": "3.55.0", 158 | "@aws-sdk/hash-node": "3.55.0", 159 | "@aws-sdk/invalid-dependency": "3.55.0", 160 | "@aws-sdk/middleware-content-length": "3.55.0", 161 | "@aws-sdk/middleware-host-header": "3.55.0", 162 | "@aws-sdk/middleware-logger": "3.55.0", 163 | "@aws-sdk/middleware-retry": "3.55.0", 164 | "@aws-sdk/middleware-serde": "3.55.0", 165 | "@aws-sdk/middleware-stack": "3.55.0", 166 | "@aws-sdk/middleware-user-agent": "3.55.0", 167 | "@aws-sdk/node-config-provider": "3.55.0", 168 | "@aws-sdk/node-http-handler": "3.55.0", 169 | "@aws-sdk/protocol-http": "3.55.0", 170 | "@aws-sdk/smithy-client": "3.55.0", 171 | "@aws-sdk/types": "3.55.0", 172 | "@aws-sdk/url-parser": "3.55.0", 173 | "@aws-sdk/util-base64-browser": "3.55.0", 174 | "@aws-sdk/util-base64-node": "3.55.0", 175 | "@aws-sdk/util-body-length-browser": "3.55.0", 176 | "@aws-sdk/util-body-length-node": "3.55.0", 177 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 178 | "@aws-sdk/util-defaults-mode-node": "3.55.0", 179 | "@aws-sdk/util-user-agent-browser": "3.55.0", 180 | "@aws-sdk/util-user-agent-node": "3.55.0", 181 | "@aws-sdk/util-utf8-browser": "3.55.0", 182 | "@aws-sdk/util-utf8-node": "3.55.0", 183 | "tslib": "^2.3.1" 184 | }, 185 | "engines": { 186 | "node": ">=12.0.0" 187 | } 188 | }, 189 | "node_modules/@aws-sdk/client-sts": { 190 | "version": "3.55.0", 191 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.55.0.tgz", 192 | "integrity": "sha512-/xmx0bxvhL9ffQ7A263MyTAfC6G0cyy/FwTmTWTt2xoKCNub7sGrPCJOjZB5fvmy9FpUvFUOJw1DnCghANKxzw==", 193 | "dependencies": { 194 | "@aws-crypto/sha256-browser": "2.0.0", 195 | "@aws-crypto/sha256-js": "2.0.0", 196 | "@aws-sdk/config-resolver": "3.55.0", 197 | "@aws-sdk/credential-provider-node": "3.55.0", 198 | "@aws-sdk/fetch-http-handler": "3.55.0", 199 | "@aws-sdk/hash-node": "3.55.0", 200 | "@aws-sdk/invalid-dependency": "3.55.0", 201 | "@aws-sdk/middleware-content-length": "3.55.0", 202 | "@aws-sdk/middleware-host-header": "3.55.0", 203 | "@aws-sdk/middleware-logger": "3.55.0", 204 | "@aws-sdk/middleware-retry": "3.55.0", 205 | "@aws-sdk/middleware-sdk-sts": "3.55.0", 206 | "@aws-sdk/middleware-serde": "3.55.0", 207 | "@aws-sdk/middleware-signing": "3.55.0", 208 | "@aws-sdk/middleware-stack": "3.55.0", 209 | "@aws-sdk/middleware-user-agent": "3.55.0", 210 | "@aws-sdk/node-config-provider": "3.55.0", 211 | "@aws-sdk/node-http-handler": "3.55.0", 212 | "@aws-sdk/protocol-http": "3.55.0", 213 | "@aws-sdk/smithy-client": "3.55.0", 214 | "@aws-sdk/types": "3.55.0", 215 | "@aws-sdk/url-parser": "3.55.0", 216 | "@aws-sdk/util-base64-browser": "3.55.0", 217 | "@aws-sdk/util-base64-node": "3.55.0", 218 | "@aws-sdk/util-body-length-browser": "3.55.0", 219 | "@aws-sdk/util-body-length-node": "3.55.0", 220 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 221 | "@aws-sdk/util-defaults-mode-node": "3.55.0", 222 | "@aws-sdk/util-user-agent-browser": "3.55.0", 223 | "@aws-sdk/util-user-agent-node": "3.55.0", 224 | "@aws-sdk/util-utf8-browser": "3.55.0", 225 | "@aws-sdk/util-utf8-node": "3.55.0", 226 | "entities": "2.2.0", 227 | "fast-xml-parser": "3.19.0", 228 | "tslib": "^2.3.1" 229 | }, 230 | "engines": { 231 | "node": ">=12.0.0" 232 | } 233 | }, 234 | "node_modules/@aws-sdk/config-resolver": { 235 | "version": "3.55.0", 236 | "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.55.0.tgz", 237 | "integrity": "sha512-dW+UcGu6f+RA1ZsiSpdWUrWwrhevXZeeBtr08X83TP7dK8S6HHv5upX+4es1xou6aMqqin+yHZUVmabvAe/gpg==", 238 | "dependencies": { 239 | "@aws-sdk/signature-v4": "3.55.0", 240 | "@aws-sdk/types": "3.55.0", 241 | "@aws-sdk/util-config-provider": "3.55.0", 242 | "tslib": "^2.3.1" 243 | }, 244 | "engines": { 245 | "node": ">= 12.0.0" 246 | } 247 | }, 248 | "node_modules/@aws-sdk/credential-provider-env": { 249 | "version": "3.55.0", 250 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.55.0.tgz", 251 | "integrity": "sha512-4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==", 252 | "dependencies": { 253 | "@aws-sdk/property-provider": "3.55.0", 254 | "@aws-sdk/types": "3.55.0", 255 | "tslib": "^2.3.1" 256 | }, 257 | "engines": { 258 | "node": ">= 12.0.0" 259 | } 260 | }, 261 | "node_modules/@aws-sdk/credential-provider-imds": { 262 | "version": "3.55.0", 263 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.55.0.tgz", 264 | "integrity": "sha512-aBOQomxYwNHQSHuOetrER1r13x3tJWNd9Eho2OcGLRioNS6/on2T5ptQI5/pJvAqOWe7LG65k1g3eTf1T8Nf1Q==", 265 | "dependencies": { 266 | "@aws-sdk/node-config-provider": "3.55.0", 267 | "@aws-sdk/property-provider": "3.55.0", 268 | "@aws-sdk/types": "3.55.0", 269 | "@aws-sdk/url-parser": "3.55.0", 270 | "tslib": "^2.3.1" 271 | }, 272 | "engines": { 273 | "node": ">= 12.0.0" 274 | } 275 | }, 276 | "node_modules/@aws-sdk/credential-provider-ini": { 277 | "version": "3.55.0", 278 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.55.0.tgz", 279 | "integrity": "sha512-f4+8mqJ1xapF9SR90VC+Ho4zlnLPdCgAAm9f7Pauf1/beAk5bkmfLshLwQ5Jo4oEPbWLn1Sdk403kwnxpsnksg==", 280 | "dependencies": { 281 | "@aws-sdk/credential-provider-env": "3.55.0", 282 | "@aws-sdk/credential-provider-imds": "3.55.0", 283 | "@aws-sdk/credential-provider-sso": "3.55.0", 284 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 285 | "@aws-sdk/property-provider": "3.55.0", 286 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 287 | "@aws-sdk/types": "3.55.0", 288 | "tslib": "^2.3.1" 289 | }, 290 | "engines": { 291 | "node": ">= 12.0.0" 292 | } 293 | }, 294 | "node_modules/@aws-sdk/credential-provider-node": { 295 | "version": "3.55.0", 296 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.55.0.tgz", 297 | "integrity": "sha512-cDAk2+29sZyluk3D2vomCJd0adJxjun9yVdyAiuoutxx9LZ1KQgsDEVHDbPQFpmeOBBagtMNpHNVtUunQ3yy1w==", 298 | "dependencies": { 299 | "@aws-sdk/credential-provider-env": "3.55.0", 300 | "@aws-sdk/credential-provider-imds": "3.55.0", 301 | "@aws-sdk/credential-provider-ini": "3.55.0", 302 | "@aws-sdk/credential-provider-process": "3.55.0", 303 | "@aws-sdk/credential-provider-sso": "3.55.0", 304 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 305 | "@aws-sdk/property-provider": "3.55.0", 306 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 307 | "@aws-sdk/types": "3.55.0", 308 | "tslib": "^2.3.1" 309 | }, 310 | "engines": { 311 | "node": ">=12.0.0" 312 | } 313 | }, 314 | "node_modules/@aws-sdk/credential-provider-process": { 315 | "version": "3.55.0", 316 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.55.0.tgz", 317 | "integrity": "sha512-09AGJ6bdonXpV/dyHzrQqcbo2oy3aDxjcq+/LGo4GuB0ZHD2TJqKpExU7ie0rg/5OdBnTX6c+9JyjeFt03uX7w==", 318 | "dependencies": { 319 | "@aws-sdk/property-provider": "3.55.0", 320 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 321 | "@aws-sdk/types": "3.55.0", 322 | "tslib": "^2.3.1" 323 | }, 324 | "engines": { 325 | "node": ">= 12.0.0" 326 | } 327 | }, 328 | "node_modules/@aws-sdk/credential-provider-sso": { 329 | "version": "3.55.0", 330 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.55.0.tgz", 331 | "integrity": "sha512-hKWbZMDY5nZMsOKMVkeUrKCdHaemMhyAH4WfApq976DDJt6bm6U+jvkTspO8qQaIPD8xdRqyi5AMLvVcHjBbTg==", 332 | "dependencies": { 333 | "@aws-sdk/client-sso": "3.55.0", 334 | "@aws-sdk/property-provider": "3.55.0", 335 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 336 | "@aws-sdk/types": "3.55.0", 337 | "tslib": "^2.3.1" 338 | }, 339 | "engines": { 340 | "node": ">= 12.0.0" 341 | } 342 | }, 343 | "node_modules/@aws-sdk/credential-provider-web-identity": { 344 | "version": "3.55.0", 345 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.55.0.tgz", 346 | "integrity": "sha512-aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==", 347 | "dependencies": { 348 | "@aws-sdk/property-provider": "3.55.0", 349 | "@aws-sdk/types": "3.55.0", 350 | "tslib": "^2.3.1" 351 | }, 352 | "engines": { 353 | "node": ">= 12.0.0" 354 | } 355 | }, 356 | "node_modules/@aws-sdk/endpoint-cache": { 357 | "version": "3.55.0", 358 | "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.55.0.tgz", 359 | "integrity": "sha512-kxDoHFDuQwZEEUZRp+ZLOg68EXuKPzUN86DcpIZantDVcmu7MSPTbbQp9DZd8MnKVEKCP7Sop5f7zCqOPl3LXw==", 360 | "dependencies": { 361 | "mnemonist": "0.38.3", 362 | "tslib": "^2.3.1" 363 | }, 364 | "engines": { 365 | "node": ">= 12.0.0" 366 | } 367 | }, 368 | "node_modules/@aws-sdk/fetch-http-handler": { 369 | "version": "3.55.0", 370 | "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.55.0.tgz", 371 | "integrity": "sha512-/Sta3MLlszpRZ1pg+ClxfNqGvraX93F587eHrfQMaGXgQ2BqJLiAVRorBRGcmmmrHxfLOqspNqufF7ibrqziRQ==", 372 | "dependencies": { 373 | "@aws-sdk/protocol-http": "3.55.0", 374 | "@aws-sdk/querystring-builder": "3.55.0", 375 | "@aws-sdk/types": "3.55.0", 376 | "@aws-sdk/util-base64-browser": "3.55.0", 377 | "tslib": "^2.3.1" 378 | } 379 | }, 380 | "node_modules/@aws-sdk/hash-node": { 381 | "version": "3.55.0", 382 | "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.55.0.tgz", 383 | "integrity": "sha512-2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==", 384 | "dependencies": { 385 | "@aws-sdk/types": "3.55.0", 386 | "@aws-sdk/util-buffer-from": "3.55.0", 387 | "tslib": "^2.3.1" 388 | }, 389 | "engines": { 390 | "node": ">= 12.0.0" 391 | } 392 | }, 393 | "node_modules/@aws-sdk/invalid-dependency": { 394 | "version": "3.55.0", 395 | "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.55.0.tgz", 396 | "integrity": "sha512-delH0lV+78fdD/8MXIt9kTLS6IwHvdhqq9dw/ow5VjTUw+xBwUlfPfZplaai+3hKTKWh6a2WZCeDasNItBv9aA==", 397 | "dependencies": { 398 | "@aws-sdk/types": "3.55.0", 399 | "tslib": "^2.3.1" 400 | } 401 | }, 402 | "node_modules/@aws-sdk/is-array-buffer": { 403 | "version": "3.55.0", 404 | "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", 405 | "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", 406 | "dependencies": { 407 | "tslib": "^2.3.1" 408 | }, 409 | "engines": { 410 | "node": ">= 12.0.0" 411 | } 412 | }, 413 | "node_modules/@aws-sdk/middleware-content-length": { 414 | "version": "3.55.0", 415 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.55.0.tgz", 416 | "integrity": "sha512-IkFBwa1G5ERfKFh4Kdtcn/aNAGi3Hcp9IO1PVt69LZWaevxjXAi5NS2k65E9mZPEumzuLtcEeC+3qhPs4FUkqQ==", 417 | "dependencies": { 418 | "@aws-sdk/protocol-http": "3.55.0", 419 | "@aws-sdk/types": "3.55.0", 420 | "tslib": "^2.3.1" 421 | }, 422 | "engines": { 423 | "node": ">= 12.0.0" 424 | } 425 | }, 426 | "node_modules/@aws-sdk/middleware-endpoint-discovery": { 427 | "version": "3.55.0", 428 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.55.0.tgz", 429 | "integrity": "sha512-lVQLFQ9I3CCLNlx6lhH6rzodAJgM+rwXEbcn5UB1xSg1cmPd10hD1tvRHndDlHdrRF2ql6zk3LGq4JwB8IjNYw==", 430 | "dependencies": { 431 | "@aws-sdk/config-resolver": "3.55.0", 432 | "@aws-sdk/endpoint-cache": "3.55.0", 433 | "@aws-sdk/protocol-http": "3.55.0", 434 | "@aws-sdk/types": "3.55.0", 435 | "tslib": "^2.3.1" 436 | }, 437 | "engines": { 438 | "node": ">= 12.0.0" 439 | } 440 | }, 441 | "node_modules/@aws-sdk/middleware-host-header": { 442 | "version": "3.55.0", 443 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.55.0.tgz", 444 | "integrity": "sha512-69mTWJfuPP4aC+h2/cb9B2CUNA9tiRPUBp67dmMrA2dHyy53kNYo8TGgfLKProoBidBz/AVXIfnh+izJj0F20w==", 445 | "dependencies": { 446 | "@aws-sdk/protocol-http": "3.55.0", 447 | "@aws-sdk/types": "3.55.0", 448 | "tslib": "^2.3.1" 449 | }, 450 | "engines": { 451 | "node": ">= 12.0.0" 452 | } 453 | }, 454 | "node_modules/@aws-sdk/middleware-logger": { 455 | "version": "3.55.0", 456 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.55.0.tgz", 457 | "integrity": "sha512-PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==", 458 | "dependencies": { 459 | "@aws-sdk/types": "3.55.0", 460 | "tslib": "^2.3.1" 461 | }, 462 | "engines": { 463 | "node": ">= 12.0.0" 464 | } 465 | }, 466 | "node_modules/@aws-sdk/middleware-retry": { 467 | "version": "3.55.0", 468 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.55.0.tgz", 469 | "integrity": "sha512-Z0j4/zyvgp8Y7HYud1MCqheg9koVh7p1ekS8lm6GePZBWILXsFib8PK9eq7B16u2z7yyz2tHrzwQrHRRr0cQKQ==", 470 | "dependencies": { 471 | "@aws-sdk/protocol-http": "3.55.0", 472 | "@aws-sdk/service-error-classification": "3.55.0", 473 | "@aws-sdk/types": "3.55.0", 474 | "tslib": "^2.3.1", 475 | "uuid": "^8.3.2" 476 | }, 477 | "engines": { 478 | "node": ">= 12.0.0" 479 | } 480 | }, 481 | "node_modules/@aws-sdk/middleware-sdk-sts": { 482 | "version": "3.55.0", 483 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.55.0.tgz", 484 | "integrity": "sha512-BrK3UXmD08rGbhY6cAHXsQxDfflOrPbKe4gxymlckd9sGIPC42O1KfJQ0CaxWPvG1Gd3R/QFfoPFClpTDhdh0Q==", 485 | "dependencies": { 486 | "@aws-sdk/middleware-signing": "3.55.0", 487 | "@aws-sdk/property-provider": "3.55.0", 488 | "@aws-sdk/protocol-http": "3.55.0", 489 | "@aws-sdk/signature-v4": "3.55.0", 490 | "@aws-sdk/types": "3.55.0", 491 | "tslib": "^2.3.1" 492 | }, 493 | "engines": { 494 | "node": ">= 12.0.0" 495 | } 496 | }, 497 | "node_modules/@aws-sdk/middleware-serde": { 498 | "version": "3.55.0", 499 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.55.0.tgz", 500 | "integrity": "sha512-NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==", 501 | "dependencies": { 502 | "@aws-sdk/types": "3.55.0", 503 | "tslib": "^2.3.1" 504 | }, 505 | "engines": { 506 | "node": ">= 12.0.0" 507 | } 508 | }, 509 | "node_modules/@aws-sdk/middleware-signing": { 510 | "version": "3.55.0", 511 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.55.0.tgz", 512 | "integrity": "sha512-FUVrFv6zfHkX1gjwOvam4VneGJL9L/1can5HoNKAsxYwGUMVCrMEmyfkGWBy+paMe0dQ3bF4VVZjJHEvzJaQLQ==", 513 | "dependencies": { 514 | "@aws-sdk/property-provider": "3.55.0", 515 | "@aws-sdk/protocol-http": "3.55.0", 516 | "@aws-sdk/signature-v4": "3.55.0", 517 | "@aws-sdk/types": "3.55.0", 518 | "tslib": "^2.3.1" 519 | }, 520 | "engines": { 521 | "node": ">= 12.0.0" 522 | } 523 | }, 524 | "node_modules/@aws-sdk/middleware-stack": { 525 | "version": "3.55.0", 526 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.55.0.tgz", 527 | "integrity": "sha512-ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==", 528 | "dependencies": { 529 | "tslib": "^2.3.1" 530 | }, 531 | "engines": { 532 | "node": ">= 12.0.0" 533 | } 534 | }, 535 | "node_modules/@aws-sdk/middleware-user-agent": { 536 | "version": "3.55.0", 537 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.55.0.tgz", 538 | "integrity": "sha512-UOBimkQrj6onXb3Fyuao85IjipnDSowNHfOOl3ADVX9boA/A4db5QAXBSxThV0WHLArC0iiUsnwu95ElSSMVIg==", 539 | "dependencies": { 540 | "@aws-sdk/protocol-http": "3.55.0", 541 | "@aws-sdk/types": "3.55.0", 542 | "tslib": "^2.3.1" 543 | }, 544 | "engines": { 545 | "node": ">= 12.0.0" 546 | } 547 | }, 548 | "node_modules/@aws-sdk/node-config-provider": { 549 | "version": "3.55.0", 550 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.55.0.tgz", 551 | "integrity": "sha512-+qpAEWiRXCuY85+VkJWbe+4MfQjlq6Nzi4a+3OejyqTRYMkslK93tR7SejdCiyq1lWpqtbwI9DsjDO45/2P6LA==", 552 | "dependencies": { 553 | "@aws-sdk/property-provider": "3.55.0", 554 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 555 | "@aws-sdk/types": "3.55.0", 556 | "tslib": "^2.3.1" 557 | }, 558 | "engines": { 559 | "node": ">= 12.0.0" 560 | } 561 | }, 562 | "node_modules/@aws-sdk/node-http-handler": { 563 | "version": "3.55.0", 564 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.55.0.tgz", 565 | "integrity": "sha512-yF4YQr72YgVgWO9IDOhDcncqlKUJmMCtserAYhKNvmkVuaMGHE11p+IByWgcIsMJTvtFaFBhTA3W7zhJB1C1xA==", 566 | "dependencies": { 567 | "@aws-sdk/abort-controller": "3.55.0", 568 | "@aws-sdk/protocol-http": "3.55.0", 569 | "@aws-sdk/querystring-builder": "3.55.0", 570 | "@aws-sdk/types": "3.55.0", 571 | "tslib": "^2.3.1" 572 | }, 573 | "engines": { 574 | "node": ">= 12.0.0" 575 | } 576 | }, 577 | "node_modules/@aws-sdk/property-provider": { 578 | "version": "3.55.0", 579 | "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.55.0.tgz", 580 | "integrity": "sha512-o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==", 581 | "dependencies": { 582 | "@aws-sdk/types": "3.55.0", 583 | "tslib": "^2.3.1" 584 | }, 585 | "engines": { 586 | "node": ">= 12.0.0" 587 | } 588 | }, 589 | "node_modules/@aws-sdk/protocol-http": { 590 | "version": "3.55.0", 591 | "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.55.0.tgz", 592 | "integrity": "sha512-vNjjsP5bFuKQMhmuBQZDddH441xanPbm8n42qgfigv0RzgWQhvUFrnmZWLBdyY8geY0RwsQ6x9yfQ0gvs48tpw==", 593 | "dependencies": { 594 | "@aws-sdk/types": "3.55.0", 595 | "tslib": "^2.3.1" 596 | }, 597 | "engines": { 598 | "node": ">= 12.0.0" 599 | } 600 | }, 601 | "node_modules/@aws-sdk/querystring-builder": { 602 | "version": "3.55.0", 603 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.55.0.tgz", 604 | "integrity": "sha512-/ZAXNipt9nRR8k+eowwukE/YjXnQ49p5w/MkaQxsBk3IuIf7MAcgVg8glHr0igH84GfUQ7ZVP8v+G2S3tKUG+Q==", 605 | "dependencies": { 606 | "@aws-sdk/types": "3.55.0", 607 | "@aws-sdk/util-uri-escape": "3.55.0", 608 | "tslib": "^2.3.1" 609 | }, 610 | "engines": { 611 | "node": ">= 12.0.0" 612 | } 613 | }, 614 | "node_modules/@aws-sdk/querystring-parser": { 615 | "version": "3.55.0", 616 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.55.0.tgz", 617 | "integrity": "sha512-e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==", 618 | "dependencies": { 619 | "@aws-sdk/types": "3.55.0", 620 | "tslib": "^2.3.1" 621 | }, 622 | "engines": { 623 | "node": ">= 12.0.0" 624 | } 625 | }, 626 | "node_modules/@aws-sdk/service-error-classification": { 627 | "version": "3.55.0", 628 | "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.55.0.tgz", 629 | "integrity": "sha512-HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==", 630 | "engines": { 631 | "node": ">= 12.0.0" 632 | } 633 | }, 634 | "node_modules/@aws-sdk/shared-ini-file-loader": { 635 | "version": "3.55.0", 636 | "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.55.0.tgz", 637 | "integrity": "sha512-utmqVMvif8MjSr27HwPDZGCfJGCI4LoFkm4oyjonyu15aTfULm60mX6RTXftaQ2Syf7dnZ2U4kbp3xgzA5ZIgg==", 638 | "dependencies": { 639 | "tslib": "^2.3.1" 640 | }, 641 | "engines": { 642 | "node": ">= 12.0.0" 643 | } 644 | }, 645 | "node_modules/@aws-sdk/signature-v4": { 646 | "version": "3.55.0", 647 | "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.55.0.tgz", 648 | "integrity": "sha512-ryJ43HSIVq7wt+QDBlb5CFH/rrH0+LtgnLDU+FM1XAQkT+oo3V9Hzr7rFmnFSfZqr/8hAn/4xUGTaJKZgO57NQ==", 649 | "dependencies": { 650 | "@aws-sdk/is-array-buffer": "3.55.0", 651 | "@aws-sdk/types": "3.55.0", 652 | "@aws-sdk/util-hex-encoding": "3.55.0", 653 | "@aws-sdk/util-uri-escape": "3.55.0", 654 | "tslib": "^2.3.1" 655 | }, 656 | "engines": { 657 | "node": ">= 12.0.0" 658 | } 659 | }, 660 | "node_modules/@aws-sdk/smithy-client": { 661 | "version": "3.55.0", 662 | "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz", 663 | "integrity": "sha512-YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==", 664 | "dependencies": { 665 | "@aws-sdk/middleware-stack": "3.55.0", 666 | "@aws-sdk/types": "3.55.0", 667 | "tslib": "^2.3.1" 668 | }, 669 | "engines": { 670 | "node": ">= 12.0.0" 671 | } 672 | }, 673 | "node_modules/@aws-sdk/types": { 674 | "version": "3.55.0", 675 | "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.55.0.tgz", 676 | "integrity": "sha512-wrDZjuy1CVAYxDCbm3bWQIKMGfNs7XXmG0eG4858Ixgqmq2avsIn5TORy8ynBxcXn9aekV/+tGEQ7BBSYzIVNQ==", 677 | "engines": { 678 | "node": ">= 12.0.0" 679 | } 680 | }, 681 | "node_modules/@aws-sdk/url-parser": { 682 | "version": "3.55.0", 683 | "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.55.0.tgz", 684 | "integrity": "sha512-qrTwN5xIgTLreqLnZ+x3cAudjNKfxi6srW1H/px2mk4lb2U9B4fpGjZ6VU+XV8U2kR+YlT8J6Jo5iwuVGfC91A==", 685 | "dependencies": { 686 | "@aws-sdk/querystring-parser": "3.55.0", 687 | "@aws-sdk/types": "3.55.0", 688 | "tslib": "^2.3.1" 689 | } 690 | }, 691 | "node_modules/@aws-sdk/util-base64-browser": { 692 | "version": "3.55.0", 693 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.55.0.tgz", 694 | "integrity": "sha512-3hrZ2R/ZyD3IM25KhETOGLC5tB/ft8zoyVmNg1l4+takoUm46ompnglFXCVkWBu9Hpxc+M4XtiY7MHE6es4Wtg==", 695 | "dependencies": { 696 | "tslib": "^2.3.1" 697 | } 698 | }, 699 | "node_modules/@aws-sdk/util-base64-node": { 700 | "version": "3.55.0", 701 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", 702 | "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", 703 | "dependencies": { 704 | "@aws-sdk/util-buffer-from": "3.55.0", 705 | "tslib": "^2.3.1" 706 | }, 707 | "engines": { 708 | "node": ">= 12.0.0" 709 | } 710 | }, 711 | "node_modules/@aws-sdk/util-body-length-browser": { 712 | "version": "3.55.0", 713 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", 714 | "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", 715 | "dependencies": { 716 | "tslib": "^2.3.1" 717 | } 718 | }, 719 | "node_modules/@aws-sdk/util-body-length-node": { 720 | "version": "3.55.0", 721 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", 722 | "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", 723 | "dependencies": { 724 | "tslib": "^2.3.1" 725 | }, 726 | "engines": { 727 | "node": ">= 12.0.0" 728 | } 729 | }, 730 | "node_modules/@aws-sdk/util-buffer-from": { 731 | "version": "3.55.0", 732 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", 733 | "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", 734 | "dependencies": { 735 | "@aws-sdk/is-array-buffer": "3.55.0", 736 | "tslib": "^2.3.1" 737 | }, 738 | "engines": { 739 | "node": ">= 12.0.0" 740 | } 741 | }, 742 | "node_modules/@aws-sdk/util-config-provider": { 743 | "version": "3.55.0", 744 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", 745 | "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", 746 | "dependencies": { 747 | "tslib": "^2.3.1" 748 | }, 749 | "engines": { 750 | "node": ">= 12.0.0" 751 | } 752 | }, 753 | "node_modules/@aws-sdk/util-defaults-mode-browser": { 754 | "version": "3.55.0", 755 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz", 756 | "integrity": "sha512-OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==", 757 | "dependencies": { 758 | "@aws-sdk/property-provider": "3.55.0", 759 | "@aws-sdk/types": "3.55.0", 760 | "bowser": "^2.11.0", 761 | "tslib": "^2.3.1" 762 | }, 763 | "engines": { 764 | "node": ">= 10.0.0" 765 | } 766 | }, 767 | "node_modules/@aws-sdk/util-defaults-mode-node": { 768 | "version": "3.55.0", 769 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.55.0.tgz", 770 | "integrity": "sha512-uIVZ7SVBUrkSH1lqhmvvb0Sc1aecPydGH4ex2qA4Vrp+Xp0h4pzjRELdVEOFbAFMB1uHXzgMV6jLjADGZPrHrQ==", 771 | "dependencies": { 772 | "@aws-sdk/config-resolver": "3.55.0", 773 | "@aws-sdk/credential-provider-imds": "3.55.0", 774 | "@aws-sdk/node-config-provider": "3.55.0", 775 | "@aws-sdk/property-provider": "3.55.0", 776 | "@aws-sdk/types": "3.55.0", 777 | "tslib": "^2.3.1" 778 | }, 779 | "engines": { 780 | "node": ">= 10.0.0" 781 | } 782 | }, 783 | "node_modules/@aws-sdk/util-dynamodb": { 784 | "version": "3.55.0", 785 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.55.0.tgz", 786 | "integrity": "sha512-0nqptDB9WHo5qIk3XDwQqjALk/zYF52oAV9pLNHsV+/nOiBLxI16NolTFXNgVE5KNWn+SD++DZRNnEX4aR3pMQ==", 787 | "dependencies": { 788 | "tslib": "^2.3.1" 789 | }, 790 | "engines": { 791 | "node": ">= 12.0.0" 792 | } 793 | }, 794 | "node_modules/@aws-sdk/util-hex-encoding": { 795 | "version": "3.55.0", 796 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.55.0.tgz", 797 | "integrity": "sha512-zbDWNzIyqN2Po7SIo1ZDL4rQMP3R0TzGcCrm01bpQAb+2fWqUPigolvNZXXtMO6eS7EW3ZJJzkfoWHdH8zDz1A==", 798 | "dependencies": { 799 | "tslib": "^2.3.1" 800 | }, 801 | "engines": { 802 | "node": ">= 12.0.0" 803 | } 804 | }, 805 | "node_modules/@aws-sdk/util-locate-window": { 806 | "version": "3.55.0", 807 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", 808 | "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", 809 | "dependencies": { 810 | "tslib": "^2.3.1" 811 | }, 812 | "engines": { 813 | "node": ">= 12.0.0" 814 | } 815 | }, 816 | "node_modules/@aws-sdk/util-uri-escape": { 817 | "version": "3.55.0", 818 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", 819 | "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", 820 | "dependencies": { 821 | "tslib": "^2.3.1" 822 | }, 823 | "engines": { 824 | "node": ">= 12.0.0" 825 | } 826 | }, 827 | "node_modules/@aws-sdk/util-user-agent-browser": { 828 | "version": "3.55.0", 829 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.55.0.tgz", 830 | "integrity": "sha512-E+8PluqbdOKfdJc9E4k0vy4PPb9wvAMa2Zdm5ycoaY0IXRI9RjQJnRw5JKAAJWLuOy7Lb83LgoowGW3o+4AuKw==", 831 | "dependencies": { 832 | "@aws-sdk/types": "3.55.0", 833 | "bowser": "^2.11.0", 834 | "tslib": "^2.3.1" 835 | } 836 | }, 837 | "node_modules/@aws-sdk/util-user-agent-node": { 838 | "version": "3.55.0", 839 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.55.0.tgz", 840 | "integrity": "sha512-7aoolXzpnTcvIGkxY8v8AZR5ooH7c0wttEjQNkOfORQprznNuj5RUZPxq8oStpFSvwASZJPpfd2Y18G2jPthMw==", 841 | "dependencies": { 842 | "@aws-sdk/node-config-provider": "3.55.0", 843 | "@aws-sdk/types": "3.55.0", 844 | "tslib": "^2.3.1" 845 | }, 846 | "engines": { 847 | "node": ">= 12.0.0" 848 | } 849 | }, 850 | "node_modules/@aws-sdk/util-utf8-browser": { 851 | "version": "3.55.0", 852 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", 853 | "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", 854 | "dependencies": { 855 | "tslib": "^2.3.1" 856 | } 857 | }, 858 | "node_modules/@aws-sdk/util-utf8-node": { 859 | "version": "3.55.0", 860 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", 861 | "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", 862 | "dependencies": { 863 | "@aws-sdk/util-buffer-from": "3.55.0", 864 | "tslib": "^2.3.1" 865 | }, 866 | "engines": { 867 | "node": ">= 12.0.0" 868 | } 869 | }, 870 | "node_modules/@aws-sdk/util-waiter": { 871 | "version": "3.55.0", 872 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.55.0.tgz", 873 | "integrity": "sha512-Do34MKPFSC/+zVN6vY+FZ+0WN61hzga4nPoAC590AOjs8rW6/H6sDN6Gz1KAZbPnuQUZfvsIJjMxN7lblXHJkQ==", 874 | "dependencies": { 875 | "@aws-sdk/abort-controller": "3.55.0", 876 | "@aws-sdk/types": "3.55.0", 877 | "tslib": "^2.3.1" 878 | }, 879 | "engines": { 880 | "node": ">= 12.0.0" 881 | } 882 | }, 883 | "node_modules/bowser": { 884 | "version": "2.11.0", 885 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", 886 | "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" 887 | }, 888 | "node_modules/entities": { 889 | "version": "2.2.0", 890 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 891 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 892 | "funding": { 893 | "url": "https://github.com/fb55/entities?sponsor=1" 894 | } 895 | }, 896 | "node_modules/fast-xml-parser": { 897 | "version": "3.19.0", 898 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", 899 | "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", 900 | "bin": { 901 | "xml2js": "cli.js" 902 | }, 903 | "funding": { 904 | "type": "paypal", 905 | "url": "https://paypal.me/naturalintelligence" 906 | } 907 | }, 908 | "node_modules/mnemonist": { 909 | "version": "0.38.3", 910 | "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", 911 | "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", 912 | "dependencies": { 913 | "obliterator": "^1.6.1" 914 | } 915 | }, 916 | "node_modules/obliterator": { 917 | "version": "1.6.1", 918 | "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", 919 | "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==" 920 | }, 921 | "node_modules/tslib": { 922 | "version": "2.3.1", 923 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 924 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 925 | }, 926 | "node_modules/uuid": { 927 | "version": "8.3.2", 928 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 929 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 930 | "bin": { 931 | "uuid": "dist/bin/uuid" 932 | } 933 | } 934 | }, 935 | "dependencies": { 936 | "@aws-crypto/ie11-detection": { 937 | "version": "2.0.0", 938 | "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", 939 | "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", 940 | "requires": { 941 | "tslib": "^1.11.1" 942 | }, 943 | "dependencies": { 944 | "tslib": { 945 | "version": "1.14.1", 946 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 947 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 948 | } 949 | } 950 | }, 951 | "@aws-crypto/sha256-browser": { 952 | "version": "2.0.0", 953 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", 954 | "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", 955 | "requires": { 956 | "@aws-crypto/ie11-detection": "^2.0.0", 957 | "@aws-crypto/sha256-js": "^2.0.0", 958 | "@aws-crypto/supports-web-crypto": "^2.0.0", 959 | "@aws-crypto/util": "^2.0.0", 960 | "@aws-sdk/types": "^3.1.0", 961 | "@aws-sdk/util-locate-window": "^3.0.0", 962 | "@aws-sdk/util-utf8-browser": "^3.0.0", 963 | "tslib": "^1.11.1" 964 | }, 965 | "dependencies": { 966 | "tslib": { 967 | "version": "1.14.1", 968 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 969 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 970 | } 971 | } 972 | }, 973 | "@aws-crypto/sha256-js": { 974 | "version": "2.0.0", 975 | "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", 976 | "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", 977 | "requires": { 978 | "@aws-crypto/util": "^2.0.0", 979 | "@aws-sdk/types": "^3.1.0", 980 | "tslib": "^1.11.1" 981 | }, 982 | "dependencies": { 983 | "tslib": { 984 | "version": "1.14.1", 985 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 986 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 987 | } 988 | } 989 | }, 990 | "@aws-crypto/supports-web-crypto": { 991 | "version": "2.0.0", 992 | "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", 993 | "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", 994 | "requires": { 995 | "tslib": "^1.11.1" 996 | }, 997 | "dependencies": { 998 | "tslib": { 999 | "version": "1.14.1", 1000 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1001 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1002 | } 1003 | } 1004 | }, 1005 | "@aws-crypto/util": { 1006 | "version": "2.0.1", 1007 | "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", 1008 | "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", 1009 | "requires": { 1010 | "@aws-sdk/types": "^3.1.0", 1011 | "@aws-sdk/util-utf8-browser": "^3.0.0", 1012 | "tslib": "^1.11.1" 1013 | }, 1014 | "dependencies": { 1015 | "tslib": { 1016 | "version": "1.14.1", 1017 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1018 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1019 | } 1020 | } 1021 | }, 1022 | "@aws-sdk/abort-controller": { 1023 | "version": "3.55.0", 1024 | "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.55.0.tgz", 1025 | "integrity": "sha512-rCcTxJDEFnmvo/PgbhCRv24/Uv03lEGfRslKZq7SjaMcOubflS/ZXYaMEgsjYHgAT0zlpSsyCIkJXmhFaM7H7w==", 1026 | "requires": { 1027 | "@aws-sdk/types": "3.55.0", 1028 | "tslib": "^2.3.1" 1029 | } 1030 | }, 1031 | "@aws-sdk/client-dynamodb": { 1032 | "version": "3.55.0", 1033 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.55.0.tgz", 1034 | "integrity": "sha512-INXDvGzltlO91y/iqNIyPBI6kW1gYwZzHXUTBtDZO1hQCedukj/AXX3kIkksfd5XG96Sj8FTB+1u/bV74dfyVA==", 1035 | "requires": { 1036 | "@aws-crypto/sha256-browser": "2.0.0", 1037 | "@aws-crypto/sha256-js": "2.0.0", 1038 | "@aws-sdk/client-sts": "3.55.0", 1039 | "@aws-sdk/config-resolver": "3.55.0", 1040 | "@aws-sdk/credential-provider-node": "3.55.0", 1041 | "@aws-sdk/fetch-http-handler": "3.55.0", 1042 | "@aws-sdk/hash-node": "3.55.0", 1043 | "@aws-sdk/invalid-dependency": "3.55.0", 1044 | "@aws-sdk/middleware-content-length": "3.55.0", 1045 | "@aws-sdk/middleware-endpoint-discovery": "3.55.0", 1046 | "@aws-sdk/middleware-host-header": "3.55.0", 1047 | "@aws-sdk/middleware-logger": "3.55.0", 1048 | "@aws-sdk/middleware-retry": "3.55.0", 1049 | "@aws-sdk/middleware-serde": "3.55.0", 1050 | "@aws-sdk/middleware-signing": "3.55.0", 1051 | "@aws-sdk/middleware-stack": "3.55.0", 1052 | "@aws-sdk/middleware-user-agent": "3.55.0", 1053 | "@aws-sdk/node-config-provider": "3.55.0", 1054 | "@aws-sdk/node-http-handler": "3.55.0", 1055 | "@aws-sdk/protocol-http": "3.55.0", 1056 | "@aws-sdk/smithy-client": "3.55.0", 1057 | "@aws-sdk/types": "3.55.0", 1058 | "@aws-sdk/url-parser": "3.55.0", 1059 | "@aws-sdk/util-base64-browser": "3.55.0", 1060 | "@aws-sdk/util-base64-node": "3.55.0", 1061 | "@aws-sdk/util-body-length-browser": "3.55.0", 1062 | "@aws-sdk/util-body-length-node": "3.55.0", 1063 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 1064 | "@aws-sdk/util-defaults-mode-node": "3.55.0", 1065 | "@aws-sdk/util-user-agent-browser": "3.55.0", 1066 | "@aws-sdk/util-user-agent-node": "3.55.0", 1067 | "@aws-sdk/util-utf8-browser": "3.55.0", 1068 | "@aws-sdk/util-utf8-node": "3.55.0", 1069 | "@aws-sdk/util-waiter": "3.55.0", 1070 | "tslib": "^2.3.1", 1071 | "uuid": "^8.3.2" 1072 | } 1073 | }, 1074 | "@aws-sdk/client-sso": { 1075 | "version": "3.55.0", 1076 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.55.0.tgz", 1077 | "integrity": "sha512-bIGy2xkWZ00Vn5ByLIQamHVbzSE6Pbcs67873otNWtpkygfMzvQRFZ8RB6J+C6BuAwT3xTLI0aNi40RxxwM4HQ==", 1078 | "requires": { 1079 | "@aws-crypto/sha256-browser": "2.0.0", 1080 | "@aws-crypto/sha256-js": "2.0.0", 1081 | "@aws-sdk/config-resolver": "3.55.0", 1082 | "@aws-sdk/fetch-http-handler": "3.55.0", 1083 | "@aws-sdk/hash-node": "3.55.0", 1084 | "@aws-sdk/invalid-dependency": "3.55.0", 1085 | "@aws-sdk/middleware-content-length": "3.55.0", 1086 | "@aws-sdk/middleware-host-header": "3.55.0", 1087 | "@aws-sdk/middleware-logger": "3.55.0", 1088 | "@aws-sdk/middleware-retry": "3.55.0", 1089 | "@aws-sdk/middleware-serde": "3.55.0", 1090 | "@aws-sdk/middleware-stack": "3.55.0", 1091 | "@aws-sdk/middleware-user-agent": "3.55.0", 1092 | "@aws-sdk/node-config-provider": "3.55.0", 1093 | "@aws-sdk/node-http-handler": "3.55.0", 1094 | "@aws-sdk/protocol-http": "3.55.0", 1095 | "@aws-sdk/smithy-client": "3.55.0", 1096 | "@aws-sdk/types": "3.55.0", 1097 | "@aws-sdk/url-parser": "3.55.0", 1098 | "@aws-sdk/util-base64-browser": "3.55.0", 1099 | "@aws-sdk/util-base64-node": "3.55.0", 1100 | "@aws-sdk/util-body-length-browser": "3.55.0", 1101 | "@aws-sdk/util-body-length-node": "3.55.0", 1102 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 1103 | "@aws-sdk/util-defaults-mode-node": "3.55.0", 1104 | "@aws-sdk/util-user-agent-browser": "3.55.0", 1105 | "@aws-sdk/util-user-agent-node": "3.55.0", 1106 | "@aws-sdk/util-utf8-browser": "3.55.0", 1107 | "@aws-sdk/util-utf8-node": "3.55.0", 1108 | "tslib": "^2.3.1" 1109 | } 1110 | }, 1111 | "@aws-sdk/client-sts": { 1112 | "version": "3.55.0", 1113 | "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.55.0.tgz", 1114 | "integrity": "sha512-/xmx0bxvhL9ffQ7A263MyTAfC6G0cyy/FwTmTWTt2xoKCNub7sGrPCJOjZB5fvmy9FpUvFUOJw1DnCghANKxzw==", 1115 | "requires": { 1116 | "@aws-crypto/sha256-browser": "2.0.0", 1117 | "@aws-crypto/sha256-js": "2.0.0", 1118 | "@aws-sdk/config-resolver": "3.55.0", 1119 | "@aws-sdk/credential-provider-node": "3.55.0", 1120 | "@aws-sdk/fetch-http-handler": "3.55.0", 1121 | "@aws-sdk/hash-node": "3.55.0", 1122 | "@aws-sdk/invalid-dependency": "3.55.0", 1123 | "@aws-sdk/middleware-content-length": "3.55.0", 1124 | "@aws-sdk/middleware-host-header": "3.55.0", 1125 | "@aws-sdk/middleware-logger": "3.55.0", 1126 | "@aws-sdk/middleware-retry": "3.55.0", 1127 | "@aws-sdk/middleware-sdk-sts": "3.55.0", 1128 | "@aws-sdk/middleware-serde": "3.55.0", 1129 | "@aws-sdk/middleware-signing": "3.55.0", 1130 | "@aws-sdk/middleware-stack": "3.55.0", 1131 | "@aws-sdk/middleware-user-agent": "3.55.0", 1132 | "@aws-sdk/node-config-provider": "3.55.0", 1133 | "@aws-sdk/node-http-handler": "3.55.0", 1134 | "@aws-sdk/protocol-http": "3.55.0", 1135 | "@aws-sdk/smithy-client": "3.55.0", 1136 | "@aws-sdk/types": "3.55.0", 1137 | "@aws-sdk/url-parser": "3.55.0", 1138 | "@aws-sdk/util-base64-browser": "3.55.0", 1139 | "@aws-sdk/util-base64-node": "3.55.0", 1140 | "@aws-sdk/util-body-length-browser": "3.55.0", 1141 | "@aws-sdk/util-body-length-node": "3.55.0", 1142 | "@aws-sdk/util-defaults-mode-browser": "3.55.0", 1143 | "@aws-sdk/util-defaults-mode-node": "3.55.0", 1144 | "@aws-sdk/util-user-agent-browser": "3.55.0", 1145 | "@aws-sdk/util-user-agent-node": "3.55.0", 1146 | "@aws-sdk/util-utf8-browser": "3.55.0", 1147 | "@aws-sdk/util-utf8-node": "3.55.0", 1148 | "entities": "2.2.0", 1149 | "fast-xml-parser": "3.19.0", 1150 | "tslib": "^2.3.1" 1151 | } 1152 | }, 1153 | "@aws-sdk/config-resolver": { 1154 | "version": "3.55.0", 1155 | "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.55.0.tgz", 1156 | "integrity": "sha512-dW+UcGu6f+RA1ZsiSpdWUrWwrhevXZeeBtr08X83TP7dK8S6HHv5upX+4es1xou6aMqqin+yHZUVmabvAe/gpg==", 1157 | "requires": { 1158 | "@aws-sdk/signature-v4": "3.55.0", 1159 | "@aws-sdk/types": "3.55.0", 1160 | "@aws-sdk/util-config-provider": "3.55.0", 1161 | "tslib": "^2.3.1" 1162 | } 1163 | }, 1164 | "@aws-sdk/credential-provider-env": { 1165 | "version": "3.55.0", 1166 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.55.0.tgz", 1167 | "integrity": "sha512-4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==", 1168 | "requires": { 1169 | "@aws-sdk/property-provider": "3.55.0", 1170 | "@aws-sdk/types": "3.55.0", 1171 | "tslib": "^2.3.1" 1172 | } 1173 | }, 1174 | "@aws-sdk/credential-provider-imds": { 1175 | "version": "3.55.0", 1176 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.55.0.tgz", 1177 | "integrity": "sha512-aBOQomxYwNHQSHuOetrER1r13x3tJWNd9Eho2OcGLRioNS6/on2T5ptQI5/pJvAqOWe7LG65k1g3eTf1T8Nf1Q==", 1178 | "requires": { 1179 | "@aws-sdk/node-config-provider": "3.55.0", 1180 | "@aws-sdk/property-provider": "3.55.0", 1181 | "@aws-sdk/types": "3.55.0", 1182 | "@aws-sdk/url-parser": "3.55.0", 1183 | "tslib": "^2.3.1" 1184 | } 1185 | }, 1186 | "@aws-sdk/credential-provider-ini": { 1187 | "version": "3.55.0", 1188 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.55.0.tgz", 1189 | "integrity": "sha512-f4+8mqJ1xapF9SR90VC+Ho4zlnLPdCgAAm9f7Pauf1/beAk5bkmfLshLwQ5Jo4oEPbWLn1Sdk403kwnxpsnksg==", 1190 | "requires": { 1191 | "@aws-sdk/credential-provider-env": "3.55.0", 1192 | "@aws-sdk/credential-provider-imds": "3.55.0", 1193 | "@aws-sdk/credential-provider-sso": "3.55.0", 1194 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 1195 | "@aws-sdk/property-provider": "3.55.0", 1196 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 1197 | "@aws-sdk/types": "3.55.0", 1198 | "tslib": "^2.3.1" 1199 | } 1200 | }, 1201 | "@aws-sdk/credential-provider-node": { 1202 | "version": "3.55.0", 1203 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.55.0.tgz", 1204 | "integrity": "sha512-cDAk2+29sZyluk3D2vomCJd0adJxjun9yVdyAiuoutxx9LZ1KQgsDEVHDbPQFpmeOBBagtMNpHNVtUunQ3yy1w==", 1205 | "requires": { 1206 | "@aws-sdk/credential-provider-env": "3.55.0", 1207 | "@aws-sdk/credential-provider-imds": "3.55.0", 1208 | "@aws-sdk/credential-provider-ini": "3.55.0", 1209 | "@aws-sdk/credential-provider-process": "3.55.0", 1210 | "@aws-sdk/credential-provider-sso": "3.55.0", 1211 | "@aws-sdk/credential-provider-web-identity": "3.55.0", 1212 | "@aws-sdk/property-provider": "3.55.0", 1213 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 1214 | "@aws-sdk/types": "3.55.0", 1215 | "tslib": "^2.3.1" 1216 | } 1217 | }, 1218 | "@aws-sdk/credential-provider-process": { 1219 | "version": "3.55.0", 1220 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.55.0.tgz", 1221 | "integrity": "sha512-09AGJ6bdonXpV/dyHzrQqcbo2oy3aDxjcq+/LGo4GuB0ZHD2TJqKpExU7ie0rg/5OdBnTX6c+9JyjeFt03uX7w==", 1222 | "requires": { 1223 | "@aws-sdk/property-provider": "3.55.0", 1224 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 1225 | "@aws-sdk/types": "3.55.0", 1226 | "tslib": "^2.3.1" 1227 | } 1228 | }, 1229 | "@aws-sdk/credential-provider-sso": { 1230 | "version": "3.55.0", 1231 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.55.0.tgz", 1232 | "integrity": "sha512-hKWbZMDY5nZMsOKMVkeUrKCdHaemMhyAH4WfApq976DDJt6bm6U+jvkTspO8qQaIPD8xdRqyi5AMLvVcHjBbTg==", 1233 | "requires": { 1234 | "@aws-sdk/client-sso": "3.55.0", 1235 | "@aws-sdk/property-provider": "3.55.0", 1236 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 1237 | "@aws-sdk/types": "3.55.0", 1238 | "tslib": "^2.3.1" 1239 | } 1240 | }, 1241 | "@aws-sdk/credential-provider-web-identity": { 1242 | "version": "3.55.0", 1243 | "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.55.0.tgz", 1244 | "integrity": "sha512-aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==", 1245 | "requires": { 1246 | "@aws-sdk/property-provider": "3.55.0", 1247 | "@aws-sdk/types": "3.55.0", 1248 | "tslib": "^2.3.1" 1249 | } 1250 | }, 1251 | "@aws-sdk/endpoint-cache": { 1252 | "version": "3.55.0", 1253 | "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.55.0.tgz", 1254 | "integrity": "sha512-kxDoHFDuQwZEEUZRp+ZLOg68EXuKPzUN86DcpIZantDVcmu7MSPTbbQp9DZd8MnKVEKCP7Sop5f7zCqOPl3LXw==", 1255 | "requires": { 1256 | "mnemonist": "0.38.3", 1257 | "tslib": "^2.3.1" 1258 | } 1259 | }, 1260 | "@aws-sdk/fetch-http-handler": { 1261 | "version": "3.55.0", 1262 | "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.55.0.tgz", 1263 | "integrity": "sha512-/Sta3MLlszpRZ1pg+ClxfNqGvraX93F587eHrfQMaGXgQ2BqJLiAVRorBRGcmmmrHxfLOqspNqufF7ibrqziRQ==", 1264 | "requires": { 1265 | "@aws-sdk/protocol-http": "3.55.0", 1266 | "@aws-sdk/querystring-builder": "3.55.0", 1267 | "@aws-sdk/types": "3.55.0", 1268 | "@aws-sdk/util-base64-browser": "3.55.0", 1269 | "tslib": "^2.3.1" 1270 | } 1271 | }, 1272 | "@aws-sdk/hash-node": { 1273 | "version": "3.55.0", 1274 | "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.55.0.tgz", 1275 | "integrity": "sha512-2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==", 1276 | "requires": { 1277 | "@aws-sdk/types": "3.55.0", 1278 | "@aws-sdk/util-buffer-from": "3.55.0", 1279 | "tslib": "^2.3.1" 1280 | } 1281 | }, 1282 | "@aws-sdk/invalid-dependency": { 1283 | "version": "3.55.0", 1284 | "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.55.0.tgz", 1285 | "integrity": "sha512-delH0lV+78fdD/8MXIt9kTLS6IwHvdhqq9dw/ow5VjTUw+xBwUlfPfZplaai+3hKTKWh6a2WZCeDasNItBv9aA==", 1286 | "requires": { 1287 | "@aws-sdk/types": "3.55.0", 1288 | "tslib": "^2.3.1" 1289 | } 1290 | }, 1291 | "@aws-sdk/is-array-buffer": { 1292 | "version": "3.55.0", 1293 | "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", 1294 | "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", 1295 | "requires": { 1296 | "tslib": "^2.3.1" 1297 | } 1298 | }, 1299 | "@aws-sdk/middleware-content-length": { 1300 | "version": "3.55.0", 1301 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.55.0.tgz", 1302 | "integrity": "sha512-IkFBwa1G5ERfKFh4Kdtcn/aNAGi3Hcp9IO1PVt69LZWaevxjXAi5NS2k65E9mZPEumzuLtcEeC+3qhPs4FUkqQ==", 1303 | "requires": { 1304 | "@aws-sdk/protocol-http": "3.55.0", 1305 | "@aws-sdk/types": "3.55.0", 1306 | "tslib": "^2.3.1" 1307 | } 1308 | }, 1309 | "@aws-sdk/middleware-endpoint-discovery": { 1310 | "version": "3.55.0", 1311 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.55.0.tgz", 1312 | "integrity": "sha512-lVQLFQ9I3CCLNlx6lhH6rzodAJgM+rwXEbcn5UB1xSg1cmPd10hD1tvRHndDlHdrRF2ql6zk3LGq4JwB8IjNYw==", 1313 | "requires": { 1314 | "@aws-sdk/config-resolver": "3.55.0", 1315 | "@aws-sdk/endpoint-cache": "3.55.0", 1316 | "@aws-sdk/protocol-http": "3.55.0", 1317 | "@aws-sdk/types": "3.55.0", 1318 | "tslib": "^2.3.1" 1319 | } 1320 | }, 1321 | "@aws-sdk/middleware-host-header": { 1322 | "version": "3.55.0", 1323 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.55.0.tgz", 1324 | "integrity": "sha512-69mTWJfuPP4aC+h2/cb9B2CUNA9tiRPUBp67dmMrA2dHyy53kNYo8TGgfLKProoBidBz/AVXIfnh+izJj0F20w==", 1325 | "requires": { 1326 | "@aws-sdk/protocol-http": "3.55.0", 1327 | "@aws-sdk/types": "3.55.0", 1328 | "tslib": "^2.3.1" 1329 | } 1330 | }, 1331 | "@aws-sdk/middleware-logger": { 1332 | "version": "3.55.0", 1333 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.55.0.tgz", 1334 | "integrity": "sha512-PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==", 1335 | "requires": { 1336 | "@aws-sdk/types": "3.55.0", 1337 | "tslib": "^2.3.1" 1338 | } 1339 | }, 1340 | "@aws-sdk/middleware-retry": { 1341 | "version": "3.55.0", 1342 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.55.0.tgz", 1343 | "integrity": "sha512-Z0j4/zyvgp8Y7HYud1MCqheg9koVh7p1ekS8lm6GePZBWILXsFib8PK9eq7B16u2z7yyz2tHrzwQrHRRr0cQKQ==", 1344 | "requires": { 1345 | "@aws-sdk/protocol-http": "3.55.0", 1346 | "@aws-sdk/service-error-classification": "3.55.0", 1347 | "@aws-sdk/types": "3.55.0", 1348 | "tslib": "^2.3.1", 1349 | "uuid": "^8.3.2" 1350 | } 1351 | }, 1352 | "@aws-sdk/middleware-sdk-sts": { 1353 | "version": "3.55.0", 1354 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.55.0.tgz", 1355 | "integrity": "sha512-BrK3UXmD08rGbhY6cAHXsQxDfflOrPbKe4gxymlckd9sGIPC42O1KfJQ0CaxWPvG1Gd3R/QFfoPFClpTDhdh0Q==", 1356 | "requires": { 1357 | "@aws-sdk/middleware-signing": "3.55.0", 1358 | "@aws-sdk/property-provider": "3.55.0", 1359 | "@aws-sdk/protocol-http": "3.55.0", 1360 | "@aws-sdk/signature-v4": "3.55.0", 1361 | "@aws-sdk/types": "3.55.0", 1362 | "tslib": "^2.3.1" 1363 | } 1364 | }, 1365 | "@aws-sdk/middleware-serde": { 1366 | "version": "3.55.0", 1367 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.55.0.tgz", 1368 | "integrity": "sha512-NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==", 1369 | "requires": { 1370 | "@aws-sdk/types": "3.55.0", 1371 | "tslib": "^2.3.1" 1372 | } 1373 | }, 1374 | "@aws-sdk/middleware-signing": { 1375 | "version": "3.55.0", 1376 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.55.0.tgz", 1377 | "integrity": "sha512-FUVrFv6zfHkX1gjwOvam4VneGJL9L/1can5HoNKAsxYwGUMVCrMEmyfkGWBy+paMe0dQ3bF4VVZjJHEvzJaQLQ==", 1378 | "requires": { 1379 | "@aws-sdk/property-provider": "3.55.0", 1380 | "@aws-sdk/protocol-http": "3.55.0", 1381 | "@aws-sdk/signature-v4": "3.55.0", 1382 | "@aws-sdk/types": "3.55.0", 1383 | "tslib": "^2.3.1" 1384 | } 1385 | }, 1386 | "@aws-sdk/middleware-stack": { 1387 | "version": "3.55.0", 1388 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.55.0.tgz", 1389 | "integrity": "sha512-ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==", 1390 | "requires": { 1391 | "tslib": "^2.3.1" 1392 | } 1393 | }, 1394 | "@aws-sdk/middleware-user-agent": { 1395 | "version": "3.55.0", 1396 | "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.55.0.tgz", 1397 | "integrity": "sha512-UOBimkQrj6onXb3Fyuao85IjipnDSowNHfOOl3ADVX9boA/A4db5QAXBSxThV0WHLArC0iiUsnwu95ElSSMVIg==", 1398 | "requires": { 1399 | "@aws-sdk/protocol-http": "3.55.0", 1400 | "@aws-sdk/types": "3.55.0", 1401 | "tslib": "^2.3.1" 1402 | } 1403 | }, 1404 | "@aws-sdk/node-config-provider": { 1405 | "version": "3.55.0", 1406 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.55.0.tgz", 1407 | "integrity": "sha512-+qpAEWiRXCuY85+VkJWbe+4MfQjlq6Nzi4a+3OejyqTRYMkslK93tR7SejdCiyq1lWpqtbwI9DsjDO45/2P6LA==", 1408 | "requires": { 1409 | "@aws-sdk/property-provider": "3.55.0", 1410 | "@aws-sdk/shared-ini-file-loader": "3.55.0", 1411 | "@aws-sdk/types": "3.55.0", 1412 | "tslib": "^2.3.1" 1413 | } 1414 | }, 1415 | "@aws-sdk/node-http-handler": { 1416 | "version": "3.55.0", 1417 | "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.55.0.tgz", 1418 | "integrity": "sha512-yF4YQr72YgVgWO9IDOhDcncqlKUJmMCtserAYhKNvmkVuaMGHE11p+IByWgcIsMJTvtFaFBhTA3W7zhJB1C1xA==", 1419 | "requires": { 1420 | "@aws-sdk/abort-controller": "3.55.0", 1421 | "@aws-sdk/protocol-http": "3.55.0", 1422 | "@aws-sdk/querystring-builder": "3.55.0", 1423 | "@aws-sdk/types": "3.55.0", 1424 | "tslib": "^2.3.1" 1425 | } 1426 | }, 1427 | "@aws-sdk/property-provider": { 1428 | "version": "3.55.0", 1429 | "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.55.0.tgz", 1430 | "integrity": "sha512-o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==", 1431 | "requires": { 1432 | "@aws-sdk/types": "3.55.0", 1433 | "tslib": "^2.3.1" 1434 | } 1435 | }, 1436 | "@aws-sdk/protocol-http": { 1437 | "version": "3.55.0", 1438 | "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.55.0.tgz", 1439 | "integrity": "sha512-vNjjsP5bFuKQMhmuBQZDddH441xanPbm8n42qgfigv0RzgWQhvUFrnmZWLBdyY8geY0RwsQ6x9yfQ0gvs48tpw==", 1440 | "requires": { 1441 | "@aws-sdk/types": "3.55.0", 1442 | "tslib": "^2.3.1" 1443 | } 1444 | }, 1445 | "@aws-sdk/querystring-builder": { 1446 | "version": "3.55.0", 1447 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.55.0.tgz", 1448 | "integrity": "sha512-/ZAXNipt9nRR8k+eowwukE/YjXnQ49p5w/MkaQxsBk3IuIf7MAcgVg8glHr0igH84GfUQ7ZVP8v+G2S3tKUG+Q==", 1449 | "requires": { 1450 | "@aws-sdk/types": "3.55.0", 1451 | "@aws-sdk/util-uri-escape": "3.55.0", 1452 | "tslib": "^2.3.1" 1453 | } 1454 | }, 1455 | "@aws-sdk/querystring-parser": { 1456 | "version": "3.55.0", 1457 | "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.55.0.tgz", 1458 | "integrity": "sha512-e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==", 1459 | "requires": { 1460 | "@aws-sdk/types": "3.55.0", 1461 | "tslib": "^2.3.1" 1462 | } 1463 | }, 1464 | "@aws-sdk/service-error-classification": { 1465 | "version": "3.55.0", 1466 | "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.55.0.tgz", 1467 | "integrity": "sha512-HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==" 1468 | }, 1469 | "@aws-sdk/shared-ini-file-loader": { 1470 | "version": "3.55.0", 1471 | "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.55.0.tgz", 1472 | "integrity": "sha512-utmqVMvif8MjSr27HwPDZGCfJGCI4LoFkm4oyjonyu15aTfULm60mX6RTXftaQ2Syf7dnZ2U4kbp3xgzA5ZIgg==", 1473 | "requires": { 1474 | "tslib": "^2.3.1" 1475 | } 1476 | }, 1477 | "@aws-sdk/signature-v4": { 1478 | "version": "3.55.0", 1479 | "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.55.0.tgz", 1480 | "integrity": "sha512-ryJ43HSIVq7wt+QDBlb5CFH/rrH0+LtgnLDU+FM1XAQkT+oo3V9Hzr7rFmnFSfZqr/8hAn/4xUGTaJKZgO57NQ==", 1481 | "requires": { 1482 | "@aws-sdk/is-array-buffer": "3.55.0", 1483 | "@aws-sdk/types": "3.55.0", 1484 | "@aws-sdk/util-hex-encoding": "3.55.0", 1485 | "@aws-sdk/util-uri-escape": "3.55.0", 1486 | "tslib": "^2.3.1" 1487 | } 1488 | }, 1489 | "@aws-sdk/smithy-client": { 1490 | "version": "3.55.0", 1491 | "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz", 1492 | "integrity": "sha512-YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==", 1493 | "requires": { 1494 | "@aws-sdk/middleware-stack": "3.55.0", 1495 | "@aws-sdk/types": "3.55.0", 1496 | "tslib": "^2.3.1" 1497 | } 1498 | }, 1499 | "@aws-sdk/types": { 1500 | "version": "3.55.0", 1501 | "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.55.0.tgz", 1502 | "integrity": "sha512-wrDZjuy1CVAYxDCbm3bWQIKMGfNs7XXmG0eG4858Ixgqmq2avsIn5TORy8ynBxcXn9aekV/+tGEQ7BBSYzIVNQ==" 1503 | }, 1504 | "@aws-sdk/url-parser": { 1505 | "version": "3.55.0", 1506 | "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.55.0.tgz", 1507 | "integrity": "sha512-qrTwN5xIgTLreqLnZ+x3cAudjNKfxi6srW1H/px2mk4lb2U9B4fpGjZ6VU+XV8U2kR+YlT8J6Jo5iwuVGfC91A==", 1508 | "requires": { 1509 | "@aws-sdk/querystring-parser": "3.55.0", 1510 | "@aws-sdk/types": "3.55.0", 1511 | "tslib": "^2.3.1" 1512 | } 1513 | }, 1514 | "@aws-sdk/util-base64-browser": { 1515 | "version": "3.55.0", 1516 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.55.0.tgz", 1517 | "integrity": "sha512-3hrZ2R/ZyD3IM25KhETOGLC5tB/ft8zoyVmNg1l4+takoUm46ompnglFXCVkWBu9Hpxc+M4XtiY7MHE6es4Wtg==", 1518 | "requires": { 1519 | "tslib": "^2.3.1" 1520 | } 1521 | }, 1522 | "@aws-sdk/util-base64-node": { 1523 | "version": "3.55.0", 1524 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", 1525 | "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", 1526 | "requires": { 1527 | "@aws-sdk/util-buffer-from": "3.55.0", 1528 | "tslib": "^2.3.1" 1529 | } 1530 | }, 1531 | "@aws-sdk/util-body-length-browser": { 1532 | "version": "3.55.0", 1533 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", 1534 | "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", 1535 | "requires": { 1536 | "tslib": "^2.3.1" 1537 | } 1538 | }, 1539 | "@aws-sdk/util-body-length-node": { 1540 | "version": "3.55.0", 1541 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", 1542 | "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", 1543 | "requires": { 1544 | "tslib": "^2.3.1" 1545 | } 1546 | }, 1547 | "@aws-sdk/util-buffer-from": { 1548 | "version": "3.55.0", 1549 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", 1550 | "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", 1551 | "requires": { 1552 | "@aws-sdk/is-array-buffer": "3.55.0", 1553 | "tslib": "^2.3.1" 1554 | } 1555 | }, 1556 | "@aws-sdk/util-config-provider": { 1557 | "version": "3.55.0", 1558 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", 1559 | "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", 1560 | "requires": { 1561 | "tslib": "^2.3.1" 1562 | } 1563 | }, 1564 | "@aws-sdk/util-defaults-mode-browser": { 1565 | "version": "3.55.0", 1566 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz", 1567 | "integrity": "sha512-OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==", 1568 | "requires": { 1569 | "@aws-sdk/property-provider": "3.55.0", 1570 | "@aws-sdk/types": "3.55.0", 1571 | "bowser": "^2.11.0", 1572 | "tslib": "^2.3.1" 1573 | } 1574 | }, 1575 | "@aws-sdk/util-defaults-mode-node": { 1576 | "version": "3.55.0", 1577 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.55.0.tgz", 1578 | "integrity": "sha512-uIVZ7SVBUrkSH1lqhmvvb0Sc1aecPydGH4ex2qA4Vrp+Xp0h4pzjRELdVEOFbAFMB1uHXzgMV6jLjADGZPrHrQ==", 1579 | "requires": { 1580 | "@aws-sdk/config-resolver": "3.55.0", 1581 | "@aws-sdk/credential-provider-imds": "3.55.0", 1582 | "@aws-sdk/node-config-provider": "3.55.0", 1583 | "@aws-sdk/property-provider": "3.55.0", 1584 | "@aws-sdk/types": "3.55.0", 1585 | "tslib": "^2.3.1" 1586 | } 1587 | }, 1588 | "@aws-sdk/util-dynamodb": { 1589 | "version": "3.55.0", 1590 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.55.0.tgz", 1591 | "integrity": "sha512-0nqptDB9WHo5qIk3XDwQqjALk/zYF52oAV9pLNHsV+/nOiBLxI16NolTFXNgVE5KNWn+SD++DZRNnEX4aR3pMQ==", 1592 | "requires": { 1593 | "tslib": "^2.3.1" 1594 | } 1595 | }, 1596 | "@aws-sdk/util-hex-encoding": { 1597 | "version": "3.55.0", 1598 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.55.0.tgz", 1599 | "integrity": "sha512-zbDWNzIyqN2Po7SIo1ZDL4rQMP3R0TzGcCrm01bpQAb+2fWqUPigolvNZXXtMO6eS7EW3ZJJzkfoWHdH8zDz1A==", 1600 | "requires": { 1601 | "tslib": "^2.3.1" 1602 | } 1603 | }, 1604 | "@aws-sdk/util-locate-window": { 1605 | "version": "3.55.0", 1606 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", 1607 | "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", 1608 | "requires": { 1609 | "tslib": "^2.3.1" 1610 | } 1611 | }, 1612 | "@aws-sdk/util-uri-escape": { 1613 | "version": "3.55.0", 1614 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", 1615 | "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", 1616 | "requires": { 1617 | "tslib": "^2.3.1" 1618 | } 1619 | }, 1620 | "@aws-sdk/util-user-agent-browser": { 1621 | "version": "3.55.0", 1622 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.55.0.tgz", 1623 | "integrity": "sha512-E+8PluqbdOKfdJc9E4k0vy4PPb9wvAMa2Zdm5ycoaY0IXRI9RjQJnRw5JKAAJWLuOy7Lb83LgoowGW3o+4AuKw==", 1624 | "requires": { 1625 | "@aws-sdk/types": "3.55.0", 1626 | "bowser": "^2.11.0", 1627 | "tslib": "^2.3.1" 1628 | } 1629 | }, 1630 | "@aws-sdk/util-user-agent-node": { 1631 | "version": "3.55.0", 1632 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.55.0.tgz", 1633 | "integrity": "sha512-7aoolXzpnTcvIGkxY8v8AZR5ooH7c0wttEjQNkOfORQprznNuj5RUZPxq8oStpFSvwASZJPpfd2Y18G2jPthMw==", 1634 | "requires": { 1635 | "@aws-sdk/node-config-provider": "3.55.0", 1636 | "@aws-sdk/types": "3.55.0", 1637 | "tslib": "^2.3.1" 1638 | } 1639 | }, 1640 | "@aws-sdk/util-utf8-browser": { 1641 | "version": "3.55.0", 1642 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", 1643 | "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", 1644 | "requires": { 1645 | "tslib": "^2.3.1" 1646 | } 1647 | }, 1648 | "@aws-sdk/util-utf8-node": { 1649 | "version": "3.55.0", 1650 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", 1651 | "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", 1652 | "requires": { 1653 | "@aws-sdk/util-buffer-from": "3.55.0", 1654 | "tslib": "^2.3.1" 1655 | } 1656 | }, 1657 | "@aws-sdk/util-waiter": { 1658 | "version": "3.55.0", 1659 | "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.55.0.tgz", 1660 | "integrity": "sha512-Do34MKPFSC/+zVN6vY+FZ+0WN61hzga4nPoAC590AOjs8rW6/H6sDN6Gz1KAZbPnuQUZfvsIJjMxN7lblXHJkQ==", 1661 | "requires": { 1662 | "@aws-sdk/abort-controller": "3.55.0", 1663 | "@aws-sdk/types": "3.55.0", 1664 | "tslib": "^2.3.1" 1665 | } 1666 | }, 1667 | "bowser": { 1668 | "version": "2.11.0", 1669 | "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", 1670 | "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" 1671 | }, 1672 | "entities": { 1673 | "version": "2.2.0", 1674 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 1675 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" 1676 | }, 1677 | "fast-xml-parser": { 1678 | "version": "3.19.0", 1679 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", 1680 | "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" 1681 | }, 1682 | "mnemonist": { 1683 | "version": "0.38.3", 1684 | "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz", 1685 | "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==", 1686 | "requires": { 1687 | "obliterator": "^1.6.1" 1688 | } 1689 | }, 1690 | "obliterator": { 1691 | "version": "1.6.1", 1692 | "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz", 1693 | "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==" 1694 | }, 1695 | "tslib": { 1696 | "version": "2.3.1", 1697 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 1698 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" 1699 | }, 1700 | "uuid": { 1701 | "version": "8.3.2", 1702 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 1703 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" 1704 | } 1705 | } 1706 | } 1707 | -------------------------------------------------------------------------------- /src/product/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@src/product", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "dependencies": { 6 | "@aws-sdk/client-dynamodb": "^3.55.0", 7 | "@aws-sdk/util-dynamodb": "^3.55.0" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/aws-microservices.test.ts: -------------------------------------------------------------------------------- 1 | // import * as cdk from 'aws-cdk-lib'; 2 | // import { Template } from 'aws-cdk-lib/assertions'; 3 | // import * as AwsMicroservices from '../lib/aws-microservices-stack'; 4 | 5 | // example test. To run these tests, uncomment this file along with the 6 | // example resource in lib/aws-microservices-stack.ts 7 | test('SQS Queue Created', () => { 8 | // const app = new cdk.App(); 9 | // // WHEN 10 | // const stack = new AwsMicroservices.AwsMicroservicesStack(app, 'MyTestStack'); 11 | // // THEN 12 | // const template = Template.fromStack(stack); 13 | 14 | // template.hasResourceProperties('AWS::SQS::Queue', { 15 | // VisibilityTimeout: 300 16 | // }); 17 | }); 18 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2018", 4 | "module": "commonjs", 5 | "lib": [ 6 | "es2018" 7 | ], 8 | "declaration": true, 9 | "strict": true, 10 | "noImplicitAny": true, 11 | "strictNullChecks": true, 12 | "noImplicitThis": true, 13 | "alwaysStrict": true, 14 | "noUnusedLocals": false, 15 | "noUnusedParameters": false, 16 | "noImplicitReturns": true, 17 | "noFallthroughCasesInSwitch": false, 18 | "inlineSourceMap": true, 19 | "inlineSources": true, 20 | "experimentalDecorators": true, 21 | "strictPropertyInitialization": false, 22 | "typeRoots": [ 23 | "./node_modules/@types" 24 | ] 25 | }, 26 | "exclude": [ 27 | "node_modules", 28 | "cdk.out" 29 | ] 30 | } 31 | --------------------------------------------------------------------------------