From 92eb184081825807d9755be90e539a40444b7c97 Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 7 Dec 2023 12:07:05 -0600 Subject: [PATCH 01/19] Add base function to get email assets from s3 and update env var for bucket name in example env file --- backend/src/tasks/s3-client.ts | 21 +++++++++++++++++++++ dev.env.example | 2 ++ 2 files changed, 23 insertions(+) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index fa4f03e28..d9f4afafb 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -1,5 +1,6 @@ import { S3 } from 'aws-sdk'; +S3.getObject({) /** * S3 Client. Normally, interacts with S3. * When the app is running locally, connects @@ -74,6 +75,7 @@ class S3Client { throw e; } } + async listReports(orgId: string) { try { const params = { @@ -93,6 +95,25 @@ class S3Client { throw e; } } + + async getEmailAsset(fileName: string) { + try { + const params = { + Bucket: process.env.EMAIL_BUCKET_NAME!, + Key: fileName + }; + + const data = await this.s3 + .getObject(params, function (err, data) { + if (err) throw err; + }) + .promise(); + return data.Contents; + } catch (e) { + console.error(e); + throw e; + } + } } export default S3Client; diff --git a/dev.env.example b/dev.env.example index 4443cf737..6e02b6096 100644 --- a/dev.env.example +++ b/dev.env.example @@ -77,4 +77,6 @@ EXPORT_BUCKET_NAME=crossfeed-local-exports REPORTS_BUCKET_NAME=crossfeed-local-reports +EMAIL_BUCKET_NAME=cisa-crossfeed-staging-html-email + IS_LOCAL=1 From 1ee9eec5d46b9a58d84a975a00643f8bd1a58fd8 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Thu, 7 Dec 2023 14:34:47 -0600 Subject: [PATCH 02/19] Integrate S3 getEmailAssets in the mail notification system. --- backend/src/api/helpers.ts | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 16e7ca2ea..4c21b8090 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -12,6 +12,7 @@ import * as nodemailer from 'nodemailer'; import * as fs from 'fs'; import * as handlebars from 'handlebars'; import * as util from 'util'; +import { getEmailAsset } from '../tasks/s3-client'; export const validateBody = async ( obj: ClassType, @@ -111,8 +112,7 @@ export const sendUserNotificationEmail = async ( SES: new SES({ region: 'us-east-1' }) }); - const fs = require('fs').promises; - const html = await fs.readFile(template_file, 'utf8'); + const html = getEmailAsset(template_file); const template = handlebars.compile(html); const data = { first_name: p_firstName, @@ -129,37 +129,37 @@ export const sendUserNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: '/app/src/email_templates/banner.png', + path: getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: '/app/src/email_templates/banner.png', + path: getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: '/app/src/email_templates/email.png', + path: getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: '/app/src/email_templates/linkedin.png', + path: getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: '/app/src/email_templates/twitter.png', + path: getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: '/app/src/email_templates/facebooK.png', + path: getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: '/app/src/email_templates/instagram.png', + path: getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] @@ -181,7 +181,7 @@ export const sendRegionalAdminNotificationEmail = async ( const fs = require('fs').promises; const html = await fs.readFile( - '/app/src/email_templates/crossfeed_regional_admin_notification.html', + getEmailAsset('crossfeed_regional_admin_notification.html'), 'utf8' ); const template = handlebars.compile(html); @@ -200,37 +200,37 @@ export const sendRegionalAdminNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: '/app/src/email_templates/banner.png', + path: getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: '/app/src/email_templates/banner.png', + path: getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: '/app/src/email_templates/email.png', + path: getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: '/app/src/email_templates/linkedin.png', + path: getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: '/app/src/email_templates/twitter.png', + path: getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: '/app/src/email_templates/facebooK.png', + path: getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: '/app/src/email_templates/instagram.png', + path: getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] From 2056c1f12af905755bd63b9d2685e84f1d12f1cb Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 7 Dec 2023 15:57:22 -0600 Subject: [PATCH 03/19] Fix typo in s3-client.ts --- backend/src/tasks/s3-client.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index d9f4afafb..756988d55 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -1,6 +1,5 @@ import { S3 } from 'aws-sdk'; -S3.getObject({) /** * S3 Client. Normally, interacts with S3. * When the app is running locally, connects From 5b474e622f289e89bf96bf810a4f34b7a9cbbbe1 Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 7 Dec 2023 16:18:04 -0600 Subject: [PATCH 04/19] Fix imports in helpers file for S3Client --- backend/src/api/helpers.ts | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 4c21b8090..e4dd35190 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -12,7 +12,8 @@ import * as nodemailer from 'nodemailer'; import * as fs from 'fs'; import * as handlebars from 'handlebars'; import * as util from 'util'; -import { getEmailAsset } from '../tasks/s3-client'; +import S3Client from '../tasks/s3-client'; + export const validateBody = async ( obj: ClassType, @@ -112,7 +113,7 @@ export const sendUserNotificationEmail = async ( SES: new SES({ region: 'us-east-1' }) }); - const html = getEmailAsset(template_file); + const html = S3Client.getEmailAsset(template_file); const template = handlebars.compile(html); const data = { first_name: p_firstName, @@ -129,37 +130,37 @@ export const sendUserNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: getEmailAsset('banner.png'), + path: S3Client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: getEmailAsset('banner.png'), + path: S3Client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: getEmailAsset('email.png'), + path: S3Client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: getEmailAsset('linkedin.png'), + path: S3Client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: getEmailAsset('twitter.png'), + path: S3Client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: getEmailAsset('facebooK.png'), + path: S3Client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: getEmailAsset('instagram.png'), + path: S3Client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] @@ -181,7 +182,7 @@ export const sendRegionalAdminNotificationEmail = async ( const fs = require('fs').promises; const html = await fs.readFile( - getEmailAsset('crossfeed_regional_admin_notification.html'), + S3Client.getEmailAsset('crossfeed_regional_admin_notification.html'), 'utf8' ); const template = handlebars.compile(html); @@ -200,37 +201,37 @@ export const sendRegionalAdminNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: getEmailAsset('banner.png'), + path: S3Client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: getEmailAsset('banner.png'), + path: S3Client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: getEmailAsset('email.png'), + path: S3Client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: getEmailAsset('linkedin.png'), + path: S3Client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: getEmailAsset('twitter.png'), + path: S3Client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: getEmailAsset('facebooK.png'), + path: S3Client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: getEmailAsset('instagram.png'), + path: S3Client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] From 90e998e259b05c7c03fb7feff3e9cb1a97f0260c Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 7 Dec 2023 16:22:01 -0600 Subject: [PATCH 05/19] Fix linter errors in backend/src/api/helpers.ts --- backend/src/api/helpers.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index e4dd35190..47008e12a 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -14,7 +14,6 @@ import * as handlebars from 'handlebars'; import * as util from 'util'; import S3Client from '../tasks/s3-client'; - export const validateBody = async ( obj: ClassType, body: string | null, From b63e11b937ad9e827a1ee3a72c7906785d40d5e5 Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 7 Dec 2023 16:36:10 -0600 Subject: [PATCH 06/19] Update usage of S3Client in backend/src/api/helpers.ts --- backend/src/api/helpers.ts | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 47008e12a..2d3362c7d 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -112,7 +112,8 @@ export const sendUserNotificationEmail = async ( SES: new SES({ region: 'us-east-1' }) }); - const html = S3Client.getEmailAsset(template_file); + const client = new S3Client(); + const html = client.getEmailAsset(template_file); const template = handlebars.compile(html); const data = { first_name: p_firstName, @@ -129,37 +130,37 @@ export const sendUserNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: S3Client.getEmailAsset('banner.png'), + path: client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: S3Client.getEmailAsset('banner.png'), + path: client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: S3Client.getEmailAsset('email.png'), + path: client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: S3Client.getEmailAsset('linkedin.png'), + path: client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: S3Client.getEmailAsset('twitter.png'), + path: client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: S3Client.getEmailAsset('facebooK.png'), + path: client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: S3Client.getEmailAsset('instagram.png'), + path: client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] @@ -180,8 +181,9 @@ export const sendRegionalAdminNotificationEmail = async ( }); const fs = require('fs').promises; + const client = new S3Client(); const html = await fs.readFile( - S3Client.getEmailAsset('crossfeed_regional_admin_notification.html'), + client.getEmailAsset('crossfeed_regional_admin_notification.html'), 'utf8' ); const template = handlebars.compile(html); @@ -200,37 +202,37 @@ export const sendRegionalAdminNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: S3Client.getEmailAsset('banner.png'), + path: client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: S3Client.getEmailAsset('banner.png'), + path: client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: S3Client.getEmailAsset('email.png'), + path: client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: S3Client.getEmailAsset('linkedin.png'), + path: client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: S3Client.getEmailAsset('twitter.png'), + path: client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: S3Client.getEmailAsset('facebooK.png'), + path: client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: S3Client.getEmailAsset('instagram.png'), + path: client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] From e758fc93f041cb988a01cd697e4169a0ebb6db62 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Fri, 8 Dec 2023 11:27:48 -0600 Subject: [PATCH 07/19] WIP. Resolving issues between S3 buckets and nodemailer attachments. --- backend/src/api/helpers.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 2d3362c7d..6bc5384f6 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -130,37 +130,37 @@ export const sendUserNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: client.getEmailAsset('banner.png'), + content: client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: client.getEmailAsset('banner.png'), + content: client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: client.getEmailAsset('email.png'), + content: client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: client.getEmailAsset('linkedin.png'), + content: client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: client.getEmailAsset('twitter.png'), + content: client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: client.getEmailAsset('facebooK.png'), + content: client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: client.getEmailAsset('instagram.png'), + content: client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] @@ -202,37 +202,37 @@ export const sendRegionalAdminNotificationEmail = async ( attachments: [ { filename: 'banner.png', - path: client.getEmailAsset('banner.png'), + content: client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - path: client.getEmailAsset('banner.png'), + content: client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - path: client.getEmailAsset('email.png'), + content: client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - path: client.getEmailAsset('linkedin.png'), + content: client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: client.getEmailAsset('twitter.png'), + content: client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: client.getEmailAsset('facebooK.png'), + content: client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: client.getEmailAsset('instagram.png'), + content: client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] From aa710765878af1b5784622268c4e7d0a333c0560 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 8 Dec 2023 15:45:28 -0600 Subject: [PATCH 08/19] Modify output format of getEmailAsset to fit nodemailer requirements --- backend/src/tasks/s3-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index 756988d55..ae32b2ced 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -107,7 +107,7 @@ class S3Client { if (err) throw err; }) .promise(); - return data.Contents; + return data.Body.toString('utf-8'); } catch (e) { console.error(e); throw e; From 3a9394df245611063bb7b4e2f171bf49d4bbfb80 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 8 Dec 2023 15:51:12 -0600 Subject: [PATCH 09/19] Modify output format of getEmailAsset to fit nodemailer requirements --- backend/src/tasks/s3-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index ae32b2ced..e73f800f0 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -107,7 +107,7 @@ class S3Client { if (err) throw err; }) .promise(); - return data.Body.toString('utf-8'); + return data.Body; } catch (e) { console.error(e); throw e; From e7f8112b29525ab84d4c635b94f2cc601eb248e3 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Fri, 8 Dec 2023 15:52:32 -0600 Subject: [PATCH 10/19] Change content to await email asset. --- backend/src/api/helpers.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 6bc5384f6..31bdee052 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -130,37 +130,37 @@ export const sendUserNotificationEmail = async ( attachments: [ { filename: 'banner.png', - content: client.getEmailAsset('banner.png'), + content: await client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - content: client.getEmailAsset('banner.png'), + content: await client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - content: client.getEmailAsset('email.png'), + content: await client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - content: client.getEmailAsset('linkedin.png'), + content: await client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - content: client.getEmailAsset('twitter.png'), + content: await client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - content: client.getEmailAsset('facebooK.png'), + content: await client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - content: client.getEmailAsset('instagram.png'), + content: await client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] @@ -202,37 +202,37 @@ export const sendRegionalAdminNotificationEmail = async ( attachments: [ { filename: 'banner.png', - content: client.getEmailAsset('banner.png'), + content: await client.getEmailAsset('banner.png'), cid: 'CISA Banner' }, { filename: 'web.png', - content: client.getEmailAsset('banner.png'), + content: await client.getEmailAsset('banner.png'), cid: 'CISA Web' }, { filename: 'email.png', - content: client.getEmailAsset('email.png'), + content: await client.getEmailAsset('email.png'), cid: 'CISA Email' }, { filename: 'linkedin.png', - content: client.getEmailAsset('linkedin.png'), + content: await client.getEmailAsset('linkedin.png'), cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - content: client.getEmailAsset('twitter.png'), + content: await client.getEmailAsset('twitter.png'), cid: 'CISA Twitter' }, { filename: 'facebook.png', - content: client.getEmailAsset('facebooK.png'), + content: await client.getEmailAsset('facebooK.png'), cid: 'CISA Facebook' }, { filename: 'instagram.png', - content: client.getEmailAsset('instagram.png'), + content: await client.getEmailAsset('instagram.png'), cid: 'CISA Instagram' } ] From 17c3e7c8dddfac17f01b9038ee79eeb975760700 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 8 Dec 2023 15:59:23 -0600 Subject: [PATCH 11/19] Modify output format of getEmailAsset to fit nodemailer requirements --- backend/src/tasks/s3-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index e73f800f0..ae32b2ced 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -107,7 +107,7 @@ class S3Client { if (err) throw err; }) .promise(); - return data.Body; + return data.Body.toString('utf-8'); } catch (e) { console.error(e); throw e; From 33274e15f860e26a360576b29e91e0045e92c6b5 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 8 Dec 2023 16:10:33 -0600 Subject: [PATCH 12/19] Modify output format of getEmailAsset to fit nodemailer requirements --- backend/src/tasks/s3-client.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index ae32b2ced..f376f539a 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -107,7 +107,9 @@ class S3Client { if (err) throw err; }) .promise(); - return data.Body.toString('utf-8'); + if ( data && data.Body ) { + return data.Body.toString('utf-8'); + } } catch (e) { console.error(e); throw e; From e3e5e834f2aaafda403bab67ebe7f991b9844098 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 8 Dec 2023 16:13:05 -0600 Subject: [PATCH 13/19] Modify output format of getEmailAsset to fit nodemailer requirements --- backend/src/tasks/s3-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/tasks/s3-client.ts b/backend/src/tasks/s3-client.ts index f376f539a..923713c89 100644 --- a/backend/src/tasks/s3-client.ts +++ b/backend/src/tasks/s3-client.ts @@ -107,7 +107,7 @@ class S3Client { if (err) throw err; }) .promise(); - if ( data && data.Body ) { + if (data && data.Body) { return data.Body.toString('utf-8'); } } catch (e) { From 1549b67f68f50c647826b8de24d88efe4df8d3eb Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 11 Dec 2023 10:48:47 -0600 Subject: [PATCH 14/19] Add await for s3 asset retrieval --- backend/src/api/helpers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 31bdee052..4a5c15526 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -113,7 +113,7 @@ export const sendUserNotificationEmail = async ( }); const client = new S3Client(); - const html = client.getEmailAsset(template_file); + const html = await client.getEmailAsset(template_file); const template = handlebars.compile(html); const data = { first_name: p_firstName, @@ -183,7 +183,7 @@ export const sendRegionalAdminNotificationEmail = async ( const fs = require('fs').promises; const client = new S3Client(); const html = await fs.readFile( - client.getEmailAsset('crossfeed_regional_admin_notification.html'), + await client.getEmailAsset('crossfeed_regional_admin_notification.html'), 'utf8' ); const template = handlebars.compile(html); From a87c8ddc5201b977da7421a990fe70575dc41854 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Mon, 11 Dec 2023 15:01:12 -0600 Subject: [PATCH 15/19] Remove fs.readFile when grabbing from S3 bucket. --- backend/src/api/helpers.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 4a5c15526..8ff178e02 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -180,12 +180,9 @@ export const sendRegionalAdminNotificationEmail = async ( SES: new SES({ region: 'us-east-1' }) }); - const fs = require('fs').promises; const client = new S3Client(); - const html = await fs.readFile( - await client.getEmailAsset('crossfeed_regional_admin_notification.html'), - 'utf8' - ); + const html = await client.getEmailAsset('crossfeed_regional_admin_notification.html'); + const template = handlebars.compile(html); const data = { first_name: p_firstName, From 0717b6ac2c0d9569bb89350fbff54d5086f717a3 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Mon, 11 Dec 2023 15:21:37 -0600 Subject: [PATCH 16/19] Resolving linter issues. --- backend/src/api/helpers.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 8ff178e02..c9219cc38 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -182,7 +182,6 @@ export const sendRegionalAdminNotificationEmail = async ( const client = new S3Client(); const html = await client.getEmailAsset('crossfeed_regional_admin_notification.html'); - const template = handlebars.compile(html); const data = { first_name: p_firstName, From 558b3498e7105ec7b25657fe142b8b5760458fd6 Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 11 Dec 2023 15:30:05 -0600 Subject: [PATCH 17/19] Fix linter error in helpers.ts --- backend/src/api/helpers.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index c9219cc38..c8cf3c0f1 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -181,7 +181,9 @@ export const sendRegionalAdminNotificationEmail = async ( }); const client = new S3Client(); - const html = await client.getEmailAsset('crossfeed_regional_admin_notification.html'); + const html = await client.getEmailAsset( + 'crossfeed_regional_admin_notification.html' + ); const template = handlebars.compile(html); const data = { first_name: p_firstName, From 6b5efaff218634fe29ca8e92b51d7ca6d76483ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:45:05 -0600 Subject: [PATCH 18/19] Bump axios and aws-amplify in /frontend; fixes failing vulnerabilities check (#2375) * Bump axios and aws-amplify in /frontend Bumps [axios](https://github.com/axios/axios) to 1.6.0 and updates ancestor dependency [aws-amplify](https://github.com/aws-amplify/amplify-js). These dependencies need to be updated together. Updates `axios` from 0.26.0 to 1.6.0 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.26.0...v1.6.0) Updates `aws-amplify` from 5.3.10 to 5.3.12 - [Release notes](https://github.com/aws-amplify/amplify-js/releases) - [Changelog](https://github.com/aws-amplify/amplify-js/blob/main/docs/changelog.md) - [Commits](https://github.com/aws-amplify/amplify-js/compare/aws-amplify@5.3.10...aws-amplify@5.3.12) --- updated-dependencies: - dependency-name: axios dependency-type: indirect - dependency-name: aws-amplify dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Add jest moduleNameMapper to package.json, to address lack of import statement compatibility in axios 1.6.2 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matthew <106278637+Matthew-Grayson@users.noreply.github.com> Co-authored-by: Grayson, Matthew --- frontend/package-lock.json | 1043 ++++++++++++++++-------------------- frontend/package.json | 7 +- 2 files changed, 468 insertions(+), 582 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6949c5ba0..952ca70b8 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -24,7 +24,7 @@ "@nivo/pie": "^0.80.0", "@trussworks/react-uswds": "^5.1.1", "autoprefixer": "^10.4.13", - "aws-amplify": "^5.0.4", + "aws-amplify": "^5.3.12", "classnames": "^2.3.2", "d3-scale": "^4.0.2", "date-fns": "^2.29.3", @@ -141,12 +141,12 @@ } }, "node_modules/@aws-amplify/analytics": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-6.5.4.tgz", - "integrity": "sha512-MwHRGshhgw7BOZW+amdaNdCjJP8cp2GWL4V0uFgdWdkbe6p7ONN4cfoAnWmv9EIPpg412mWTk1iWZck2dT4q5A==", + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-6.5.6.tgz", + "integrity": "sha512-RsvsH5BY3geRg0eU62ZX6jPcIcrEqW2VOMrRAj2wwm1csoa7J5ww72pjuFRCsyxL/MelMaIOJjqozTKaNZhK1Q==", "dependencies": { - "@aws-amplify/cache": "5.1.10", - "@aws-amplify/core": "5.8.4", + "@aws-amplify/cache": "5.1.12", + "@aws-amplify/core": "5.8.6", "@aws-sdk/client-firehose": "3.6.1", "@aws-sdk/client-kinesis": "3.6.1", "@aws-sdk/client-personalize-events": "3.6.1", @@ -162,25 +162,25 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/api": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/api/-/api-5.4.4.tgz", - "integrity": "sha512-Q7191OOkfT9SvJff85xQUscG3CkzEEzcWCShcNrnovocy46IgxIlsviMuHh9smpasv+2RqPovYE4LnVIC1h79A==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/api/-/api-5.4.6.tgz", + "integrity": "sha512-Wn9kQJ/uf0CYW1zoBueaCsoF5v3wJZpMxkpdEBYwD10GqhSt5baoghq2oW72JyDrGS8Hfq71o4a2vpXiIL/8hg==", "dependencies": { - "@aws-amplify/api-graphql": "3.4.10", - "@aws-amplify/api-rest": "3.5.4", + "@aws-amplify/api-graphql": "3.4.12", + "@aws-amplify/api-rest": "3.5.6", "tslib": "^1.8.0" } }, "node_modules/@aws-amplify/api-graphql": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-3.4.10.tgz", - "integrity": "sha512-v4D6x+632N776pnAiIO312J91OFtt5wSHXk30GBQ99s0c4HDmFOyYpZFTQaAmrp24XtjyPLb3RHoEAc15vIwsA==", - "dependencies": { - "@aws-amplify/api-rest": "3.5.4", - "@aws-amplify/auth": "5.6.4", - "@aws-amplify/cache": "5.1.10", - "@aws-amplify/core": "5.8.4", - "@aws-amplify/pubsub": "5.5.4", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-3.4.12.tgz", + "integrity": "sha512-lEKXl0hM7nyulCRUQNIQ6I0+DCD16hR+V4XUdMmVgnlVnPVows5H17wM/Hu24lX84G1jFi/i14umH8+qvpk1fQ==", + "dependencies": { + "@aws-amplify/api-rest": "3.5.6", + "@aws-amplify/auth": "5.6.6", + "@aws-amplify/cache": "5.1.12", + "@aws-amplify/core": "5.8.6", + "@aws-amplify/pubsub": "5.5.6", "graphql": "15.8.0", "tslib": "^1.8.0", "uuid": "^3.2.1", @@ -193,12 +193,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/api-rest": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-3.5.4.tgz", - "integrity": "sha512-JY0j2y8bqqIgRxoKQcKV8BDIRh4bYD1WKXYEBzrZly3rPaXXmQfe1UJF6QRFv7m9tqelAo1r/wvWuINM7iaEnA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-3.5.6.tgz", + "integrity": "sha512-WAv7q05G2ypE59ebVMvIih5aTIi+jOTu+ApkEI/E5mNM2Lj33TnaOrM5Vt2oja0aHT37AQHvIF1gYYf6gF1iRQ==", "dependencies": { - "@aws-amplify/core": "5.8.4", - "axios": "0.26.0", + "@aws-amplify/core": "5.8.6", + "axios": "1.6.0", "tslib": "^1.8.0", "url": "0.11.0" } @@ -214,12 +214,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/auth": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/auth/-/auth-5.6.4.tgz", - "integrity": "sha512-6b+ojQpwkrzWnyTVTsYtpPPSUo/B+F9bj4oS8bo1DXf40/3XnCeEZQehME2a7fDolVU24E1+pWEzVRqsadLSeQ==", + "version": "5.6.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth/-/auth-5.6.6.tgz", + "integrity": "sha512-v4qiOTW7dTObEoHPjQMl0diL+E7KKk6HrKd1O+roE9f93U1ZDbcIkeY5Yih+I/U8VbS+hQ5D9oHyFbeLZWsDcg==", "dependencies": { - "@aws-amplify/core": "5.8.4", - "amazon-cognito-identity-js": "6.3.5", + "@aws-amplify/core": "5.8.6", + "amazon-cognito-identity-js": "6.3.7", "buffer": "4.9.2", "tslib": "^1.8.0", "url": "0.11.0" @@ -231,11 +231,11 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/cache": { - "version": "5.1.10", - "resolved": "https://registry.npmjs.org/@aws-amplify/cache/-/cache-5.1.10.tgz", - "integrity": "sha512-4svwr6CEhOwBf2PlUcE6Tl6HI5qL1gJa7X4vhOyYMBfsDaQzPbP4QxnvGMWM8O9OCdAIBCIWCdJPCMvDSYpOwQ==", + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/@aws-amplify/cache/-/cache-5.1.12.tgz", + "integrity": "sha512-bOhkqABOUehPCWy5x5XHMHfJtuQ7tBOGD7gAhDo6leY1O7NIHjDBto+U6FZmCE2bS8u/QcgJ94PRZ1E5/3rsng==", "dependencies": { - "@aws-amplify/core": "5.8.4", + "@aws-amplify/core": "5.8.6", "tslib": "^1.8.0" } }, @@ -245,9 +245,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/core": { - "version": "5.8.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-5.8.4.tgz", - "integrity": "sha512-xFLciGRhRGSzLNqQoS/rFA2PAhggVvh9AFljlAuPyKykmFhxhGKx/k8a/q3GBcF8HiBAlJ6jpNz5X8RONr9Nkw==", + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-5.8.6.tgz", + "integrity": "sha512-fDu4aduCagJb8uwQd+S0FBhuYgCgnpwfRsmO0/t01h68JR+KS3Cny0pQa7Qzk6cW/HY3rtPLELOqbdF6doA6oA==", "dependencies": { "@aws-crypto/sha256-js": "1.2.2", "@aws-sdk/client-cloudwatch-logs": "3.6.1", @@ -289,15 +289,15 @@ } }, "node_modules/@aws-amplify/datastore": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-4.7.4.tgz", - "integrity": "sha512-OhKASdljD94VQ1/15IanIJH9o1UexgsvjpJ/ybQKAL6xng4E9Ht0DK2D0ApU/5zNY+gN9mUKlQ3JZOdjBHSxnw==", - "dependencies": { - "@aws-amplify/api": "5.4.4", - "@aws-amplify/auth": "5.6.4", - "@aws-amplify/core": "5.8.4", - "@aws-amplify/pubsub": "5.5.4", - "amazon-cognito-identity-js": "6.3.5", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-4.7.6.tgz", + "integrity": "sha512-vuozosYTmWUgYzR9tqBaP1CyusPQG9/caDeqQkHCDogqJRHIkWG9INon/EUZQu4bR7W5/V8y1Dv2bLqUJSUWZA==", + "dependencies": { + "@aws-amplify/api": "5.4.6", + "@aws-amplify/auth": "5.6.6", + "@aws-amplify/core": "5.8.6", + "@aws-amplify/pubsub": "5.5.6", + "amazon-cognito-identity-js": "6.3.7", "buffer": "4.9.2", "idb": "5.0.6", "immer": "9.0.6", @@ -308,11 +308,11 @@ } }, "node_modules/@aws-amplify/geo": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/geo/-/geo-2.3.4.tgz", - "integrity": "sha512-EW5KQA+YFK1k00vG13kF+ADiEw+eNgvrxsn4N2dOY1VcpK9cnNXSX1ZOTXGnfdtoI+B7D6LY5veigpQRvFIqxQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/geo/-/geo-2.3.6.tgz", + "integrity": "sha512-Zs6bnMCfCA7Sof++tzM6kUYW5pnohmqUlchivTzSIH2n0spQypxRbgkFsMIuCBNBctga0p04VCSlE4cjG1FHSQ==", "dependencies": { - "@aws-amplify/core": "5.8.4", + "@aws-amplify/core": "5.8.6", "@aws-sdk/client-location": "3.186.3", "@turf/boolean-clockwise": "6.5.0", "camelcase-keys": "6.2.2", @@ -325,11 +325,11 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/interactions": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@aws-amplify/interactions/-/interactions-5.2.10.tgz", - "integrity": "sha512-T/eM2155TQXk+zviCp1ytWv5PRcZ2apXapTISbGQ2XONPv8PH75RdOWG8FO6ZGfj6vwj8IKXa1ZY+LiXDlemgQ==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/@aws-amplify/interactions/-/interactions-5.2.12.tgz", + "integrity": "sha512-T81ioWmxKpjFbgH2nUW/Fm5Saysjt2IGFrY2vfrYJ5ROaNxu52tMMP801tegCtV+pSRFsXBFV+Kex8o/dP7EqA==", "dependencies": { - "@aws-amplify/core": "5.8.4", + "@aws-amplify/core": "5.8.6", "@aws-sdk/client-lex-runtime-service": "3.186.3", "@aws-sdk/client-lex-runtime-v2": "3.186.3", "base-64": "1.0.0", @@ -344,24 +344,24 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/notifications": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-1.6.4.tgz", - "integrity": "sha512-W87rF235FeGmJ539vDOAC2lO9CElB59VWlyw2ixPVLRww6wwcYj3Q+Ub4LxnQdj2C3WDkDF0JkyHXcXr22GOqQ==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-1.6.6.tgz", + "integrity": "sha512-GLTJZ88xafzE3A3s7KFJtteYv05qSc0SiWgS3DWclsehqk40g9/M4G7sQ8BJq+hFMfVh1D1utNOz1LNc7Qve4g==", "dependencies": { - "@aws-amplify/cache": "5.1.10", - "@aws-amplify/core": "5.8.4", - "@aws-amplify/rtn-push-notification": "1.1.6", + "@aws-amplify/cache": "5.1.12", + "@aws-amplify/core": "5.8.6", + "@aws-amplify/rtn-push-notification": "1.1.8", "lodash": "^4.17.21", "uuid": "^3.2.1" } }, "node_modules/@aws-amplify/predictions": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/predictions/-/predictions-5.5.4.tgz", - "integrity": "sha512-71J5QCa6lQmy62WRoXqIAsOt79LOarz/gl+ZIsfkzCY8BzHFigIirGmwJobNOZ108ghoYTmPsXvcYEvhnZwGFw==", + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/predictions/-/predictions-5.5.6.tgz", + "integrity": "sha512-QF1Qc6mHEMKHIHDEOik1L/5stUDoi5C3g/bNN0uq7kyWPLfvQRbQU73KmrAdqcKeW+sKBwyhHejv0rFCSaMMGw==", "dependencies": { - "@aws-amplify/core": "5.8.4", - "@aws-amplify/storage": "5.9.4", + "@aws-amplify/core": "5.8.6", + "@aws-amplify/storage": "5.9.6", "@aws-sdk/client-comprehend": "3.6.1", "@aws-sdk/client-polly": "3.6.1", "@aws-sdk/client-rekognition": "3.6.1", @@ -380,13 +380,13 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/pubsub": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/pubsub/-/pubsub-5.5.4.tgz", - "integrity": "sha512-C8ommVQM7R/rj7ZHAr/c2FK9DFgejH54zwK1cm3ECI4DRrYGy51eqAsJJsvAEJosbyKpXZw1prjI9Qmj1cpFzw==", + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/pubsub/-/pubsub-5.5.6.tgz", + "integrity": "sha512-IxM2hjGwLQm2ICFKyr2jdpLVje5Z/m0wsLD0laDfF441NkGwSP1AEpds1I5ozAJ18ETsnxRS/6731H+nSdLVgQ==", "dependencies": { - "@aws-amplify/auth": "5.6.4", - "@aws-amplify/cache": "5.1.10", - "@aws-amplify/core": "5.8.4", + "@aws-amplify/auth": "5.6.6", + "@aws-amplify/cache": "5.1.12", + "@aws-amplify/core": "5.8.6", "buffer": "4.9.2", "graphql": "15.8.0", "tslib": "^1.8.0", @@ -401,16 +401,16 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-amplify/rtn-push-notification": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@aws-amplify/rtn-push-notification/-/rtn-push-notification-1.1.6.tgz", - "integrity": "sha512-TKrnmERaVGAZqsQ/eiSB1sF7IGCmkpNzYqzwGJtnWBERhLs+a/391sVztNZ4A34x/HlYID3o1Q868051beJ85w==" + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@aws-amplify/rtn-push-notification/-/rtn-push-notification-1.1.8.tgz", + "integrity": "sha512-O0TnT0GVSMMLHXQ7BUh04RpNeXPQdSsw5xLtK+GyXCx3MlAZ6vfOPKKdomzzXfzxC2FUSyV1G4LlUVJAHmFP2A==" }, "node_modules/@aws-amplify/storage": { - "version": "5.9.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/storage/-/storage-5.9.4.tgz", - "integrity": "sha512-W9ST5HekL9UXVRi1vByh3sWt83qe7Sft+BeQ0zbXBz8GAroDb8NhPlgnrqQz/6D3h344mzkNLZmjOrTmLp/+1g==", + "version": "5.9.6", + "resolved": "https://registry.npmjs.org/@aws-amplify/storage/-/storage-5.9.6.tgz", + "integrity": "sha512-PiSwsa3hRp8kfZ2EAK7Bd8mm0plJYtuQ39KgOQ1dalWcN4RCzfgxzVTPabTxHlq89lJWTkC03SNV/Yn2Zxj5JA==", "dependencies": { - "@aws-amplify/core": "5.8.4", + "@aws-amplify/core": "5.8.6", "@aws-sdk/md5-js": "3.6.1", "@aws-sdk/types": "3.6.1", "buffer": "4.9.2", @@ -538,11 +538,11 @@ } }, "node_modules/@aws-crypto/crc32/node_modules/@aws-sdk/types": { - "version": "3.398.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.398.0.tgz", - "integrity": "sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==", + "version": "3.449.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.449.0.tgz", + "integrity": "sha512-tSQPAvknheB6XnRoc+AuEgdzn2KhY447hddeVW0Mbg8Yl9es4u4TKVINloKDEyUrCKhB/1f93Hb5uJkPe/e/Ww==", "dependencies": { - "@smithy/types": "^2.2.2", + "@smithy/types": "^2.4.0", "tslib": "^2.5.0" }, "engines": { @@ -5648,21 +5648,21 @@ } }, "node_modules/@babel/core": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz", - "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.11", - "@babel/parser": "^7.22.11", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.11", - "@babel/types": "^7.22.11", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", @@ -5676,6 +5676,11 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, "node_modules/@babel/eslint-parser": { "version": "7.22.11", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz", @@ -5702,11 +5707,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -5738,12 +5743,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", - "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -5753,14 +5758,14 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz", - "integrity": "sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -5837,37 +5842,37 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -5977,9 +5982,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "engines": { "node": ">=6.9.0" } @@ -5998,13 +6003,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz", - "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.11", - "@babel/types": "^7.22.11" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -6024,9 +6029,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -6068,6 +6073,7 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -6116,13 +6122,13 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.22.5.tgz", - "integrity": "sha512-UCe1X/hplyv6A5g2WnQ90tnHRvYL29dabCWww92lO7VdfMVTVReBTRrhiMrKQejHD9oVkdnRdwYuzUZkBVQisg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz", + "integrity": "sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-default-from": "^7.22.5" + "@babel/plugin-syntax-export-default-from": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -6165,6 +6171,7 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "peer": true, "dependencies": { "@babel/compat-data": "^7.20.5", @@ -6184,6 +6191,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", @@ -6318,9 +6326,9 @@ } }, "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.22.5.tgz", - "integrity": "sha512-ODAqWWXB/yReh/jVQDag/3/tl6lgBueQkk/TcfW/59Oykm4c8a55XloX0CTk2k2VJiFWMgHby9xNX29IbCv9dQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz", + "integrity": "sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -6344,9 +6352,9 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz", - "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", + "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -6408,9 +6416,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -6516,9 +6524,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -6776,12 +6784,12 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz", - "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", + "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-flow": "^7.22.5" + "@babel/plugin-syntax-flow": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -6894,11 +6902,11 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz", - "integrity": "sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -7049,9 +7057,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz", - "integrity": "sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", + "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -7185,9 +7193,9 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", - "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -7200,9 +7208,9 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", - "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -7349,14 +7357,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.11.tgz", - "integrity": "sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz", + "integrity": "sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/plugin-syntax-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -7529,14 +7537,14 @@ } }, "node_modules/@babel/preset-flow": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.22.5.tgz", - "integrity": "sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz", + "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-flow-strip-types": "^7.22.5" + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-flow-strip-types": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -7578,15 +7586,15 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz", - "integrity": "sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.11", - "@babel/plugin-transform-typescript": "^7.22.11" + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -7596,9 +7604,9 @@ } }, "node_modules/@babel/register": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.22.5.tgz", - "integrity": "sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.22.15.tgz", + "integrity": "sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==", "peer": true, "dependencies": { "clone-deep": "^4.0.1", @@ -7685,18 +7693,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/generator": "^7.23.3", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -7705,9 +7713,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20", @@ -8691,9 +8699,9 @@ } }, "node_modules/@jest/create-cache-key-function": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.6.3.tgz", - "integrity": "sha512-kzSK9XAxtD1kRPJKxsmD0YKw2fyXveP+5ikeQkCYCHeacWW1EGYMTgjDIM/Di4Uhttx7lnHwrNpz2xn+0rTp8g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", "peer": true, "dependencies": { "@jest/types": "^29.6.3" @@ -10380,20 +10388,20 @@ } }, "node_modules/@react-native-community/cli": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.6.tgz", - "integrity": "sha512-bdwOIYTBVQ9VK34dsf6t3u6vOUU5lfdhKaAxiAVArjsr7Je88Bgs4sAbsOYsNK3tkE8G77U6wLpekknXcanlww==", - "peer": true, - "dependencies": { - "@react-native-community/cli-clean": "11.3.6", - "@react-native-community/cli-config": "11.3.6", - "@react-native-community/cli-debugger-ui": "11.3.6", - "@react-native-community/cli-doctor": "11.3.6", - "@react-native-community/cli-hermes": "11.3.6", - "@react-native-community/cli-plugin-metro": "11.3.6", - "@react-native-community/cli-server-api": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", - "@react-native-community/cli-types": "11.3.6", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.7.tgz", + "integrity": "sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w==", + "peer": true, + "dependencies": { + "@react-native-community/cli-clean": "11.3.7", + "@react-native-community/cli-config": "11.3.7", + "@react-native-community/cli-debugger-ui": "11.3.7", + "@react-native-community/cli-doctor": "11.3.7", + "@react-native-community/cli-hermes": "11.3.7", + "@react-native-community/cli-plugin-metro": "11.3.7", + "@react-native-community/cli-server-api": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", + "@react-native-community/cli-types": "11.3.7", "chalk": "^4.1.2", "commander": "^9.4.1", "execa": "^5.0.0", @@ -10411,12 +10419,12 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.6.tgz", - "integrity": "sha512-jOOaeG5ebSXTHweq1NznVJVAFKtTFWL4lWgUXl845bCGX7t1lL8xQNWHKwT8Oh1pGR2CI3cKmRjY4hBg+pEI9g==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz", + "integrity": "sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "prompts": "^2.4.0" @@ -10493,12 +10501,12 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.6.tgz", - "integrity": "sha512-edy7fwllSFLan/6BG6/rznOBCLPrjmJAE10FzkEqNLHowi0bckiAPg1+1jlgQ2qqAxV5kuk+c9eajVfQvPLYDA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.7.tgz", + "integrity": "sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -10658,24 +10666,24 @@ } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.6.tgz", - "integrity": "sha512-jhMOSN/iOlid9jn/A2/uf7HbC3u7+lGktpeGSLnHNw21iahFBzcpuO71ekEdlmTZ4zC/WyxBXw9j2ka33T358w==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz", + "integrity": "sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ==", "peer": true, "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.6.tgz", - "integrity": "sha512-UT/Tt6omVPi1j6JEX+CObc85eVFghSZwy4GR9JFMsO7gNg2Tvcu1RGWlUkrbmWMAMHw127LUu6TGK66Ugu1NLA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz", + "integrity": "sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg==", "peer": true, "dependencies": { - "@react-native-community/cli-config": "11.3.6", - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-platform-ios": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-config": "11.3.7", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-platform-ios": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -10784,13 +10792,13 @@ } }, "node_modules/@react-native-community/cli-hermes": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.6.tgz", - "integrity": "sha512-O55YAYGZ3XynpUdePPVvNuUPGPY0IJdctLAOHme73OvS80gNwfntHDXfmY70TGHWIfkK2zBhA0B+2v8s5aTyTA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz", + "integrity": "sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw==", "peer": true, "dependencies": { - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -10867,12 +10875,12 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.6.tgz", - "integrity": "sha512-ZARrpLv5tn3rmhZc//IuDM1LSAdYnjUmjrp58RynlvjLDI4ZEjBAGCQmgysRgXAsK7ekMrfkZgemUczfn9td2A==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz", + "integrity": "sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "glob": "^7.1.3", @@ -10950,12 +10958,12 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.6.tgz", - "integrity": "sha512-tZ9VbXWiRW+F+fbZzpLMZlj93g3Q96HpuMsS6DRhrTiG+vMQ3o6oPWSEEmMGOvJSYU7+y68Dc9ms2liC7VD6cw==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz", + "integrity": "sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw==", "peer": true, "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -11034,21 +11042,21 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.6.tgz", - "integrity": "sha512-D97racrPX3069ibyabJNKw9aJpVcaZrkYiEzsEnx50uauQtPDoQ1ELb/5c6CtMhAEGKoZ0B5MS23BbsSZcLs2g==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz", + "integrity": "sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ==", "peer": true, "dependencies": { - "@react-native-community/cli-server-api": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-server-api": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", - "metro": "0.76.7", - "metro-config": "0.76.7", - "metro-core": "0.76.7", - "metro-react-native-babel-transformer": "0.76.7", - "metro-resolver": "0.76.7", - "metro-runtime": "0.76.7", + "metro": "0.76.8", + "metro-config": "0.76.8", + "metro-core": "0.76.8", + "metro-react-native-babel-transformer": "0.76.8", + "metro-resolver": "0.76.8", + "metro-runtime": "0.76.8", "readline": "^1.3.0" } }, @@ -11110,19 +11118,6 @@ "node": ">=8" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", - "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11136,13 +11131,13 @@ } }, "node_modules/@react-native-community/cli-server-api": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.6.tgz", - "integrity": "sha512-8GUKodPnURGtJ9JKg8yOHIRtWepPciI3ssXVw5jik7+dZ43yN8P5BqCoDaq8e1H1yRer27iiOfT7XVnwk8Dueg==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz", + "integrity": "sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg==", "peer": true, "dependencies": { - "@react-native-community/cli-debugger-ui": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-debugger-ui": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -11169,9 +11164,9 @@ } }, "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "version": "15.0.18", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.18.tgz", + "integrity": "sha512-DDi2KmvAnNsT/EvU8jp1UR7pOJojBtJ3GLZ/uw1MUq4VbbESppPWoHUY4h0OB4BbEbGJiyEsmUcuZDZtoR+ZwQ==", "peer": true, "dependencies": { "@types/yargs-parser": "*" @@ -11290,9 +11285,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.6.tgz", - "integrity": "sha512-JpmUTcDwAGiTzLsfMlIAYpCMSJ9w2Qlf7PU7mZIRyEu61UzEawyw83DkqfbzDPBuRwRnaeN44JX2CP/yTO3ThQ==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz", + "integrity": "sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA==", "peer": true, "dependencies": { "appdirsjs": "^1.2.4", @@ -11377,9 +11372,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.6.tgz", - "integrity": "sha512-6DxjrMKx5x68N/tCJYVYRKAtlRHbtUVBZrnAvkxbRWFD9v4vhNgsPM0RQm8i2vRugeksnao5mbnRGpS6c0awCw==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.7.tgz", + "integrity": "sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g==", "peer": true, "dependencies": { "joi": "^17.2.1" @@ -11514,9 +11509,9 @@ "peer": true }, "node_modules/@react-native/codegen": { - "version": "0.72.6", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.72.6.tgz", - "integrity": "sha512-idTVI1es/oopN0jJT/0jB6nKdvTUKE3757zA5+NPXZTeB46CIRbmmos4XBiAec8ufu9/DigLPbHTYAaMNZJ6Ig==", + "version": "0.72.7", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.72.7.tgz", + "integrity": "sha512-O7xNcGeXGbY+VoqBGNlZ3O05gxfATlwE1Q1qQf5E38dK+tXn5BY4u0jaQ9DPjfE8pBba8g/BYI1N44lynidMtg==", "peer": true, "dependencies": { "@babel/parser": "^7.20.0", @@ -11750,9 +11745,9 @@ } }, "node_modules/@smithy/types": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.2.2.tgz", - "integrity": "sha512-4PS0y1VxDnELGHGgBWlDksB2LJK8TG8lcvlWxIsgR+8vROI7Ms8h1P4FQUx+ftAX2QZv5g1CJCdhdRmQKyonyw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.4.0.tgz", + "integrity": "sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==", "dependencies": { "tslib": "^2.5.0" }, @@ -13464,9 +13459,9 @@ } }, "node_modules/amazon-cognito-identity-js": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.5.tgz", - "integrity": "sha512-bRAiw6uQuttufRD0TFcrWvA5hxAgPIwNzM0crmWniPdkmCxRoa68yxRaViZUbwAcGu9YPLCLqM87b1060BRddw==", + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.7.tgz", + "integrity": "sha512-tSjnM7KyAeOZ7UMah+oOZ6cW4Gf64FFcc7BE2l7MTcp7ekAPrXaCbpcW2xEpH1EiDS4cPcAouHzmCuc2tr72vQ==", "dependencies": { "@aws-crypto/sha256-js": "1.2.2", "buffer": "4.9.2", @@ -13774,15 +13769,16 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "node_modules/assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "peer": true, "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" } }, "node_modules/ast-types": { @@ -13902,22 +13898,22 @@ } }, "node_modules/aws-amplify": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-5.3.10.tgz", - "integrity": "sha512-vwm97np/ni37WIWuE9xalj92vctgzIJRYX+FXcP9rAQgF4F2eEAjYNIkHGErpYqodmbeYF5gN1f/diKnhdGaRw==", - "dependencies": { - "@aws-amplify/analytics": "6.5.4", - "@aws-amplify/api": "5.4.4", - "@aws-amplify/auth": "5.6.4", - "@aws-amplify/cache": "5.1.10", - "@aws-amplify/core": "5.8.4", - "@aws-amplify/datastore": "4.7.4", - "@aws-amplify/geo": "2.3.4", - "@aws-amplify/interactions": "5.2.10", - "@aws-amplify/notifications": "1.6.4", - "@aws-amplify/predictions": "5.5.4", - "@aws-amplify/pubsub": "5.5.4", - "@aws-amplify/storage": "5.9.4", + "version": "5.3.12", + "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-5.3.12.tgz", + "integrity": "sha512-vJAgUvtgYBKuKmtz0zhKGnb7yXH1rLn/NE/GV2ti3ysKTFiNp1hhoE8ftz0gNXN9JFtk5AfKYdMHBCVnw8rLGQ==", + "dependencies": { + "@aws-amplify/analytics": "6.5.6", + "@aws-amplify/api": "5.4.6", + "@aws-amplify/auth": "5.6.6", + "@aws-amplify/cache": "5.1.12", + "@aws-amplify/core": "5.8.6", + "@aws-amplify/datastore": "4.7.6", + "@aws-amplify/geo": "2.3.6", + "@aws-amplify/interactions": "5.2.12", + "@aws-amplify/notifications": "1.6.6", + "@aws-amplify/predictions": "5.5.6", + "@aws-amplify/pubsub": "5.5.6", + "@aws-amplify/storage": "5.9.6", "tslib": "^2.0.0" } }, @@ -13930,11 +13926,26 @@ } }, "node_modules/axios": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz", - "integrity": "sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", + "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", "dependencies": { - "follow-redirects": "^1.14.8" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, "node_modules/axobject-query": { @@ -15077,9 +15088,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", "peer": true, "engines": { "node": ">=6" @@ -16028,9 +16039,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", - "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==", + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "peer": true }, "node_modules/debug": { @@ -16582,9 +16593,9 @@ } }, "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "peer": true, "bin": { "envinfo": "dist/cli.js" @@ -16761,12 +16772,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", - "peer": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -17853,17 +17858,17 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fast-xml-parser": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", - "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", + "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" } ], "dependencies": { @@ -22804,9 +22809,9 @@ } }, "node_modules/joi": { - "version": "17.10.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.0.tgz", - "integrity": "sha512-hrazgRSlhzacZ69LdcKfhi3Vu13z2yFfoAzmEov3yFIJlatTdVGUW6vle1zjH8qkzdCn/qGw8rapjqsObbYXAg==", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", "peer": true, "dependencies": { "@hapi/hoek": "^9.0.0", @@ -22850,20 +22855,21 @@ "peer": true }, "node_modules/jscodeshift": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.0.tgz", - "integrity": "sha512-t337Wx7Vy1ffhas7E1KZUHaR9YPdeCfxPvxz9k6DKwYW88pcs1piR1eR9d+7GQZGSQIZd6a+cfIM3XpMe9rFKQ==", - "peer": true, - "dependencies": { - "@babel/core": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/preset-flow": "^7.13.13", - "@babel/preset-typescript": "^7.13.0", - "@babel/register": "^7.13.16", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.1.tgz", + "integrity": "sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==", + "peer": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@babel/register": "^7.22.15", "babel-core": "^7.0.0-bridge.0", "chalk": "^4.1.2", "flow-parser": "0.*", @@ -22871,7 +22877,7 @@ "micromatch": "^4.0.4", "neo-async": "^2.5.0", "node-dir": "^0.1.17", - "recast": "^0.23.1", + "recast": "^0.23.3", "temp": "^0.8.4", "write-file-atomic": "^2.3.0" }, @@ -23834,9 +23840,9 @@ } }, "node_modules/metro": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", - "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.8.tgz", + "integrity": "sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg==", "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", @@ -23861,22 +23867,22 @@ "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.7", - "metro-cache": "0.76.7", - "metro-cache-key": "0.76.7", - "metro-config": "0.76.7", - "metro-core": "0.76.7", - "metro-file-map": "0.76.7", - "metro-inspector-proxy": "0.76.7", - "metro-minify-terser": "0.76.7", - "metro-minify-uglify": "0.76.7", - "metro-react-native-babel-preset": "0.76.7", - "metro-resolver": "0.76.7", - "metro-runtime": "0.76.7", - "metro-source-map": "0.76.7", - "metro-symbolicate": "0.76.7", - "metro-transform-plugins": "0.76.7", - "metro-transform-worker": "0.76.7", + "metro-babel-transformer": "0.76.8", + "metro-cache": "0.76.8", + "metro-cache-key": "0.76.8", + "metro-config": "0.76.8", + "metro-core": "0.76.8", + "metro-file-map": "0.76.8", + "metro-inspector-proxy": "0.76.8", + "metro-minify-terser": "0.76.8", + "metro-minify-uglify": "0.76.8", + "metro-react-native-babel-preset": "0.76.8", + "metro-resolver": "0.76.8", + "metro-runtime": "0.76.8", + "metro-source-map": "0.76.8", + "metro-symbolicate": "0.76.8", + "metro-transform-plugins": "0.76.8", + "metro-transform-worker": "0.76.8", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -23896,9 +23902,9 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", - "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz", + "integrity": "sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", @@ -23910,12 +23916,12 @@ } }, "node_modules/metro-cache": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", - "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.8.tgz", + "integrity": "sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ==", "peer": true, "dependencies": { - "metro-core": "0.76.7", + "metro-core": "0.76.8", "rimraf": "^3.0.2" }, "engines": { @@ -23923,27 +23929,27 @@ } }, "node_modules/metro-cache-key": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", - "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.8.tgz", + "integrity": "sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==", "peer": true, "engines": { "node": ">=16" } }, "node_modules/metro-config": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", - "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.8.tgz", + "integrity": "sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA==", "peer": true, "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.7", - "metro-cache": "0.76.7", - "metro-core": "0.76.7", - "metro-runtime": "0.76.7" + "metro": "0.76.8", + "metro-cache": "0.76.8", + "metro-core": "0.76.8", + "metro-runtime": "0.76.8" }, "engines": { "node": ">=16" @@ -23999,19 +24005,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/metro-config/node_modules/metro-runtime": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", - "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/metro-config/node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -24035,22 +24028,22 @@ } }, "node_modules/metro-core": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", - "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.8.tgz", + "integrity": "sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA==", "peer": true, "dependencies": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.7" + "metro-resolver": "0.76.8" }, "engines": { "node": ">=16" } }, "node_modules/metro-file-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", - "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.8.tgz", + "integrity": "sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==", "peer": true, "dependencies": { "anymatch": "^3.0.3", @@ -24090,9 +24083,9 @@ } }, "node_modules/metro-file-map/node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "16.0.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.8.tgz", + "integrity": "sha512-1GwLEkmFafeb/HbE6pC7tFlgYSQ4Iqh2qlWCq8xN+Qfaiaxr2PcLfuhfRFRYqI6XJyeFoLYyKnhFbNsst9FMtQ==", "peer": true, "dependencies": { "@types/yargs-parser": "*" @@ -24239,9 +24232,9 @@ } }, "node_modules/metro-inspector-proxy": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", - "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz", + "integrity": "sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw==", "peer": true, "dependencies": { "connect": "^3.6.5", @@ -24294,9 +24287,9 @@ } }, "node_modules/metro-minify-terser": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz", - "integrity": "sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz", + "integrity": "sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==", "peer": true, "dependencies": { "terser": "^5.15.0" @@ -24306,9 +24299,9 @@ } }, "node_modules/metro-minify-uglify": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", - "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz", + "integrity": "sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==", "peer": true, "dependencies": { "uglify-es": "^3.1.9" @@ -24318,9 +24311,9 @@ } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", - "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz", + "integrity": "sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", @@ -24371,15 +24364,15 @@ } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz", - "integrity": "sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz", + "integrity": "sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.12.0", - "metro-react-native-babel-preset": "0.76.7", + "metro-react-native-babel-preset": "0.76.8", "nullthrows": "^1.1.1" }, "engines": { @@ -24390,9 +24383,9 @@ } }, "node_modules/metro-resolver": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", - "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.8.tgz", + "integrity": "sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==", "peer": true, "engines": { "node": ">=16" @@ -24430,7 +24423,7 @@ "node": ">=16" } }, - "node_modules/metro-source-map/node_modules/metro-symbolicate": { + "node_modules/metro-symbolicate": { "version": "0.76.8", "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz", "integrity": "sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w==", @@ -24450,58 +24443,10 @@ "node": ">=16" } }, - "node_modules/metro-symbolicate": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", - "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", - "peer": true, - "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.76.7", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/index.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/metro-symbolicate/node_modules/metro-source-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", - "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.76.7", - "nullthrows": "^1.1.1", - "ob1": "0.76.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/metro-symbolicate/node_modules/ob1": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", - "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", - "peer": true, - "engines": { - "node": ">=16" - } - }, "node_modules/metro-transform-plugins": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", - "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz", + "integrity": "sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", @@ -24515,9 +24460,9 @@ } }, "node_modules/metro-transform-worker": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", - "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz", + "integrity": "sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", @@ -24525,46 +24470,18 @@ "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.7", - "metro-babel-transformer": "0.76.7", - "metro-cache": "0.76.7", - "metro-cache-key": "0.76.7", - "metro-source-map": "0.76.7", - "metro-transform-plugins": "0.76.7", + "metro": "0.76.8", + "metro-babel-transformer": "0.76.8", + "metro-cache": "0.76.8", + "metro-cache-key": "0.76.8", + "metro-source-map": "0.76.8", + "metro-transform-plugins": "0.76.8", "nullthrows": "^1.1.1" }, "engines": { "node": ">=16" } }, - "node_modules/metro-transform-worker/node_modules/metro-source-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", - "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.76.7", - "nullthrows": "^1.1.1", - "ob1": "0.76.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/metro-transform-worker/node_modules/ob1": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", - "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", - "peer": true, - "engines": { - "node": ">=16" - } - }, "node_modules/metro/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -24667,53 +24584,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/metro/node_modules/metro-runtime": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", - "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "react-refresh": "^0.4.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/metro/node_modules/metro-source-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", - "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.76.7", - "nullthrows": "^1.1.1", - "ob1": "0.76.7", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/metro/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "peer": true }, - "node_modules/metro/node_modules/ob1": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", - "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", - "peer": true, - "engines": { - "node": ">=16" - } - }, "node_modules/metro/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27426,6 +27302,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -27978,9 +27859,9 @@ } }, "node_modules/react-devtools-core": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.4.tgz", - "integrity": "sha512-IUZKLv3CimeM07G3vX4H4loxVpByrzq3HvfTX7v9migalwvLs9ZY5D3S3pKR33U+GguYfBBdMMZyToFhsSE/iQ==", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz", + "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==", "peer": true, "dependencies": { "shell-quote": "^1.6.1", @@ -28126,17 +28007,17 @@ } }, "node_modules/react-native": { - "version": "0.72.4", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.4.tgz", - "integrity": "sha512-+vrObi0wZR+NeqL09KihAAdVlQ9IdplwznJWtYrjnQ4UbCW6rkzZJebRsugwUneSOKNFaHFEo1uKU89HsgtYBg==", + "version": "0.72.6", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.6.tgz", + "integrity": "sha512-RafPY2gM7mcrFySS8TL8x+TIO3q7oAlHpzEmC7Im6pmXni6n1AuufGaVh0Narbr1daxstw7yW7T9BKW5dpVc2A==", "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "11.3.6", - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-platform-ios": "11.3.6", + "@react-native-community/cli": "11.3.7", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-platform-ios": "11.3.7", "@react-native/assets-registry": "^0.72.0", - "@react-native/codegen": "^0.72.6", + "@react-native/codegen": "^0.72.7", "@react-native/gradle-plugin": "^0.72.11", "@react-native/js-polyfills": "^0.72.1", "@react-native/normalize-colors": "^0.72.0", @@ -28217,9 +28098,9 @@ } }, "node_modules/react-native/node_modules/@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "version": "15.0.18", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.18.tgz", + "integrity": "sha512-DDi2KmvAnNsT/EvU8jp1UR7pOJojBtJ3GLZ/uw1MUq4VbbESppPWoHUY4h0OB4BbEbGJiyEsmUcuZDZtoR+ZwQ==", "peer": true, "dependencies": { "@types/yargs-parser": "*" @@ -28332,9 +28213,9 @@ } }, "node_modules/react-native/node_modules/whatwg-fetch": { - "version": "3.6.17", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.17.tgz", - "integrity": "sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==", + "version": "3.6.19", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", + "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", "peer": true }, "node_modules/react-refresh": { diff --git a/frontend/package.json b/frontend/package.json index 32fc4e777..9cd716104 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,11 @@ { "name": "crossfeed-front", "version": "0.1.0", + "jest" : { + "moduleNameMapper": { + "axios": "axios/dist/node/axios.cjs" + } + }, "private": true, "engines": { "node": ">=18.0.0" @@ -22,7 +27,7 @@ "@nivo/pie": "^0.80.0", "@trussworks/react-uswds": "^5.1.1", "autoprefixer": "^10.4.13", - "aws-amplify": "^5.0.4", + "aws-amplify": "^5.3.12", "classnames": "^2.3.2", "d3-scale": "^4.0.2", "date-fns": "^2.29.3", From 28032bf997e28991bf98c701c73806e52aba7193 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Thu, 14 Dec 2023 09:53:06 -0600 Subject: [PATCH 19/19] Add email_bucket_name to env.yml --- backend/env.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/env.yml b/backend/env.yml index 92a7f6013..c23708aa3 100644 --- a/backend/env.yml +++ b/backend/env.yml @@ -46,6 +46,7 @@ staging: PE_CLUSTER_NAME: pe-staging-worker SHODAN_QUEUE_URL: ${ssm:/crossfeed/staging/SHODAN_QUEUE_URL} SHODAN_SERVICE_NAME: pe-staging-shodan + EMAIL_BUCKET_NAME: cisa-crossfeed-staging-html-email prod: DB_DIALECT: 'postgres' @@ -86,6 +87,7 @@ prod: PE_CLUSTER_NAME: pe-prod-worker SHODAN_QUEUE_URL: ${ssm:/crossfeed/prod/SHODAN_QUEUE_URL} SHODAN_SERVICE_NAME: pe-prod-shodan + EMAIL_BUCKET_NAME: cisa-crossfeed-staging-html-email dev-vpc: securityGroupIds: