From 80c641ae72b56c66e3fc712000eb8a9528737944 Mon Sep 17 00:00:00 2001 From: Andres Date: Mon, 21 Dec 2020 02:56:08 -0500 Subject: [PATCH] Supporting user sing up and login. --- API/Functions/BoxFlow/index.js | 40 +- API/Functions/DataCredit/index.js | 11 +- API/Functions/Payments/index.js | 19 +- API/Functions/Users/index.js | 62 +- README.md | 41 +- client/.gitignore | 18 + client/.vscode/settings.json | 11 + client/amplify/.config/project-config.json | 17 + ...clientbec096a1-cloudformation-template.yml | 433 ++++ .../auth/clientbec096a1/parameters.json | 58 + client/amplify/backend/backend-config.json | 10 + client/amplify/backend/tags.json | 10 + client/amplify/cli.json | 19 + client/amplify/team-provider-info.json | 20 + client/package-lock.json | 2180 ++++++++++++++++- client/package.json | 11 +- client/src/App.js | 106 +- .../components/DataCreditContainer/index.js | 44 +- client/src/components/GraphsContainer.js | 65 +- client/src/components/HomeContainer.js | 65 +- .../ProfileContainer/BanksComponents.jsx | 2 +- .../ProfileContainer/ProfileContainer.jsx | 35 +- client/src/constants.js | 14 +- config/example.json | 3 +- serverless.yml | 92 +- shared/models/user.model.js | 14 +- 26 files changed, 3110 insertions(+), 290 deletions(-) create mode 100644 client/.gitignore create mode 100644 client/.vscode/settings.json create mode 100644 client/amplify/.config/project-config.json create mode 100644 client/amplify/backend/auth/clientbec096a1/clientbec096a1-cloudformation-template.yml create mode 100644 client/amplify/backend/auth/clientbec096a1/parameters.json create mode 100644 client/amplify/backend/backend-config.json create mode 100644 client/amplify/backend/tags.json create mode 100644 client/amplify/cli.json create mode 100644 client/amplify/team-provider-info.json diff --git a/API/Functions/BoxFlow/index.js b/API/Functions/BoxFlow/index.js index 9ad841f..22eb388 100644 --- a/API/Functions/BoxFlow/index.js +++ b/API/Functions/BoxFlow/index.js @@ -1,11 +1,7 @@ -const { connect: connectToMongo, destroy: detroyMongoConnection, connectToMongoed } = require("../../../shared/database/mongo"); const PaymentRepo = require("../../../shared/database/repos/payment.repo"); const { getUser } = require("../../../shared/database/repos/user.repo"); const _ = require('lodash') const moment = require('moment') -const { - PHONE_NUMBER -} = process.env const processMonthlyMetrics = async (userId) => { @@ -48,33 +44,34 @@ const processCategoryMetrics = async (userId) => { return results } -const processHomeMetrics = async (userId, date) =>{ - const result = await PaymentRepo.getAllByDate({userId, date}) +const processHomeMetrics = async (userId, date) => { + + const result = await PaymentRepo.getAllByDate({ userId, date }) let latestPayments = [], expensivePayments = [], totalByCategory = [], acceptedPayments = [], prepayments = [] //Split types - result.forEach(item=>{ - if(item.isAccepted) + result.forEach(item => { + if (item.isAccepted) acceptedPayments.push(item) - else + else prepayments.push(item) }) - + //prepayments - prepayments = prepayments.slice(0,10) + prepayments = prepayments.slice(0, 10) //Latest payments - latestPayments = acceptedPayments.slice(0,10) + latestPayments = acceptedPayments.slice(0, 10) //expensivePayments - expensivePayments = _.orderBy(acceptedPayments, 'amount', ['desc']).slice(0,10) + expensivePayments = _.orderBy(acceptedPayments, 'amount', ['desc']).slice(0, 10) // Group by category totalByCategory = _.groupBy(acceptedPayments, 'category') return { - latestPayments, - expensivePayments, - totalByCategory, + latestPayments, + expensivePayments, + totalByCategory, prepayments } } @@ -82,13 +79,16 @@ const processHomeMetrics = async (userId, date) =>{ //stats endpoint module.exports.get = async (event, context, callback) => { let results = []; - const { multiValueQueryStringParameters: queryParams } = event; - const metricType = queryParams && queryParams.metricType ? queryParams.metricType[0] : 'month'; + const { query: queryParams, cognitoPoolClaims } = event; + const { sub } = cognitoPoolClaims + + const metricType = queryParams && queryParams.metricType ? queryParams.metricType : 'month'; const date = queryParams && queryParams.date ? queryParams.date[0] : moment().subtract(1, 'month').toString() + try { // This function open the mongo connection - const user = await getUser({ phones: PHONE_NUMBER }) + const user = await getUser({ sub }) switch (metricType) { case 'month': results = await processMonthlyMetrics(user._id) @@ -99,7 +99,6 @@ module.exports.get = async (event, context, callback) => { case 'home': results = await processHomeMetrics(user._id, date) break; - default: break; } @@ -113,6 +112,7 @@ module.exports.get = async (event, context, callback) => { message: JSON.stringify(error), }; } + return { statusCode: "200", headers: { diff --git a/API/Functions/DataCredit/index.js b/API/Functions/DataCredit/index.js index 8dbeec7..26bb515 100644 --- a/API/Functions/DataCredit/index.js +++ b/API/Functions/DataCredit/index.js @@ -1,16 +1,15 @@ const DataCreditRepo = require("../../../shared/database/repos/datacredito.repo"); -const { - PHONE_NUMBER -} = process.env - module.exports.get = async (event, context, callback) => { - const { body } = event; + const { cognitoPoolClaims } = event; + const { + sub + } = cognitoPoolClaims let results = {}; const date = new Date() try { - results = await DataCreditRepo.getdataCreditos({ user: { phones: PHONE_NUMBER }, datacredit: { date: { month: (date.getMonth() + 1).toString(), year: date.getFullYear().toString() } } }); + results = await DataCreditRepo.getdataCreditos({ user: { sub }, datacredit: { date: { month: (date.getMonth() + 1).toString(), year: date.getFullYear().toString() } } }); } catch (error) { return { statusCode: "500", diff --git a/API/Functions/Payments/index.js b/API/Functions/Payments/index.js index f0a84ac..f09ed85 100644 --- a/API/Functions/Payments/index.js +++ b/API/Functions/Payments/index.js @@ -1,14 +1,15 @@ const PaymentRepo = require("../../../shared/database/repos/payment.repo"); const { getUser } = require("../../../shared/database/repos/user.repo"); const { destroy: detroyMongoConnection } = require("../../../shared/database/mongo"); -const { - PHONE_NUMBER -} = process.env module.exports.get = async (event, context, callback) => { let results = {}; + const { cognitoPoolClaims } = event + const { + sub + } = cognitoPoolClaims try { - results = await PaymentRepo.getActive({ phones: PHONE_NUMBER }); + results = await PaymentRepo.getActive({ sub }); } catch (error) { return { statusCode: "500", @@ -28,18 +29,22 @@ module.exports.get = async (event, context, callback) => { }; module.exports.put = async (event, context, callback) => { - const { body: bodyString } = event + const { body: bodyString, cognitoPoolClaims } = event const { id, description, category, hide = false, accepted = true - } = JSON.parse(bodyString) + } = bodyString + + const { + sub + } = cognitoPoolClaims try { if (!id || !description || !category) return { statusCode: 400, body: JSON.stringify({ message: 'Bad request' }) } - const user = await getUser({ phones: PHONE_NUMBER }) + const user = await getUser({ sub }) const data = await PaymentRepo.updatePayment({ id, user: user._id, diff --git a/API/Functions/Users/index.js b/API/Functions/Users/index.js index 4f53e1c..54d7650 100644 --- a/API/Functions/Users/index.js +++ b/API/Functions/Users/index.js @@ -1,10 +1,19 @@ const UserRepo = require("./../../../shared/database/repos/user.repo"); const { encrypt, decrypt } = require('../../../shared/utils/crypto') -module.exports.getUserInformation = async () => { + +module.exports.getUserInformation = async (event) => { try { + const { + cognitoPoolClaims + } = event + + const { + sub + } = cognitoPoolClaims + const result = await UserRepo.getUser( { - emails: process.env.EMAIL_USERNAME, + sub }, { banks: true } ); @@ -32,8 +41,8 @@ module.exports.getUserInformation = async () => { module.exports.addNewCategory = async (event) => { - const body = event.body ? JSON.parse(event.body) : {}; - + const body = event.body ? event.body : {}; + if (!body.label || !body.value) return { statusCode: 400, @@ -42,10 +51,18 @@ module.exports.addNewCategory = async (event) => { }, }; + const { + cognitoPoolClaims + } = event + + const { + sub + } = cognitoPoolClaims + try { const result = await UserRepo.createCategory( { - emails: process.env.EMAIL_USERNAME, + sub }, { label: body.label, value: body.value } ); @@ -77,8 +94,16 @@ module.exports.checkSecretKey = async (event) => { } } + const { + cognitoPoolClaims + } = event + + const { + sub + } = cognitoPoolClaims + const user = await UserRepo.getUser({ - emails: process.env.EMAIL_USERNAME, + sub }) if (!user.secretKey) return { @@ -103,4 +128,29 @@ module.exports.checkSecretKey = async (event) => { "Access-Control-Allow-Origin": "*", } } +} + +module.exports.postConfirmation = async (event, context, callback) => { + + const { userName, request } = event + const { userAttributes } = request + const { sub, email_verified, phone_number, email } = userAttributes + try { + await UserRepo.create({ + name: userName, + email, + sub, + phones: [ + phone_number + ], + verified: email_verified, + emails: [ + email + ] + }) + callback(null, event) + } catch (error) { + callback(error, event) + } + } \ No newline at end of file diff --git a/README.md b/README.md index 8e33353..691e231 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,39 @@ +## Deploy Client + +### Deploy Cognito Pool + +#### Install Amplify CLI + +``` bash +npm i @aws-amplify/cli -g +``` + +#### Push Amplify stack + +``` bash +amplify push +``` + +#### Install Client Modules + +``` bash +npm install +``` + +### Update costants.js + +``` js +export default { + apiGateway: { + REGION: "us-east-1", + URL: "https://XXXXXXX.execute-api.us-east-1.amazonaws.com/STAGE", + }, +} +``` + + +> Note: Log in into your aws account and grab the Conginto Manage pool ARN, you will need this for the serverless config. + ## Conection to Mongo Database #### SRV Way @@ -158,10 +194,9 @@ sls deploy --stage [DEV/TEST/PROD] + TransferReception: "Bancolombia le informa tecepción de Transferencia" + DebitWithdrawal: "Bancolombia le informa Retiro" - ## Data Credito -```json +``` json { "_id": { @@ -190,10 +225,10 @@ sls deploy --stage [DEV/TEST/PROD] } ``` - # Data Credito Scraper DICLAIMER ``` + THIS SCRAPER IS A RESEARCH BASED PROJECT, WE DON'T ENCOURAGE THE MISUSE OF THIS TOOL FOR BAD INTENTIONS. WE ALSO RECOMMEND USERS TO ACQUIRE A PLAN AT www.midatacredito.com TO MAKE USE OF THIS TOOL. diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..111bb42 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,18 @@ +#amplify +amplify/\#current-cloud-backend +amplify/.config/local-* +amplify/logs +amplify/mock-data +amplify/backend/amplify-meta.json +amplify/backend/awscloudformation +amplify/backend/.temp +build/ +dist/ +node_modules/ +aws-exports.js +awsconfiguration.json +amplifyconfiguration.json +amplify-build-config.json +amplify-gradle-config.json +amplifytools.xcconfig +.secret-* \ No newline at end of file diff --git a/client/.vscode/settings.json b/client/.vscode/settings.json new file mode 100644 index 0000000..c87b85e --- /dev/null +++ b/client/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "files.exclude": { + "amplify/.config": true, + "amplify/**/*-parameters.json": true, + "amplify/**/amplify.state": true, + "amplify/**/transform.conf.json": true, + "amplify/#current-cloud-backend": true, + "amplify/backend/amplify-meta.json": true, + "amplify/backend/awscloudformation": true + } +} \ No newline at end of file diff --git a/client/amplify/.config/project-config.json b/client/amplify/.config/project-config.json new file mode 100644 index 0000000..f49c51b --- /dev/null +++ b/client/amplify/.config/project-config.json @@ -0,0 +1,17 @@ +{ + "projectName": "client", + "version": "3.0", + "frontend": "javascript", + "javascript": { + "framework": "react", + "config": { + "SourceDir": "src", + "DistributionDir": "build", + "BuildCommand": "npm run-script build", + "StartCommand": "npm run-script start" + } + }, + "providers": [ + "awscloudformation" + ] +} \ No newline at end of file diff --git a/client/amplify/backend/auth/clientbec096a1/clientbec096a1-cloudformation-template.yml b/client/amplify/backend/auth/clientbec096a1/clientbec096a1-cloudformation-template.yml new file mode 100644 index 0000000..6e9ff3e --- /dev/null +++ b/client/amplify/backend/auth/clientbec096a1/clientbec096a1-cloudformation-template.yml @@ -0,0 +1,433 @@ +AWSTemplateFormatVersion: 2010-09-09 + +Parameters: + env: + Type: String + authRoleArn: + Type: String + unauthRoleArn: + Type: String + + + + + identityPoolName: + Type: String + + + + allowUnauthenticatedIdentities: + Type: String + + resourceNameTruncated: + Type: String + + + userPoolName: + Type: String + + + + autoVerifiedAttributes: + Type: CommaDelimitedList + + mfaConfiguration: + Type: String + + + + mfaTypes: + Type: CommaDelimitedList + + smsAuthenticationMessage: + Type: String + + + smsVerificationMessage: + Type: String + + + emailVerificationSubject: + Type: String + + + emailVerificationMessage: + Type: String + + + + defaultPasswordPolicy: + Type: String + + + passwordPolicyMinLength: + Type: Number + + + passwordPolicyCharacters: + Type: CommaDelimitedList + + + requiredAttributes: + Type: CommaDelimitedList + + + userpoolClientGenerateSecret: + Type: String + + + userpoolClientRefreshTokenValidity: + Type: Number + + + userpoolClientWriteAttributes: + Type: CommaDelimitedList + + + userpoolClientReadAttributes: + Type: CommaDelimitedList + + userpoolClientLambdaRole: + Type: String + + + + userpoolClientSetAttributes: + Type: String + + sharedId: + Type: String + + + resourceName: + Type: String + + + authSelections: + Type: String + + + + + useDefault: + Type: String + + + triggers: + Type: String + + + + userPoolGroupList: + Type: CommaDelimitedList + + + serviceName: + Type: String + + + + usernameCaseSensitive: + Type: String + + + parentStack: + Type: String + + + permissions: + Type: CommaDelimitedList + + + dependsOn: + Type: CommaDelimitedList + +Conditions: + ShouldNotCreateEnvResources: !Equals [ !Ref env, NONE ] + +Resources: + + + # BEGIN SNS ROLE RESOURCE + SNSRole: + # Created to allow the UserPool SMS Config to publish via the Simple Notification Service during MFA Process + Type: AWS::IAM::Role + Properties: + RoleName: !If [ShouldNotCreateEnvResources, 'clientbec096a1_sns-role', !Join ['',[ 'sns', 'bec096a1', !Select [3, !Split ['-', !Ref 'AWS::StackName']], '-', !Ref env]]] + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Sid: "" + Effect: "Allow" + Principal: + Service: "cognito-idp.amazonaws.com" + Action: + - "sts:AssumeRole" + Condition: + StringEquals: + sts:ExternalId: clientbec096a1_role_external_id + Policies: + - + PolicyName: clientbec096a1-sns-policy + PolicyDocument: + Version: "2012-10-17" + Statement: + - + Effect: "Allow" + Action: + - "sns:Publish" + Resource: "*" + # BEGIN USER POOL RESOURCES + UserPool: + # Created upon user selection + # Depends on SNS Role for Arn if MFA is enabled + Type: AWS::Cognito::UserPool + UpdateReplacePolicy: Retain + Properties: + UserPoolName: !If [ShouldNotCreateEnvResources, !Ref userPoolName, !Join ['',[!Ref userPoolName, '-', !Ref env]]] + + + UsernameConfiguration: + CaseSensitive: false + + Schema: + + - + Name: email + Required: true + Mutable: true + + + + + AutoVerifiedAttributes: !Ref autoVerifiedAttributes + + + EmailVerificationMessage: !Ref emailVerificationMessage + EmailVerificationSubject: !Ref emailVerificationSubject + + Policies: + PasswordPolicy: + MinimumLength: !Ref passwordPolicyMinLength + RequireLowercase: false + RequireNumbers: false + RequireSymbols: false + RequireUppercase: false + + MfaConfiguration: !Ref mfaConfiguration + SmsVerificationMessage: !Ref smsVerificationMessage + SmsConfiguration: + SnsCallerArn: !GetAtt SNSRole.Arn + ExternalId: clientbec096a1_role_external_id + + + + + + + + + + + + # Updating lambda role with permissions to Cognito + + + UserPoolClientWeb: + # Created provide application access to user pool + # Depends on UserPool for ID reference + Type: "AWS::Cognito::UserPoolClient" + Properties: + ClientName: clientbec096a1_app_clientWeb + + RefreshTokenValidity: !Ref userpoolClientRefreshTokenValidity + UserPoolId: !Ref UserPool + DependsOn: UserPool + UserPoolClient: + # Created provide application access to user pool + # Depends on UserPool for ID reference + Type: "AWS::Cognito::UserPoolClient" + Properties: + ClientName: clientbec096a1_app_client + + GenerateSecret: !Ref userpoolClientGenerateSecret + RefreshTokenValidity: !Ref userpoolClientRefreshTokenValidity + UserPoolId: !Ref UserPool + DependsOn: UserPool + # BEGIN USER POOL LAMBDA RESOURCES + UserPoolClientRole: + # Created to execute Lambda which gets userpool app client config values + Type: 'AWS::IAM::Role' + Properties: + RoleName: !If [ShouldNotCreateEnvResources, !Ref userpoolClientLambdaRole, !Join ['',['upClientLambdaRole', 'bec096a1', !Select [3, !Split ['-', !Ref 'AWS::StackName']], '-', !Ref env]]] + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: + - lambda.amazonaws.com + Action: + - 'sts:AssumeRole' + DependsOn: UserPoolClient + UserPoolClientLambda: + # Lambda which gets userpool app client config values + # Depends on UserPool for id + # Depends on UserPoolClientRole for role ARN + Type: 'AWS::Lambda::Function' + Properties: + Code: + ZipFile: !Join + - |+ + - - 'const response = require(''cfn-response'');' + - 'const aws = require(''aws-sdk'');' + - 'const identity = new aws.CognitoIdentityServiceProvider();' + - 'exports.handler = (event, context, callback) => {' + - ' if (event.RequestType == ''Delete'') { ' + - ' response.send(event, context, response.SUCCESS, {})' + - ' }' + - ' if (event.RequestType == ''Update'' || event.RequestType == ''Create'') {' + - ' const params = {' + - ' ClientId: event.ResourceProperties.clientId,' + - ' UserPoolId: event.ResourceProperties.userpoolId' + - ' };' + - ' identity.describeUserPoolClient(params).promise()' + - ' .then((res) => {' + - ' response.send(event, context, response.SUCCESS, {''appSecret'': res.UserPoolClient.ClientSecret});' + - ' })' + - ' .catch((err) => {' + - ' response.send(event, context, response.FAILED, {err});' + - ' });' + - ' }' + - '};' + Handler: index.handler + Runtime: nodejs10.x + Timeout: '300' + Role: !GetAtt + - UserPoolClientRole + - Arn + DependsOn: UserPoolClientRole + UserPoolClientLambdaPolicy: + # Sets userpool policy for the role that executes the Userpool Client Lambda + # Depends on UserPool for Arn + # Marked as depending on UserPoolClientRole for easier to understand CFN sequencing + Type: 'AWS::IAM::Policy' + Properties: + PolicyName: clientbec096a1_userpoolclient_lambda_iam_policy + Roles: + - !Ref UserPoolClientRole + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: + - 'cognito-idp:DescribeUserPoolClient' + Resource: !GetAtt UserPool.Arn + DependsOn: UserPoolClientLambda + UserPoolClientLogPolicy: + # Sets log policy for the role that executes the Userpool Client Lambda + # Depends on UserPool for Arn + # Marked as depending on UserPoolClientLambdaPolicy for easier to understand CFN sequencing + Type: 'AWS::IAM::Policy' + Properties: + PolicyName: clientbec096a1_userpoolclient_lambda_log_policy + Roles: + - !Ref UserPoolClientRole + PolicyDocument: + Version: 2012-10-17 + Statement: + - Effect: Allow + Action: + - 'logs:CreateLogGroup' + - 'logs:CreateLogStream' + - 'logs:PutLogEvents' + Resource: !Sub + - arn:aws:logs:${region}:${account}:log-group:/aws/lambda/${lambda}:log-stream:* + - { region: !Ref "AWS::Region", account: !Ref "AWS::AccountId", lambda: !Ref UserPoolClientLambda} + DependsOn: UserPoolClientLambdaPolicy + UserPoolClientInputs: + # Values passed to Userpool client Lambda + # Depends on UserPool for Id + # Depends on UserPoolClient for Id + # Marked as depending on UserPoolClientLambdaPolicy for easier to understand CFN sequencing + Type: 'Custom::LambdaCallout' + Properties: + ServiceToken: !GetAtt UserPoolClientLambda.Arn + clientId: !Ref UserPoolClient + userpoolId: !Ref UserPool + DependsOn: UserPoolClientLogPolicy + + + + + + + + # BEGIN IDENTITY POOL RESOURCES + + + IdentityPool: + # Always created + Type: AWS::Cognito::IdentityPool + Properties: + IdentityPoolName: !If [ShouldNotCreateEnvResources, 'clientbec096a1_identitypool_bec096a1', !Join ['',['clientbec096a1_identitypool_bec096a1', '__', !Ref env]]] + + CognitoIdentityProviders: + - ClientId: !Ref UserPoolClient + ProviderName: !Sub + - cognito-idp.${region}.amazonaws.com/${client} + - { region: !Ref "AWS::Region", client: !Ref UserPool} + - ClientId: !Ref UserPoolClientWeb + ProviderName: !Sub + - cognito-idp.${region}.amazonaws.com/${client} + - { region: !Ref "AWS::Region", client: !Ref UserPool} + + AllowUnauthenticatedIdentities: !Ref allowUnauthenticatedIdentities + + + DependsOn: UserPoolClientInputs + + + IdentityPoolRoleMap: + # Created to map Auth and Unauth roles to the identity pool + # Depends on Identity Pool for ID ref + Type: AWS::Cognito::IdentityPoolRoleAttachment + Properties: + IdentityPoolId: !Ref IdentityPool + Roles: + unauthenticated: !Ref unauthRoleArn + authenticated: !Ref authRoleArn + DependsOn: IdentityPool + + +Outputs : + + IdentityPoolId: + Value: !Ref 'IdentityPool' + Description: Id for the identity pool + IdentityPoolName: + Value: !GetAtt IdentityPool.Name + + + + + UserPoolId: + Value: !Ref 'UserPool' + Description: Id for the user pool + UserPoolName: + Value: !Ref userPoolName + AppClientIDWeb: + Value: !Ref 'UserPoolClientWeb' + Description: The user pool app client id for web + AppClientID: + Value: !Ref 'UserPoolClient' + Description: The user pool app client id + AppClientSecret: + Value: !GetAtt UserPoolClientInputs.appSecret + + + + + + + diff --git a/client/amplify/backend/auth/clientbec096a1/parameters.json b/client/amplify/backend/auth/clientbec096a1/parameters.json new file mode 100644 index 0000000..5ec1cb6 --- /dev/null +++ b/client/amplify/backend/auth/clientbec096a1/parameters.json @@ -0,0 +1,58 @@ +{ + "identityPoolName": "clientbec096a1_identitypool_bec096a1", + "allowUnauthenticatedIdentities": false, + "resourceNameTruncated": "clientbec096a1", + "userPoolName": "clientbec096a1_userpool_bec096a1", + "autoVerifiedAttributes": [ + "email" + ], + "mfaConfiguration": "OFF", + "mfaTypes": [ + "SMS Text Message" + ], + "smsAuthenticationMessage": "Your authentication code is {####}", + "smsVerificationMessage": "Your verification code is {####}", + "emailVerificationSubject": "Your verification code", + "emailVerificationMessage": "Your verification code is {####}", + "defaultPasswordPolicy": false, + "passwordPolicyMinLength": 8, + "passwordPolicyCharacters": [], + "requiredAttributes": [ + "email" + ], + "userpoolClientGenerateSecret": true, + "userpoolClientRefreshTokenValidity": 30, + "userpoolClientWriteAttributes": [ + "email" + ], + "userpoolClientReadAttributes": [ + "email" + ], + "userpoolClientLambdaRole": "clientbec096a1_userpoolclient_lambda_role", + "userpoolClientSetAttributes": false, + "sharedId": "bec096a1", + "resourceName": "clientbec096a1", + "authSelections": "identityPoolAndUserPool", + "authRoleArn": { + "Fn::GetAtt": [ + "AuthRole", + "Arn" + ] + }, + "unauthRoleArn": { + "Fn::GetAtt": [ + "UnauthRole", + "Arn" + ] + }, + "useDefault": "default", + "triggers": "{}", + "userPoolGroupList": [], + "serviceName": "Cognito", + "usernameCaseSensitive": false, + "parentStack": { + "Ref": "AWS::StackId" + }, + "permissions": [], + "dependsOn": [] +} \ No newline at end of file diff --git a/client/amplify/backend/backend-config.json b/client/amplify/backend/backend-config.json new file mode 100644 index 0000000..2f9c7fb --- /dev/null +++ b/client/amplify/backend/backend-config.json @@ -0,0 +1,10 @@ +{ + "auth": { + "clientbec096a1": { + "service": "Cognito", + "providerPlugin": "awscloudformation", + "dependsOn": [], + "customAuth": false + } + } +} \ No newline at end of file diff --git a/client/amplify/backend/tags.json b/client/amplify/backend/tags.json new file mode 100644 index 0000000..b9321d7 --- /dev/null +++ b/client/amplify/backend/tags.json @@ -0,0 +1,10 @@ +[ + { + "Key": "user:Stack", + "Value": "{project-env}" + }, + { + "Key": "user:Application", + "Value": "{project-name}" + } +] \ No newline at end of file diff --git a/client/amplify/cli.json b/client/amplify/cli.json new file mode 100644 index 0000000..c1a830d --- /dev/null +++ b/client/amplify/cli.json @@ -0,0 +1,19 @@ +{ + "features": { + "graphqltransformer": { + "addmissingownerfields": true, + "validatetypenamereservedwords": true, + "useexperimentalpipelinedtransformer": false, + "enableiterativegsiupdates": false + }, + "frontend-ios": { + "enablexcodeintegration": true + }, + "auth": { + "enablecaseinsensitivity": true + }, + "codegen": { + "useappsyncmodelgenplugin": true + } + } +} \ No newline at end of file diff --git a/client/amplify/team-provider-info.json b/client/amplify/team-provider-info.json new file mode 100644 index 0000000..718ec6b --- /dev/null +++ b/client/amplify/team-provider-info.json @@ -0,0 +1,20 @@ +{ + "dev": { + "awscloudformation": { + "AuthRoleName": "amplify-client-dev-212211-authRole", + "UnauthRoleArn": "arn:aws:iam::676238986725:role/amplify-client-dev-212211-unauthRole", + "AuthRoleArn": "arn:aws:iam::676238986725:role/amplify-client-dev-212211-authRole", + "Region": "us-east-1", + "DeploymentBucketName": "amplify-client-dev-212211-deployment", + "UnauthRoleName": "amplify-client-dev-212211-unauthRole", + "StackName": "amplify-client-dev-212211", + "StackId": "arn:aws:cloudformation:us-east-1:676238986725:stack/amplify-client-dev-212211/59a41250-4333-11eb-a9b9-0af9e889672b", + "AmplifyAppId": "d36bctyi24vz6u" + }, + "categories": { + "auth": { + "clientbec096a1": {} + } + } + } +} \ No newline at end of file diff --git a/client/package-lock.json b/client/package-lock.json index 05ee815..16500a0 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -4,6 +4,1769 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@aws-amplify/analytics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-4.0.4.tgz", + "integrity": "sha512-a71GAbOxM/pJtG1iahxhNMHe7Zwj5uOGOHKwkC1fEAC46SoQmHWCm+/5StnZ6lmTpsOxpNWGMH/MUk2Osky+2A==", + "requires": { + "@aws-amplify/cache": "3.1.41", + "@aws-amplify/core": "3.8.8", + "@aws-sdk/client-firehose": "1.0.0-rc.4", + "@aws-sdk/client-kinesis": "1.0.0-rc.4", + "@aws-sdk/client-personalize-events": "1.0.0-rc.4", + "@aws-sdk/client-pinpoint": "1.0.0-rc.4", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "lodash": "^4.17.20", + "uuid": "^3.2.1" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + } + } + }, + "@aws-amplify/api": { + "version": "3.2.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/api/-/api-3.2.16.tgz", + "integrity": "sha512-yqNFipI7E0IEaO7Z8HfAWgXQeJR+M77P7W1ppuj4y4Mkcz8SaIBD1ILCCP4dT9i9L6mCptxXJg9a/0tzbNIPAQ==", + "requires": { + "@aws-amplify/api-graphql": "1.2.16", + "@aws-amplify/api-rest": "1.2.16" + } + }, + "@aws-amplify/api-graphql": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-1.2.16.tgz", + "integrity": "sha512-mAMYyJVxOy4RcDNhFUvFSgUuCuumVRD2HZkLOOmyXkEj8ZRu6LbNLkpBYPpI3XaiEkGOJD2WQe25B+cJDtvNpA==", + "requires": { + "@aws-amplify/api-rest": "1.2.16", + "@aws-amplify/auth": "3.4.16", + "@aws-amplify/cache": "3.1.41", + "@aws-amplify/core": "3.8.8", + "@aws-amplify/pubsub": "3.2.14", + "graphql": "14.0.0", + "uuid": "^3.2.1", + "zen-observable-ts": "0.8.19" + } + }, + "@aws-amplify/api-rest": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-1.2.16.tgz", + "integrity": "sha512-pB7LZvh6A1txnXKwuqjZZiQg+NcrpdhCxCKb09yOWM9AgbefxcvSFNmWuJYl256/ySD6wkgFJdAVmppulXbJOA==", + "requires": { + "@aws-amplify/core": "3.8.8", + "axios": "0.19.0" + }, + "dependencies": { + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "@aws-amplify/auth": { + "version": "3.4.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth/-/auth-3.4.16.tgz", + "integrity": "sha512-bG998WecLH5J+PvlTdtCZPme9/008EtY329FFhWavlb8uG3TaZz3IJ8Kfm8xN7tGAK8KFo8Ldx93fEQBe1VXMw==", + "requires": { + "@aws-amplify/cache": "3.1.41", + "@aws-amplify/core": "3.8.8", + "amazon-cognito-identity-js": "4.5.6", + "crypto-js": "^3.3.0" + } + }, + "@aws-amplify/cache": { + "version": "3.1.41", + "resolved": "https://registry.npmjs.org/@aws-amplify/cache/-/cache-3.1.41.tgz", + "integrity": "sha512-hdTLhKCmu51aIG6uZZhYCpe15n6E0isGzuouloTShzuA7bcWUo8GyRYqOS2xkIZhwpFW116ThShjfn8iFgwUiQ==", + "requires": { + "@aws-amplify/core": "3.8.8" + } + }, + "@aws-amplify/core": { + "version": "3.8.8", + "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-3.8.8.tgz", + "integrity": "sha512-lwgYUYuZhFdNtOXmsyqrCPGJkrqe66FlSggBobeQB0KOvtBVrxyWl0pTqcCLdVs+Krxmct6gLiNFcxhHeXDAng==", + "requires": { + "@aws-crypto/sha256-js": "1.0.0-alpha.0", + "@aws-sdk/client-cognito-identity": "1.0.0-rc.4", + "@aws-sdk/credential-provider-cognito-identity": "1.0.0-rc.4", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-hex-encoding": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "universal-cookie": "^4.0.4", + "url": "^0.11.0", + "zen-observable-ts": "0.8.19" + } + }, + "@aws-amplify/datastore": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-2.9.2.tgz", + "integrity": "sha512-2RGDuYIw1AimIlvoXIjeKrAGlOBuiecwdJ8nk9s3J5gjkVfdVIWdyrS99Q2e3kuudtV+qCjEUTrZdpaZV/Yujw==", + "requires": { + "@aws-amplify/api": "3.2.16", + "@aws-amplify/core": "3.8.8", + "@aws-amplify/pubsub": "3.2.14", + "idb": "5.0.6", + "immer": "6.0.1", + "ulid": "2.3.0", + "uuid": "3.3.2", + "zen-observable-ts": "0.8.19", + "zen-push": "0.2.1" + }, + "dependencies": { + "immer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-6.0.1.tgz", + "integrity": "sha512-oXwigCKgznQywsXi1VgrqgWbQEU3wievNCVc4Fcwky6mwXU6YHj6JuYp0WEM/B1EphkqsLr0x18lm5OiuemPcA==" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "@aws-amplify/interactions": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/interactions/-/interactions-3.3.16.tgz", + "integrity": "sha512-IDYMdp6xol/P3EfPxP/fB0ecoIxSe4T0QM3J41gUoS/m0y6cLhVRG3024RkmRbGYiFvYK8gZtX7nO2SQSZmK5g==", + "requires": { + "@aws-amplify/core": "3.8.8", + "@aws-sdk/client-lex-runtime-service": "1.0.0-rc.4" + } + }, + "@aws-amplify/predictions": { + "version": "3.2.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/predictions/-/predictions-3.2.16.tgz", + "integrity": "sha512-ChBUGa+Xx98aG8KUtgVy87cVjsIS3xj7TEDAl1fL+dTKMX3XA0oDzMRGQCGdLbh9u0SEuBIixrRcim/ocDDL/A==", + "requires": { + "@aws-amplify/core": "3.8.8", + "@aws-amplify/storage": "3.3.16", + "@aws-sdk/client-comprehend": "1.0.0-rc.4", + "@aws-sdk/client-polly": "1.0.0-rc.4", + "@aws-sdk/client-rekognition": "1.0.0-rc.4", + "@aws-sdk/client-textract": "1.0.0-rc.4", + "@aws-sdk/client-translate": "1.0.0-rc.4", + "@aws-sdk/eventstream-marshaller": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "uuid": "^3.2.1" + } + }, + "@aws-amplify/pubsub": { + "version": "3.2.14", + "resolved": "https://registry.npmjs.org/@aws-amplify/pubsub/-/pubsub-3.2.14.tgz", + "integrity": "sha512-t5V38S9a+FuKKSQs5SIk9er9i4TtH7221CnSNgKqakMUXbwJVp7gVL+e3OQ0hdVPmeaFtq1ovneJhCtMy2uXBQ==", + "requires": { + "@aws-amplify/auth": "3.4.16", + "@aws-amplify/cache": "3.1.41", + "@aws-amplify/core": "3.8.8", + "graphql": "14.0.0", + "paho-mqtt": "^1.1.0", + "uuid": "^3.2.1", + "zen-observable-ts": "0.8.19" + } + }, + "@aws-amplify/storage": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/storage/-/storage-3.3.16.tgz", + "integrity": "sha512-SliC3XaUteZ421sE3Pfp/gPjqXJFFXa11f7+e6QwfcG2SlH0k+SbBVuhhfI83JDdlDCxHFur3ELuLpRhtLXl1g==", + "requires": { + "@aws-amplify/core": "3.8.8", + "@aws-sdk/client-s3": "1.0.0-rc.4", + "@aws-sdk/s3-request-presigner": "1.0.0-rc.4", + "@aws-sdk/util-create-request": "1.0.0-rc.4", + "@aws-sdk/util-format-url": "1.0.0-rc.4", + "axios": "0.19.0", + "events": "^3.1.0", + "sinon": "^7.5.0" + }, + "dependencies": { + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "@aws-amplify/ui": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui/-/ui-2.0.2.tgz", + "integrity": "sha512-OLdZmUCVK29+JV8PrkgVPjg+GIFtBnNjhC0JSRgrps+ynOFkibMQQPKeFXlTYtlukuCuepCelPSkjxvhcLq2ZA==" + }, + "@aws-amplify/ui-components": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui-components/-/ui-components-0.9.8.tgz", + "integrity": "sha512-D/v55gm0HfEkuw60F3DO80sQW3c+lqXDQeSI5hTkDR4CWhWP8X6enXeqTnddUlxmWkWN9HcewWcC5zWCERC8BQ==", + "requires": { + "@aws-amplify/auth": "3.4.16", + "@aws-amplify/core": "3.8.8", + "@aws-amplify/interactions": "3.3.16", + "@aws-amplify/storage": "3.3.16", + "@aws-amplify/xr": "2.2.16", + "qrcode": "^1.4.4", + "uuid": "^8.2.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "@aws-amplify/ui-react": { + "version": "0.2.33", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react/-/ui-react-0.2.33.tgz", + "integrity": "sha512-cCN2WADZurTrILoYFvgQd2pj9it9lmWwPaut8IQz7ErAmqOBHXgR9N/nIL8ptmIDrnlRGYtdH8/HmIaPMwU6Dw==", + "requires": { + "@aws-amplify/ui-components": "0.9.8" + } + }, + "@aws-amplify/xr": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@aws-amplify/xr/-/xr-2.2.16.tgz", + "integrity": "sha512-QxjgcNg/kM6vVPgzb5lBBKViIfXT7zMdKtpArqqM6EbopQtUJCfcjVecI/4burVd4cDxiXMRx9d8zS1mbxXZtw==", + "requires": { + "@aws-amplify/core": "3.8.8" + } + }, + "@aws-crypto/crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-1.0.0.tgz", + "integrity": "sha512-wr4EyCv3ZfLH3Sg7FErV6e/cLhpk9rUP/l5322y8PRgpQsItdieaLbtE4aDOR+dxl8U7BG9FIwWXH4TleTDZ9A==", + "requires": { + "tslib": "^1.11.1" + } + }, + "@aws-crypto/ie11-detection": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-1.0.0.tgz", + "integrity": "sha512-kCKVhCF1oDxFYgQrxXmIrS5oaWulkvRcPz+QBDMsUr2crbF4VGgGT6+uQhSwJFdUAQ2A//Vq+uT83eJrkzFgXA==", + "requires": { + "tslib": "^1.11.1" + } + }, + "@aws-crypto/sha256-browser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-1.0.0.tgz", + "integrity": "sha512-uSufui4ZktC5lYX6bDxgBgNboxGyw9V9V+rlcNsNTxh4YPhOdCslwJMGntiWOBRGAgXhhvWi7FqnTS2SaT3cpg==", + "requires": { + "@aws-crypto/ie11-detection": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-crypto/supports-web-crypto": "^1.0.0", + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-locate-window": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + } + } + } + }, + "@aws-crypto/sha256-js": { + "version": "1.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0-alpha.0.tgz", + "integrity": "sha512-GidX2lccEtHZw8mXDKJQj6tea7qh3pAnsNSp1eZNxsN4MMu2OvSraPSqiB1EihsQkZBMg0IiZPpZHoACUX/QMQ==", + "requires": { + "@aws-sdk/types": "^1.0.0-alpha.0", + "@aws-sdk/util-utf8-browser": "^1.0.0-alpha.0", + "tslib": "^1.9.3" + } + }, + "@aws-crypto/supports-web-crypto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-1.0.0.tgz", + "integrity": "sha512-IHLfv+WmVH89EW4n6a5eE8/hUlz6qkWGMn/v4r5ZgzcXdTC5nolii2z3k46y01hWRiC2PPhOdeSLzMUCUMco7g==", + "requires": { + "tslib": "^1.11.1" + } + }, + "@aws-sdk/abort-controller": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-1.0.0-rc.3.tgz", + "integrity": "sha512-+os/c2PDtDzaeAMqH3f03EDwMAesxy3O5lFcT2vr43iiQkXRnYwaWFD4QPwDQGzKDjksPKSa6iag4OjzGf0ezA==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/chunked-blob-reader": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-1.0.0-rc.3.tgz", + "integrity": "sha512-d4B6mOYxZqo+y2op5BwEsG0wxewyNhVmyvfdQfhaJowNjhZpQ6vhYkh3umOarLwyC72dNScKBQYLnOsf5chtDg==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/chunked-blob-reader-native": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-1.0.0-rc.3.tgz", + "integrity": "sha512-ouuN4cBmwfVPVVQeBhKm18BHkBK/ZVn0VDE4WXVMqu3WjNBxulKYCvJ7mkxi1oWWzp+RGa1TwIQuancB1IHrdA==", + "requires": { + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/client-cognito-identity": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-1.0.0-rc.4.tgz", + "integrity": "sha512-GR71ns7JDvxgih2l0D2I7QZZe5c+ld7quIu4JxNHQVVA6Or/pPpYoMp5GaqN5EwQoVYcivOs32UaE0O5VywqBg==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-comprehend": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-comprehend/-/client-comprehend-1.0.0-rc.4.tgz", + "integrity": "sha512-Lz+Zi6rl5cYFrcaz/sOzc+w0exoL/CRKLCMh8uod+n4yzIqvYhMaDNArO+ePQNy/6hMZhRhG8I7c3zwZsxT+zA==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-firehose": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-firehose/-/client-firehose-1.0.0-rc.4.tgz", + "integrity": "sha512-nveeqbomzqi1Udn9AN/B9Ko/buSLl65ma0rrJn5wtxK1qYny7YuFS32YQ0WD4Cqru2MPprNCDOWurBjczWOuBQ==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-kinesis": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-kinesis/-/client-kinesis-1.0.0-rc.4.tgz", + "integrity": "sha512-mlzx8rPkQT6dbkPpzicII7zmF+V8SyqoDp5HvswTsK6D6ePoKnXx5g5vdtOelpZ9AE8AnnxGU1vVDRSUnDMV4A==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-browser": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-config-resolver": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-lex-runtime-service": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lex-runtime-service/-/client-lex-runtime-service-1.0.0-rc.4.tgz", + "integrity": "sha512-kizyULuN216b7Q4tMWiLsCBC747MWKh5Q7RyqbRygH1wVidyIwnNTnnlFzrjAc0fP0SC7/SWO58hE3ptCwVLtA==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-personalize-events": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-personalize-events/-/client-personalize-events-1.0.0-rc.4.tgz", + "integrity": "sha512-ues2/k7hbmFattKDP76NRNjldhEFjQitzqg3ix1NGuO0a/Ob5g4Vjgb5TZIt5p1nn+cVYPFjHPB1XNRSY2Xy/w==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-pinpoint": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-pinpoint/-/client-pinpoint-1.0.0-rc.4.tgz", + "integrity": "sha512-PdcSP6lboIRo/vK3ITGnlQB2OTH4hvlTSX5Wo0D52YqVrE+EYCAXkukPnQpnO3mrlnLlVjqxqKe2Ara3u7eyUw==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-polly": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-polly/-/client-polly-1.0.0-rc.4.tgz", + "integrity": "sha512-fPLs0vHvSP9tO2Ga2qcTWmHxVIOYGEWIt0il3Shh/3oT/9pCbp5YWwCCUaDhADbomXthIM0T4OtmiZ2/plGoEQ==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-rekognition": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-rekognition/-/client-rekognition-1.0.0-rc.4.tgz", + "integrity": "sha512-8pUogGeKYUSVKopG9grA8KwvAYlrKwpGUO8kiNU78gJut5gLTGxiHIHvuufbgRHmGiXeWrP+WwWghX9F6q2V9w==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-s3": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-1.0.0-rc.4.tgz", + "integrity": "sha512-P7iTjtBkBCWfmpnJdd8yYWNFcj5rDbCX1bnFli3uCf+y7gKHUlQiS6j8tgjvTzbUDxhFVjCP3a4zhSact0PZOA==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-browser": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-config-resolver": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-blob-browser": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/hash-stream-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/md5-js": "1.0.0-rc.3", + "@aws-sdk/middleware-apply-body-checksum": "1.0.0-rc.3", + "@aws-sdk/middleware-bucket-endpoint": "1.0.0-rc.4", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-expect-continue": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-location-constraint": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-sdk-s3": "1.0.0-rc.3", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-ssec": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "@aws-sdk/xml-builder": "1.0.0-rc.3", + "fast-xml-parser": "^3.16.0", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-textract": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-textract/-/client-textract-1.0.0-rc.4.tgz", + "integrity": "sha512-Hf8B4lhLo6W7EdTaqLaMM5JCLlaR91rzSaPsb+1YoPtB4C2tcG7S94/yRxXEL1/Pok/mrtFN7mZ9Zcg23BtrVQ==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/client-translate": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-translate/-/client-translate-1.0.0-rc.4.tgz", + "integrity": "sha512-OqRykzNtuqKSX7fWGVv9060ymD5ZFuTgIjRuftDM+KNyFpHt5qDqyLs6f1a5iwrUxVmqKvV+F13MjOjPNdR4/w==", + "requires": { + "@aws-crypto/sha256-browser": "^1.0.0", + "@aws-crypto/sha256-js": "^1.0.0", + "@aws-sdk/config-resolver": "1.0.0-rc.3", + "@aws-sdk/credential-provider-node": "1.0.0-rc.3", + "@aws-sdk/fetch-http-handler": "1.0.0-rc.3", + "@aws-sdk/hash-node": "1.0.0-rc.3", + "@aws-sdk/invalid-dependency": "1.0.0-rc.3", + "@aws-sdk/middleware-content-length": "1.0.0-rc.3", + "@aws-sdk/middleware-host-header": "1.0.0-rc.3", + "@aws-sdk/middleware-logger": "1.0.0-rc.4", + "@aws-sdk/middleware-retry": "1.0.0-rc.4", + "@aws-sdk/middleware-serde": "1.0.0-rc.3", + "@aws-sdk/middleware-signing": "1.0.0-rc.3", + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/middleware-user-agent": "1.0.0-rc.3", + "@aws-sdk/node-config-provider": "1.0.0-rc.3", + "@aws-sdk/node-http-handler": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/url-parser-browser": "1.0.0-rc.3", + "@aws-sdk/url-parser-node": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "@aws-sdk/util-base64-node": "1.0.0-rc.3", + "@aws-sdk/util-body-length-browser": "1.0.0-rc.3", + "@aws-sdk/util-body-length-node": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-browser": "1.0.0-rc.3", + "@aws-sdk/util-user-agent-node": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "@aws-sdk/util-utf8-node": "1.0.0-rc.3", + "tslib": "^2.0.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "@aws-crypto/sha256-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.0.0.tgz", + "integrity": "sha512-89kqtFs/tdHBFHEBXZ4UXlCISswvEor3BVVOriR68Tbk1Qe1zBOZtfbSOt3CDT69z88x5uM558YW9k8I1xei5A==", + "requires": { + "@aws-sdk/types": "^1.0.0-rc.1", + "@aws-sdk/util-utf8-browser": "^1.0.0-rc.1", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, + "@aws-sdk/config-resolver": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-1.0.0-rc.3.tgz", + "integrity": "sha512-twz204J+R5SFUOWe7VPYoF9yZA3HsMujnZKkm7QTunKUYRrrZcG1x6KeArIpk1mKFlrtm1tcab5BqUDUKgm23A==", + "requires": { + "@aws-sdk/signature-v4": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/credential-provider-cognito-identity": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-1.0.0-rc.4.tgz", + "integrity": "sha512-mT7sePBR/5+d132J7GjKrZPevszL9ZvvUpS/ng9CLzneBmygVZJIujwbPe6H77UH8pqU8xA1PVwBKV9cEISRww==", + "requires": { + "@aws-sdk/client-cognito-identity": "1.0.0-rc.4", + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/credential-provider-env": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-1.0.0-rc.3.tgz", + "integrity": "sha512-QG9YUDy1qjghL6MsXIE4wxXuTDeBsNWcXYIMpuvn5bJSVDmcSmXwVFMyCiYvDlN57zbomWaNvYiq9TS50aw0Ng==", + "requires": { + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/credential-provider-imds": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-1.0.0-rc.3.tgz", + "integrity": "sha512-vMRAlXdU4ZUeLGgtXh+MCzyZrdoXA8tJldR5n0glbODAym1Ap6ZQ9Y/apQvaHiMxyTd/PCcPg0cwSmhlnwdhTg==", + "requires": { + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/credential-provider-ini": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-1.0.0-rc.3.tgz", + "integrity": "sha512-3/dvnmtnjGSoBn9MSTtO6/Vpd0RxwA1oOeHlFhswr4ZDMI3Nn8almvUhjtC+wkKKSG+ushkEJaDDPy6P+7xqRA==", + "requires": { + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/shared-ini-file-loader": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/credential-provider-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-1.0.0-rc.3.tgz", + "integrity": "sha512-UbtN7dMjyUgYyYKSQLAMmx1aGT9HD00bf0suvn9H4lo5piWuJ/30CoBqIl/l2l+6z0AdK2DcGoF5yuLyJSX0ww==", + "requires": { + "@aws-sdk/credential-provider-env": "1.0.0-rc.3", + "@aws-sdk/credential-provider-imds": "1.0.0-rc.3", + "@aws-sdk/credential-provider-ini": "1.0.0-rc.3", + "@aws-sdk/credential-provider-process": "1.0.0-rc.3", + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/credential-provider-process": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-1.0.0-rc.3.tgz", + "integrity": "sha512-gz98CXgAwtsW1CkK9F8SOW1EEHFFHsl3QCBs1i4CErYr08i/2sa1LHOjxyIJ9RMRM0WNPBCLH4btvpajOGtXBA==", + "requires": { + "@aws-sdk/credential-provider-ini": "1.0.0-rc.3", + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/shared-ini-file-loader": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/eventstream-marshaller": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-1.0.0-rc.3.tgz", + "integrity": "sha512-LBWqTd+VRVBdmBYm/K3ueBHLNOCUlj0uLQOExfvKFTugQ1t3i5JoZKLYNbTJyid8sMmbyq1y/nfM+kAHXguwAQ==", + "requires": { + "@aws-crypto/crc32": "^1.0.0", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-hex-encoding": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/eventstream-serde-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-dMWtrnaOBLxEFvEtX7r66Pxh+XipRdDYHHNTSsg3Vaj+cDcCUkur2tplhKaBQY9bElfGB2Rb2R7XsfIxt9PZ0w==", + "requires": { + "@aws-sdk/eventstream-marshaller": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-universal": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/eventstream-serde-config-resolver": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-1.0.0-rc.3.tgz", + "integrity": "sha512-hnp8DwEK64p2mwMDyBIgGq7yOaxDe3H1O7xoNmKb/owqQAcV8BxhhbrJYrsXNSeE/lO2zckPcL1imzuKHudTfA==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/eventstream-serde-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-1.0.0-rc.3.tgz", + "integrity": "sha512-QTIygM8qoVfDv6paFTdyvuAdgUSm/VDFa36OZd+IXSgzoYYrI/psutpYCyt/27oiPH+rFPrOofs9A1mXIWWMhg==", + "requires": { + "@aws-sdk/eventstream-marshaller": "1.0.0-rc.3", + "@aws-sdk/eventstream-serde-universal": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/eventstream-serde-universal": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-1.0.0-rc.3.tgz", + "integrity": "sha512-YAQMuEI+J0LEf8tOISYSihkEiEH2YpQpvXkLlWyybmWEa1XjmGaZS5V1HP/xf5cA/HPtIsApCz2VYTY50A/Lxw==", + "requires": { + "@aws-sdk/eventstream-marshaller": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/fetch-http-handler": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-1.0.0-rc.3.tgz", + "integrity": "sha512-1xd4DuW8Su7qHKg9wipVGhscvLsVRhZi9pRLxh13lIKEIt+ryxXzrex1YoxDUnDH3ZI7YhdeLhZIonlgaNT+Gw==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/querystring-builder": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-base64-browser": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/hash-blob-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-2lgiclNMd3hiNBjoSh7UuzSY9ucpVF7Z6AmSmERWqN5Sm69u1q8p0RgyyWnKd0JZRelPlB8gBXk4EzxBPSTSLA==", + "requires": { + "@aws-sdk/chunked-blob-reader": "1.0.0-rc.3", + "@aws-sdk/chunked-blob-reader-native": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/hash-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-1.0.0-rc.3.tgz", + "integrity": "sha512-Q3DikdeGA6pih2ftZajlNaHxsNUaKEXneZdxyoaSKyMppEni3eK2Z2ZjzyjDuXflYLkNtj4ylscure+uIKAApg==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-buffer-from": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/hash-stream-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-1.0.0-rc.3.tgz", + "integrity": "sha512-ry78JhVXHIUdH/aokQ/YBxQ+26zC5VOgK2XLq9eDdxBTz2sefjwzk3Qs5eY1GZKfyUlKMwdRpCibo9FlPVPJeg==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/invalid-dependency": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-1.0.0-rc.3.tgz", + "integrity": "sha512-Fl71S5Igd5Mi81QklxhhEWzwKbm+QP1kUYoc5nVK2sE+iLqdF9jwg7/ONBN8jISjTD8GPIW7NWL2SQNINNryMw==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/is-array-buffer": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-1.0.0-rc.3.tgz", + "integrity": "sha512-tHFTBiXAgBZmAKaJIL2e2QPR9kA1tZTUJMqKaybWjhXckvb29EgUOLcdK+W2kMSqKIGqEINbAaV7S11ydBtYIg==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/md5-js": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-1.0.0-rc.3.tgz", + "integrity": "sha512-UfHtEs5IWl39yU4X/95605bFMKErWRd+uPgtqEtCWDDGyw4uwUUrkyrhTfJKuUFvTj9ov0Lb03x5QPNDybAelQ==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-utf8-browser": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-apply-body-checksum": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-apply-body-checksum/-/middleware-apply-body-checksum-1.0.0-rc.3.tgz", + "integrity": "sha512-f8CMcb1mxPWHJvLxegpjF1fwoa/vFjIaRIrXgUoPMhFNICRZPGnzim2o2mGyjWcS39VkM6G7vpmosNv2zc4EJg==", + "requires": { + "@aws-sdk/is-array-buffer": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-bucket-endpoint": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-1.0.0-rc.4.tgz", + "integrity": "sha512-fA5zUz8Q9+mJ6YV+wfQQ/rn5Cj8NkcxECfq6wEoemVNTh2RmLv2vf6t/y7Q1rGZXo+kyW7633Pnofcb7Pja92g==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-arn-parser": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-content-length": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-1.0.0-rc.3.tgz", + "integrity": "sha512-eQfeMwneYxxF6NMF5AokilQHm3HMUbtBVmybdrrM+vs027DRQBDqcZ2GXwVI93kcS4GaibNnzX804rG2xA2UwA==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-expect-continue": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-1.0.0-rc.3.tgz", + "integrity": "sha512-rDs68vBn0sSWl3z1ecXSw7n+MeiSW//r6NSAWAmBE58BDjHSfwQ+aB3izpSHDGIiGZO4aasnwZAP7NjzYvxiWQ==", + "requires": { + "@aws-sdk/middleware-header-default": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-header-default": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-1.0.0-rc.3.tgz", + "integrity": "sha512-h0zQFCaBzu7SoRRlKYws76C8q8hY/Ja7G6E69X7fGbrcmNFMjm4aZq0eipKvOIg7cGbrcFnyOnWqLlWaL76nwA==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-host-header": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-1.0.0-rc.3.tgz", + "integrity": "sha512-44aOjB9yd2TCDj8c9sr+8+rhQ63kkuIAcMdbt3P/fXKUWwTAW+bcvknaynya3hLa8B75tEQ112xVBb+HoDR//g==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-location-constraint": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-1.0.0-rc.3.tgz", + "integrity": "sha512-VdW0/g8SVckRQsz55DrPIzyrF+Qgat3qt+qE9c6Gk7u6XaF05BlG7rbjsStd3Eml+FsKG1KOO3RgDCWvgESmNw==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-logger": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-1.0.0-rc.4.tgz", + "integrity": "sha512-TfTx9bbYYr2+rXQMHziyWmmvmHVb9Nzxj+V6vJQrOXxjrWvuYf+XM3aHNt8950XzzYmh6pc0+8p5Kk8NDnkM5A==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-retry": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-1.0.0-rc.4.tgz", + "integrity": "sha512-mIcEkQFiLWENsLGScYLOIa3yxAXrM1ZZoIxcXg1x2durgVCBd3fBC9jLJ5CGyGQAUHZmvhM/7BfjSueTOaV/JQ==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/service-error-classification": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "react-native-get-random-values": "^1.4.0", + "tslib": "^1.8.0", + "uuid": "^3.0.0" + } + }, + "@aws-sdk/middleware-sdk-s3": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-1.0.0-rc.3.tgz", + "integrity": "sha512-TDICHo5wONd4GUgLEtSjlygKRzXBfxkPQcNEGB2Mnbi+xbDa4FNd6XszkOrNMzxtmqD53ub/iDQewcBr9U9HJQ==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/util-arn-parser": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-serde": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-1.0.0-rc.3.tgz", + "integrity": "sha512-3IK4Hz8YV4+AIGJLjDu3QTKjfHGVIPrY5x4ubFzbGVc6EC9y69y+Yh3425ca3xeAVQFnORQn/707LiNKLlsD8g==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-signing": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-1.0.0-rc.3.tgz", + "integrity": "sha512-RqIQwPaHvyY38rmIR+A9b3EwIaPPAKA4rmaTGAT1jeS7H65tXJeKc7aAXJWvDn9E1Fj56mOHTOd86FgP45MrUg==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/signature-v4": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-ssec": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-1.0.0-rc.3.tgz", + "integrity": "sha512-sqv/TELHxAvpqOi7uhfCwLGVyOb1ihehfnSeqsyh2HPphg529ssmDUCF6jsi5maMc3lM/eHQ8LDPSXU9H58wwQ==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-stack": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-1.0.0-rc.4.tgz", + "integrity": "sha512-UUJSFRV+wJ/V3wt7rX3PA2a4MLkLt23vPKjjC70ETGSGuAcKsuXaZ9ZULZqENO+b3HKcs0eV8LoK/qU06EN8Mg==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/middleware-user-agent": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-1.0.0-rc.3.tgz", + "integrity": "sha512-Zrp3kETrrWgJLlnjkSuetOH5cN5URqLd6WQmhZlEm0isvr+2RyDDOA4wP6JjmMhCmrG02/8/b4pMOPH/vUm/LQ==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/node-config-provider": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-1.0.0-rc.3.tgz", + "integrity": "sha512-1i0fjunUMYP479hAq7D8RugfMmC3KCUzvZA2xtjFQcE31d7YrlfGstwBq/kvNcIcw+yc3r7SC54KzwgqfSSvzA==", + "requires": { + "@aws-sdk/property-provider": "1.0.0-rc.3", + "@aws-sdk/shared-ini-file-loader": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/node-http-handler": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-1.0.0-rc.3.tgz", + "integrity": "sha512-hK0NM3PxGVCgKLZoAb8bXFQlOA1JGd2DwfjDdAn4XfIhEH4QfbuFZxjkQhNcDwkKIqzCmlYTbgJvWKRbbFkEXg==", + "requires": { + "@aws-sdk/abort-controller": "1.0.0-rc.3", + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/querystring-builder": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/property-provider": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-1.0.0-rc.3.tgz", + "integrity": "sha512-WrYlUVaq63k0fYdnIJziphfdTITaTlW0b1qrRzFsqKPRN1AnQenzFs27ZHaaecmFfGg3q1Y2fci3cpyNUBTruQ==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/protocol-http": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-1.0.0-rc.3.tgz", + "integrity": "sha512-paOSLmXvce84BRCx+JIYGpsVCtn3GCGvzLywaPCHeES2OekwD86PJQskCDAlshRPOy/LCdxYVdMt7FrEBuyQrg==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/querystring-builder": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-1.0.0-rc.3.tgz", + "integrity": "sha512-PWTaV+0r/7FlPNjjKJQ/WyT4oRx4tG5efOuzQobb4/Bw2AFqVCzE2DMGx1V8YKqdq3QFckvRuoFDVqftyhF/Jw==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-uri-escape": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/querystring-parser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-1.0.0-rc.3.tgz", + "integrity": "sha512-TkA/4wM76WzsiMOs0Lxqk33rP+J0YtCjmpGzS+x4oqNbdVYQBpYtbwqN+9nsrOeieCFRWq9QWl6QM4IyJT9gRA==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/s3-request-presigner": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-1.0.0-rc.4.tgz", + "integrity": "sha512-DwwftqEKD7XsiM5sn+CpzhnJ9wjwK3LmXwYW2UvwF1tBTSMrTdGb14AAe8BTvxcsAPEi7Xwlr0f4kFpOlAgV3A==", + "requires": { + "@aws-sdk/protocol-http": "1.0.0-rc.3", + "@aws-sdk/signature-v4": "1.0.0-rc.3", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-create-request": "1.0.0-rc.4", + "@aws-sdk/util-format-url": "1.0.0-rc.4", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/service-error-classification": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-1.0.0-rc.4.tgz", + "integrity": "sha512-NqQkBmy9xxvF/SMuarNdw6Ts+LWU9TRZuerbkAZAS5VhBpaiEfRUX+KqW445F1HxjKJ8LUFBnBfaSZvNcC+GqA==" + }, + "@aws-sdk/shared-ini-file-loader": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-1.0.0-rc.3.tgz", + "integrity": "sha512-wynHRRZENIZUS714NX9cu9BDbxAL7DzOJvPYAj2tgC3bJNt0jkbQxNTePpolwWx7QNwFfQgDbK76LPkIo30dJQ==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/signature-v4": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-1.0.0-rc.3.tgz", + "integrity": "sha512-ARfmXLW4NMmQF5/3xGiasi6nrlvddZauJOgG9t2STTog8gijn+y+V7wh26A7e4vgv1hyE0RdonylbakUH1R4Nw==", + "requires": { + "@aws-sdk/is-array-buffer": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "@aws-sdk/util-hex-encoding": "1.0.0-rc.3", + "@aws-sdk/util-uri-escape": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/smithy-client": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-1.0.0-rc.4.tgz", + "integrity": "sha512-usblThhr82iOH0zMX5yYJME9pHVPdKpGZaBWgdKPNpnBaIAkkveAx+m1FaMaBXVyjGy9f8hZOtiMY/U+kI+16A==", + "requires": { + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/types": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-1.0.0-rc.3.tgz", + "integrity": "sha512-pKKR2SXG8IHbWcmVgFwLUrHqqqFOEuf5JiQmP7dEBjUXqavzDnqFUY7g9PGuM8928IQqL7IXrRsK7R+VbLgodQ==" + }, + "@aws-sdk/url-parser-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser-browser/-/url-parser-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-bTCB4K1nxX3juaOSRdjUC+nq1KZX1Ipy5pMQoDiRWYCgMgUAcqeWuxlclF3dc8vuhYUWa2A86D5lT3zrP0Gqag==", + "requires": { + "@aws-sdk/querystring-parser": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/url-parser-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser-node/-/url-parser-node-1.0.0-rc.3.tgz", + "integrity": "sha512-W2No+drp3jCjkr1edSReGNLyXF+a34qHOcy8cJ6ZtPe5eLzCroZ33+w1gJ01r5UboWwzo8Qyz7QPxD5J0zPVzw==", + "requires": { + "@aws-sdk/querystring-parser": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0", + "url": "^0.11.0" + } + }, + "@aws-sdk/util-arn-parser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-1.0.0-rc.3.tgz", + "integrity": "sha512-mIXiyBYDAQa9EdaKKU4oQsWAvSWVXAumCH89N5VQfrlRCuaqRUdmE83CJx69wcLFbrZCZmCJD2gcPVG5Ywa+NQ==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-base64-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-peqOSoOCTGlZVX9gC+4SxaSXQqSsjzNfKxKLZwcP/HhHIPU/I+tbnRbH4a2Cx29DsopTngu0GKLuPJEL67bvog==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-base64-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-1.0.0-rc.3.tgz", + "integrity": "sha512-gz/JScFQ9MMdI59VdJTbgZrnNdTPXOJKesMwoEMH8nMb6/Wi3+KL2NH/GC92hxhuE/JbA1vdrelvCFOED8E1Jg==", + "requires": { + "@aws-sdk/util-buffer-from": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-body-length-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-xvMrCo+5DshN4Fu3zar2RxaqPJ/QRAEOChyWEGUqjE+9/cow+uWsqBX3FdeY84mV6dkdcAJLQvP8aVH+v+w+lw==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-body-length-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-1.0.0-rc.3.tgz", + "integrity": "sha512-q7n3IP5s9TIMao9sK4an+xxBubHqWXoeqCQ5haeDmqQTBiZQYcyQQq61YJRghj2/53SH5MMS1ACncw3kvnO92g==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-buffer-from": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-1.0.0-rc.3.tgz", + "integrity": "sha512-43FzXSA3356C/QRCKZSmGTVwH4BgObNJDvF4z5dwwrfqU+tXjnUdnFo5hLsHq+fwjtWuXLkAyi+vz07x3MphvA==", + "requires": { + "@aws-sdk/is-array-buffer": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-create-request": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-1.0.0-rc.4.tgz", + "integrity": "sha512-/Ki/ocJml4Jnh6efDr4w0qmD6W4s/oqnVXieU0qkUezcyJF1dIRTQmxvUdfx0aFZ8HtY5U9ZosajNAhdHjTGVg==", + "requires": { + "@aws-sdk/middleware-stack": "1.0.0-rc.4", + "@aws-sdk/smithy-client": "1.0.0-rc.4", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-format-url": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-1.0.0-rc.4.tgz", + "integrity": "sha512-kqsHkZaCRJCnLlSDXNNNe7g7x6AAQXNiKeF2/qwEraT5kCi1NnWvlaTlA8uL1eOUMjxbw17sG9QMLZUuNKm3ow==", + "requires": { + "@aws-sdk/querystring-builder": "1.0.0-rc.3", + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-hex-encoding": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-1.0.0-rc.3.tgz", + "integrity": "sha512-GXHBBGdAH2HPn18RFMsvXAvBtO8pG0I2PlGHfKhn+ym+UT1lHHYpCd3/PawUVUYnFZrqIj+j48IjFFJ3XMPXyQ==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-locate-window": { + "version": "1.0.0-rc.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-1.0.0-rc.8.tgz", + "integrity": "sha512-TvqeA4fgmZ0A0x3K+qVj/OSWEFHGZjzpVuyXlm1EYOf7NQ9VWRlokEn1MYKuL+t7al9ZeQyi16D8Dn7DW1eidw==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-uri-escape": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-1.0.0-rc.3.tgz", + "integrity": "sha512-PW1Uh5nJ32VKysV6DxyO40gONJR8s0QFeS55apyPUeCYCrdEjwsNvftDWbRJIcVpvkRSrbDezWc5CJC0S8WXjQ==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-user-agent-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-ev7bjF6QejDTi/UTvBLfiUETrXtuBf5sJl8ocWRUcrCnje5DW5lat2LaC7KWeRppQ4NA//ldavF5ngAxsn8TzA==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-user-agent-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-1.0.0-rc.3.tgz", + "integrity": "sha512-5ELevKFFsHcyPSOrQ3mgdaNZ+Fr1I4J+/8aKoOiBO1Pnp15/xlVS4GkRiE0uUmAvBbUh1sByMvTo7ITeOBvlxA==", + "requires": { + "@aws-sdk/types": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-utf8-browser": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-1.0.0-rc.3.tgz", + "integrity": "sha512-ypEJ2zsfm844dPSnES5lvS80Jb6hQ7D9iu0TUKQfIVu0LernJaAiSM05UEbktN+bEAoQBi9S64l8JjHVKFWu1Q==", + "requires": { + "tslib": "^1.8.0" + } + }, + "@aws-sdk/util-utf8-node": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-1.0.0-rc.3.tgz", + "integrity": "sha512-80BWIgYzdw/cKxUrXf+7IKp07saLfCl7p4Q+zitcTrng9bSbPhjntXBS+dOFrBU2fBUynfI2K+9k5taJRKgOTQ==", + "requires": { + "@aws-sdk/util-buffer-from": "1.0.0-rc.3", + "tslib": "^1.8.0" + } + }, + "@aws-sdk/xml-builder": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-1.0.0-rc.3.tgz", + "integrity": "sha512-WdW/bZLVMNrEdG++m4B4QmZ6KnYsF3V68CDkZKg8IgDOMON4YOqUPBYDHNR8Wtdd1JQFLMDzrcqnXQqLb5dWgA==", + "requires": { + "tslib": "^1.8.0" + } + }, "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", @@ -1357,7 +3120,40 @@ "@sheerun/mutationobserver-shim": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", - "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==" + "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/formatio": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", + "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", + "requires": { + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" + } + }, + "@sinonjs/samsam": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", + "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", + "requires": { + "@sinonjs/commons": "^1.3.0", + "array-from": "^2.1.1", + "lodash": "^4.17.15" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "4.2.0", @@ -1472,6 +3268,7 @@ "version": "6.16.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz", "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==", + "dev": true, "requires": { "@babel/runtime": "^7.8.4", "@sheerun/mutationobserver-shim": "^0.3.2", @@ -1486,6 +3283,7 @@ "version": "25.5.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", @@ -1497,6 +3295,7 @@ "version": "15.0.5", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, "requires": { "@types/yargs-parser": "*" } @@ -1505,6 +3304,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" @@ -1514,6 +3314,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, "requires": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" @@ -1523,6 +3324,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1532,6 +3334,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1539,17 +3342,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "pretty-format": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, "requires": { "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", @@ -1561,6 +3367,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1571,6 +3378,7 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", + "dev": true, "requires": { "@babel/runtime": "^7.5.1", "chalk": "^2.4.1", @@ -1587,6 +3395,7 @@ "version": "9.5.0", "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz", "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==", + "dev": true, "requires": { "@babel/runtime": "^7.8.4", "@testing-library/dom": "^6.15.0", @@ -1596,7 +3405,8 @@ "@testing-library/user-event": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", - "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" + "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==", + "dev": true }, "@types/babel__core": { "version": "7.1.9", @@ -1640,6 +3450,11 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/cookie": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz", + "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==" + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -1699,7 +3514,8 @@ "@types/prop-types": { "version": "15.7.3", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", + "dev": true }, "@types/q": { "version": "1.5.4", @@ -1710,6 +3526,7 @@ "version": "16.9.43", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.43.tgz", "integrity": "sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg==", + "dev": true, "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" @@ -1719,6 +3536,7 @@ "version": "16.9.8", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", + "dev": true, "requires": { "@types/react": "*" } @@ -1732,6 +3550,7 @@ "version": "6.14.0", "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==", + "dev": true, "requires": { "pretty-format": "^24.3.0" } @@ -1740,6 +3559,7 @@ "version": "9.1.3", "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz", "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==", + "dev": true, "requires": { "@types/react-dom": "*", "@types/testing-library__dom": "*", @@ -1750,6 +3570,7 @@ "version": "25.5.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", @@ -1761,6 +3582,7 @@ "version": "15.0.5", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, "requires": { "@types/yargs-parser": "*" } @@ -1769,6 +3591,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" @@ -1778,6 +3601,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1787,6 +3611,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1794,17 +3619,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "pretty-format": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, "requires": { "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", @@ -1816,6 +3644,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -2184,6 +4013,30 @@ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" }, + "amazon-cognito-identity-js": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-4.5.6.tgz", + "integrity": "sha512-TdzE4hkBybBCE4waoZysfSxj3zl908XN8ojBdiurq2wv0dEVLsY7zGBFakVuQB/CDYM1QF2/y3q2rHbCPklnOA==", + "requires": { + "buffer": "4.9.1", + "crypto-js": "^3.3.0", + "fast-base64-decode": "^1.0.0", + "isomorphic-unfetch": "^3.0.0", + "js-cookie": "^2.2.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + } + } + }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", @@ -2296,6 +4149,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + }, "array-includes": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", @@ -2443,6 +4301,25 @@ "postcss-value-parser": "^4.1.0" } }, + "aws-amplify": { + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-3.3.13.tgz", + "integrity": "sha512-w8y+CGRmciLxPXPbdAa1yeMYSgl33YyXN3+m2Bv8rbp9d7e4pt2E7Fn6KtVLONTCxH+opMtdO8Qu3lAUxPVUXg==", + "requires": { + "@aws-amplify/analytics": "4.0.4", + "@aws-amplify/api": "3.2.16", + "@aws-amplify/auth": "3.4.16", + "@aws-amplify/cache": "3.1.41", + "@aws-amplify/core": "3.8.8", + "@aws-amplify/datastore": "2.9.2", + "@aws-amplify/interactions": "3.3.16", + "@aws-amplify/predictions": "3.2.16", + "@aws-amplify/pubsub": "3.2.14", + "@aws-amplify/storage": "3.3.16", + "@aws-amplify/ui": "2.0.2", + "@aws-amplify/xr": "2.2.16" + } + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -2453,37 +4330,6 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -3234,6 +5080,25 @@ "isarray": "^1.0.0" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3970,6 +5835,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", + "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -4110,7 +5980,8 @@ "css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true }, "cssdb": { "version": "4.4.0", @@ -4238,7 +6109,8 @@ "csstype": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.11.tgz", - "integrity": "sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==" + "integrity": "sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==", + "dev": true }, "cyclist": { "version": "1.0.1", @@ -4548,6 +6420,11 @@ } } }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, "diff-sequences": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", @@ -4570,6 +6447,11 @@ } } }, + "dijkstrajs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", + "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" + }, "dir-glob": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", @@ -4612,7 +6494,8 @@ "dom-accessibility-api": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz", - "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==" + "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==", + "dev": true }, "dom-converter": { "version": "0.2.0", @@ -5738,6 +7621,11 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, + "fast-base64-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5787,6 +7675,11 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fast-xml-parser": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.17.5.tgz", + "integrity": "sha512-lEvThd1Xq+CCylf1n+05bUZCDZjTufaaaqpxM3JZ+4iDqtlG+d/oKgtMmg9GEMOuzBgUoalIzFOaClht9YiGJQ==" + }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -6276,6 +8169,14 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, + "graphql": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.0.0.tgz", + "integrity": "sha512-HGVcnO6B25YZcSt6ZsH6/N+XkYuPA7yMqJmlJ4JWxWlS4Tr8SHI56R1Ocs8Eor7V7joEZPRXPDH8RRdll1w44Q==", + "requires": { + "iterall": "^1.2.2" + } + }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -6653,6 +8554,11 @@ "postcss": "^7.0.14" } }, + "idb": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/idb/-/idb-5.0.6.tgz", + "integrity": "sha512-/PFvOWPzRcEPmlDt5jEvzVZVs0wyd/EvGvkDIcbBpGuMMLQKrTPG0TxvE2UJtgZtCQCmOtM2QD7yQJBVEjKGOw==" + }, "identity-obj-proxy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", @@ -7131,6 +9037,15 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, + "isomorphic-unfetch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", + "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "requires": { + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -7202,6 +9117,11 @@ "html-escaper": "^2.0.0" } }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, "jest": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", @@ -7728,6 +9648,11 @@ } } }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -7871,6 +9796,11 @@ "object.assign": "^4.1.0" } }, + "just-extend": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.1.tgz", + "integrity": "sha512-aWgeGFW67BP3e5181Ep1Fv2v8z//iBJfrvyTnq8wG86vEESwmonn1zPBJ0VfmT9CJq2FIT0VsETtrNFm2a+SHA==" + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -8081,6 +10011,11 @@ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" }, + "lolex": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", + "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -8334,7 +10269,8 @@ "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true }, "mini-css-extract-plugin": { "version": "0.9.0", @@ -8580,6 +10516,41 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "nise": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", + "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==", + "requires": { + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "lolex": "^5.0.1", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "lolex": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, "no-case": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", @@ -8589,6 +10560,11 @@ "tslib": "^1.10.0" } }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, "node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", @@ -9080,6 +11056,11 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "paho-mqtt": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/paho-mqtt/-/paho-mqtt-1.1.0.tgz", + "integrity": "sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA==" + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -9306,6 +11287,11 @@ "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + }, "pnp-webpack-plugin": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", @@ -10437,6 +12423,36 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, + "qrcode": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz", + "integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==", + "requires": { + "buffer": "^5.4.3", + "buffer-alloc": "^1.2.0", + "buffer-from": "^1.1.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^13.2.4" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -10780,6 +12796,14 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "react-native-get-random-values": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.5.0.tgz", + "integrity": "sha512-LK+Wb8dEimJkd/dub7qziDmr9Tw4chhpzVeQ6JDo4czgfG4VXbptRyOMdu8503RiMF6y9pTH6ZUTkrrpprqT7w==", + "requires": { + "fast-base64-decode": "^1.0.0" + } + }, "react-onclickoutside": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz", @@ -10942,6 +12966,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, "requires": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -11712,6 +13737,20 @@ } } }, + "sinon": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz", + "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==", + "requires": { + "@sinonjs/commons": "^1.4.0", + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/samsam": "^3.3.3", + "diff": "^3.5.0", + "lolex": "^4.2.0", + "nise": "^1.5.2", + "supports-color": "^5.5.0" + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -12298,6 +14337,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, "requires": { "min-indent": "^1.0.0" } @@ -12812,6 +14852,11 @@ "prelude-ls": "~1.1.2" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -12836,6 +14881,16 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "ulid": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", + "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==" + }, + "unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -12897,6 +14952,15 @@ "imurmurhash": "^0.1.4" } }, + "universal-cookie": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz", + "integrity": "sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw==", + "requires": { + "@types/cookie": "^0.3.3", + "cookie": "^0.4.0" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -13112,7 +15176,8 @@ "wait-for-expect": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.2.tgz", - "integrity": "sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag==" + "integrity": "sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag==", + "dev": true }, "walker": { "version": "1.0.7", @@ -14138,6 +16203,35 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "0.8.19", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz", + "integrity": "sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ==", + "requires": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } + }, + "zen-push": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/zen-push/-/zen-push-0.2.1.tgz", + "integrity": "sha512-Qv4qvc8ZIue51B/0zmeIMxpIGDVhz4GhJALBvnKs/FRa2T7jy4Ori9wFwaHVt0zWV7MIFglKAHbgnVxVTw7U1w==", + "requires": { + "zen-observable": "^0.7.0" + }, + "dependencies": { + "zen-observable": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.7.1.tgz", + "integrity": "sha512-OI6VMSe0yeqaouIXtedC+F55Sr6r9ppS7+wTbSexkYdHbdt4ctTuPNXP/rwm7GTVI63YBc+EBT0b0tl7YnJLRg==" + } + } } } } diff --git a/client/package.json b/client/package.json index 5a7e574..e860367 100644 --- a/client/package.json +++ b/client/package.json @@ -3,11 +3,9 @@ "version": "0.1.0", "private": true, "dependencies": { - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.5.0", - "@testing-library/user-event": "^7.2.1", + "@aws-amplify/ui-react": "^0.2.33", "apexcharts": "^3.20.0", - "axios": "^0.19.2", + "aws-amplify": "^3.3.13", "d3-format": "^2.0.0", "d3-scale": "^3.2.3", "d3-shape": "^2.0.0", @@ -18,6 +16,11 @@ "react-scripts": "3.4.1", "sweetalert2": "^9.17.1" }, + "devDependencies": { + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.5.0", + "@testing-library/user-event": "^7.2.1" + }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", diff --git a/client/src/App.js b/client/src/App.js index af7ac11..594e122 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -3,102 +3,98 @@ import "./App.css"; import "emerald-ui/lib/styles.css"; import Navbar from "./components/navbar"; import PrepaymentContainer from "./components/prePaymentContainer"; -import SecretContainer from "./components/SecretCodeScreen"; import GraphContainer from "./components/GraphsContainer"; import HomeContainer from "./components/HomeContainer"; import DataCreditContainer from "./components/DataCreditContainer"; import ProfileContainer from "./components/ProfileContainer/"; -import axios from "axios"; import constants from "./constants"; +import Amplify, { Auth, API } from 'aws-amplify'; +import awsconfig from './aws-exports'; +import { AmplifySignOut, withAuthenticator } from '@aws-amplify/ui-react'; + + +Amplify.configure({ + ...awsconfig, + API: { + endpoints: [ + { + name: "finances", + endpoint: constants.apiGateway.URL, + region: constants.apiGateway.REGION, + custom_header: async () => { + return { Authorization: `Bearer ${(await Auth.currentSession()).getIdToken().getJwtToken()}` } + }, + } + ] + } +}); class App extends React.Component { constructor(props) { super(props); this.state = { - secret: null, user: {}, banks: [], prepayments: [], navbarActive: "home", + token: null }; } getPrePayments = () => { const self = this; - axios - .get(constants.basepath + constants.routes.prepayments) - .then((res) => { - self.setState({ - prepayments: res.data, - }); - }) - .catch((e) => { - console.error(e); + API.get("finances", "/prepayments").then(response => { + const data = JSON.parse(response.body) + self.setState({ + prepayments: data, }); + }) }; - componentDidMount = () => { - if(!this.state.secretKey) return; + componentDidMount = async () => { this.loadInitialData() }; - - loadInitialData(){ + + loadInitialData() { this.getPrePayments(); this.getUserInformation() } - componentDidUpdate(prevProps, prevState){ - const { secret } = prevState - if(!secret && this.state.secret){ - this.loadInitialData() - } - } onLoginClick = (secret) => { - axios.post(constants.basepath + constants.routes.secret, { - secretKey: secret - }).then(result=>{ - this.setState({secret: true}) - }).catch(err=>console.error(err)) + API.post("finances", "/secretKey", { body: { secretKey: secret } }).then(response => { + this.setState({ secret: true }) + }) }; getUserInformation = () => { - axios - .get(constants.basepath + constants.routes.user) - .then(({ data }) => { - this.setState({ - user: { - ...data, - banks: undefined, - }, - banks: data.banks, - }); - }) - .catch((err) => console.error(err)); + API.get("finances", "/user").then(response => { + const data = JSON.parse(response.body) + this.setState({ + user: { + ...data, + banks: undefined, + }, + banks: data.banks, + }); + }) }; onSavePrepayment = (data) => { const self = this; - const url = constants.basepath + constants.routes.prepayments; - axios({ - method: "put", - data, - url, - headers: { - "Content-Type": "application/json", - }, - }) + + API.put("finances", "/prepayments", { body: data }) .then(() => { const { id } = data; self.setState({ prepayments: self.state.prepayments.filter((item) => item._id !== id), }); }) - .catch((err) => console.error(err)); + }; - addCategoryToState = (category) =>{ + addCategoryToState = (category) => { const newCategories = this.state.user.categories || [] - newCategories.push(category) + newCategories.push(category) this.setState({ - user:{ + user: { ...this.state.user, categories: newCategories } @@ -106,9 +102,8 @@ class App extends React.Component { } render() { - const { prepayments, secret, user } = this.state; - if (!secret) return ; + const { prepayments, user } = this.state; return ( +
{this.state.navbarActive === "prepayment" && ( { - const url = - constants.basepath + - constants.routes.datacredit; - - const result = await axios.get(url).catch((e) => console.error(e)); - if ((!result || !result.data || (Array.isArray(result.data))) && !result.data.length) return; - const { - score, - comportamiento, - amountOfProducts, - arrears30daysLastYear, - arrears60daysLast2Year, - arrearsAmount, - updatedAt + API.get('finances', '/datacredit').then(response => { + const data = JSON.parse(response.body) - } = result.data - if (this._isMounted) { - this.setState({ + const { score, comportamiento, amountOfProducts, arrears30daysLastYear, arrears60daysLast2Year, arrearsAmount, - lastUpdate: new Date(updatedAt) - }); - } + updatedAt + } = data + if (this._isMounted) { + this.setState({ + score, + comportamiento, + amountOfProducts, + arrears30daysLastYear, + arrears60daysLast2Year, + arrearsAmount, + lastUpdate: new Date(updatedAt) + }); + } + }) }; @@ -60,7 +56,7 @@ class DataCreditComponent extends React.Component { this.getDataCreditStatistics() } - transformNumber = (number) => Intl.NumberFormat('es-co', {style: 'currency', currency: 'COP'}).format(number) + transformNumber = (number) => Intl.NumberFormat('es-co', { style: 'currency', currency: 'COP' }).format(number) render() { const { diff --git a/client/src/components/GraphsContainer.js b/client/src/components/GraphsContainer.js index 2970d51..7235b5a 100644 --- a/client/src/components/GraphsContainer.js +++ b/client/src/components/GraphsContainer.js @@ -1,7 +1,6 @@ import React, { Component } from "react"; import ApexCharts from "apexcharts"; -import axios from "axios"; -import constants from "../constants"; +import { API } from 'aws-amplify' class GraphContainer extends Component { constructor(props) { super(props); @@ -28,42 +27,36 @@ class GraphContainer extends Component { }; getMonthlyMetrics = () => - axios({ - url: constants.basepath + constants.routes.stats, - method: "get", - }) - .then((res) => { - const data = res.data; - const [amounts, months] = data.reduce( - (prev, current) => { - prev[0].push(current.total.toFixed(2)); - prev[1].push(current.month); - return prev; - }, - [[], []] - ); - this.renderGraph( - { - categories: months, - series: [ - { - name: "Gastos", - data: amounts, - }, - ], - }, - "graph-montly" - ); - }) - .catch((err) => console.error(err)); + API.get("finances", '/boxflow/stats').then(response => { + const data = JSON.parse(response.body) + const [amounts, months] = data.reduce( + (prev, current) => { + prev[0].push(current.total.toFixed(2)); + prev[1].push(current.month); + return prev; + }, + [[], []] + ); + this.renderGraph( + { + categories: months, + series: [ + { + name: "Gastos", + data: amounts, + }, + ], + }, + "graph-montly" + ); + }); getMonthlyCategories = () => - axios({ - url: constants.basepath + constants.routes.stats + "?metricType=category", - method: "get", - }) + API.get('finances', '/boxflow/stats', { queryStringParameters: { metricType: 'category' } }) .then((res) => { - const data = res.data; + const data = JSON.parse(res.body); + + console.log(data) const monthsArray = []; const datasets = data.map((item) => { return { @@ -100,6 +93,7 @@ class GraphContainer extends Component { data: joined, }; }); + this.renderGraph( { categories: uniqueMonths, @@ -111,6 +105,7 @@ class GraphContainer extends Component { }) .catch((err) => console.error(err)); + componentDidMount = () => { this.getMonthlyMetrics(); this.getMonthlyCategories(); diff --git a/client/src/components/HomeContainer.js b/client/src/components/HomeContainer.js index 5a3aae0..eaa574e 100644 --- a/client/src/components/HomeContainer.js +++ b/client/src/components/HomeContainer.js @@ -1,8 +1,7 @@ import React from "react"; import Table from "./TableComponent"; import moment from "moment"; -import axios from "axios"; -import constants from "../constants"; +import { API } from 'aws-amplify' class HomeComponent extends React.Component { _isMounted = false; @@ -20,41 +19,39 @@ class HomeComponent extends React.Component { isRenderd = false; getHomeStatistics = async (timeAgo) => { - const url = - constants.basepath + - constants.routes.stats + - "?metricType=home&date=" + - timeAgo; - const result = await axios.get(url).catch((e) => console.error(e)); - if (!result || !result.data) return; - const categories = []; - const { latestPayments, expensivePayments, prepayments, totalByCategory } = result.data; - Object.keys(totalByCategory).forEach((key) => { - const catName = key - const total = totalByCategory[key].reduce((prev, curr) => prev + curr.amount, 0) - categories.push({ - name: catName, - total + API.get('finances', '/boxflow/stats', { queryStringParameters: { metricType: 'home', date: timeAgo } }) + .then(response => { + const data = JSON.parse(response.body) + const categories = []; + const { latestPayments, expensivePayments, prepayments, totalByCategory } = data; + Object.keys(totalByCategory).forEach((key) => { + const catName = key + const total = totalByCategory[key].reduce((prev, curr) => prev + curr.amount, 0) + categories.push({ + name: catName, + total + }) + }); + const totalTotales = categories.reduce((prev, curr) => prev + curr.total, 0) + categories.push({ + name: 'Total', + total: totalTotales + }) + if (this._isMounted) { + this.setState({ + latestPayments, + expensivePayments, + prepayments, + categories + }); + } }) - }); - const totalTotales = categories.reduce((prev, curr) => prev + curr.total, 0) - categories.push({ - name: 'Total', - total: totalTotales - }) - if (this._isMounted) { - this.setState({ - latestPayments, - expensivePayments, - prepayments, - categories - }); - } + }; onChangeDate = (evt, date) => { if (evt) evt.preventDefault(); - const timeAgo = moment().subtract(1, date).toString(); + const timeAgo = moment().subtract(1, date).toISOString(); this.getHomeStatistics(timeAgo); if (this._isMounted) { this.setState({ timeAgo: date }); @@ -70,8 +67,8 @@ class HomeComponent extends React.Component { componentWillUnmount() { this._isMounted = false; } - - transformNumber = (number) => Intl.NumberFormat('es-co', {style: 'currency', currency: 'COP'}).format(number) + + transformNumber = (number) => Intl.NumberFormat('es-co', { style: 'currency', currency: 'COP' }).format(number) render() { const { diff --git a/client/src/components/ProfileContainer/BanksComponents.jsx b/client/src/components/ProfileContainer/BanksComponents.jsx index 5f0c10f..af09cf7 100644 --- a/client/src/components/ProfileContainer/BanksComponents.jsx +++ b/client/src/components/ProfileContainer/BanksComponents.jsx @@ -1,5 +1,5 @@ import React from "react"; -import { ExpansionPanelGroup, Avatar, IconButton } from "emerald-ui/lib/"; +import { ExpansionPanelGroup, Avatar } from "emerald-ui/lib/"; export default (props) => { return ( diff --git a/client/src/components/ProfileContainer/ProfileContainer.jsx b/client/src/components/ProfileContainer/ProfileContainer.jsx index 2696e17..c8a42c7 100644 --- a/client/src/components/ProfileContainer/ProfileContainer.jsx +++ b/client/src/components/ProfileContainer/ProfileContainer.jsx @@ -2,8 +2,7 @@ import React from "react"; import { Label } from "emerald-ui/lib/"; import NewCategoryModal from "./NewCategoryModal"; import BanksComponent from "./BanksComponents"; -import axios from 'axios' -import constants from '../../constants' +import { API } from 'aws-amplify' class ProfileContainer extends React.Component { constructor(props) { super(props); @@ -11,35 +10,35 @@ class ProfileContainer extends React.Component { user: {}, banks: [] }; - } - onCreateCategoryClick = (evt)=>{ - this.setState({ - showCategoryModal: true - }) + } + onCreateCategoryClick = (evt) => { + this.setState({ + showCategoryModal: true + }) } - onSaveCategory = (category)=>{ + onSaveCategory = (category) => { this.setState({ showSpinningCategoryModal: true }) - axios.post(constants.basepath + constants.routes.categories, { + API.post('finances', '/user/categories', {body: { ...category - }).then(result=>{ + }}).then(result => { this.setState({ showCategoryModal: false, - showSpinningCategoryModal: false, + showSpinningCategoryModal: false, }) this.props.saveCategory(category) - }).catch(err=>console.error(err)) + }).catch(err => console.error(err)) } - onCloseCategoryModal =(evt)=>this.setState({showCategoryModal: false}) - + onCloseCategoryModal = (evt) => this.setState({ showCategoryModal: false }) + render() { const { user, banks } = this.props return (
- +

Emails registrados:

@@ -58,7 +57,7 @@ class ProfileContainer extends React.Component { {user.categories && user.categories.map((category) => ( ))} -