From cf2b68924664d09c0efa075cac9fd0170b107ec6 Mon Sep 17 00:00:00 2001 From: James Nixon Date: Wed, 27 Mar 2024 14:12:58 -0400 Subject: [PATCH] update for release v1.0.6 --- CHANGELOG.md | 16 + source/infrastructure/cdk.json | 2 +- source/infrastructure/package-lock.json | 4 +- source/infrastructure/package.json | 2 +- .../test/mock-lambda-func/java-lambda/pom.xml | 2 +- .../node-lambda/package-lock.json | 4 +- .../mock-lambda-func/node-lambda/package.json | 2 +- .../test/mock-ui/package-lock.json | 28 +- .../infrastructure/test/mock-ui/package.json | 2 +- .../create-presigned-url/package-lock.json | 4 +- .../lambda/create-presigned-url/package.json | 2 +- .../lambda/entity-detection/package-lock.json | 4 +- source/lambda/entity-detection/package.json | 4 +- .../entity-detection/test/event-test-data.js | 521 +++++++++++++++++- .../generic-entity-detection-strategy.spec.js | 14 + .../medical-entity-detection-strategy.spec.js | 16 +- .../pii-entity-detection-stategy.spec.js | 15 + .../test/utils/generic.spec.js | 6 + .../entity-detection/test/utils/sync.spec.js | 4 +- .../generic-entity-detection-strategy.js | 18 +- .../medical-entity-detection-strategy.js | 20 +- .../entity/pii-entity-detection-strategy.js | 20 +- .../lambda/entity-detection/utils/generic.js | 13 +- source/lambda/fetch-records/package-lock.json | 4 +- source/lambda/fetch-records/package.json | 4 +- .../lambda/get-inferences/package-lock.json | 4 +- source/lambda/get-inferences/package.json | 2 +- .../package-lock.json | 4 +- .../aws-node-user-agent-config/package.json | 4 +- .../layers/aws-sdk-lib/package-lock.json | 4 +- source/lambda/layers/aws-sdk-lib/package.json | 4 +- .../layers/common-node-lib/package-lock.json | 8 +- .../layers/common-node-lib/package.json | 2 +- .../layers/custom-java-sdk-config/pom.xml | 26 +- .../lambda/layers/custom_boto3_init/setup.py | 2 +- source/lambda/redact-content/pom.xml | 16 +- source/lambda/search/package-lock.json | 4 +- source/lambda/search/package.json | 4 +- .../send-notification/package-lock.json | 4 +- source/lambda/send-notification/package.json | 4 +- source/lambda/text-extract/package-lock.json | 4 +- source/lambda/text-extract/package.json | 4 +- .../lambda/upload-document/package-lock.json | 4 +- source/lambda/upload-document/package.json | 4 +- .../workflow-orchestrator/package-lock.json | 8 +- .../lambda/workflow-orchestrator/package.json | 4 +- source/ui/package-lock.json | 16 +- source/ui/package.json | 4 +- 48 files changed, 732 insertions(+), 139 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d19e131..32a734e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +======= + +## [1.0.6] - 2024-03-27 + +### Security + +- Updated node modules to patch vulnerabilities + +### Fixed + +- Fixed a bug in the entity detection code which caused failures on an edge case with repeating words ([issue 34](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/issues/34)) + +### Updated + +- Failure on a single entity now does not cause the whole workflow to fail, instead logging an error message and continuing + ## [1.0.5] - 2024-03-05 ### Updated diff --git a/source/infrastructure/cdk.json b/source/infrastructure/cdk.json index e46d0ef..d16f958 100644 --- a/source/infrastructure/cdk.json +++ b/source/infrastructure/cdk.json @@ -62,7 +62,7 @@ "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true, "solution_id": "SO0281", "solution_name": "enhanced-document-understanding-on-aws", - "solution_version": "v1.0.4", + "solution_version": "v1.0.6", "app_namespace": "app.idp", "app_registry_name": "enhanced-document-understanding", "application_type": "AWS-Solutions", diff --git a/source/infrastructure/package-lock.json b/source/infrastructure/package-lock.json index d8e285a..da84585 100644 --- a/source/infrastructure/package-lock.json +++ b/source/infrastructure/package-lock.json @@ -1,12 +1,12 @@ { "name": "enhanced-document-understanding-on-aws-infrastructure", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "enhanced-document-understanding-on-aws-infrastructure", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "@aws-cdk/aws-servicecatalogappregistry-alpha": "2.118.0-alpha.0", diff --git a/source/infrastructure/package.json b/source/infrastructure/package.json index 7345ce6..c7d2071 100644 --- a/source/infrastructure/package.json +++ b/source/infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "enhanced-document-understanding-on-aws-infrastructure", - "version": "1.0.4", + "version": "1.0.6", "bin": { "infrastructure": "bin/dus.js" }, diff --git a/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml b/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml index 5857e98..f4478ff 100644 --- a/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml +++ b/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml @@ -6,7 +6,7 @@ 4.0.0 example java-lambda - 1.0.4 + 1.0.6 mock-java-lambda diff --git a/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json b/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json index c2dab44..d8366ae 100644 --- a/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json +++ b/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json @@ -1,12 +1,12 @@ { "name": "node-lambda", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "node-lambda", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0" } } diff --git a/source/infrastructure/test/mock-lambda-func/node-lambda/package.json b/source/infrastructure/test/mock-lambda-func/node-lambda/package.json index 01a9a91..7a1cd17 100644 --- a/source/infrastructure/test/mock-lambda-func/node-lambda/package.json +++ b/source/infrastructure/test/mock-lambda-func/node-lambda/package.json @@ -1,6 +1,6 @@ { "name": "node-lambda", - "version": "1.0.4", + "version": "1.0.6", "description": "A mock lambda implementation for CDK infrastructure unit", "main": "index.js", "scripts": { diff --git a/source/infrastructure/test/mock-ui/package-lock.json b/source/infrastructure/test/mock-ui/package-lock.json index 6171aa6..56083bc 100644 --- a/source/infrastructure/test/mock-ui/package-lock.json +++ b/source/infrastructure/test/mock-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "mock-react-app", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mock-react-app", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "react": "^18.2.0" @@ -8062,9 +8062,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -17112,9 +17112,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -23919,9 +23919,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true }, "for-each": { @@ -30472,9 +30472,9 @@ } }, "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "requires": { "colorette": "^2.0.10", diff --git a/source/infrastructure/test/mock-ui/package.json b/source/infrastructure/test/mock-ui/package.json index 367bb31..3d1c53a 100644 --- a/source/infrastructure/test/mock-ui/package.json +++ b/source/infrastructure/test/mock-ui/package.json @@ -1,6 +1,6 @@ { "name": "mock-react-app", - "version": "1.0.4", + "version": "1.0.6", "description": "Mock Reactjs app used for unit testing constructs", "main": "index.js", "scripts": { diff --git a/source/lambda/create-presigned-url/package-lock.json b/source/lambda/create-presigned-url/package-lock.json index 83575f6..07538a6 100644 --- a/source/lambda/create-presigned-url/package-lock.json +++ b/source/lambda/create-presigned-url/package-lock.json @@ -1,12 +1,12 @@ { "name": "create-presigned-url", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "create-presigned-url", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/create-presigned-url/package.json b/source/lambda/create-presigned-url/package.json index 8c41b6f..cceb98a 100644 --- a/source/lambda/create-presigned-url/package.json +++ b/source/lambda/create-presigned-url/package.json @@ -1,6 +1,6 @@ { "name": "create-presigned-url", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda has minimal permissions required to create downloadable presigned URLs for documents.", "main": "index.js", "scripts": { diff --git a/source/lambda/entity-detection/package-lock.json b/source/lambda/entity-detection/package-lock.json index 3864fbf..25a9c3a 100644 --- a/source/lambda/entity-detection/package-lock.json +++ b/source/lambda/entity-detection/package-lock.json @@ -1,12 +1,12 @@ { "name": "entity-detection", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "entity-detection", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.7.0", diff --git a/source/lambda/entity-detection/package.json b/source/lambda/entity-detection/package.json index e81a1f9..f8a1bc8 100644 --- a/source/lambda/entity-detection/package.json +++ b/source/lambda/entity-detection/package.json @@ -1,6 +1,6 @@ { "name": "entity-detection", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda function detects entities within Text", "main": "index.js", "scripts": { @@ -27,4 +27,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/lambda/entity-detection/test/event-test-data.js b/source/lambda/entity-detection/test/event-test-data.js index d34f343..cbfcaa5 100644 --- a/source/lambda/entity-detection/test/event-test-data.js +++ b/source/lambda/entity-detection/test/event-test-data.js @@ -137,6 +137,26 @@ exports.textractDetectTextInference = [ } ] }, + { + 'BlockType': 'LINE', + 'Confidence': 98.38265228271484, + 'Text': 'it is it is repeating.', + 'Geometry': { + 'BoundingBox': { + 'Width': 5, + 'Height': 1, + 'Left': 0, + 'Top': 2 + } + }, + 'Id': 'line3', + 'Relationships': [ + { + 'Type': 'CHILD', + 'Ids': ['word13', 'word14', 'word15', 'word16', 'word17'] + } + ] + }, { 'BlockType': 'WORD', 'Confidence': 98.13988494873047, @@ -316,6 +336,81 @@ exports.textractDetectTextInference = [ } }, 'Id': 'word12' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'it', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 0, + 'Top': 2 + } + }, + 'Id': 'word13' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'is', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 1, + 'Top': 2 + } + }, + 'Id': 'word14' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'it', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 2, + 'Top': 2 + } + }, + 'Id': 'word15' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'is', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 3, + 'Top': 2 + } + }, + 'Id': 'word16' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'repeating', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 4, + 'Top': 2 + } + }, + 'Id': 'word17' } ] }, @@ -400,6 +495,26 @@ exports.textractDetectTextInference = [ } ] }, + { + 'BlockType': 'LINE', + 'Confidence': 98.38265228271484, + 'Text': 'it is it is repeating.', + 'Geometry': { + 'BoundingBox': { + 'Width': 5, + 'Height': 1, + 'Left': 0, + 'Top': 2 + } + }, + 'Id': 'line3', + 'Relationships': [ + { + 'Type': 'CHILD', + 'Ids': ['word13', 'word14', 'word15', 'word16', 'word17'] + } + ] + }, { 'BlockType': 'WORD', 'Confidence': 98.13988494873047, @@ -579,12 +694,87 @@ exports.textractDetectTextInference = [ } }, 'Id': 'word12' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'it', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 0, + 'Top': 2 + } + }, + 'Id': 'word13' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'is', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 1, + 'Top': 2 + } + }, + 'Id': 'word14' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'it', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 2, + 'Top': 2 + } + }, + 'Id': 'word15' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'is', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 3, + 'Top': 2 + } + }, + 'Id': 'word16' + }, + { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'repeating', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 4, + 'Top': 2 + } + }, + 'Id': 'word17' } ] } ]; -exports.textractFullPageText = 'This is a 2023 test about John Doe, New York. john doe.'; +exports.textractFullPageText = 'This is a 2023 test about John Doe, New York. john doe. it is it is repeating'; exports.expectedSyncComprehendResponse = { 'Entities': [ @@ -622,6 +812,13 @@ exports.expectedSyncComprehendResponse = { 'Text': 'john doe', 'BeginOffset': 46, 'EndOffset': 54 + }, + { + 'Score': 0.8900869488716125, + 'Type': 'OTHER', + 'Text': 'it is repeating', + 'BeginOffset': 56, + 'EndOffset': 77 } ] }; @@ -701,6 +898,191 @@ exports.expectedSyncComprehendMedicalResponse = { }; exports.expectedEntityLocations = { + 'DATE': { + '2023': { + '1': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 3, + 'Top': 0, + 'Width': 1 + } + ], + 'Score': 0.8919363021850586 + } + ], + '2': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 3, + 'Top': 0, + 'Width': 1 + } + ], + 'Score': 0.8919363021850586 + } + ] + } + }, + 'LOCATION': { + 'NEW YORK': { + '1': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 1, + 'Top': 1, + 'Width': 2 + } + ], + 'Score': 0.8900869488716125 + } + ], + '2': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 1, + 'Top': 1, + 'Width': 2 + } + ], + 'Score': 0.8900869488716125 + } + ] + } + }, + 'OTHER': { + 'IT IS REPEATING': { + '1': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 2, + 'Top': 2, + 'Width': 3 + } + ], + 'Score': 0.8900869488716125 + } + ], + '2': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 2, + 'Top': 2, + 'Width': 3 + } + ], + 'Score': 0.8900869488716125 + } + ] + }, + 'THIS IS A 2023': { + '1': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 0, + 'Top': 0, + 'Width': 4 + } + ], + 'Score': 0.8900869488716125 + } + ], + '2': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 0, + 'Top': 0, + 'Width': 4 + } + ], + 'Score': 0.8900869488716125 + } + ] + } + }, + 'PERSON': { + 'JOHN DOE': { + '1': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 6, + 'Top': 0, + 'Width': 1 + }, + { + 'Height': 1, + 'Left': 0, + 'Top': 1, + 'Width': 1 + } + ], + 'Score': 0.8900869488716125 + }, + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 3, + 'Top': 1, + 'Width': 2 + } + ], + 'Score': 0.8900869488716125 + } + ], + '2': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 6, + 'Top': 0, + 'Width': 1 + }, + { + 'Height': 1, + 'Left': 0, + 'Top': 1, + 'Width': 1 + } + ], + 'Score': 0.8900869488716125 + }, + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 3, + 'Top': 1, + 'Width': 2 + } + ], + 'Score': 0.8900869488716125 + } + ] + } + } +}; + +exports.expectedPiiEntityLocations = { 'DATE': { '2023': { '1': [ @@ -921,7 +1303,7 @@ exports.expectedPiiEntityS3Upload = { }, 'inferences': { 'entity-pii': [exports.expectedSyncComprehendPiiResponse, exports.expectedSyncComprehendPiiResponse], - 'entity-pii-locations': exports.expectedEntityLocations, + 'entity-pii-locations': exports.expectedPiiEntityLocations, 'textract-analyzeId': 'fake-s3-key2', 'textract-detectText': 'fake-s3-key1' }, @@ -1224,6 +1606,12 @@ exports.offsetToLineIdMapPii = [ { 'offset': 31, 'id': 'line2' } ]; +exports.errorCaseOffsetToLineIdMapPii = [ + { 'offset': 0, 'id': 'line1' }, + { 'offset': 31, 'id': 'line2' }, + { 'offset': 40, 'dummy': 'line3' } +]; + exports.blockDictPii = { 'page1': { 'BlockType': 'PAGE', @@ -1573,7 +1961,14 @@ exports.bondingBoxResultPii = { exports.offsetToLineIdMapStandard = [ { offset: 0, id: 'line1' }, - { offset: 31, id: 'line2' } + { offset: 31, id: 'line2' }, + { offset: 56, id: 'line3' } +]; + +exports.errorCaseOffsetToLineIdMapStandard = [ + { offset: 0, id: 'line1' }, + { offset: 31, id: 'line2' }, + { offset: 56, dummy: 'line3' } ]; exports.blockDictStandard = { @@ -1609,7 +2004,7 @@ exports.blockDictStandard = { 'Relationships': [ { 'Type': 'CHILD', - 'Ids': ['line1', 'line2'] + 'Ids': ['line1', 'line2', 'line3'] } ] }, @@ -1653,6 +2048,26 @@ exports.blockDictStandard = { } ] }, + 'line3': { + 'BlockType': 'LINE', + 'Confidence': 98.38265228271484, + 'Text': 'it is it is repeating.', + 'Geometry': { + 'BoundingBox': { + 'Width': 5, + 'Height': 1, + 'Left': 0, + 'Top': 2 + } + }, + 'Id': 'line3', + 'Relationships': [ + { + 'Type': 'CHILD', + 'Ids': ['word13', 'word14', 'word15', 'word16', 'word17'] + } + ] + }, 'word1': { 'BlockType': 'WORD', 'Confidence': 98.13988494873047, @@ -1816,7 +2231,7 @@ exports.blockDictStandard = { 'Top': 1 } }, - 'Id': 'word10' + 'Id': 'word11' }, 'word12': { 'BlockType': 'WORD', @@ -1831,7 +2246,82 @@ exports.blockDictStandard = { 'Top': 1 } }, - 'Id': 'word10' + 'Id': 'word12' + }, + 'word13': { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'it', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 0, + 'Top': 2 + } + }, + 'Id': 'word13' + }, + 'word14': { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'is', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 1, + 'Top': 2 + } + }, + 'Id': 'word14' + }, + 'word15': { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'it', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 2, + 'Top': 2 + } + }, + 'Id': 'word15' + }, + 'word16': { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'is', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 3, + 'Top': 2 + } + }, + 'Id': 'word16' + }, + 'word17': { + 'BlockType': 'WORD', + 'Confidence': 99.45236206054688, + 'Text': 'repeating', + 'TextType': 'PRINTED', + 'Geometry': { + 'BoundingBox': { + 'Width': 1, + 'Height': 1, + 'Left': 4, + 'Top': 2 + } + }, + 'Id': 'word17' } }; @@ -1905,6 +2395,21 @@ exports.bondingBoxResultStandard = { } }, 'OTHER': { + 'IT IS REPEATING': { + '1': [ + { + 'BoundingBoxes': [ + { + 'Height': 1, + 'Left': 2, + 'Top': 2, + 'Width': 3 + } + ], + 'Score': 0.8900869488716125 + } + ] + }, 'THIS IS A 2023': { '1': [ { @@ -1928,6 +2433,10 @@ exports.offsetToLineIdMapMedical = [ { 'offset': 31, 'id': 'line2' } ]; +exports.errorCaseOffsetToLineIdMapMedical = [ + { 'offset': 0, 'dummy': 'line1' } +]; + exports.blockDictMedical = { 'page1': { 'BlockType': 'PAGE', diff --git a/source/lambda/entity-detection/test/utils/entity/generic-entity-detection-strategy.spec.js b/source/lambda/entity-detection/test/utils/entity/generic-entity-detection-strategy.spec.js index b20ccfd..27b0d25 100644 --- a/source/lambda/entity-detection/test/utils/entity/generic-entity-detection-strategy.spec.js +++ b/source/lambda/entity-detection/test/utils/entity/generic-entity-detection-strategy.spec.js @@ -20,6 +20,7 @@ const { expectedSyncComprehendResponse, blockDictStandard, offsetToLineIdMapStandard, + errorCaseOffsetToLineIdMapStandard, bondingBoxResultStandard } = require('../../event-test-data'); @@ -81,6 +82,19 @@ describe('Get Comprehend API Result:: When provided with correct inputs', () => expect(entityLocations).toEqual(bondingBoxResultStandard); }); + it('addEntityLocations should pass with errors logged', async () => { + let entityLocations = {}; + const errorSpy = jest.spyOn(console, 'error'); + genericEntityDetectionStrategy.addEntityLocations({ + entityLocations: entityLocations, + comprehendResponse: expectedSyncComprehendResponse, + offsetToLineIdMap: errorCaseOffsetToLineIdMapStandard, + blockDict: blockDictStandard, + pageIdx: 0 + }); + expect(errorSpy).toHaveBeenCalledWith("Determining location of entity '{\"Score\":0.8900869488716125,\"Type\":\"OTHER\",\"Text\":\"it is repeating\",\"BeginOffset\":56,\"EndOffset\":77}' failed with error: Error: Bounding box computation failed for entity 'it is repeating' at offset 56. Got error: Cannot read properties of undefined (reading 'Text')"); + }); + afterEach(() => { jest.clearAllMocks(); delete process.env.AWS_REGION; diff --git a/source/lambda/entity-detection/test/utils/entity/medical-entity-detection-strategy.spec.js b/source/lambda/entity-detection/test/utils/entity/medical-entity-detection-strategy.spec.js index bd183eb..f7fff5b 100644 --- a/source/lambda/entity-detection/test/utils/entity/medical-entity-detection-strategy.spec.js +++ b/source/lambda/entity-detection/test/utils/entity/medical-entity-detection-strategy.spec.js @@ -20,7 +20,8 @@ const { expectedSyncComprehendMedicalResponse, blockDictMedical, offsetToLineIdMapMedical, - bondingBoxResultMedical + bondingBoxResultMedical, + errorCaseOffsetToLineIdMapMedical } = require('../../event-test-data'); const SharedLib = require('common-node-lib'); @@ -67,6 +68,19 @@ describe('Get Comprehend API Result:: When provided with correct inputs', () => expect(entityLocations).toEqual(bondingBoxResultMedical); }); + it('addEntityLocations should pass with errors logged', async () => { + let entityLocations = {}; + const errorSpy = jest.spyOn(console, 'error'); + medicalEntityDetectionStrategy.addEntityLocations({ + entityLocations: entityLocations, + comprehendResponse: expectedSyncComprehendMedicalResponse, + offsetToLineIdMap: errorCaseOffsetToLineIdMapMedical, + blockDict: blockDictMedical, + pageIdx: 0 + }); + expect(errorSpy).toHaveBeenCalledWith("Determining location of medical entity '{\"Attributes\":[{\"BeginOffset\":546456,\"Category\":\"fake-category\",\"EndOffset\":45846,\"Id\":12345,\"RelationshipScore\":43535,\"RelationshipType\":\"fake-type\",\"Score\":0.996697902,\"Text\":\"fake-text\",\"Traits\":[{\"Name\":\"fake-name\",\"Score\":0.99}],\"Type\":\"fake-type\"}],\"BeginOffset\":10,\"Category\":\"MEDICATION\",\"EndOffset\":14,\"Id\":12345,\"Score\":0.8919363021850586,\"Text\":\"2023\",\"Traits\":[{\"Name\":\"fake-name\",\"Score\":0.98}],\"Type\":\"MEDICATION\",\"MedicalType\":\"DX_NAME\"}' failed with error: Error: Bounding box computation failed for entity '2023' at offset 10. Got error: Cannot read properties of undefined (reading 'Text')"); + }); + afterEach(() => { jest.clearAllMocks(); delete process.env.AWS_REGION; diff --git a/source/lambda/entity-detection/test/utils/entity/pii-entity-detection-stategy.spec.js b/source/lambda/entity-detection/test/utils/entity/pii-entity-detection-stategy.spec.js index c914843..ac2650a 100644 --- a/source/lambda/entity-detection/test/utils/entity/pii-entity-detection-stategy.spec.js +++ b/source/lambda/entity-detection/test/utils/entity/pii-entity-detection-stategy.spec.js @@ -19,6 +19,7 @@ const AWSMock = require('aws-sdk-mock'); const { expectedSyncComprehendPiiResponse, blockDictPii, + errorCaseOffsetToLineIdMapPii, offsetToLineIdMapPii, textractFullPageText, bondingBoxResultPii @@ -70,6 +71,20 @@ describe('Get Comprehend API Result:: When provided with correct inputs', () => expect(entityLocations).toEqual(bondingBoxResultPii); }); + it('addEntityLocations should pass with errors logged', async () => { + let entityLocations = {}; + const errorSpy = jest.spyOn(console, 'error'); + piiEntityDetectionStrategy.addEntityLocations({ + entityLocations: entityLocations, + comprehendResponse: expectedSyncComprehendPiiResponse, + offsetToLineIdMap: errorCaseOffsetToLineIdMapPii, + blockDict: blockDictPii, + pageIdx: 0, + pageText: textractFullPageText + }); + expect(errorSpy).toHaveBeenCalledWith("Determining location of PII entity '{\"Score\":0.8900869488716125,\"Type\":\"PERSON\",\"BeginOffset\":46,\"EndOffset\":54,\"Text\":\"john doe\"}' failed with error: Error: Bounding box computation failed for entity 'john doe' at offset 46. Got error: Cannot read properties of undefined (reading 'Text')"); + }); + afterEach(() => { jest.clearAllMocks(); delete process.env.AWS_REGION; diff --git a/source/lambda/entity-detection/test/utils/generic.spec.js b/source/lambda/entity-detection/test/utils/generic.spec.js index d214262..f868322 100644 --- a/source/lambda/entity-detection/test/utils/generic.spec.js +++ b/source/lambda/entity-detection/test/utils/generic.spec.js @@ -224,6 +224,12 @@ describe('computeBoundingBoxes', () => { expect(res).toEqual([{ 'Width': 4, 'Height': 1, 'Left': 0, 'Top': 0 }]); }); + it('an entity which starts and needs to backtrack', () => { + let entity = expectedSyncComprehendResponse.Entities[5]; + let res = utils.computeBoundingBoxes(entity, dummyOffsetToLineMap, dummyBlockDict); + expect(res).toEqual([{ 'Width': 3, 'Height': 1, 'Left': 2, 'Top': 2 }]); + }); + it('should throw if we pass an entity that does not exist', () => { let entity = { 'Score': 0.8919363021850586, diff --git a/source/lambda/entity-detection/test/utils/sync.spec.js b/source/lambda/entity-detection/test/utils/sync.spec.js index 918a27e..af8905a 100644 --- a/source/lambda/entity-detection/test/utils/sync.spec.js +++ b/source/lambda/entity-detection/test/utils/sync.spec.js @@ -93,7 +93,7 @@ describe('runSyncEntityDetection (Comprehend): When provided with correct inputs expect(getComprehendResult).toHaveBeenCalledWith({ endpointArn: 'custom-arn', languageCode: 'es', - pageText: 'This is a 2023 test about John Doe, New York. john doe.', + pageText: 'This is a 2023 test about John Doe, New York. john doe. it is it is repeating.', taskToken: 'fake-token' }); @@ -143,7 +143,7 @@ describe('runSyncEntityDetection (Comprehend): When provided with correct inputs expect(getComprehendResult).toHaveBeenCalledWith({ endpointArn: 'custom-arn', languageCode: 'es', - pageText: 'This is a 2023 test about John Doe, New York. john doe.', + pageText: 'This is a 2023 test about John Doe, New York. john doe. it is it is repeating.', taskToken: 'fake-token' }); // for 2 pages in fake textract response diff --git a/source/lambda/entity-detection/utils/entity/generic-entity-detection-strategy.js b/source/lambda/entity-detection/utils/entity/generic-entity-detection-strategy.js index 86f679d..7f48412 100644 --- a/source/lambda/entity-detection/utils/entity/generic-entity-detection-strategy.js +++ b/source/lambda/entity-detection/utils/entity/generic-entity-detection-strategy.js @@ -68,13 +68,17 @@ class GenericEntityDetectionStrategy { */ addEntityLocations(params) { params.comprehendResponse.Entities.forEach((entity) => { - utils.addEntityLocation( - params.entityLocations, - entity, - params.offsetToLineIdMap, - params.blockDict, - params.pageIdx + 1 - ); + try { + utils.addEntityLocation( + params.entityLocations, + entity, + params.offsetToLineIdMap, + params.blockDict, + params.pageIdx + 1 + ); + } catch (error) { + console.error(`Determining location of entity '${JSON.stringify(entity)}' failed with error: ${error}`); + } }); } } diff --git a/source/lambda/entity-detection/utils/entity/medical-entity-detection-strategy.js b/source/lambda/entity-detection/utils/entity/medical-entity-detection-strategy.js index aa5a8d9..f4c4fbd 100644 --- a/source/lambda/entity-detection/utils/entity/medical-entity-detection-strategy.js +++ b/source/lambda/entity-detection/utils/entity/medical-entity-detection-strategy.js @@ -67,13 +67,19 @@ class MedicalEntityDetectionStrategy { // use Comprehend Medical response's 'Category' as 'Type' to calculate bounding-boxes entity.Type = entity.Category; - utils.addEntityLocation( - params.entityLocations, - entity, - params.offsetToLineIdMap, - params.blockDict, - params.pageIdx + 1 - ); + try { + utils.addEntityLocation( + params.entityLocations, + entity, + params.offsetToLineIdMap, + params.blockDict, + params.pageIdx + 1 + ); + } catch (error) { + console.error( + `Determining location of medical entity '${JSON.stringify(entity)}' failed with error: ${error}` + ); + } // reassign the value of 'Type' from 'MedicalType' entity.Type = entity.MedicalType; diff --git a/source/lambda/entity-detection/utils/entity/pii-entity-detection-strategy.js b/source/lambda/entity-detection/utils/entity/pii-entity-detection-strategy.js index f084d38..bd3796f 100644 --- a/source/lambda/entity-detection/utils/entity/pii-entity-detection-strategy.js +++ b/source/lambda/entity-detection/utils/entity/pii-entity-detection-strategy.js @@ -66,13 +66,19 @@ class PiiEntityDetectionStrategy { params.comprehendResponse.Entities.forEach((entity) => { // create a new entity 'Text' for custom inference, as 'Text' is not present in the ComprehendPii response entity.Text = params.pageText.substring(entity.BeginOffset, entity.EndOffset); - utils.addEntityLocation( - params.entityLocations, - entity, - params.offsetToLineIdMap, - params.blockDict, - params.pageIdx + 1 - ); + try { + utils.addEntityLocation( + params.entityLocations, + entity, + params.offsetToLineIdMap, + params.blockDict, + params.pageIdx + 1 + ); + } catch (error) { + console.error( + `Determining location of PII entity '${JSON.stringify(entity)}' failed with error: ${error}` + ); + } }); } } diff --git a/source/lambda/entity-detection/utils/generic.js b/source/lambda/entity-detection/utils/generic.js index 5358777..39852ca 100644 --- a/source/lambda/entity-detection/utils/generic.js +++ b/source/lambda/entity-detection/utils/generic.js @@ -50,7 +50,7 @@ exports.addEntityLocation = (entityLocations, entity, offsetToLineIdMap, blockDi } // entites are kept case-insensitive - let entityText = entity.Text.toUpperCase(); + let entityText = entity.Text.toUpperCase(); // creating new empty sub-objects in the output object for first occurrences of entity type/content per page if (!(entity.Type in entityLocations)) { @@ -107,8 +107,11 @@ exports.computeBoundingBoxes = (entity, offsetToLineIdMap, blockDict) => { // NO const wordBlock = blockDict[currentLineBlock.Relationships[0].Ids[j]]; // box on same line gets merged with previous box - if (wordBlock !== undefined){ - bboxes[lineCounter] = this.mergeBoundingBoxes(bboxes[lineCounter], wordBlock.Geometry.BoundingBox); + if (wordBlock !== undefined) { + bboxes[lineCounter] = this.mergeBoundingBoxes( + bboxes[lineCounter], + wordBlock.Geometry.BoundingBox + ); } entityWordIdx++; @@ -118,7 +121,8 @@ exports.computeBoundingBoxes = (entity, offsetToLineIdMap, blockDict) => { // NO } } else { // we partially matched the entity in the line, and then did not match, so we must restart matching - // the entity from the beginning at our current place in the line + // the entity from the beginning at our current place in the line, throwing away the partial matches + j -= entityWordIdx; // NOSONAR javascript:S2310 this is a requirement of the algorithm and not a problem entityWordIdx = 0; bboxes[lineCounter] = undefined; } @@ -128,7 +132,6 @@ exports.computeBoundingBoxes = (entity, offsetToLineIdMap, blockDict) => { // NO } } catch (error) { const errMsg = `Bounding box computation failed for entity '${entity.Text}' at offset ${entity.BeginOffset}. Got error: ${error.message}`; - console.error(errMsg); throw new Error(errMsg); } return bboxes; diff --git a/source/lambda/fetch-records/package-lock.json b/source/lambda/fetch-records/package-lock.json index 097f978..be4a01a 100644 --- a/source/lambda/fetch-records/package-lock.json +++ b/source/lambda/fetch-records/package-lock.json @@ -1,12 +1,12 @@ { "name": "fetch-records", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "fetch-records", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "uuid": "^9.0.1" diff --git a/source/lambda/fetch-records/package.json b/source/lambda/fetch-records/package.json index e1ac436..3ea6d73 100644 --- a/source/lambda/fetch-records/package.json +++ b/source/lambda/fetch-records/package.json @@ -1,6 +1,6 @@ { "name": "fetch-records", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda backs the ApiGateway REST endpoint to process record and document fetch requests", "main": "index.js", "scripts": { @@ -30,4 +30,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/lambda/get-inferences/package-lock.json b/source/lambda/get-inferences/package-lock.json index 0d5d9ee..a474005 100644 --- a/source/lambda/get-inferences/package-lock.json +++ b/source/lambda/get-inferences/package-lock.json @@ -1,12 +1,12 @@ { "name": "get-inferences", - "version": "1.0.3", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "get-inferences", - "version": "1.0.3", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/get-inferences/package.json b/source/lambda/get-inferences/package.json index 31ac3d5..904a871 100644 --- a/source/lambda/get-inferences/package.json +++ b/source/lambda/get-inferences/package.json @@ -1,6 +1,6 @@ { "name": "get-inferences", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda function is used to get inference results by backing the rest-endpoints", "main": "index.js", "scripts": { diff --git a/source/lambda/layers/aws-node-user-agent-config/package-lock.json b/source/lambda/layers/aws-node-user-agent-config/package-lock.json index 3906218..41748ad 100644 --- a/source/lambda/layers/aws-node-user-agent-config/package-lock.json +++ b/source/lambda/layers/aws-node-user-agent-config/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-nodesdk-custom-config", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "aws-nodesdk-custom-config", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "eslint": "^8.56.0", diff --git a/source/lambda/layers/aws-node-user-agent-config/package.json b/source/lambda/layers/aws-node-user-agent-config/package.json index c788d61..e90ed11 100644 --- a/source/lambda/layers/aws-node-user-agent-config/package.json +++ b/source/lambda/layers/aws-node-user-agent-config/package.json @@ -1,6 +1,6 @@ { "name": "aws-nodesdk-custom-config", - "version": "1.0.4", + "version": "1.0.6", "description": "AWS Nodejs SDK Config intialization layer", "main": "index.js", "scripts": { @@ -23,4 +23,4 @@ "url": "https://aws.amazon.com/solutions" }, "license": "Apache-2.0" -} +} \ No newline at end of file diff --git a/source/lambda/layers/aws-sdk-lib/package-lock.json b/source/lambda/layers/aws-sdk-lib/package-lock.json index 4d6044d..9042ad3 100644 --- a/source/lambda/layers/aws-sdk-lib/package-lock.json +++ b/source/lambda/layers/aws-sdk-lib/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-sdk-layer", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "aws-sdk-layer", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "aws-sdk": "^2.1532.0" diff --git a/source/lambda/layers/aws-sdk-lib/package.json b/source/lambda/layers/aws-sdk-lib/package.json index 28fb579..a0e36d5 100644 --- a/source/lambda/layers/aws-sdk-lib/package.json +++ b/source/lambda/layers/aws-sdk-lib/package.json @@ -1,6 +1,6 @@ { "name": "aws-sdk-layer", - "version": "1.0.4", + "version": "1.0.6", "description": "AWS Nodejs SDK layer", "dependencies": { "aws-sdk": "^2.1532.0" @@ -10,4 +10,4 @@ "url": "https://aws.amazon.com/solutions" }, "license": "Apache-2.0" -} +} \ No newline at end of file diff --git a/source/lambda/layers/common-node-lib/package-lock.json b/source/lambda/layers/common-node-lib/package-lock.json index 66dbde0..89769b7 100644 --- a/source/lambda/layers/common-node-lib/package-lock.json +++ b/source/lambda/layers/common-node-lib/package-lock.json @@ -1,12 +1,12 @@ { "name": "common-node-lib", - "version": "1.0.4", - "lockfileVersion": 2, + "version": "1.0.6", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "common-node-lib", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "jwt-decode": "^4.0.0", @@ -8681,4 +8681,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/source/lambda/layers/common-node-lib/package.json b/source/lambda/layers/common-node-lib/package.json index 6e8a6f2..f714723 100644 --- a/source/lambda/layers/common-node-lib/package.json +++ b/source/lambda/layers/common-node-lib/package.json @@ -1,6 +1,6 @@ { "name": "common-node-lib", - "version": "1.0.4", + "version": "1.0.6", "description": "Common libraries shared by all lambda node modules", "scripts": { "test": "jest --coverage --silent --verbose", diff --git a/source/lambda/layers/custom-java-sdk-config/pom.xml b/source/lambda/layers/custom-java-sdk-config/pom.xml index 7262fb9..b861855 100644 --- a/source/lambda/layers/custom-java-sdk-config/pom.xml +++ b/source/lambda/layers/custom-java-sdk-config/pom.xml @@ -7,7 +7,7 @@ com.builder.config custom-java-sdk-config jar - 1.0.4 + 1.0.6 custom-java-sdk-config UTF-8 @@ -98,11 +98,11 @@ enforce - - - 3.8 - - + + + 3.8 + + @@ -219,7 +219,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin 3.4.3 - + @@ -229,13 +229,13 @@ maven-project-info-reports-plugin 3.4.3 - - - dependencies - - + + + dependencies + + - + \ No newline at end of file diff --git a/source/lambda/layers/custom_boto3_init/setup.py b/source/lambda/layers/custom_boto3_init/setup.py index 47da5b0..29be03a 100644 --- a/source/lambda/layers/custom_boto3_init/setup.py +++ b/source/lambda/layers/custom_boto3_init/setup.py @@ -15,7 +15,7 @@ setup( name="custom_boto3_init", - version="1.0.4", + version="1.0.6", description="Initialize boto config for AWS Python SDK with custom configuration", url="https://github.com/aws-solutions/enhanced-document-understanding-on-aws", author="Amazon Web Services", diff --git a/source/lambda/redact-content/pom.xml b/source/lambda/redact-content/pom.xml index a36de89..7e2dc06 100644 --- a/source/lambda/redact-content/pom.xml +++ b/source/lambda/redact-content/pom.xml @@ -7,7 +7,7 @@ com.builder.lambda redact-content jar - 1.0.4 + 1.0.6 redact-content UTF-8 @@ -207,7 +207,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin 3.4.3 - + @@ -217,13 +217,13 @@ maven-project-info-reports-plugin 3.4.3 - - - dependencies - - + + + dependencies + + - + \ No newline at end of file diff --git a/source/lambda/search/package-lock.json b/source/lambda/search/package-lock.json index 19c2a44..947a096 100644 --- a/source/lambda/search/package-lock.json +++ b/source/lambda/search/package-lock.json @@ -1,12 +1,12 @@ { "name": "search", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "search", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/search/package.json b/source/lambda/search/package.json index b66f77a..c27672d 100644 --- a/source/lambda/search/package.json +++ b/source/lambda/search/package.json @@ -1,6 +1,6 @@ { "name": "search", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda function is used to search for queries in the kendra index backing the rest-endpoints", "main": "index.js", "scripts": { @@ -24,4 +24,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/lambda/send-notification/package-lock.json b/source/lambda/send-notification/package-lock.json index 4bbf874..66096a8 100644 --- a/source/lambda/send-notification/package-lock.json +++ b/source/lambda/send-notification/package-lock.json @@ -1,12 +1,12 @@ { "name": "send-notification", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "send-notification", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.7.0", diff --git a/source/lambda/send-notification/package.json b/source/lambda/send-notification/package.json index 3d32465..58a1359 100644 --- a/source/lambda/send-notification/package.json +++ b/source/lambda/send-notification/package.json @@ -1,6 +1,6 @@ { "name": "send-notification", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda function sends notifications about document processing updates", "main": "index.js", "scripts": { @@ -26,4 +26,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/lambda/text-extract/package-lock.json b/source/lambda/text-extract/package-lock.json index 06ccbfe..a357ccd 100644 --- a/source/lambda/text-extract/package-lock.json +++ b/source/lambda/text-extract/package-lock.json @@ -1,12 +1,12 @@ { "name": "text-extract", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "text-extract", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/text-extract/package.json b/source/lambda/text-extract/package.json index 6bba149..bc515c2 100644 --- a/source/lambda/text-extract/package.json +++ b/source/lambda/text-extract/package.json @@ -1,6 +1,6 @@ { "name": "text-extract", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda function extracts text from a document like ID or Paystub, and also detects texts.", "main": "index.js", "scripts": { @@ -25,4 +25,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/lambda/upload-document/package-lock.json b/source/lambda/upload-document/package-lock.json index e2f7e30..3e5a331 100644 --- a/source/lambda/upload-document/package-lock.json +++ b/source/lambda/upload-document/package-lock.json @@ -1,12 +1,12 @@ { "name": "upload-document", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "upload-document", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "lodash": "4.17.21" diff --git a/source/lambda/upload-document/package.json b/source/lambda/upload-document/package.json index 72c4adf..ee8e40d 100644 --- a/source/lambda/upload-document/package.json +++ b/source/lambda/upload-document/package.json @@ -1,6 +1,6 @@ { "name": "upload-document", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda function to upload documents", "main": "index.js", "scripts": { @@ -30,4 +30,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/lambda/workflow-orchestrator/package-lock.json b/source/lambda/workflow-orchestrator/package-lock.json index dcd12a2..5ec0ea5 100644 --- a/source/lambda/workflow-orchestrator/package-lock.json +++ b/source/lambda/workflow-orchestrator/package-lock.json @@ -1,12 +1,12 @@ { "name": "workflow-orchestrator", - "version": "1.0.4", - "lockfileVersion": 2, + "version": "1.0.6", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "workflow-orchestrator", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "lodash": "4.17.21" @@ -8483,4 +8483,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/source/lambda/workflow-orchestrator/package.json b/source/lambda/workflow-orchestrator/package.json index 91fa5c6..a4e7f59 100644 --- a/source/lambda/workflow-orchestrator/package.json +++ b/source/lambda/workflow-orchestrator/package.json @@ -1,6 +1,6 @@ { "name": "workflow-orchestrator", - "version": "1.0.4", + "version": "1.0.6", "description": "This lambda validates if required documents for a workflow has been uploaded", "main": "index.js", "scripts": { @@ -30,4 +30,4 @@ "overrides": { "@babel/traverse": "^7.23.2" } -} +} \ No newline at end of file diff --git a/source/ui/package-lock.json b/source/ui/package-lock.json index abd676b..0d710fe 100644 --- a/source/ui/package-lock.json +++ b/source/ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "intelligent-document-processing-ui", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "intelligent-document-processing-ui", - "version": "1.0.4", + "version": "1.0.6", "license": "Apache-2.0", "dependencies": { "@aws-amplify/ui-react": "^5.3.2", @@ -17825,9 +17825,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", @@ -32334,9 +32334,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", diff --git a/source/ui/package.json b/source/ui/package.json index 77df228..b4ae515 100644 --- a/source/ui/package.json +++ b/source/ui/package.json @@ -1,6 +1,6 @@ { "name": "intelligent-document-processing-ui", - "version": "1.0.4", + "version": "1.0.6", "dependencies": { "@aws-amplify/ui-react": "^5.3.2", "@cloudscape-design/components": "^3.0.484", @@ -94,4 +94,4 @@ "name": "Amazon Web Services", "url": "https://aws.amazon.com/solutions" } -} +} \ No newline at end of file