From 01b13a3c4a3c6679eb02397bd69165191d4f4122 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 18:51:28 -0600 Subject: [PATCH 01/19] chore(deps): bump @aws-sdk/s3-request-presigner from 3.462.0 to 3.465.0 (#2296) Bumps [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner) from 3.462.0 to 3.465.0. - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages/s3-request-presigner/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.465.0/packages/s3-request-presigner) --- updated-dependencies: - dependency-name: "@aws-sdk/s3-request-presigner" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 66 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index 16f97c2d0..426f1a1db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -734,6 +734,21 @@ "@smithy/util-config-provider" "^2.0.0" tslib "^2.5.0" +"@aws-sdk/middleware-sdk-s3@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.465.0.tgz#fd417ce7a958066afb5c293b49eacd2f807e853e" + integrity sha512-P4cpNv0EcMSSLojjqKKQjKSGZc13QJQAscUs+fcvpBg2BNR9ByxrQgXXMqQiIqr8fgAhADqN2Tp8hJk0CzfnAg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-arn-parser" "3.465.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + tslib "^2.5.0" + "@aws-sdk/middleware-sdk-sqs@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.460.0.tgz#5ac724662ea467997d8ca8fa943a350397b82e30" @@ -818,13 +833,13 @@ tslib "^2.5.0" "@aws-sdk/s3-request-presigner@^3.312.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.462.0.tgz#050bd5137a713af18aab20ab9eb3cd2e1aca2f41" - integrity sha512-yZbO45lJdJ8P8Q+ODWZeg84ORaCy+ZzAZouTsNcBfwxnhatrk4E6sP1xsUCF4knL/vC53frM4LnY858E9Z/NVg== + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.465.0.tgz#e54e7f190c277ed53c53c5b6060150d5339e64fc" + integrity sha512-wQTddmwGR+5GZR6KLXMejFuTHzuKRcbwgfTrIemYQDt6DDT4fbQGAvnIZnzpHbqnfx1bQEXquM/oB7LZrASiQQ== dependencies: - "@aws-sdk/signature-v4-multi-region" "3.461.0" - "@aws-sdk/types" "3.460.0" - "@aws-sdk/util-format-url" "3.460.0" + "@aws-sdk/signature-v4-multi-region" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-format-url" "3.465.0" "@smithy/middleware-endpoint" "^2.2.0" "@smithy/protocol-http" "^3.0.9" "@smithy/smithy-client" "^2.1.15" @@ -843,6 +858,18 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/signature-v4-multi-region@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.465.0.tgz#c4c5b00d5998ea8e2a675cc592a0fb5eaa691147" + integrity sha512-p620S4YCr2CPNIdSnRvBqScAqWztjef9EwtD1MAkxTTrjNAyxSCf4apeQ2pdaWNNkJT1vSc/YKBAJ7l2SWn7rw== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/token-providers@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.460.0.tgz#8122fe281fe7d454166893409f280f6b026f47c2" @@ -886,7 +913,7 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" -"@aws-sdk/types@3.460.0", "@aws-sdk/types@^3.222.0": +"@aws-sdk/types@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.460.0.tgz#f87602928a57473f724b6efca0158e64f658be71" integrity sha512-MyZSWS/FV8Bnux5eD9en7KLgVxevlVrGNEP3X2D7fpnUlLhl0a7k8+OpSI2ozEQB8hIU2DLc/XXTKRerHSefxQ== @@ -894,6 +921,14 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/types@3.465.0", "@aws-sdk/types@^3.222.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.465.0.tgz#74977008020f3ed2e5fa0d61daef70d1cbfbfc37" + integrity sha512-Clqu2eD50OOzwSftGpzJrIOGev/7VJhJpc02SeS4cqFgI9EVd+rnFKS/Ux0kcwjLQBMiPcCLtql3KAHApFHAIA== + dependencies: + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/util-arn-parser@3.310.0": version "3.310.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz#861ff8810851be52a320ec9e4786f15b5fc74fba" @@ -901,6 +936,13 @@ dependencies: tslib "^2.5.0" +"@aws-sdk/util-arn-parser@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz#2896f6b06f69770378586853c97a0f283cbb2e20" + integrity sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw== + dependencies: + tslib "^2.5.0" + "@aws-sdk/util-endpoints@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.460.0.tgz#5f47f8716e7e3a008061aaa82d60b23257deaf55" @@ -920,6 +962,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/util-format-url@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.465.0.tgz#fdd30792b788736fdb772e8e1e346bd97d9c595a" + integrity sha512-jJmIeMFQMADPw5DfyIzqqsIyS4p+duc1fhnOK+GfEkyja1cjafUQOcvovpQ4rCRHGffjTG2LCkOdyrSRDTFzfQ== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/querystring-builder" "^2.0.13" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/util-locate-window@^3.0.0": version "3.310.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" From f6641d41aac506ed0c13ca44c52883d1c6538783 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 00:55:05 +0000 Subject: [PATCH 02/19] chore(deps): bump @aws-sdk/client-sqs from 3.462.0 to 3.465.0 (#2298) Bumps [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) from 3.462.0 to 3.465.0. - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sqs/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.465.0/clients/client-sqs) --- updated-dependencies: - dependency-name: "@aws-sdk/client-sqs" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 363 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 341 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index 426f1a1db..37751c7c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -377,26 +377,26 @@ tslib "^2.5.0" "@aws-sdk/client-sqs@^3.345.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sqs/-/client-sqs-3.462.0.tgz#c81e9d562dcaa2b4c57da0c923b01ee826742d8d" - integrity sha512-QkaBbLZC+8QjUisqdyYjxcNEY+Wc3kNcyjqhKBFxxJeV+tLBy9choQMJgo6wKmEeLdtU8xXBScH7XPEUPfS2fg== + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sqs/-/client-sqs-3.465.0.tgz#baae99b7f929f05c4a957855cb471bb1769c7d3f" + integrity sha512-yLUEWxSG4VJu/bK9p+OLSL/qc4vOQ57Dgj3aPwtk29u5JEEkGN4KTJZ70VgMDsqgcoWFUm7zWty9pRdNWF4vAw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.462.0" - "@aws-sdk/core" "3.451.0" - "@aws-sdk/credential-provider-node" "3.460.0" - "@aws-sdk/middleware-host-header" "3.460.0" - "@aws-sdk/middleware-logger" "3.460.0" - "@aws-sdk/middleware-recursion-detection" "3.460.0" - "@aws-sdk/middleware-sdk-sqs" "3.460.0" - "@aws-sdk/middleware-signing" "3.461.0" - "@aws-sdk/middleware-user-agent" "3.460.0" - "@aws-sdk/region-config-resolver" "3.451.0" - "@aws-sdk/types" "3.460.0" - "@aws-sdk/util-endpoints" "3.460.0" - "@aws-sdk/util-user-agent-browser" "3.460.0" - "@aws-sdk/util-user-agent-node" "3.460.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-sdk-sqs" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" "@smithy/config-resolver" "^2.0.18" "@smithy/fetch-http-handler" "^2.2.6" "@smithy/hash-node" "^2.0.15" @@ -465,6 +465,48 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@aws-sdk/client-sso@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.465.0.tgz#a732c640767d8d82c3c73d798720d0a8d355184d" + integrity sha512-JXDBa3Sl+LS0KEOs0PZoIjpNKEEGfeyFwdnRxi8Y1hMXNEKyJug1cI2Psqu2olpn4KeXwoP1BuITppZYdolOew== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + "@aws-sdk/client-sts@3.462.0": version "3.462.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.462.0.tgz#7168e8c29e2c3b67aca64841a72acd041c409a65" @@ -511,6 +553,52 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-sts@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.465.0.tgz#b356b90b0e31a82dc41995282245f74d023ea8b5" + integrity sha512-rHi9ba6ssNbVjlWSdhi4C5newEhGhzkY9UE4KB+/Tj21zXfEP8r6uIltnQXPtun2SdA95Krh/yS1qQ4MRuzqyA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-sdk-sts" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/protocol-http" "^3.0.9" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + "@aws-sdk/core@3.451.0": version "3.451.0" resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.451.0.tgz#ecd30da40d8e02050a772920485f450ea2a1b804" @@ -519,6 +607,14 @@ "@smithy/smithy-client" "^2.1.15" tslib "^2.5.0" +"@aws-sdk/core@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.465.0.tgz#bfc9dd0fbd953f0839666e9b24c50c4543f49112" + integrity sha512-fHSIw/Rgex3KbrEKn6ZrUc2VcsOTpdBMeyYtfmsTOLSyDDOG9k3jelOvVbCbrK5N6uEUSM8hrnySEKg94UB0cg== + dependencies: + "@smithy/smithy-client" "^2.1.15" + tslib "^2.5.0" + "@aws-sdk/credential-provider-cognito-identity@3.462.0": version "3.462.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.462.0.tgz#c3dfa822df91c482e5d6ee1c10c069c81d27f253" @@ -540,6 +636,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-env@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.465.0.tgz#9bb1c2086165872ad024786e5a48ccb31c5438da" + integrity sha512-fku37AgkB9KhCuWHE6mfvbWYU0X84Df6MQ60nYH7s/PiNEhkX2cVI6X6kOKjP1MNIwRcYt+oQDvplVKdHume+A== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-http@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.460.0.tgz#f61316a5178e817a161f734a167936aac5a878fd" @@ -571,6 +677,22 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-ini@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.465.0.tgz#d3c3596cc5ff5ebe372bbd62d7aac044cbf3e2e3" + integrity sha512-B1MFufvdToAEMtfszilVnKer2S7P/OfMhkCizq2zuu8aU/CquRyHvKEQgWdvqunUDrFnVTc0kUZgsbBY0uPjLg== + dependencies: + "@aws-sdk/credential-provider-env" "3.465.0" + "@aws-sdk/credential-provider-process" "3.465.0" + "@aws-sdk/credential-provider-sso" "3.465.0" + "@aws-sdk/credential-provider-web-identity" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-node@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.460.0.tgz#8dff013f8e2a2e2837eaf7400ff42714de7dec4d" @@ -588,6 +710,23 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-node@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.465.0.tgz#b11cbc927aa17aacd0b7208cef5a88045c0bcf62" + integrity sha512-R3VA9yJ0BvezvrDxcgPTv9VHbVPbzchLTrX5jLFSVuW/lPPYLUi/Cjtyg9C9Y7qRfoQS4fNMvSRhwO5/TF68gA== + dependencies: + "@aws-sdk/credential-provider-env" "3.465.0" + "@aws-sdk/credential-provider-ini" "3.465.0" + "@aws-sdk/credential-provider-process" "3.465.0" + "@aws-sdk/credential-provider-sso" "3.465.0" + "@aws-sdk/credential-provider-web-identity" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-process@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.460.0.tgz#3f56d03ed5a0c44d87455465701906bd115ebcd9" @@ -599,6 +738,17 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-process@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.465.0.tgz#78134b19f7a02e7fb78afda16d7cae5b93ff324e" + integrity sha512-YE6ZrRYwvb8969hWQnr4uvOJ8RU0JrNsk3vWTe/czly37ioZUEhi8jmpQp4f2mX/6U6buoFGWu5Se3VCdw2SFQ== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-sso@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.460.0.tgz#e44a768899d3fca30e0eaf2ed0c3c15e2cd2b5ac" @@ -612,6 +762,19 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-sso@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.465.0.tgz#622d03eb5c8a0d7a48ba12e849351c841eb48ca6" + integrity sha512-tLIP/4JQIJpn8yIg6RZRQ2nmvj5i4wLZvYvY4RtaFv2JrQUkmmTfyOZJuOBrIFRwJjx0fHmFu8DJjcOhMzllIQ== + dependencies: + "@aws-sdk/client-sso" "3.465.0" + "@aws-sdk/token-providers" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-web-identity@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.460.0.tgz#480ac1daa62e667672f5ecaa7dbefde808c191a2" @@ -622,6 +785,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-web-identity@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.465.0.tgz#9db18766eeb0c58a99f7fb5d4bd95f0cf9008d4d" + integrity sha512-B4Y75fMTZIniEU0yyqat+9NsQbYlXdqP5Y3bShkaG3pGLOHzF/xMlWuG+D3kkQ806PLYi+BgfVls4BcO+NyVcA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/credential-providers@3.462.0": version "3.462.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.462.0.tgz#633ce0b9f4989f065e175d6d36e587814d6ed281" @@ -691,6 +864,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/middleware-host-header@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.465.0.tgz#4f353f6ea063e1ba1df968f9f0126a53d746217d" + integrity sha512-nnGva8eplwEJqdVzcb+xF2Fwua0PpiwxMEvpnIy73gNbetbJdgFIprryMLYes00xzJEqnew+LWdpcd3YyS34ZA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/middleware-location-constraint@3.461.0": version "3.461.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.461.0.tgz#e9f6d8d1f7a65d5807c7d092cabdc6fc443c3b91" @@ -709,6 +892,15 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/middleware-logger@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.465.0.tgz#7d66b375ee343f00e35c64ba79b37656828bf171" + integrity sha512-aGMx1aSlzDDgjZ7fSxLhGD5rkyCfHwq04TSB5fQAgDBqUjj4IQXZwmNglX0sLRmArXZtDglUVESOfKvTANJTPg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/middleware-recursion-detection@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.460.0.tgz#4583a78fb15d0b18046a582dd6e0d3f554ad2eb8" @@ -719,6 +911,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/middleware-recursion-detection@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.465.0.tgz#d0cb1fd9c63dbe997406253b5e0ce402103d910f" + integrity sha512-ol3dlsTnryBhV5qkUvK5Yg3dRaV1NXIxYJaIkShrl8XAv4wRNcDJDmO5NYq5eVZ3zgV1nv6xIpZ//dDnnf6Z+g== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/middleware-sdk-s3@3.461.0": version "3.461.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.461.0.tgz#615cffecb02b03a5a41730b7b561967195ca7e48" @@ -749,12 +951,12 @@ "@smithy/util-config-provider" "^2.0.0" tslib "^2.5.0" -"@aws-sdk/middleware-sdk-sqs@3.460.0": - version "3.460.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.460.0.tgz#5ac724662ea467997d8ca8fa943a350397b82e30" - integrity sha512-l/KJAgq4J9QcXxtRaQVj7UqUvagR/gm9bngIwde3tkA6B01pXfdXNVshbGrPqFBlfYp8tlyV89p3ET/PhHUAsA== +"@aws-sdk/middleware-sdk-sqs@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sqs/-/middleware-sdk-sqs-3.465.0.tgz#2cae0091ad73d854349347c0e4b717c71786f154" + integrity sha512-vEROtdj6ZaUm39Lv9K5UBo4k5OUiaWD1MwL3IdTikFBFbuYfNuZoq8MQxxziOq5pH6DTfXZwuAC1LvYx6b2+gw== dependencies: - "@aws-sdk/types" "3.460.0" + "@aws-sdk/types" "3.465.0" "@smithy/types" "^2.5.0" "@smithy/util-hex-encoding" "^2.0.0" "@smithy/util-utf8" "^2.0.2" @@ -770,6 +972,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/middleware-sdk-sts@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.465.0.tgz#73ad1f0940f924be1141125ceffcf4204c54c9bf" + integrity sha512-PmTM5ycUe1RLAPrQXLCR8JzKamJuKDB0aIW4rx4/skurzWsEGRI47WHggf9N7sPie41IBGUhRbXcf7sfPjvI3Q== + dependencies: + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/middleware-signing@3.461.0": version "3.461.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.461.0.tgz#e7393f755660eb65a160e64584ad9383724bd2e1" @@ -783,6 +995,19 @@ "@smithy/util-middleware" "^2.0.6" tslib "^2.5.0" +"@aws-sdk/middleware-signing@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.465.0.tgz#2a040c39bfd6f2528ef9798944b4de2d33d2bdd1" + integrity sha512-d90KONWXSC3jA0kqJ6u8ygS4LoMg1TmSM7bPhHyibJVAEhnrlB4Aq1CWljNbbtphGpdKy5/XRM9O0/XCXWKQ4w== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.5.0" + "@smithy/util-middleware" "^2.0.6" + tslib "^2.5.0" + "@aws-sdk/middleware-ssec@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.460.0.tgz#e5fa963d6d43cf4764310da4de5604ef51964473" @@ -803,6 +1028,17 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/middleware-user-agent@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.465.0.tgz#2820d55ff7d774a4afe60f85fe88d959171f9052" + integrity sha512-1MvIWMj2nktLOJN8Kh4jiTK28oL85fTeoXHZ+V8xYMzont6C6Y8gQPtg7ka+RotHwqWMrovfnANisnX8EzEP/Q== + dependencies: + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/rds-signer@^3.315.0": version "3.462.0" resolved "https://registry.yarnpkg.com/@aws-sdk/rds-signer/-/rds-signer-3.462.0.tgz#d016820f31d3e2aa591d3019d688684bb4a82df2" @@ -832,6 +1068,17 @@ "@smithy/util-middleware" "^2.0.6" tslib "^2.5.0" +"@aws-sdk/region-config-resolver@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.465.0.tgz#87c3d2fe96e1e759d818f179f1e72204791145e6" + integrity sha512-h0Phd2Ae873dsPSWuxqxz2yRC5NMeeWxQiJPh4j42HF8g7dZK7tMQPkYznAoA/BzSBsEX87sbr3MmigquSyUTA== + dependencies: + "@smithy/node-config-provider" "^2.1.5" + "@smithy/types" "^2.5.0" + "@smithy/util-config-provider" "^2.0.0" + "@smithy/util-middleware" "^2.0.6" + tslib "^2.5.0" + "@aws-sdk/s3-request-presigner@^3.312.0": version "3.465.0" resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.465.0.tgz#e54e7f190c277ed53c53c5b6060150d5339e64fc" @@ -913,6 +1160,49 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@aws-sdk/token-providers@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.465.0.tgz#e063a30c73878462a5a1542a3eb28ac5e72c5921" + integrity sha512-NaZbsyLs3whzRHGV27hrRwEdXB/tEK6tqn/aCNBy862LhVzocY1A+eYLKrnrvpraOOd2vyAuOtvvB3RMIdiL6g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" + "@smithy/config-resolver" "^2.0.18" + "@smithy/fetch-http-handler" "^2.2.6" + "@smithy/hash-node" "^2.0.15" + "@smithy/invalid-dependency" "^2.0.13" + "@smithy/middleware-content-length" "^2.0.15" + "@smithy/middleware-endpoint" "^2.2.0" + "@smithy/middleware-retry" "^2.0.20" + "@smithy/middleware-serde" "^2.0.13" + "@smithy/middleware-stack" "^2.0.7" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/node-http-handler" "^2.1.9" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.9" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/smithy-client" "^2.1.15" + "@smithy/types" "^2.5.0" + "@smithy/url-parser" "^2.0.13" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.19" + "@smithy/util-defaults-mode-node" "^2.0.25" + "@smithy/util-endpoints" "^1.0.4" + "@smithy/util-retry" "^2.0.6" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + "@aws-sdk/types@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.460.0.tgz#f87602928a57473f724b6efca0158e64f658be71" @@ -952,6 +1242,15 @@ "@smithy/util-endpoints" "^1.0.4" tslib "^2.5.0" +"@aws-sdk/util-endpoints@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.465.0.tgz#b3800364bd856bdfe94e0a1c72979d1bda27a0b8" + integrity sha512-lDpBN1faVw8Udg5hIo+LJaNfllbBF86PCisv628vfcggO8/EArL/v2Eos0KeqVT8yaINXCRSagwfo5TNTuW0KQ== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/util-endpoints" "^1.0.4" + tslib "^2.5.0" + "@aws-sdk/util-format-url@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.460.0.tgz#108af532d0deb25ce39ab20c1059247399079663" @@ -989,6 +1288,16 @@ bowser "^2.11.0" tslib "^2.5.0" +"@aws-sdk/util-user-agent-browser@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.465.0.tgz#2cb792c48770fe650cbb2b66ac21a8d65b0ca5ba" + integrity sha512-RM+LjkIsmUCBJ4yQeBnkJWJTjPOPqcNaKv8bpZxatIHdvzGhXLnWLNi3qHlBsJB2mKtKRet6nAUmKmzZR1sDzA== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/types" "^2.5.0" + bowser "^2.11.0" + tslib "^2.5.0" + "@aws-sdk/util-user-agent-node@3.460.0": version "3.460.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.460.0.tgz#d4adb7b924d89e5d33fc4ae83cfe067b7bb045c4" @@ -999,6 +1308,16 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" +"@aws-sdk/util-user-agent-node@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.465.0.tgz#5838e93a0f2102fb555131f40bd454707caba3f9" + integrity sha512-XsHbq7gLCiGdy6FQ7/5nGslK0ij3Iuh051djuIICvNurlds5cqKLiBe63gX3IUUwxJcrKh4xBGviQJ52KdVSeg== + dependencies: + "@aws-sdk/types" "3.465.0" + "@smithy/node-config-provider" "^2.1.5" + "@smithy/types" "^2.5.0" + tslib "^2.5.0" + "@aws-sdk/util-utf8-browser@^3.0.0": version "3.259.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" From 6686fbb1e7294bdc5df2d69e81496cfa1c3e3588 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 00:58:26 +0000 Subject: [PATCH 03/19] chore(deps-dev): bump @babel/core from 7.23.3 to 7.23.5 (#2293) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.3 to 7.23.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.5/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 107 ++++++++++++++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 56 deletions(-) diff --git a/yarn.lock b/yarn.lock index 37751c7c7..33aa61159 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1339,12 +1339,12 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.3": @@ -1358,32 +1358,32 @@ integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.1.6", "@babel/core@^7.10.3", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.18.13", "@babel/core@^7.7.5": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" - integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@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/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" - integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== +"@babel/generator@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== dependencies: - "@babel/types" "^7.23.3" + "@babel/types" "^7.23.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -1594,10 +1594,10 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.18.6": version "7.19.1" @@ -1609,11 +1609,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" @@ -1634,14 +1629,14 @@ "@babel/traverse" "^7.19.0" "@babel/types" "^7.19.0" -"@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" "@babel/highlight@^7.10.4": version "7.18.6" @@ -1652,19 +1647,19 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" - integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.18.4", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.7.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" - integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== +"@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.18.4", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5", "@babel/parser@^7.7.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -2382,28 +2377,28 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3", "@babel/traverse@^7.7.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" - integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.23.5", "@babel/traverse@^7.7.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@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.3" - "@babel/types" "^7.23.3" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.12", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" - integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== +"@babel/types@^7.0.0", "@babel/types@^7.12.12", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" From 7f2302d8a3b160b3a5980a8a4b8393f2db220bad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 01:02:03 +0000 Subject: [PATCH 04/19] chore(deps): bump @aws-sdk/rds-signer from 3.462.0 to 3.465.0 (#2297) Bumps [@aws-sdk/rds-signer](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/rds-signer) from 3.462.0 to 3.465.0. - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages/rds-signer/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.465.0/packages/rds-signer) --- updated-dependencies: - dependency-name: "@aws-sdk/rds-signer" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 108 +++++++++++++++++++++++++----------------------------- 1 file changed, 49 insertions(+), 59 deletions(-) diff --git a/yarn.lock b/yarn.lock index 33aa61159..0e93b4c7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -221,26 +221,26 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/client-cognito-identity@3.462.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.462.0.tgz#9c88a07e0a6b80a567e990a143b3f78124784640" - integrity sha512-NGsFxb2ysXWUPKCRoa4KIJTcL8kddY73EV0hbw9li7+pTFzzkiYiNg6RxfHp3U+sBlhN8poItQrkAXZTDIJ1yQ== +"@aws-sdk/client-cognito-identity@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.465.0.tgz#4d9082c9e9003f180649abeb216e9cbcdac8396b" + integrity sha512-Ku1034M9jjsXbLBS5DwQfcTwWwu2oxtmdbsxvEm4I7IUA/h1++hKPzZuJ6L9zo7I7GbA+WnCryviUdtbgCqTfA== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.462.0" - "@aws-sdk/core" "3.451.0" - "@aws-sdk/credential-provider-node" "3.460.0" - "@aws-sdk/middleware-host-header" "3.460.0" - "@aws-sdk/middleware-logger" "3.460.0" - "@aws-sdk/middleware-recursion-detection" "3.460.0" - "@aws-sdk/middleware-signing" "3.461.0" - "@aws-sdk/middleware-user-agent" "3.460.0" - "@aws-sdk/region-config-resolver" "3.451.0" - "@aws-sdk/types" "3.460.0" - "@aws-sdk/util-endpoints" "3.460.0" - "@aws-sdk/util-user-agent-browser" "3.460.0" - "@aws-sdk/util-user-agent-node" "3.460.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" "@smithy/config-resolver" "^2.0.18" "@smithy/fetch-http-handler" "^2.2.6" "@smithy/hash-node" "^2.0.15" @@ -615,13 +615,13 @@ "@smithy/smithy-client" "^2.1.15" tslib "^2.5.0" -"@aws-sdk/credential-provider-cognito-identity@3.462.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.462.0.tgz#c3dfa822df91c482e5d6ee1c10c069c81d27f253" - integrity sha512-oTN5PXFidfadOC+Ar1gZrRkvOTDzk4FZCf47Eqf6Spfm/Z58iQ8GuZ99uh98oQJZlcbYx8hCeuffRLQtPZS20Q== +"@aws-sdk/credential-provider-cognito-identity@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.465.0.tgz#e278ba1849c3cd38e6a8eb655a931ac2fdddc88a" + integrity sha512-bvZNgA2Cx54eTSZm2bXCUbz5rQjcNqTONuvjNIl1CFK9lEj3o3rRU1EqAwX6AIrT1OIstnDr1Z6llxjwvTLqiA== dependencies: - "@aws-sdk/client-cognito-identity" "3.462.0" - "@aws-sdk/types" "3.460.0" + "@aws-sdk/client-cognito-identity" "3.465.0" + "@aws-sdk/types" "3.465.0" "@smithy/property-provider" "^2.0.0" "@smithy/types" "^2.5.0" tslib "^2.5.0" @@ -646,12 +646,12 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" -"@aws-sdk/credential-provider-http@3.460.0": - version "3.460.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.460.0.tgz#f61316a5178e817a161f734a167936aac5a878fd" - integrity sha512-tLnuLDsGcBRemj8jxt1MkerjwsQlYdwnlfQXvrYOO8qMrbFP2sEjAx165GeCbsjmY/y0w1UFQEV+xRpFg5dxUw== +"@aws-sdk/credential-provider-http@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.465.0.tgz#77031a962c139a62078d7c72c4fb5ccfc2628df0" + integrity sha512-Rj/zFgP0i0tpuaO+sm1csGU7NLQa1F9eE9c3VKbYECiXAZwrGJnY1TdG2iSsLpkMtyfOhRrRvAuYAUCUemWg3g== dependencies: - "@aws-sdk/types" "3.460.0" + "@aws-sdk/types" "3.465.0" "@smithy/fetch-http-handler" "^2.2.6" "@smithy/node-http-handler" "^2.1.9" "@smithy/property-provider" "^2.0.0" @@ -795,23 +795,23 @@ "@smithy/types" "^2.5.0" tslib "^2.5.0" -"@aws-sdk/credential-providers@3.462.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.462.0.tgz#633ce0b9f4989f065e175d6d36e587814d6ed281" - integrity sha512-M5XBK3NPbuDmZPUPlpiKeS0NxLNq/ihpEP0ZjFKwOi2fToXt3x8LqZ0e6o8NDl4UqjHtgEewu8Wwrl4paTmc1A== +"@aws-sdk/credential-providers@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.465.0.tgz#841000b3d548fac20df3011d7945af0283d1bcf9" + integrity sha512-mtndyew33Fnv30zVCQLBkqvUeFvjAlgAe3yM/10U//dxsOW3pfYWZ6sMzDbuXHLCyROQXJqZfnsQKQs0rOaO0Q== dependencies: - "@aws-sdk/client-cognito-identity" "3.462.0" - "@aws-sdk/client-sso" "3.460.0" - "@aws-sdk/client-sts" "3.462.0" - "@aws-sdk/credential-provider-cognito-identity" "3.462.0" - "@aws-sdk/credential-provider-env" "3.460.0" - "@aws-sdk/credential-provider-http" "3.460.0" - "@aws-sdk/credential-provider-ini" "3.460.0" - "@aws-sdk/credential-provider-node" "3.460.0" - "@aws-sdk/credential-provider-process" "3.460.0" - "@aws-sdk/credential-provider-sso" "3.460.0" - "@aws-sdk/credential-provider-web-identity" "3.460.0" - "@aws-sdk/types" "3.460.0" + "@aws-sdk/client-cognito-identity" "3.465.0" + "@aws-sdk/client-sso" "3.465.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/credential-provider-cognito-identity" "3.465.0" + "@aws-sdk/credential-provider-env" "3.465.0" + "@aws-sdk/credential-provider-http" "3.465.0" + "@aws-sdk/credential-provider-ini" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/credential-provider-process" "3.465.0" + "@aws-sdk/credential-provider-sso" "3.465.0" + "@aws-sdk/credential-provider-web-identity" "3.465.0" + "@aws-sdk/types" "3.465.0" "@smithy/credential-provider-imds" "^2.0.0" "@smithy/property-provider" "^2.0.0" "@smithy/types" "^2.5.0" @@ -1040,14 +1040,14 @@ tslib "^2.5.0" "@aws-sdk/rds-signer@^3.315.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/rds-signer/-/rds-signer-3.462.0.tgz#d016820f31d3e2aa591d3019d688684bb4a82df2" - integrity sha512-Hy0qJpLdfa4+mhOFnjqZGYwJtBqNkzhc9dLYZVl266NzKd6ech0IgXx4N0cHRq+dz6wS2LFdYagMikvVCp7ipQ== + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/rds-signer/-/rds-signer-3.465.0.tgz#cef22fd48db12bc185a0492dc6f0e38dc66111ff" + integrity sha512-fhui4CZz7khGsnok93HHSziSMYw8/K4o99Bk8UKSDtkmBMnmkJ87Kl2pCjrqk4iywmJHqO6WjbTmi+WXN3nbgg== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/credential-providers" "3.462.0" - "@aws-sdk/util-format-url" "3.460.0" + "@aws-sdk/credential-providers" "3.465.0" + "@aws-sdk/util-format-url" "3.465.0" "@smithy/config-resolver" "^2.0.18" "@smithy/hash-node" "^2.0.15" "@smithy/invalid-dependency" "^2.0.13" @@ -1251,16 +1251,6 @@ "@smithy/util-endpoints" "^1.0.4" tslib "^2.5.0" -"@aws-sdk/util-format-url@3.460.0": - version "3.460.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.460.0.tgz#108af532d0deb25ce39ab20c1059247399079663" - integrity sha512-TfXehLG9wS8bvsFujggkvLy284JJxdot0m/yfzp+nc0PANP5VuQoePvBpXzUvGEAUHoDdu5Eh2gs1nOkPN05/g== - dependencies: - "@aws-sdk/types" "3.460.0" - "@smithy/querystring-builder" "^2.0.13" - "@smithy/types" "^2.5.0" - tslib "^2.5.0" - "@aws-sdk/util-format-url@3.465.0": version "3.465.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.465.0.tgz#fdd30792b788736fdb772e8e1e346bd97d9c595a" From 0423a167d5f3086a235bb29712933c1198930341 Mon Sep 17 00:00:00 2001 From: adele-usdr <146878468+adele-usdr@users.noreply.github.com> Date: Tue, 5 Dec 2023 08:40:41 -0800 Subject: [PATCH 05/19] fix: #2273 use stacked table layout for narrow windows (#2291) --- packages/client/src/components/GrantsTableNext.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/components/GrantsTableNext.vue b/packages/client/src/components/GrantsTableNext.vue index 4712b269d..4ef439527 100644 --- a/packages/client/src/components/GrantsTableNext.vue +++ b/packages/client/src/components/GrantsTableNext.vue @@ -22,7 +22,7 @@ - From 510814cae989f1fe9d566aad8bd1f74301efc0cc Mon Sep 17 00:00:00 2001 From: adele-usdr <146878468+adele-usdr@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:56:54 -0800 Subject: [PATCH 06/19] fix: update size of logo to match profile badge size (#2307) --- packages/client/src/components/Layout.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/Layout.vue b/packages/client/src/components/Layout.vue index d988fd887..4ae29e5ba 100755 --- a/packages/client/src/components/Layout.vue +++ b/packages/client/src/components/Layout.vue @@ -2,8 +2,8 @@
- - + +

Federal Grant Finder

From 6ec1b14bff5b8cb0cb5468a2179ffc5b98f2c87d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 20:13:22 +0000 Subject: [PATCH 07/19] chore(deps): bump @aws-sdk/client-ses from 3.462.0 to 3.465.0 (#2299) Bumps [@aws-sdk/client-ses](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-ses) from 3.462.0 to 3.465.0. - [Release notes](https://github.com/aws/aws-sdk-js-v3/releases) - [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-ses/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.465.0/clients/client-ses) --- updated-dependencies: - dependency-name: "@aws-sdk/client-ses" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e93b4c7f..e97e365d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -330,25 +330,25 @@ tslib "^2.5.0" "@aws-sdk/client-ses@^3.312.0": - version "3.462.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ses/-/client-ses-3.462.0.tgz#7c20cdd5f7d921429d628f25af4404188df82bf9" - integrity sha512-6hK0DpXtvmgqwQpolPG9HOC5aDvgESoBLvd2z/5tOfrmkKcav7NQOniKY11i/6gfNCFbjYpSnR4xW9Q7w0gchQ== + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ses/-/client-ses-3.465.0.tgz#a298c592a4e8fafc81234e9ca9aa2a43c0af064d" + integrity sha512-eRIe4XjBOPRjk0nG0XdE+s6T2mxrQMJG1Z/L87YminZwIWhE9eL2EqyA8urARw6x/ovL3F3RsEjVBoNmr4TU6Q== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.462.0" - "@aws-sdk/core" "3.451.0" - "@aws-sdk/credential-provider-node" "3.460.0" - "@aws-sdk/middleware-host-header" "3.460.0" - "@aws-sdk/middleware-logger" "3.460.0" - "@aws-sdk/middleware-recursion-detection" "3.460.0" - "@aws-sdk/middleware-signing" "3.461.0" - "@aws-sdk/middleware-user-agent" "3.460.0" - "@aws-sdk/region-config-resolver" "3.451.0" - "@aws-sdk/types" "3.460.0" - "@aws-sdk/util-endpoints" "3.460.0" - "@aws-sdk/util-user-agent-browser" "3.460.0" - "@aws-sdk/util-user-agent-node" "3.460.0" + "@aws-sdk/client-sts" "3.465.0" + "@aws-sdk/core" "3.465.0" + "@aws-sdk/credential-provider-node" "3.465.0" + "@aws-sdk/middleware-host-header" "3.465.0" + "@aws-sdk/middleware-logger" "3.465.0" + "@aws-sdk/middleware-recursion-detection" "3.465.0" + "@aws-sdk/middleware-signing" "3.465.0" + "@aws-sdk/middleware-user-agent" "3.465.0" + "@aws-sdk/region-config-resolver" "3.465.0" + "@aws-sdk/types" "3.465.0" + "@aws-sdk/util-endpoints" "3.465.0" + "@aws-sdk/util-user-agent-browser" "3.465.0" + "@aws-sdk/util-user-agent-node" "3.465.0" "@smithy/config-resolver" "^2.0.18" "@smithy/fetch-http-handler" "^2.2.6" "@smithy/hash-node" "^2.0.15" From 5029a621f1687a9c2cb3c19a84383902d76b71c4 Mon Sep 17 00:00:00 2001 From: Weronika Tomaszewska Date: Tue, 5 Dec 2023 15:16:42 -0500 Subject: [PATCH 08/19] chore/1090 remove unused validate-data files from ARPA Reporter (#2244) --- .../services/validate-data/index.spec.js | 76 --- .../services/validate-data/validate.spec.js | 455 ------------------ .../services/validate-data/certification.js | 19 - .../services/validate-data/contracts.js | 238 --------- .../services/validate-data/cover.js | 18 - .../services/validate-data/direct.js | 119 ----- .../validate-data/expenditure-categories.js | 24 - .../services/validate-data/grants.js | 235 --------- .../services/validate-data/helpers.js | 40 -- .../services/validate-data/index.js | 44 -- .../services/validate-data/loans.js | 110 ----- .../services/validate-data/subrecipients.js | 54 --- .../services/validate-data/transfers.js | 155 ------ .../services/validate-data/validate.js | 392 --------------- 14 files changed, 1979 deletions(-) delete mode 100644 packages/server/__tests__/arpa_reporter/server/services/validate-data/index.spec.js delete mode 100644 packages/server/__tests__/arpa_reporter/server/services/validate-data/validate.spec.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/certification.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/contracts.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/cover.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/direct.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/expenditure-categories.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/grants.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/helpers.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/index.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/loans.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/subrecipients.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/transfers.js delete mode 100644 packages/server/src/arpa_reporter/services/validate-data/validate.js diff --git a/packages/server/__tests__/arpa_reporter/server/services/validate-data/index.spec.js b/packages/server/__tests__/arpa_reporter/server/services/validate-data/index.spec.js deleted file mode 100644 index 88d898b65..000000000 --- a/packages/server/__tests__/arpa_reporter/server/services/validate-data/index.spec.js +++ /dev/null @@ -1,76 +0,0 @@ -/* eslint no-unused-expressions: "off" */ - -const { validateData } = requireSrc(__filename); -const { expect } = require('chai'); - -describe.skip('validateData', () => { - const records = [ - { - type: 'cover', - content: { - 'agency code': '1', - 'project id': '100', - }, - }, - { - type: 'subrecipient', - content: { - 'duns number': '1001', - 'legal name': 'Acme', - 'organization type': 'Other', - }, - }, - { - type: 'certification', - content: { - 'agency financial reviewer name': 'John Doe', - date: 44175, - }, - }, - { - type: 'grants', - content: { - compliance: 'Yes', - 'project id': '100', - 'subrecipient id': '1001', - 'award number': '1', - 'award amount': 10, // v2 validation requires >= 50K - 'current quarter obligation': 10, - 'award payment method': 'Lump Sum Payment(s)', - 'award date': 44044, - 'period of performance start date': 44050, - 'primary place of performance address line 1': '85 Pike St', - 'primary place of performance city name': 'Seattle', - 'primary place of performance country name': 'United States', - 'primary place of performance state code': 'WA', - }, - }, - ]; - it('ignores tagged validations by default', () => { - const reportingPeriod = { - start_date: new Date(2020, 3, 1), - end_date: new Date(2020, 9, 30), - period_of_performance_end_date: new Date(2020, 12, 30), - crf_end_date: new Date(2020, 12, 30), - validation_rule_tags: [], - }; - const fileParts = { agencyCode: '1', projectId: '100' }; - const result = validateData(records, fileParts, reportingPeriod, {}, new Date(2020, 3, 1)); - expect(result, JSON.stringify(result)).to.be.empty; - }); - it('includes tagged validations', () => { - const reportingPeriod = { - start_date: new Date(2020, 3, 1), - end_date: new Date(2020, 9, 30), - period_of_performance_end_date: new Date(2020, 12, 30), - crf_end_date: new Date(2020, 12, 30), - validation_rule_tags: ['v2'], - }; - const fileParts = { agencyCode: '1', projectId: '100' }; - const result = validateData(records, fileParts, reportingPeriod, {}, new Date(2020, 3, 1)); - expect(result, JSON.stringify(result)).to.have.length(1); - expect(result[0].info.message).to.equal('Contract amount must be at least $50,000'); - }); -}); - -// NOTE: This file was copied from tests/server/services/validate-data/index.spec.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/__tests__/arpa_reporter/server/services/validate-data/validate.spec.js b/packages/server/__tests__/arpa_reporter/server/services/validate-data/validate.spec.js deleted file mode 100644 index 407f653bd..000000000 --- a/packages/server/__tests__/arpa_reporter/server/services/validate-data/validate.spec.js +++ /dev/null @@ -1,455 +0,0 @@ -const { - contractMatches, - cumulativeAmountIsEqual, - dateIsInPeriodOfPerformance, - dateIsInReportingPeriod, - isAtLeast50K, - isNotBlank, - isNumber, - isNumberOrBlank, - isPositiveNumber, - isPositiveNumberOrZero, - isSum, - isValidDate, - isValidState, - isValidSubrecipient, - isValidZip, - matchesFilePart, - messageValue, - numberIsLessThanOrEqual, - numberIsGreaterThanOrEqual, - validateFields, - validateRecords, - whenBlank, - whenGreaterThanZero, - whenUS, -} = requireSrc(__filename); -const { expect } = require('chai'); - -describe('validation helpers', () => { - const validateContext = { - fileParts: { - projectId: 'DOH', - }, - subrecipientsHash: { - 1010: { - name: 'Payee', - }, - }, - reportingPeriod: { - startDate: '2020-03-01', - endDate: '2020-09-30', - periodOfPerformanceEndDate: '2020-12-30', - crfEndDate: '2020-12-30', - }, - firstReportingPeriodStartDate: '2020-03-01', - periodSummaries: { - periodSummaries: [ - { - project_code: '1', - award_number: '1001', - award_type: 'contracts', - current_obligation: 100.0, - current_expenditure: 10.00, - }, - { - project_code: '1', - award_number: '1001', - award_type: 'contracts', - current_obligation: 200.0, - current_expenditure: 20.00, - }, - { - project_code: '2', - award_number: '2002', - award_type: 'contracts', - current_obligation: 200.0, - current_expenditure: 20.00, - }, - ], - }, - }; - const testCases = [ - - ['blank string', isNotBlank(''), false], - ['non blank string', isNotBlank('Test'), true], - ['number', isNumber(1), true], - ['number', isNumber(''), false], - ['numberOrBlank', isNumberOrBlank(1), true], - ['numberOrBlank', isNumberOrBlank(''), true], - ['non number', isNumber('Test'), false], - ['positive number', isPositiveNumber(100), true], - ['non positive number', isPositiveNumber(-100), false], - ['positive number or zero', isPositiveNumberOrZero(0), true], - ['positive number or zero', isPositiveNumberOrZero(100), true], - ['positive number or zero allows blanks', isPositiveNumberOrZero(''), true], - ['not a positive number or zero', isPositiveNumberOrZero(-10), false], - ['valid date', isValidDate('2020-10-03'), true], - ['invalid date', isValidDate('2020-15-99'), false], - [ - 'file part matches', - matchesFilePart('projectId')('DOH', {}, validateContext), - true, - ], - [ - 'file part does not match', - matchesFilePart('projectId')('OMB', {}, validateContext), - false, - ], - [ - 'valid subrecipient', - isValidSubrecipient('1010', {}, validateContext), - true, - ], - [ - 'invalid subrecipient', - isValidSubrecipient('1020', {}, validateContext), - false, - ], - [ - 'sum is correct', - isSum(['amount1', 'amount2'])( - 100.0, - { amount1: 40.0, amount2: 60.0 }, - validateContext, - ), - true, - ], - [ - 'sum is not correct', - isSum(['amount1', 'amount2'])( - 90.0, - { amount1: 40.0, amount2: 60.0 }, - validateContext, - ), - false, - ], - [ - 'sum convert strings to float', - isSum(['amount1', 'amount2'])( - '100.0', - { amount1: '40.0', amount2: '60.0' }, - validateContext, - ), - true, - ], - [ - 'number is less than or equal', - numberIsLessThanOrEqual('total')(100, { total: 200 }, validateContext), - true, - ], - [ - 'number is not less than or equal', - numberIsLessThanOrEqual('total')(500, { total: 200 }, validateContext), - false, - ], - [ - 'number is greater than or equal', - numberIsGreaterThanOrEqual('total')( - 1000, - { total: 200 }, - validateContext, - ), - true, - ], - [ - 'number is not greater than or equal', - numberIsGreaterThanOrEqual('total')(50, { total: 200 }, validateContext), - false, - ], - [ - 'date is in reporting period', - dateIsInReportingPeriod(43929, {}, validateContext), - true, - ], - [ - 'date is before reporting period', - dateIsInReportingPeriod(43800, {}, validateContext), - false, - ], - [ - 'date is after reporting period', - dateIsInReportingPeriod(44197, {}, validateContext), - false, - ], - [ - 'date is in period or performance', - dateIsInPeriodOfPerformance(44166, {}, validateContext), - true, - ], - [ - 'whenBlank conditional validation passes', - whenBlank('duns number', isNotBlank)( - '123', - { 'duns number': '' }, - validateContext, - ), - true, - ], - [ - 'whenBlank conditional validation fails', - whenBlank('duns number', isNotBlank)( - '', - { 'duns number': '' }, - validateContext, - ), - false, - ], - [ - 'whenBlank conditional validation ignored', - whenBlank('duns number', isNotBlank)( - '', - { 'duns number': '123' }, - validateContext, - ), - true, - ], - [ - 'whenGreaterThanZero conditional validation passes', - whenGreaterThanZero( - 'total expenditure amount', - dateIsInPeriodOfPerformance, - )(44166, { 'total expenditure amount': 1000.0 }, validateContext), - true, - ], - [ - 'whenGreaterThanZero conditional validation fails', - whenGreaterThanZero( - 'total expenditure amount', - dateIsInPeriodOfPerformance, - )(45000, { 'total expenditure amount': 1000.0 }, validateContext), - false, - ], - [ - 'whenGreaterThanZero conditional validation ignored', - whenGreaterThanZero( - 'total expenditure amount', - dateIsInPeriodOfPerformance, - )(45000, { 'total expenditure amount': '' }, validateContext), - true, - ], - [ - 'valid US zip passes', - isValidZip( - 98101, - {}, - validateContext, - ), - true, - ], - [ - 'valid US zip fails', - isValidZip( - 981, - {}, - validateContext, - ), - false, - ], - [ - 'whenUS conditional validation passes', - whenUS('country', isValidZip)( - 98101, - { country: 'usa' }, - validateContext, - ), - true, - ], - [ - 'whenUS conditional validation passes', - whenUS('country', isValidZip)( - 98101, - { country: 'united states' }, - validateContext, - ), - true, - ], - [ - 'whenUS conditional validation fails', - whenUS('country', isValidZip)( - 981, - { country: 'usa' }, - validateContext, - ), - false, - ], - [ - 'whenUS conditional validation fails', - whenUS('country', isValidZip)( - 981, - { country: 'united states' }, - validateContext, - ), - false, - ], - [ - 'whenUS conditional validation skipped', - whenUS('country', isValidZip)( - 981, - { country: 'hk' }, - validateContext, - ), - true, - ], - [ - 'whenUS conditional validation skipped', - whenUS('country', isValidZip)( - '', - { country: 'hk' }, - validateContext, - ), - true, - ], - ['isAtLeast50K fails', isAtLeast50K(undefined), false], - ['isAtLeast50K fails', isAtLeast50K(''), false], - ['isAtLeast50K fails', isAtLeast50K(5000.00), false], - ['isAtLeast50K passes', isAtLeast50K(50000.00), true], - ['isAtLeast50K passes', isAtLeast50K(150000.00), true], - - [ - 'cumulativeAmountIsEqual passes for obligation', - cumulativeAmountIsEqual('current quarter obligation', contractMatches)( - 600.0, - { 'project id': '1', 'contract number': '1001', 'current quarter obligation': 300.0 }, - validateContext, - ), - true, - ], - [ - 'cumulativeAmountIsEqual passes for expenditure', - cumulativeAmountIsEqual('total expenditure amount', contractMatches)( - 60.0, - { 'project id': '1', 'contract number': '1001', 'total expenditure amount': 30.0 }, - validateContext, - ), - true, - ], - [ - 'cumulativeAmountIsEqual fails', - cumulativeAmountIsEqual('current quarter obligation', contractMatches)( - 200.0, - { 'current quarter obligation': 300.0 }, - validateContext, - ), - false, - ], - ]; - testCases.forEach(([name, b, expectedResult]) => { - it(`${name} should return ${expectedResult}`, () => { - expect(b).to.equal(expectedResult); - }); - }); - // isValidState() doesn't work in the testCases array, - // because it has to run after beforeEach() has initialized - // the dropdowns, so it has to be invoked inside an it() function. - it.skip('isValidState("WA") should return true', () => { - expect(isValidState('WA', {}, validateContext)).to.equal(true); - }); - it.skip('isValidState("ZZ") should return false', () => { - expect(isValidState('ZZ', {}, validateContext)).to.equal(false); - }); -}); - -describe('validateFields', () => { - const requiredFields = [ - ['name', isNotBlank], - ['date', isValidDate], - ['description', isNotBlank, 'Description is required'], - ]; - it('can validate a record', () => { - const content = { - name: 'George', - date: '2020-10-02', - description: 'testing', - }; - const r = validateFields(requiredFields, content, 'Test', 1); - expect(r).to.have.length(0); - }); - it('can report multiple errors, with custom message', () => { - const content = { name: '', date: '2020-10-02' }; - const r = validateFields(requiredFields, content, 'Test', 5); - expect(r).to.have.length(2); - expect(r[0].info.message).to.equal('Empty or invalid entry for name: ""'); - expect(r[0].info.tab).to.equal('Test'); - expect(r[0].info.row).to.equal(5); - expect(r[1].info.message).to.equal('Description is required'); - expect(r[1].info.tab).to.equal('Test'); - expect(r[1].info.row).to.equal(5); - }); -}); - -describe('can exclude filters based on tags', () => { - const requiredFields = [ - ['name', isNotBlank, 'Name is required', { tags: ['v2'] }], - ]; - const content = { name: '' }; - it('includes filter with matching tag', () => { - const r = validateFields( - requiredFields, - content, - 'Test Tab', - 1, - { tags: ['v2'] }, - ); - expect(r).to.have.length(1); - }); - it('ignores filter with non matching tag', () => { - const r = validateFields( - requiredFields, - content, - 'Test Tab', - 1, - { tags: ['v3'] }, - ); - expect(r).to.have.length(0); - }); - it('ignores filter when context has no tags', () => { - const r = validateFields(requiredFields, content, 'Test Tab', 1, {}); - expect(r).to.have.length(0); - }); -}); - -describe('custom message', () => { - it('can include the invalid value in the message', () => { - const validations = [ - ['type', (v) => v === 'FOO' || v === 'BAR', 'Type "{}" is not valid'], - ]; - const content = { type: 'BAZ' }; - const r = validateFields(validations, content, 'Test', 5); - expect(r).to.have.length(1); - expect(r[0].info.message).to.equal('Type "BAZ" is not valid'); - }); -}); - -describe('validateRecords', () => { - const records = { - test: [ - { content: { name: 'George' } }, - { content: { name: 'John' } }, - { content: { name: 'Thomas' } }, - { content: { name: 'James' } }, - { content: { name: '' } }, - ], - }; - const validations = [['name', isNotBlank]]; - it('can validate a collection of records', () => { - const log = validateRecords('test', validations)(records, {}); - expect(log).to.have.length(1); - }); -}); - -describe('date conversion for messages', () => { - it('can convert spreadsheet dates', () => { - expect(messageValue(44195, { isDateValue: true })).to.equal('12/30/2020'); - }); - it('only converts valid dates', () => { - expect(messageValue('Friday', { isDateValue: true })).to.equal('Friday'); - }); - it('only converts dates', () => { - expect(messageValue(44195)).to.equal(44195); - }); -}); - -/* * * * */ - -// NOTE: This file was copied from tests/server/services/validate-data/validate.spec.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/certification.js b/packages/server/src/arpa_reporter/services/validate-data/certification.js deleted file mode 100644 index 99bbe0039..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/certification.js +++ /dev/null @@ -1,19 +0,0 @@ -const { isNotBlank, isValidDate } = require('./validate'); -const { validateSingleRecord } = require('./validate'); - -const requiredFields = [ - [ - 'agency financial reviewer name', - isNotBlank, - 'Agency financial reviewer name must not be blank', - ], - ['date', isValidDate, 'Date must be a valid date', { isDate: true }], -]; - -module.exports = validateSingleRecord( - 'certification', - requiredFields, - 'certification requires a row with "agency financial reviewer name" and "date"', -); - -// NOTE: This file was copied from src/server/services/validate-data/certification.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/contracts.js b/packages/server/src/arpa_reporter/services/validate-data/contracts.js deleted file mode 100644 index f5d938739..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/contracts.js +++ /dev/null @@ -1,238 +0,0 @@ -const { - contractMatches, - cumulativeAmountIsEqual, - cumulativeAmountIsLessThanOrEqual, - dateIsInPeriodOfPerformance, - dateIsInReportingPeriod, - dateIsOnOrBefore, - dateIsOnOrBeforeCRFEndDate, - dropdownIncludes, - isEqual, - isAtLeast50K, - isNotBlank, - isNumber, - isNumberOrBlank, - isPositiveNumberOrZero, - isSum, - isValidDate, - isValidState, - isValidSubrecipient, - isValidZip, - matchesFilePart, - numberIsLessThanOrEqual, - validateRecords, - whenGreaterThanZero, - whenNotBlank, - whenUS, -} = require('./validate'); - -const expenditureCategories = require('./expenditure-categories'); - -// type pattern for this elements of the fields array is -// [ -// columnName: string, -// validator: (val: any, content: obj?) => bool, -// message: string? -// ] -const requiredFields = [ - [ - 'project id', - matchesFilePart('projectId'), - 'The contract project id "{}" does not match the project id in the filename', - ], - [ - 'subrecipient id', - isValidSubrecipient, - 'Each contract row must have a "subrecipient id" which is included in the "subrecipient" tab', - ], - [ - 'period of performance end date', - isValidDate, - 'Period of performance end date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'period of performance start date', - dateIsInPeriodOfPerformance, - 'Period of performance start date "{}" must be in the period of performance', - { isDateValue: true }, - ], - [ - 'period of performance end date', - dateIsOnOrBeforeCRFEndDate, - 'Period of performance end date "{}" must be on or before CRF end date', - { isDateValue: true }, - ], - ['contract number', isNotBlank, 'Contract number cannot be blank'], - [ - 'contract type', - dropdownIncludes('contract type'), - 'Contract type is not valid', - ], - [ - 'contract amount', - isPositiveNumberOrZero, - 'Contract {{contract number}} contract amount must be an amount greater than or equal to zero', - ], - [ - 'contract amount', - isEqual('current quarter obligation'), - 'Contract amount must equal obligation amount', - { tags: ['v2'] }, - ], - [ - 'contract amount', - cumulativeAmountIsEqual('current quarter obligation', contractMatches), - 'Contract {{contract number}} contract amount must equal cumulative obligation amount', - { tags: ['cumulative'] }, - ], - [ - 'contract amount', - isAtLeast50K, - 'Contract amount must be at least $50,000', - { tags: ['v2'] }, - ], - - [ - 'contract date', - isValidDate, - 'Contract date "{}" is not valid', - { isDateValue: true }, - ], - [ - 'contract date', - dateIsInReportingPeriod, - 'Contract date "{}" is not in reporting report', - { isDateValue: true }, - ], - [ - 'contract date', - dateIsInPeriodOfPerformance, - 'Contract date "{}" must be in the period of performance', - { isDateValue: true }, - ], - [ - 'contract date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('expenditure start date'), - ), - 'Contract date "{}" must be on or before the expenditure start date', - { isDateValue: true }, - ], - - [ - 'period of performance start date', - isValidDate, - 'Period of performance start date "{}" is not valid', - { isDateValue: true }, - ], - [ - 'period of performance start date', - dateIsOnOrBefore('period of performance end date'), - 'Period of performance start date "{}" must be on or before the period of performance end date', - { isDateValue: true }, - ], - - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure state date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', dateIsInReportingPeriod), - 'Expenditure state date "{}" is not in the reporting period', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('expenditure end date'), - ), - 'Expenditure start date "{}" must be before expenditure end date', - { isDateValue: true }, - ], - - [ - 'expenditure end date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure end date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'expenditure end date', - whenGreaterThanZero('total expenditure amount', dateIsInReportingPeriod), - 'Expenditure end date "{}" must be in the reporting period', - { isDateValue: true }, - ], - - [ - 'primary place of performance address line 1', - isNotBlank, - 'Primary place of performance address line 1 cannot be blank', - ], - [ - 'primary place of performance city name', - isNotBlank, - 'Primary place of performance city name cannot be blank', - ], - [ - 'primary place of performance state code', - isValidState, - 'Primary place of performance state code "{}" is not valid', - ], - [ - 'primary place of performance zip', - whenUS('primary place of performance country name', isValidZip), - 'Primary place of performance zip "{}" is not valid', - ], - [ - 'primary place of performance country name', - dropdownIncludes('country'), - 'Primary place of performance country name "{}" is not valid', - ], - [ - 'current quarter obligation', - isNumberOrBlank, - - 'Contract {{contract number}} current quarter obligation must be an amount greater than zero', - ], - [ - 'current quarter obligation', - whenNotBlank('current quanter obligation', numberIsLessThanOrEqual('contract amount')), - 'Contract {{contract number}} current quarter obligation {{current quarter obligation}} must be less than or equal to the contract amount', - ], - [ - 'total expenditure amount', - isNumberOrBlank, - 'Total expenditure amount must be a number', - ], - [ - 'total expenditure amount', - isSum(expenditureCategories), - 'Total expenditure amount must be the sum of all expenditure amount columns', - ], - [ - 'contract amount', - cumulativeAmountIsLessThanOrEqual('total expenditure amount', contractMatches), - 'Cumulative expenditure amount must be less than or equal to contract amount', - { tags: ['cumulative'] }, - ], - [ - 'other expenditure categories', - whenNotBlank('other expenditure amount', isNotBlank), - 'Other Expenditure Categories cannot be blank if Other Expenditure Amount has an amount', - ], - [ - 'other expenditure amount', - whenNotBlank('other expenditure categories', isNumber), - 'Other Expenditure Amount must be a number', - ], -]; - -module.exports = validateRecords('contracts', requiredFields); - -// NOTE: This file was copied from src/server/services/validate-data/contracts.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/cover.js b/packages/server/src/arpa_reporter/services/validate-data/cover.js deleted file mode 100644 index c44d32166..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/cover.js +++ /dev/null @@ -1,18 +0,0 @@ -const { matchesFilePart } = require('./validate'); -const { validateSingleRecord } = require('./validate'); - -const requiredFields = [ - [ - 'agency code', - matchesFilePart('agencyCode'), - 'The agency code "{}" in the file name does not match the cover\'s agency code', - ], -]; - -module.exports = validateSingleRecord( - 'cover', - requiredFields, - 'cover requires a row with "agency code"', -); - -// NOTE: This file was copied from src/server/services/validate-data/cover.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/direct.js b/packages/server/src/arpa_reporter/services/validate-data/direct.js deleted file mode 100644 index 14995db16..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/direct.js +++ /dev/null @@ -1,119 +0,0 @@ -const { - directMatches, - cumulativeAmountIsEqual, - cumulativeAmountIsLessThanOrEqual, - dateIsInReportingPeriod, - dateIsOnOrBefore, - isAtLeast50K, - isNumberOrBlank, - isSum, - isValidDate, - isValidSubrecipient, - matchesFilePart, - numberIsLessThanOrEqual, - validateRecords, - whenGreaterThanZero, - whenNotBlank, -} = require('./validate'); - -const expenditureCategories = require('./expenditure-categories'); - -// type pattern for this elements of the fields array is -// [ -// columnName: string, -// validator: (val: any, content: obj?) => bool, -// message: string? -// ] -const requiredFields = [ - [ - 'project id', - matchesFilePart('projectId'), - 'The direct project id "{}" does not match the project id in the filename', - ], - - [ - 'subrecipient id', - isValidSubrecipient, - 'Each direct row must have a "subrecipient id" which is included in the "subrecipient" tab', - ], - - [ - 'obligation amount', - isAtLeast50K, - 'Obligation amount must be at least $50,000', - { tags: ['v2'] }, - ], - - ['obligation date', isValidDate, 'Obligation date "{}" is not valid'], - [ - 'obligation date', - dateIsInReportingPeriod, - 'Obligation date "{}" is not in the reporting period', - { isDateValue: true }, - ], - - [ - 'current quarter obligation', - isNumberOrBlank, - 'Current quarter obligation must be an amount', - ], - [ - 'current quarter obligation', - whenNotBlank('current quarter obligation', numberIsLessThanOrEqual('obligation amount')), - 'Current quarter obligation must be less than or equal to obligation amount', - ], - [ - 'obligation amount', - cumulativeAmountIsEqual('current quarter obligation', directMatches), - 'Obligation amount must equal cumulative obligation amount', - { tags: ['cumulative'] }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure start date "{}" is not valid', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', dateIsInReportingPeriod), - 'Expenditure state date "{}" is not in the reporting period', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('expenditure end date'), - ), - 'Expenditure start date "{}" is not on or before the expenditure end date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', dateIsInReportingPeriod), - 'Expenditure start date "{}" is not in the reporting period', - { isDateValue: true }, - ], - - [ - 'total expenditure amount', - isNumberOrBlank, - 'Total expenditure amount must be a number', - ], - [ - 'total expenditure amount', - isSum(expenditureCategories), - 'Total expenditure amount is not the sum of all expenditure amount columns', - ], - [ - 'obligation amount', - cumulativeAmountIsLessThanOrEqual('total expenditure amount', directMatches), - 'Cumulative expenditure amount must be less than or equal to obligation amount', - { tags: ['cumulative'] }, - ], -]; - -module.exports = validateRecords('direct', requiredFields); - -// NOTE: This file was copied from src/server/services/validate-data/direct.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/expenditure-categories.js b/packages/server/src/arpa_reporter/services/validate-data/expenditure-categories.js deleted file mode 100644 index 6eb6aa7b2..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/expenditure-categories.js +++ /dev/null @@ -1,24 +0,0 @@ -const expenditureCategories = [ - 'budgeted personnel and services diverted to a substantially different use', - 'covid-19 testing and contact tracing', - 'economic support (other than small business, housing, and food assistance)', - 'facilitating distance learning', - 'food programs', - 'housing support', - 'improve telework capabilities of public employees', - 'medical expenses', - 'nursing home assistance', - 'payroll for public health and safety employees', - 'personal protective equipment', - 'public health expenses', - 'small business assistance', - 'unemployment benefits', - 'workers’ compensation', - 'expenses associated with the issuance of tax anticipation notes', - 'administrative expenses', - 'other expenditure amount', -]; - -module.exports = expenditureCategories; - -// NOTE: This file was copied from src/server/services/validate-data/expenditure-categories.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/grants.js b/packages/server/src/arpa_reporter/services/validate-data/grants.js deleted file mode 100644 index 9a4987607..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/grants.js +++ /dev/null @@ -1,235 +0,0 @@ -const { - cumulativeAmountIsEqual, - cumulativeAmountIsLessThanOrEqual, - dateIsInPeriodOfPerformance, - dateIsInReportingPeriod, - dateIsOnOrBefore, - dateIsOnOrBeforeCRFEndDate, - dropdownIncludes, - grantMatches, - isEqual, - isAtLeast50K, - isNotBlank, - isNumber, - isNumberOrBlank, - isSum, - isValidDate, - isValidState, - isValidSubrecipient, - isValidZip, - matchesFilePart, - numberIsLessThanOrEqual, - validateRecords, - whenGreaterThanZero, - whenNotBlank, - whenUS, -} = require('./validate'); - -const expenditureCategories = require('./expenditure-categories'); - -// type pattern for this elements of the fields array is -// [ -// columnName: string, -// validator: (val: any, content: obj?) => bool, -// message: string? -// ] -const requiredFields = [ - [ - 'project id', - matchesFilePart('projectId'), - 'The grant project id "{}" does not match the project id in the filename', - ], - [ - 'subrecipient id', - isValidSubrecipient, - 'Each grant row must have a "subrecipient id" which is included in the "subrecipient" tab', - ], - ['award number', isNotBlank, 'Award number must not be blank'], - [ - 'award payment method', - dropdownIncludes('award payment method'), - 'Award payment method "{}" is not valid', - ], - [ - 'award amount', - isAtLeast50K, - 'Contract amount must be at least $50,000', - { tags: ['v2'] }, - ], - - ['award date', isValidDate, 'Award date must be a valid date'], - [ - 'award date', - dateIsOnOrBefore('period of performance start date'), - 'Award date "{}" is not on or before the period of performance start date', - { isDateValue: true }, - ], - [ - 'award date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('expenditure start date'), - ), - 'Award date "{}" is not on or before the expenditure start date', - { isDateValue: true }, - ], - [ - 'award date', - dateIsInReportingPeriod, - 'Award date "{}" is not in the reporting period', - { isDateValue: true }, - ], - - [ - 'period of performance start date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Period of performance start date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'period of performance start date', - dateIsInPeriodOfPerformance, - 'Period of performance start date "{}" must be in the period of performance', - { isDateValue: true }, - ], - [ - 'period of performance end date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Period of performance end date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'period of performance end date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBeforeCRFEndDate, - ), - 'Period of performance end date "{}" must be on or before CRF end date', - { isDateValue: true }, - ], - [ - 'period of performance start date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('period of performance end date'), - ), - 'period of performance start date "{}" is not on or before period of performance end date', - { isDateValue: true }, - ], - - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure start date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', dateIsInReportingPeriod), - 'Expenditure state date "{}" is not in the reporting period', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('expenditure end date'), - ), - 'Expenditure start date "{}" is not on or before the expenditure end date', - { isDateValue: true }, - ], - [ - 'expenditure end date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure end date "{}" is not a valid date', - ], - - [ - 'primary place of performance address line 1', - isNotBlank, - 'primary place of performance address line 1 must not be blank', - ], - [ - 'primary place of performance city name', - isNotBlank, - 'primary place of performance city must not be blank', - ], - [ - 'primary place of performance state code', - isValidState, - 'primary place of performance state is not valid', - ], - [ - 'primary place of performance zip', - whenUS('primary place of performance country name', isValidZip), - 'primary place of performance zip must not be blank', - ], - [ - 'primary place of performance country name', - dropdownIncludes('country'), - 'primary place of performance country name "{}" is not valid', - ], - - [ - 'compliance', - dropdownIncludes( - 'is awardee complying with terms and conditions of the grant?', - ), - 'Compliance "{}" is not valid', - ], - - [ - 'current quarter obligation', - isNumberOrBlank, - 'Current quarter obligation must be an amount', - ], - [ - - 'current quarter obligation', - whenNotBlank('current quarter obligation', numberIsLessThanOrEqual('award amount')), - 'Award {{award number}}: current quarter obligation quarter obligation must be less than or equal to award amount', - ], - [ - 'award amount', - isEqual('current quarter obligation'), - 'Award amount must equal obligation amount', - { tags: ['v2'] }, - ], - [ - 'award amount', - cumulativeAmountIsEqual('current quarter obligation', grantMatches), - 'Award {{award number}}: award amount {{award amount}} must equal cumulative obligation amount {{cumulative obligation amount}} for award', - { tags: ['cumulative'] }, - ], - - [ - 'total expenditure amount', - isNumberOrBlank, - 'Total expenditure amount must be an amount', - ], - [ - 'total expenditure amount', - isSum(expenditureCategories), - 'Total expenditure amount is not the sum of all expenditure amount columns', - ], - [ - 'award amount', - cumulativeAmountIsLessThanOrEqual('total expenditure amount', grantMatches), - 'Cumulative expenditure amount must be less than or equal to award amount', - { tags: ['cumulative'] }, - ], - [ - 'other expenditure categories', - whenNotBlank('other expenditure amount', isNotBlank), - 'Other Expenditure Categories cannot be blank if Other Expenditure Amount has an amount', - ], - [ - 'other expenditure amount', - whenNotBlank('other expenditure categories', isNumber), - 'Other Expenditure Amount must be a number', - ], -]; - -module.exports = validateRecords('grants', requiredFields); - -// NOTE: This file was copied from src/server/services/validate-data/grants.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/helpers.js b/packages/server/src/arpa_reporter/services/validate-data/helpers.js deleted file mode 100644 index c6411f3bc..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/helpers.js +++ /dev/null @@ -1,40 +0,0 @@ -const _ = require('lodash'); - -const subrecipientKey = (subrecipient) => ( - // keep duns number first or tests fail - // console.log(`subrecipientKey()`) - // console.dir(subrecipient) - subrecipient['duns number'] || subrecipient['identification number'] -); - -/* getSubrecipientsHash() returns a KV table where k is the subrecipient id - and v is the subrecipient record: - { '48262': { - type: 'subrecipient', - user_id: 1, - content: { - 'identification number': '48262', - 'duns number': undefined, - 'legal name': 'HOLOGIC INC', - 'address line 1': '250 CAMPUS DR', - 'address line 2': undefined, - 'address line 3': undefined, - 'city name': 'MARLBOROUGH', - 'state code': 'MA', - zip: '01752', - 'country name': 'United States', - 'organization type': 'County Government' - }, - sourceRow: 3 - }, - ... - } - */ -const getSubrecipientsHash = (subrecipientRecords) => _.keyBy(subrecipientRecords, ({ content }) => subrecipientKey(content)); - -module.exports = { - subrecipientKey, - getSubrecipientsHash, -}; - -// NOTE: This file was copied from src/server/services/validate-data/helpers.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/index.js b/packages/server/src/arpa_reporter/services/validate-data/index.js deleted file mode 100644 index 1942b1eeb..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/index.js +++ /dev/null @@ -1,44 +0,0 @@ -const _ = require('lodash'); -const { format } = require('date-fns'); - -const { getSubrecipientsHash } = require('./helpers'); - -/* eslint-disable global-require */ -const tabValidators = [ - require('./certification'), - require('./cover'), - // require('./subrecipients'), - // require('./contracts'), - // require('./grants'), - // require('./loans'), - // require('./transfers'), - // require('./direct') -]; -/* eslint-enable global-require */ - -const validateData = (records, fileParts, reportingPeriod, periodSummaries, firstReportingPeriodStartDate) => { - const groupedRecords = _.groupBy(records, 'type'); - const subrecipientsHash = getSubrecipientsHash(groupedRecords.subrecipient); - - const validateContext = { - fileParts, - firstReportingPeriodStartDate: format(firstReportingPeriodStartDate, 'yyyy-MM-dd'), - reportingPeriod: { - startDate: format(reportingPeriod.start_date, 'yyyy-MM-dd'), - endDate: format(reportingPeriod.end_date, 'yyyy-MM-dd'), - periodOfPerformanceEndDate: format( - reportingPeriod.period_of_performance_end_date, - 'yyyy-MM-dd', - ), - crfEndDate: format(reportingPeriod.crf_end_date, 'yyyy-MM-dd'), - }, - subrecipientsHash, - tags: reportingPeriod.validation_rule_tags, - periodSummaries, - }; - return _.flatMap(tabValidators, (tabValidator) => _.take(tabValidator(groupedRecords, validateContext), 100)); -}; - -module.exports = { validateData }; - -// NOTE: This file was copied from src/server/services/validate-data/index.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/loans.js b/packages/server/src/arpa_reporter/services/validate-data/loans.js deleted file mode 100644 index 255edf49c..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/loans.js +++ /dev/null @@ -1,110 +0,0 @@ -const { - cumulativeAmountIsEqual, - dateIsInReportingPeriod, - dropdownIncludes, - isNotBlank, - isNumberOrBlank, - isPositiveNumberOrZero, - isValidDate, - isValidState, - isValidSubrecipient, - isValidZip, - loanMatches, - matchesFilePart, - numberIsLessThanOrEqual, - validateRecords, - whenNotBlank, - whenUS, -} = require('./validate'); - -// type pattern for this elements of the fields array is -// [ -// columnName: string, -// validator: (val: any, content: obj?) => bool, -// message: string? -// ] -const requiredFields = [ - [ - 'project id', - matchesFilePart('projectId'), - 'The loan project id "{}" does not match the project id in the filename', - ], - [ - 'subrecipient id', - isValidSubrecipient, - 'Each loan row must have a "subrecipient id" which is included in the "subrecipient" tab', - ], - - ['loan number', isNotBlank, 'Load number must not be blank'], - [ - - 'loan amount', - isPositiveNumberOrZero, - 'Loan amount must be a number greater than or equal to zero', - ], - ['loan date', isValidDate, 'Loan date must be a valid date'], - [ - 'loan date', - dateIsInReportingPeriod, - 'Loan date "{}" is not in the reporting period', - { isDateValue: true }, - ], - - [ - 'primary place of performance address line 1', - isNotBlank, - 'primary place of business address line 1 must not be blank ', - ], - [ - 'primary place of performance city name', - isNotBlank, - 'primary place of business city name must not be blank ', - ], - [ - 'primary place of performance state code', - isValidState, - 'primary place of business state code must not be blank ', - ], - [ - 'primary place of performance zip', - whenUS('primary place of performance country name', isValidZip), - 'primary place of business zip is not valid', - ], - [ - 'primary place of performance country name', - dropdownIncludes('country'), - 'primary place of business country name "{}" is not valid', - ], - - [ - 'current quarter obligation', - isNumberOrBlank, - 'Current quarter obligation must be an amount', - ], - [ - 'current quarter obligation', - whenNotBlank('current quarter obligation', numberIsLessThanOrEqual('loan amount')), - 'Current quarter obligation must be less than or equal to loan amount', - ], - [ - 'loan amount', - cumulativeAmountIsEqual('current quarter obligation', loanMatches), - 'Loan amount must equal cumulative obligation amount', - { tags: ['cumulative'] }, - ], - [ - 'payment amount', - whenNotBlank('payment amount', isNumberOrBlank), - 'Payment amount must be a number', - ], - [ - 'payment date', - whenNotBlank('payment amount', isValidDate), - 'Payment date must be a valid date', - { isDateValue: true }, - ], -]; - -module.exports = validateRecords('loans', requiredFields); - -// NOTE: This file was copied from src/server/services/validate-data/loans.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/subrecipients.js b/packages/server/src/arpa_reporter/services/validate-data/subrecipients.js deleted file mode 100644 index e24d92e40..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/subrecipients.js +++ /dev/null @@ -1,54 +0,0 @@ -const { - dropdownIncludes, - hasSubrecipientKey, - isNotBlank, - isValidState, - isValidZip, - validateRecords, - whenBlank, - whenUS, -} = require('./validate'); - -const requiredFields = [ - [ - '', - hasSubrecipientKey, - 'Each subrecipient must have either an "identification number" or a "duns number"', - ], - ['legal name', isNotBlank, 'Legal name must not be blank'], - [ - 'organization type', - dropdownIncludes('organization type'), - 'Organization type "{}" is not valid', - ], - - [ - 'address line 1', - whenBlank('duns number', isNotBlank), - 'Address line 1 must not be blank when DUNS number is not provided', - ], - [ - 'city name', - whenBlank('duns number', isNotBlank), - 'City name must not be blank when DUNS number is not provided', - ], - [ - 'state code', - whenBlank('duns number', whenUS('country name', isValidState)), - 'State code must be a valid state code when DUNS number is not provided', - ], - [ - 'zip', - whenBlank('duns number', whenUS('country name', isValidZip)), - 'Zip must be a valid zip when DUNS number is not provided', - ], - [ - 'country name', - whenBlank('duns number', dropdownIncludes('country')), - 'Country name must be a valid country name when DUNS number is not provided', - ], -]; - -module.exports = validateRecords('subrecipient', requiredFields); - -// NOTE: This file was copied from src/server/services/validate-data/subrecipients.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/transfers.js b/packages/server/src/arpa_reporter/services/validate-data/transfers.js deleted file mode 100644 index c6f4364f0..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/transfers.js +++ /dev/null @@ -1,155 +0,0 @@ -const { - cumulativeAmountIsEqual, - cumulativeAmountIsLessThanOrEqual, - dateIsInReportingPeriod, - dateIsOnOrBefore, - dropdownIncludes, - isEqual, - isAtLeast50K, - isNotBlank, - isNumber, - isNumberOrBlank, - isSum, - isValidDate, - isValidSubrecipient, - matchesFilePart, - numberIsLessThanOrEqual, - transferMatches, - validateRecords, - whenNotBlank, - whenGreaterThanZero, -} = require('./validate'); - -const expenditureCategories = require('./expenditure-categories'); - -// type pattern for this elements of the fields array is -// [ -// columnName: string, -// validator: (val: any, content: obj?) => bool, -// message: string? -// ] -const requiredFields = [ - [ - 'project id', - matchesFilePart('projectId'), - 'The transfer project id "{}" does not match the project id in the filename', - ], - [ - 'subrecipient id', - isValidSubrecipient, - 'Each transfer row must have a "subrecipient id" which is included in the "subrecipient" tab', - ], - ['transfer number', isNotBlank, 'Transfer number cannot be blank'], - [ - - 'award amount', - whenNotBlank('total expenditure amount', isAtLeast50K), - 'Award amount must be at least $50,000', - { tags: ['v2'] }, - ], - [ - 'transfer type', - dropdownIncludes('award payment method'), - 'Transfer type "{}" is not valid', - ], - - ['transfer date', isValidDate, 'Transfer date is not a valid date'], - [ - 'transfer date', - dateIsInReportingPeriod, - 'Transfer date "{}" is not in reporting period', - { isDateValue: true }, - ], - - [ - 'current quarter obligation', - isNumberOrBlank, - 'Current quarter obligation must be an amount', - ], - [ - - 'current quarter obligation', - whenNotBlank('current quarter obligation', numberIsLessThanOrEqual('award amount')), - 'Transfer {{transfer number}} current quarter obligation {{current quarter obligation}} must be less than or equal to the award amount', - ], - [ - 'award amount', - isEqual('current quarter obligation'), - 'Award amount must equal obligation amount', - { tags: ['v2'] }, - ], - [ - 'award amount', - cumulativeAmountIsEqual('current quarter obligation', transferMatches), - 'Award amount must equal cumulative obligation amount', - { tags: ['cumulative'] }, - ], - [ - 'award amount', - cumulativeAmountIsLessThanOrEqual('total expenditure amount', transferMatches), - 'Cumulative expenditure amount must be less than or equal to award amount', - { tags: ['cumulative'] }, - ], - - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure start date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', isValidDate), - 'Expenditure end date "{}" is not a valid date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('transfer date'), - ), - 'Expenditure start date "{}" must be on or before transfer date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero( - 'total expenditure amount', - dateIsOnOrBefore('expenditure end date'), - ), - 'Expenditure start date "{}" must be on or before expenditure end date', - { isDateValue: true }, - ], - [ - 'expenditure start date', - whenGreaterThanZero('total expenditure amount', dateIsInReportingPeriod), - 'Expenditure start date "{}" must be in reporting period', - { isDateValue: true }, - ], - - [ - 'total expenditure amount', - isNumberOrBlank, - 'Total expenditure amount must an amount', - ], - [ - 'total expenditure amount', - isSum(expenditureCategories), - 'Total expenditure amount is not the sum of all expenditure amount columns', - ], - [ - 'other expenditure categories', - whenNotBlank('other expenditure amount', isNotBlank), - 'Other Expenditure Categories cannot be blank if Other Expenditure Amount has an amount', - ], - [ - 'other expenditure amount', - whenNotBlank('other expenditure categories', isNumber), - 'Other Expenditure Amount must be a number', - ], -]; - -module.exports = validateRecords('transfers', requiredFields); - -// NOTE: This file was copied from src/server/services/validate-data/transfers.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z diff --git a/packages/server/src/arpa_reporter/services/validate-data/validate.js b/packages/server/src/arpa_reporter/services/validate-data/validate.js deleted file mode 100644 index 20c5b03b9..000000000 --- a/packages/server/src/arpa_reporter/services/validate-data/validate.js +++ /dev/null @@ -1,392 +0,0 @@ -const ssf = require('ssf'); -const mustache = require('mustache'); -const _ = require('lodash'); -const { ValidationItem } = require('../../lib/validation-log'); -const { log } = require('../../lib/log'); -const { subrecipientKey } = require('./helpers'); - -function dateIsInPeriodOfPerformance(val, content, { reportingPeriod }) { - const dt = ssf.format('yyyy-MM-dd', val); - return dt >= '2020-03-01' && dt <= reportingPeriod.periodOfPerformanceEndDate; -} - -function dateIsInReportingPeriod(val, content, { firstReportingPeriodStartDate, reportingPeriod }) { - const dt = ssf.format('yyyy-MM-dd', val); - return dt >= firstReportingPeriodStartDate && dt <= reportingPeriod.endDate; -} - -function dateIsOnOrBefore(key) { - return (val, content) => new Date(val).getTime() <= new Date(content[key]).getTime(); -} - -function dateIsOnOrBeforeCRFEndDate(val, content, { reportingPeriod }) { - const dt = ssf.format('yyyy-MM-dd', val); - return dt <= reportingPeriod.crfEndDate; -} - -function dateIsOnOrAfter(key) { - return (val, content) => new Date(val).getTime() >= new Date(content[key]).getTime(); -} - -function hasSubrecipientKey(val, content) { - return !!subrecipientKey(content); -} - -function isNotBlank(val) { - return _.isNumber(val) || !_.isEmpty(val); -} - -function isNumber(val) { - return _.isNumber(val); -} - -function isNumberOrBlank(val) { - return _.isEmpty(val) || _.isNumber(val); -} - -function isPositiveNumber(val) { - return _.isNumber(val) && val > 0; -} - -function isPositiveNumberOrZero(val) { - return _.isNumber(val) ? val >= 0 : _.isEmpty(val); -} - -function isAtLeast50K(val) { - return _.isNumber(val) && val >= 50000; -} - -function isEqual(column) { - return (val, content) => { - const f1 = parseFloat(val) || 0.0; - const f2 = parseFloat(content[column]) || 0.0; - return Math.abs(f1 - f2) < 0.01; - }; -} - -function isSum(columns) { - return (val, content) => { - let sum = _.reduce( - columns, - (acc, c) => { - if (!c) { - return acc; - } - const f = parseFloat(content[c]) || 0.0; - return acc + f; - }, - 0.0, - ); - val = Number(val) || 0; // can come in as a string - val = _.round(val, 2); - sum = _.round(sum, 2); // parseFloat returns junk in the 11th decimal place - if (val !== sum) { - // console.log(`val is ${val}, sum is ${sum}`); - } - return val === sum; - }; -} - -function periodSummaryKey(key) { - switch (key) { - case 'current quarter obligation': - return 'current_obligation'; - case 'total expenditure amount': - return 'current_expenditure'; - default: - return ''; - } -} - -function withoutLeadingZeroes(v) { - return `${v}`.replace(/^0+/, ''); -} - -function summaryMatches(type, id, content) { - return (s) => { - const isMatch = s.award_type === type - && withoutLeadingZeroes(s.project_code) === withoutLeadingZeroes(content['project id']) - && `${content[id]}` === s.award_number; - // console.log('summary:', s); - // console.log('content:', content); - // console.log(s.award_type === type); - // console.log(withoutLeadingZeroes(s.project_code) === withoutLeadingZeroes(content['project id'])); - // console.log(content[id] === s.award_number); - return isMatch; - }; -} - -function contractMatches(content) { - return summaryMatches('contracts', 'contract number', content); -} - -function directMatches(content) { - return (s) => { - const awardNumber = `${content['subrecipient id']}:${content['obligation date']}`; - const isMatch = s.award_type === 'direct' - && withoutLeadingZeroes(s.project_code) === withoutLeadingZeroes(content['project id']) - && awardNumber === s.award_number; - return isMatch; - }; -} - -function grantMatches(content) { - return summaryMatches('grants', 'award number', content); -} - -function loanMatches(content) { - return summaryMatches('loans', 'loan number', content); -} - -function transferMatches(content) { - return summaryMatches('transfers', 'transfer number', content); -} - -function cumulativeAmount(key, content, periodSummaries, filterPredicate) { - const summaries = _.get(periodSummaries, 'periodSummaries'); - return _.chain(summaries) - .filter(filterPredicate(content)) - .map(periodSummaryKey(key)) - .reduce((acc, s) => acc + Number(s) || 0.0, 0.0) - .value(); -} - -function cumulativeAmountIsEqual(key, filterPredicate) { - return (val, content, { periodSummaries }) => { - const currentPeriodAmount = Number(content[key]) || 0.0; - const previousPeriodsAmount = cumulativeAmount(key, content, periodSummaries, filterPredicate); - const b = _.round(val, 2) === _.round(currentPeriodAmount + previousPeriodsAmount, 2); - if (!b) { - log('validate.js/cumulativeAmountIsEqual():', - key, - val, - 'current:', currentPeriodAmount, - 'previous:', previousPeriodsAmount, - 'total:', currentPeriodAmount + previousPeriodsAmount); - log('content:'); - log(JSON.stringify(content)); - } - return b; - }; -} - -function cumulativeAmountIsLessThanOrEqual(key, filterPredicate) { - return (val, content, { periodSummaries }) => { - const currentPeriodAmount = Number(content[key]) || 0.0; - const previousPeriodsAmount = cumulativeAmount(key, content, periodSummaries, filterPredicate); - const b = _.round(currentPeriodAmount + previousPeriodsAmount, 2) <= _.round(val, 2); - if (!b) { - console.log('cumulativeAmountIsLessThanOrEqual:', - key, - val, - 'current:', currentPeriodAmount, - 'previous:', previousPeriodsAmount, - 'total:', currentPeriodAmount + previousPeriodsAmount); - console.log('content:', JSON.stringify(content)); - } - return b; - }; -} - -function isValidDate(val) { - return !_.isNaN(new Date(val).getTime()); -} - -function isValidSubrecipient(val, content, { subrecipientsHash }) { - return _.has(subrecipientsHash, val); -} - -function isUnitedStates(value) { - return value === 'usa' || value === 'united states'; -} - -// TODO: re-write this -// eslint-disable-next-line no-unused-vars -function dropdownIncludes(key) { - // eslint-disable-next-line no-unused-vars - return (val) => true; -} - -function isValidState(val) { - log(`isValidState(${val})`); - return ( - dropdownIncludes('state code')(val) - ); -} - -function isValidZip(val) { - return /^\d{5}(-\d{4})?$/.test(`${val}`); -} - -function matchesFilePart(key) { - return function (val, content, { fileParts }) { - const fileValue = fileParts[key].replace(/^0*/, ''); - const documentValue = (val || '').toString().replace(/^0*/, ''); - return documentValue === fileValue; - }; -} - -function numberIsLessThanOrEqual(key) { - return (val, content) => { - const other = _.isNumber(content[key]) ? content[key] : 0.00; - const b = _.isNumber(val) && _.isNumber(other) && val <= other; - if (!b) { - console.log('numberIsLessThanOrEqual fails:', key, val, _.isNumber(val), other, _.isNumber(other), val <= other); - } - return b; - }; -} - -function numberIsGreaterThanOrEqual(key) { - return (val, content) => { - const other = _.isNumber(content[key]) ? content[key] : 0.00; - return _.isNumber(val) && _.isNumber(other) && val >= other; - }; -} - -function whenBlank(key, validator) { - return (val, content, context) => !!content[key] || validator(val, content, context); -} - -function whenNotBlank(key, validator) { - return (val, content, context) => !content[key] || validator(val, content, context); -} - -function whenUS(key, validator) { - return (val, content, context) => !isUnitedStates(content[key]) - || validator(val, content, context); -} - -function whenGreaterThanZero(key, validator) { - return (val, content, context) => (content[key] > 0 ? validator(val, content, context) : true); -} - -function addValueToMessage(message, value, content) { - const s = message.replace('{}', `${value || ''}`); - return mustache.render(s, content); -} - -function messageValue(val, options) { - if (options && options.isDateValue && val) { - const dt = new Date(val).getTime(); - return _.isNaN(dt) ? val : ssf.format('MM/dd/yyyy', val); - } - return val; -} - -function includeValidator(options, context) { - const tags = _.get(options, 'tags'); - if (!tags) { - return true; - } - if (!context.tags) { - return false; - } - return !_.isEmpty(_.intersection(tags, context.tags)); -} - -function validateFields(requiredFields, content, tab, row, context = {}) { - // console.log("------ required fields are:"); - // console.dir(requiredFields); - // console.log("------content is"); - // console.dir(content); - // console.log("------content end"); - const valog = []; - requiredFields.forEach(([key, validator, message, options]) => { - if (includeValidator(options, context)) { - const val = content[key] || ''; - if (!validator(val, content, context)) { - // console.log(`val ${val}, content:`); - // console.dir(content); - // console.log(`val ${val}, context:`); - // console.dir(context); - const finalMessage = addValueToMessage( - message || `Empty or invalid entry for ${key}: "{}"`, - messageValue(val, options), - content, - ); - console.log(finalMessage); - valog.push( - new ValidationItem({ - message: finalMessage, - tab, - row, - }), - ); - } - } - }); - return valog; -} - -function validateRecords(tab, validations) { - return function (groupedRecords, validateContext) { - const records = groupedRecords[tab]; - return _.flatMap(records, ({ content, sourceRow }) => validateFields( - validations, - content, - tab, - sourceRow, - validateContext, - )); - }; -} - -function validateSingleRecord(tab, validations, message) { - return function (groupedRecords, validateContext) { - const records = groupedRecords[tab]; - let valog = []; - - if (records && records.length === 1) { - const { content } = records[0]; - const row = 2; - const results = validateFields(validations, content, tab, row, validateContext); - valog = valog.concat(results); - } else { - valog.push(new ValidationItem({ message, tab })); - } - return valog; - }; -} - -module.exports = { - contractMatches, - cumulativeAmountIsEqual, - cumulativeAmountIsLessThanOrEqual, - dateIsInPeriodOfPerformance, - dateIsInReportingPeriod, - dateIsOnOrBefore, - dateIsOnOrBeforeCRFEndDate, - dateIsOnOrAfter, - directMatches, - grantMatches, - dropdownIncludes, - hasSubrecipientKey, - isEqual, - isAtLeast50K, - isNotBlank, - isNumber, - isNumberOrBlank, - isPositiveNumber, - isPositiveNumberOrZero, - isSum, - isValidDate, - isValidState, - isValidSubrecipient, - isValidZip, - loanMatches, - matchesFilePart, - messageValue, - numberIsLessThanOrEqual, - numberIsGreaterThanOrEqual, - transferMatches, - validateRecords, - validateFields, - validateSingleRecord, - whenBlank, - whenGreaterThanZero, - whenNotBlank, - whenUS, -}; - -// NOTE: This file was copied from src/server/services/validate-data/validate.js (git @ ada8bfdc98) in the arpa-reporter repo on 2022-09-23T20:05:47.735Z From 4522feff7e81697a337ffab96e492d27db92035a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 20:20:36 +0000 Subject: [PATCH 09/19] chore(deps): bump cloudposse/efs/aws in /terraform/modules/gost_api (#2305) Bumps [cloudposse/efs/aws](https://github.com/cloudposse/terraform-aws-efs) from 0.34.0 to 0.35.0. - [Release notes](https://github.com/cloudposse/terraform-aws-efs/releases) - [Commits](https://github.com/cloudposse/terraform-aws-efs/compare/0.34.0...0.35.0) --- updated-dependencies: - dependency-name: cloudposse/efs/aws dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- terraform/modules/gost_api/storage.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/modules/gost_api/storage.tf b/terraform/modules/gost_api/storage.tf index 188cd64df..3450ae7cd 100644 --- a/terraform/modules/gost_api/storage.tf +++ b/terraform/modules/gost_api/storage.tf @@ -1,6 +1,6 @@ module "efs_data_volume" { source = "cloudposse/efs/aws" - version = "0.34.0" + version = "0.35.0" context = module.this.context name = "${var.namespace}-data_volume" From c9fc2aa18a21d9a1dac3cb16a0fd2ac62ffa6740 Mon Sep 17 00:00:00 2001 From: Steven Bowen Date: Tue, 5 Dec 2023 15:35:07 -0500 Subject: [PATCH 10/19] feat: digest email design update (#2248) * feat: digest email design update * refactor: remove all html tags from description --- .../server/__tests__/db/seeds/fixtures.js | 6 +-- packages/server/__tests__/email/email.test.js | 8 +++- packages/server/src/lib/email.js | 17 ++++--- .../_additional_grants_button.html | 41 ++++++++-------- .../email_templates/_content_spacer.html | 10 ++-- .../email_templates/_formatted_body.html | 14 +++--- .../static/email_templates/_grant_detail.html | 48 +++++++------------ .../src/static/email_templates/base.html | 29 +++++------ 8 files changed, 84 insertions(+), 89 deletions(-) diff --git a/packages/server/__tests__/db/seeds/fixtures.js b/packages/server/__tests__/db/seeds/fixtures.js index ee3c303a1..8f0a93a97 100644 --- a/packages/server/__tests__/db/seeds/fixtures.js +++ b/packages/server/__tests__/db/seeds/fixtures.js @@ -117,7 +117,7 @@ const grants = { search_terms: '[in title/desc]+', reviewer_name: 'none', opportunity_category: 'Discretionary', - description: '

The Division of Earth Sciences (EAR) awards Postdoctoral Fellowships

', + description: 'The Division of Earth Sciences (EAR) awards Postdoctoral Fellowships', eligibility_codes: '25', opportunity_status: 'posted', raw_body: 'raw body', @@ -141,7 +141,7 @@ const grants = { search_terms: '[in title/desc]+', reviewer_name: 'none', opportunity_category: 'Discretionary', - description: '

Health Aide Program for Covid

', + description: ' Health Aide Program for Covid', eligibility_codes: '11 07 25', opportunity_status: 'posted', raw_body: 'raw body', @@ -165,7 +165,7 @@ const grants = { search_terms: '[in title/desc]+', reviewer_name: 'none', opportunity_category: 'Discretionary', - description: '

The Tactical Technology Office (TTO) of the Defense Advanced Research Projects Agency (DARPA)

', + description: 'The Tactical Technology Office (TTO) of the Defense Advanced Research Projects Agency (DARPA)', eligibility_codes: '11', opportunity_status: 'posted', raw_body: 'raw body', diff --git a/packages/server/__tests__/email/email.test.js b/packages/server/__tests__/email/email.test.js index 625baca46..e58c1be56 100644 --- a/packages/server/__tests__/email/email.test.js +++ b/packages/server/__tests__/email/email.test.js @@ -364,13 +364,15 @@ describe('Email sender', () => { const agencies = await db.getAgency(fixtures.agencies.accountancy.id); const agency = agencies[0]; agency.matched_grants = [fixtures.grants.healthAide]; - const body = await email.buildDigestBody(agency.matched_grants); + const body = await email.buildDigestBody({ name: 'Saved search test', openDate: '2021-08-05', matchedGrants: agency.matched_grants }); expect(body).to.include(fixtures.grants.healthAide.description); }); it('builds only first 3 grants if >3 available', async () => { const agencies = await db.getAgency(fixtures.agencies.accountancy.id); const agency = agencies[0]; const ignoredGrant = { ...fixtures.grants.healthAide }; + const name = 'Saved search test'; + const openDate = moment().subtract(1, 'day').format('YYYY-MM-DD'); ignoredGrant.description = 'Added a brand new description'; const updateFn = (int) => { @@ -380,7 +382,7 @@ describe('Email sender', () => { }; const additionalGrants = [...Array(30).keys()].map(updateFn); agency.matched_grants = [...additionalGrants, ...[fixtures.grants.healthAide, fixtures.grants.earFellowship, fixtures.grants.redefiningPossible]]; - const body = await email.buildDigestBody(agency.matched_grants); + const body = await email.buildDigestBody({ name, openDate, matchedGrants: agency.matched_grants }); /* the last 3 grants should not be included in the email */ expect(body).to.not.include(fixtures.grants.healthAide.description); @@ -389,6 +391,8 @@ describe('Email sender', () => { /* the first 30 grants should be included in the email */ additionalGrants.forEach((grant) => expect(body).to.include(grant.description)); + expect(body).to.include(name); + expect(body).to.include(moment(openDate).format('MMMM Do YYYY')); }); }); context('getAndSendGrantForSavedSearch', () => { diff --git a/packages/server/src/lib/email.js b/packages/server/src/lib/email.js index ec9a070ea..bf1a25190 100644 --- a/packages/server/src/lib/email.js +++ b/packages/server/src/lib/email.js @@ -117,10 +117,13 @@ function sendWelcomeEmail(email, httpOrigin) { function getGrantDetail(grant, emailNotificationType) { const grantDetailTemplate = fileSystem.readFileSync(path.join(__dirname, '../static/email_templates/_grant_detail.html')); + + const description = grant.description.substring(0, 380).replace(/(<([^>]+)>)/ig, ''); + const grantDetail = mustache.render( grantDetailTemplate.toString(), { title: grant.title, - description: grant.description && grant.description.length > 400 ? `${grant.description.substring(0, 400)}...` : grant.description, + description, status: grant.opportunity_status, show_date_range: grant.open_date && grant.close_date, open_date: grant.open_date ? new Date(grant.open_date).toLocaleDateString('en-US', { timeZone: 'UTC' }) : undefined, @@ -193,7 +196,7 @@ async function sendGrantAssignedEmail({ grantId, agencyIds, userId }) { agencies.forEach((agency) => module.exports.sendGrantAssignedNotficationForAgency(agency, grantDetail, userId)); } -async function buildDigestBody(matchedGrants) { +async function buildDigestBody({ name, openDate, matchedGrants }) { const grantDetails = []; matchedGrants.slice(0, 30).forEach((grant) => grantDetails.push(module.exports.getGrantDetail(grant, notificationType.grantDigest))); @@ -201,14 +204,14 @@ async function buildDigestBody(matchedGrants) { const contentSpacerTemplate = fileSystem.readFileSync(path.join(__dirname, '../static/email_templates/_content_spacer.html')); const contentSpacerStr = contentSpacerTemplate.toString(); - let additionalBody = grantDetails.join(contentSpacerStr); + let additionalBody = grantDetails.join(contentSpacerStr).concat(contentSpacerStr); const additionalButtonTemplate = fileSystem.readFileSync(path.join(__dirname, '../static/email_templates/_additional_grants_button.html')); additionalBody += mustache.render(additionalButtonTemplate.toString(), { additional_grants_url: `${process.env.WEBSITE_DOMAIN}/#/grants` }); const formattedBody = mustache.render(formattedBodyTemplate.toString(), { - body_title: 'New grants have been posted', - body_detail: `There are ${matchedGrants.length} new grants matching your keywords and settings.`, + body_title: `${name} - ${matchedGrants.length} NEW GRANTS`, + body_detail: moment(openDate).format('MMMM Do YYYY'), additional_body: additionalBody, }); @@ -230,10 +233,10 @@ async function sendGrantDigest({ return; } - const formattedBody = await buildDigestBody(matchedGrants); + const formattedBody = await buildDigestBody({ name, openDate, matchedGrants }); const emailHTML = module.exports.addBaseBranding(formattedBody, { - tool_name: 'Grants Identification Tool', + tool_name: 'Federal Grant Finder', title: 'New Grants Digest', notifications_url: `${process.env.WEBSITE_DOMAIN}/#/grants?manageSettings=true`, }); diff --git a/packages/server/src/static/email_templates/_additional_grants_button.html b/packages/server/src/static/email_templates/_additional_grants_button.html index 40333acc4..4b6f1209f 100644 --- a/packages/server/src/static/email_templates/_additional_grants_button.html +++ b/packages/server/src/static/email_templates/_additional_grants_button.html @@ -1,13 +1,13 @@ -
+ diff --git a/packages/server/src/static/email_templates/_content_spacer.html b/packages/server/src/static/email_templates/_content_spacer.html index 31a297a6d..404d54d57 100644 --- a/packages/server/src/static/email_templates/_content_spacer.html +++ b/packages/server/src/static/email_templates/_content_spacer.html @@ -1,11 +1,11 @@
+ style="padding:0;Margin:0;padding-top:28px;padding-bottom:28px;padding-left:20px;padding-right:20px"> @@ -17,22 +17,25 @@ role="presentation" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px"> - +
- - See - all new grants - - +
+ + See all new grants + + +
+
-
+ - + style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#f6f6f6;width:640px" + cellspacing="0" cellpadding="0" bgcolor="#f6f6f6" align="center"> +
+ style="padding:0;Margin:0;background:#FFFFFF none repeat scroll 0% 0%;height:1px;width:100%;margin:0px">
diff --git a/packages/server/src/static/email_templates/_formatted_body.html b/packages/server/src/static/email_templates/_formatted_body.html index d3b5246d1..bb171ab4f 100644 --- a/packages/server/src/static/email_templates/_formatted_body.html +++ b/packages/server/src/static/email_templates/_formatted_body.html @@ -1,12 +1,12 @@ -
+ -
+ @@ -15,19 +15,19 @@ style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px"> {{#body_title}} - {{/body_title}} {{#body_detail}} - diff --git a/packages/server/src/static/email_templates/_grant_detail.html b/packages/server/src/static/email_templates/_grant_detail.html index 31ad24e34..ede16230e 100644 --- a/packages/server/src/static/email_templates/_grant_detail.html +++ b/packages/server/src/static/email_templates/_grant_detail.html @@ -1,7 +1,7 @@
+

- {{body_title}} + style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:normal;letter-spacing: 1px; text-transform: uppercase; color:#000000;font-size:14px"> + {{body_title}}

+

+ style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:normal;letter-spacing: 1px;color:#43464A;font-size:14px"> {{{body_detail}}}

-
+ @@ -13,57 +13,45 @@
- - - - - diff --git a/packages/server/src/static/email_templates/base.html b/packages/server/src/static/email_templates/base.html index 08e55a1c5..116d004a6 100644 --- a/packages/server/src/static/email_templates/base.html +++ b/packages/server/src/static/email_templates/base.html @@ -388,15 +388,15 @@
-

+

+ +

{{title}}

+
+

- {{{description}}} + {{{description}}}... View on Grants.gov

- - - - -
-
-
+ style="Margin:0">

- Status: {{status}}
+ Status: {{status}}
{{#show_date_range}} - Valid from: {{open_date}} - {{close_date}}
+ Valid From: {{open_date}} - {{close_date}}
{{/show_date_range}} - Award Range: {{award_floor}} – {{award_ceiling}}
+ Award Range: {{award_floor}} - {{award_ceiling}}
{{#estimated_funding}} - Estimated Total Program Funding:{{estimated_funding}}
+ Estimated Total Program Funding: {{estimated_funding}}
{{/estimated_funding}} {{#cost_sharing}} - Cost Sharing:{{cost_sharing}}
+ Cost Sharing: {{cost_sharing}}
{{/cost_sharing}} - View in Grants.gov

-
- +
- @@ -476,11 +473,11 @@
+ style="padding:0;Margin:0;font-size:0px">
+ + style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:#F6F6F6;width:640px" + cellspacing="0" cellpadding="0" bgcolor="#F6F6F6" align="center"> -
@@ -458,9 +458,6 @@ cellpadding="0" border="0" role="presentation" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px">
-
+ style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%;background-color:#F0F0F0;background-repeat:repeat;background-position:center top">