@aws-amplify/predictions 6.0.22-unstable.bd1fefd.0 → 6.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Predictions.js +4 -2
- package/dist/cjs/Predictions.js.map +1 -1
- package/dist/cjs/providers/AmazonAIConvertPredictionsProvider.js +9 -9
- package/dist/cjs/providers/AmazonAIConvertPredictionsProvider.js.map +1 -1
- package/dist/cjs/providers/AmazonAIIdentifyPredictionsProvider.js +20 -25
- package/dist/cjs/providers/AmazonAIIdentifyPredictionsProvider.js.map +1 -1
- package/dist/cjs/providers/AmazonAIInterpretPredictionsProvider.js +7 -7
- package/dist/cjs/providers/AmazonAIInterpretPredictionsProvider.js.map +1 -1
- package/dist/cjs/providers/IdentifyTextUtils.js +9 -9
- package/dist/cjs/providers/IdentifyTextUtils.js.map +1 -1
- package/dist/cjs/providers/Utils.js +6 -6
- package/dist/cjs/providers/Utils.js.map +1 -1
- package/dist/cjs/types/Predictions.js +14 -15
- package/dist/cjs/types/Predictions.js.map +1 -1
- package/dist/esm/Predictions.mjs +2 -0
- package/dist/esm/Predictions.mjs.map +1 -1
- package/dist/esm/providers/AmazonAIConvertPredictionsProvider.mjs +9 -9
- package/dist/esm/providers/AmazonAIConvertPredictionsProvider.mjs.map +1 -1
- package/dist/esm/providers/AmazonAIIdentifyPredictionsProvider.d.ts +6 -6
- package/dist/esm/providers/AmazonAIIdentifyPredictionsProvider.mjs +20 -25
- package/dist/esm/providers/AmazonAIIdentifyPredictionsProvider.mjs.map +1 -1
- package/dist/esm/providers/AmazonAIInterpretPredictionsProvider.mjs +7 -7
- package/dist/esm/providers/AmazonAIInterpretPredictionsProvider.mjs.map +1 -1
- package/dist/esm/providers/IdentifyTextUtils.mjs +9 -9
- package/dist/esm/providers/IdentifyTextUtils.mjs.map +1 -1
- package/dist/esm/providers/Utils.mjs +6 -6
- package/dist/esm/providers/Utils.mjs.map +1 -1
- package/dist/esm/types/AWSTypes.d.ts +2 -2
- package/dist/esm/types/Predictions.d.ts +30 -30
- package/dist/esm/types/Predictions.mjs +14 -15
- package/dist/esm/types/Predictions.mjs.map +1 -1
- package/package.json +71 -72
- package/src/Predictions.ts +3 -2
- package/src/providers/AmazonAIConvertPredictionsProvider.ts +10 -20
- package/src/providers/AmazonAIIdentifyPredictionsProvider.ts +26 -41
- package/src/providers/AmazonAIInterpretPredictionsProvider.ts +18 -22
- package/src/providers/IdentifyTextUtils.ts +22 -25
- package/src/providers/Utils.ts +6 -8
- package/src/providers/index.ts +0 -1
- package/src/types/AWSTypes.ts +3 -2
- package/src/types/Predictions.ts +44 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonAIInterpretPredictionsProvider.js","sources":["../../../src/providers/AmazonAIInterpretPredictionsProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmazonAIInterpretPredictionsProvider = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst client_comprehend_1 = require(\"@aws-sdk/client-comprehend\");\nconst validation_1 = require(\"../errors/types/validation\");\nconst assertValidationError_1 = require(\"../errors/utils/assertValidationError\");\nconst types_1 = require(\"../types\");\nclass AmazonAIInterpretPredictionsProvider {\n getProviderName() {\n return 'AmazonAIInterpretPredictionsProvider';\n }\n interpret(input) {\n (0, assertValidationError_1.assertValidationError)((0, types_1.isValidInterpretInput)(input), validation_1.PredictionsValidationErrorCode.InvalidInput);\n return this.interpretText(input);\n }\n async interpretText(input) {\n const { credentials } = await (0, core_1.fetchAuthSession)();\n (0, assertValidationError_1.assertValidationError)(!!credentials, validation_1.PredictionsValidationErrorCode.NoCredentials);\n const { interpretText = {} } = core_1.Amplify.getConfig().Predictions?.interpret ?? {};\n const { region = '', defaults = {} } = interpretText;\n const { type: defaultType = '' } = defaults;\n const { text: textSource } = input;\n const { source, type = defaultType } = textSource;\n const { text } = source;\n let sourceLanguage;\n if ((0, types_1.isInterpretTextOthers)(textSource)) {\n sourceLanguage = textSource.source.language;\n }\n this.comprehendClient = new client_comprehend_1.ComprehendClient({\n credentials,\n region,\n customUserAgent: (0, utils_1.getAmplifyUserAgentObject)({\n category: utils_1.Category.Predictions,\n action: utils_1.PredictionsAction.Interpret,\n }),\n });\n const doAll = type === 'all';\n let languageCode = sourceLanguage;\n if (doAll || type === 'language') {\n const languageDetectionParams = {\n Text: text,\n };\n languageCode = await this.detectLanguage(languageDetectionParams);\n }\n let entitiesPromise;\n if (doAll || type === 'entities') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const entitiesDetectionParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n entitiesPromise = this.detectEntities(entitiesDetectionParams);\n }\n let sentimentPromise;\n if (doAll || type === 'sentiment') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const sentimentParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n sentimentPromise = this.detectSentiment(sentimentParams);\n }\n let syntaxPromise;\n if (doAll || type === 'syntax') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const syntaxParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n syntaxPromise = this.detectSyntax(syntaxParams);\n }\n let keyPhrasesPromise;\n if (doAll || type === 'keyPhrases') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const keyPhrasesParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n keyPhrasesPromise = this.detectKeyPhrases(keyPhrasesParams);\n }\n const [textEntities, sentiment, syntax, keyPhrases] = await Promise.all([\n entitiesPromise,\n sentimentPromise,\n syntaxPromise,\n keyPhrasesPromise,\n ]);\n return {\n textInterpretation: {\n keyPhrases,\n language: languageCode,\n sentiment,\n syntax,\n textEntities,\n },\n };\n }\n async detectKeyPhrases(params) {\n try {\n const detectKeyPhrasesCommand = new client_comprehend_1.DetectKeyPhrasesCommand(params);\n const data = await this.comprehendClient.send(detectKeyPhrasesCommand);\n const { KeyPhrases: keyPhrases = [] } = data || {};\n return keyPhrases.map(({ Text: text }) => {\n return { text };\n });\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n async detectSyntax(params) {\n try {\n const detectSyntaxCommand = new client_comprehend_1.DetectSyntaxCommand(params);\n const data = await this.comprehendClient.send(detectSyntaxCommand);\n const { SyntaxTokens = [] } = data || {};\n return this.serializeSyntaxFromComprehend(SyntaxTokens);\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n serializeSyntaxFromComprehend(tokens) {\n let response = [];\n if (tokens && Array.isArray(tokens)) {\n response = tokens.map(({ Text: text = '', PartOfSpeech: { Tag: syntax = '' } = {} }) => {\n return { text, syntax };\n });\n }\n return response;\n }\n async detectSentiment(params) {\n try {\n const detectSentimentCommand = new client_comprehend_1.DetectSentimentCommand(params);\n const data = await this.comprehendClient.send(detectSentimentCommand);\n const { Sentiment: predominant = '', SentimentScore: { Positive: positive = 0, Negative: negative = 0, Neutral: neutral = 0, Mixed: mixed = 0, } = {}, } = data ?? {};\n return { predominant, positive, negative, neutral, mixed };\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n async detectEntities(params) {\n try {\n const detectEntitiesCommand = new client_comprehend_1.DetectEntitiesCommand(params);\n const data = await this.comprehendClient.send(detectEntitiesCommand);\n const { Entities = [] } = data || {};\n return this.serializeEntitiesFromComprehend(Entities);\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n serializeEntitiesFromComprehend(data) {\n let response = [];\n if (data && Array.isArray(data)) {\n response = data.map(({ Type: type, Text: text }) => {\n return { type, text };\n });\n }\n return response;\n }\n async detectLanguage(params) {\n try {\n const detectDominantLanguageCommand = new client_comprehend_1.DetectDominantLanguageCommand(params);\n const data = await this.comprehendClient.send(detectDominantLanguageCommand);\n const { Languages: [{ LanguageCode }] = [{ LanguageCode: undefined }] } = data ?? {};\n (0, assertValidationError_1.assertValidationError)(!!LanguageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n return LanguageCode;\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n}\nexports.AmazonAIInterpretPredictionsProvider = AmazonAIInterpretPredictionsProvider;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AmazonAIInterpretPredictionsProvider.js","sources":["../../../src/providers/AmazonAIInterpretPredictionsProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AmazonAIInterpretPredictionsProvider = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst client_comprehend_1 = require(\"@aws-sdk/client-comprehend\");\nconst validation_1 = require(\"../errors/types/validation\");\nconst assertValidationError_1 = require(\"../errors/utils/assertValidationError\");\nconst types_1 = require(\"../types\");\nclass AmazonAIInterpretPredictionsProvider {\n getProviderName() {\n return 'AmazonAIInterpretPredictionsProvider';\n }\n interpret(input) {\n (0, assertValidationError_1.assertValidationError)((0, types_1.isValidInterpretInput)(input), validation_1.PredictionsValidationErrorCode.InvalidInput);\n return this.interpretText(input);\n }\n async interpretText(input) {\n const { credentials } = await (0, core_1.fetchAuthSession)();\n (0, assertValidationError_1.assertValidationError)(!!credentials, validation_1.PredictionsValidationErrorCode.NoCredentials);\n const { interpretText = {} } = core_1.Amplify.getConfig().Predictions?.interpret ?? {};\n const { region = '', defaults = {} } = interpretText;\n const { type: defaultType = '' } = defaults;\n const { text: textSource } = input;\n const { source, type = defaultType } = textSource;\n const { text } = source;\n let language;\n if ((0, types_1.isInterpretTextOthers)(textSource)) {\n language = textSource.source.language;\n }\n this.comprehendClient = new client_comprehend_1.ComprehendClient({\n credentials,\n region,\n customUserAgent: (0, utils_1.getAmplifyUserAgentObject)({\n category: utils_1.Category.Predictions,\n action: utils_1.PredictionsAction.Interpret,\n }),\n });\n const doAll = type === 'all';\n let languageCode = language;\n if (doAll || type === 'language') {\n const languageDetectionParams = {\n Text: text,\n };\n languageCode = await this.detectLanguage(languageDetectionParams);\n }\n let entitiesPromise;\n if (doAll || type === 'entities') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const entitiesDetectionParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n entitiesPromise = this.detectEntities(entitiesDetectionParams);\n }\n let sentimentPromise;\n if (doAll || type === 'sentiment') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const sentimentParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n sentimentPromise = this.detectSentiment(sentimentParams);\n }\n let syntaxPromise;\n if (doAll || type === 'syntax') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const syntaxParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n syntaxPromise = this.detectSyntax(syntaxParams);\n }\n let keyPhrasesPromise;\n if (doAll || type === 'keyPhrases') {\n (0, assertValidationError_1.assertValidationError)(!!languageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n const keyPhrasesParams = {\n Text: text,\n LanguageCode: languageCode,\n };\n keyPhrasesPromise = this.detectKeyPhrases(keyPhrasesParams);\n }\n const [textEntities, sentiment, syntax, keyPhrases] = await Promise.all([\n entitiesPromise,\n sentimentPromise,\n syntaxPromise,\n keyPhrasesPromise,\n ]);\n return {\n textInterpretation: {\n keyPhrases,\n language: languageCode,\n sentiment,\n syntax,\n textEntities,\n },\n };\n }\n async detectKeyPhrases(params) {\n try {\n const detectKeyPhrasesCommand = new client_comprehend_1.DetectKeyPhrasesCommand(params);\n const data = await this.comprehendClient.send(detectKeyPhrasesCommand);\n const { KeyPhrases = [] } = data || {};\n return KeyPhrases.map(({ Text: text }) => {\n return { text };\n });\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n async detectSyntax(params) {\n try {\n const detectSyntaxCommand = new client_comprehend_1.DetectSyntaxCommand(params);\n const data = await this.comprehendClient.send(detectSyntaxCommand);\n const { SyntaxTokens = [] } = data || {};\n return this.serializeSyntaxFromComprehend(SyntaxTokens);\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n serializeSyntaxFromComprehend(tokens) {\n let response = [];\n if (tokens && Array.isArray(tokens)) {\n response = tokens.map(({ Text: text = '', PartOfSpeech: { Tag: syntax = '' } = {} }) => {\n return { text, syntax };\n });\n }\n return response;\n }\n async detectSentiment(params) {\n try {\n const detectSentimentCommand = new client_comprehend_1.DetectSentimentCommand(params);\n const data = await this.comprehendClient.send(detectSentimentCommand);\n const { Sentiment: predominant = '', SentimentScore: { Positive: positive = 0, Negative: negative = 0, Neutral: neutral = 0, Mixed: mixed = 0, } = {}, } = ({} = data);\n return { predominant, positive, negative, neutral, mixed };\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n async detectEntities(params) {\n try {\n const detectEntitiesCommand = new client_comprehend_1.DetectEntitiesCommand(params);\n const data = await this.comprehendClient.send(detectEntitiesCommand);\n const { Entities = [] } = data || {};\n return this.serializeEntitiesFromComprehend(Entities);\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n serializeEntitiesFromComprehend(data) {\n let response = [];\n if (data && Array.isArray(data)) {\n response = data.map(({ Type: type, Text: text }) => {\n return { type, text };\n });\n }\n return response;\n }\n async detectLanguage(params) {\n try {\n const detectDominantLanguageCommand = new client_comprehend_1.DetectDominantLanguageCommand(params);\n const data = await this.comprehendClient.send(detectDominantLanguageCommand);\n const { Languages: [{ LanguageCode }] = [{}] } = ({} = data || {});\n (0, assertValidationError_1.assertValidationError)(!!LanguageCode, validation_1.PredictionsValidationErrorCode.NoLanguage);\n return LanguageCode;\n }\n catch (err) {\n if (err.code === 'AccessDeniedException') {\n throw new Error('Not authorized, did you enable Interpret Text on predictions category Amplify CLI? try: ' +\n 'amplify predictions add');\n }\n else {\n throw err;\n }\n }\n }\n}\nexports.AmazonAIInterpretPredictionsProvider = AmazonAIInterpretPredictionsProvider;\n"],"names":[],"mappings":"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"}
|
|
@@ -85,8 +85,8 @@ function categorizeTextractBlocks(blocks) {
|
|
|
85
85
|
* Note that we do not map `WORD` and `TABLE` in `blockMap` because they will not be referenced by any other
|
|
86
86
|
* block except the Page block.
|
|
87
87
|
*/
|
|
88
|
-
const tableBlocks =
|
|
89
|
-
const keyValueBlocks =
|
|
88
|
+
const tableBlocks = Array();
|
|
89
|
+
const keyValueBlocks = Array();
|
|
90
90
|
const blockMap = {};
|
|
91
91
|
blocks.forEach(block => {
|
|
92
92
|
switch (block.BlockType) {
|
|
@@ -112,8 +112,8 @@ function categorizeTextractBlocks(blocks) {
|
|
|
112
112
|
blockMap[block.Id] = block;
|
|
113
113
|
}
|
|
114
114
|
break;
|
|
115
|
-
case 'SELECTION_ELEMENT':
|
|
116
|
-
const selectionStatus = block.SelectionStatus === 'SELECTED';
|
|
115
|
+
case 'SELECTION_ELEMENT':
|
|
116
|
+
const selectionStatus = block.SelectionStatus === 'SELECTED' ? true : false;
|
|
117
117
|
if (!response.text.selections)
|
|
118
118
|
response.text.selections = [];
|
|
119
119
|
response.text.selections.push({
|
|
@@ -125,7 +125,6 @@ function categorizeTextractBlocks(blocks) {
|
|
|
125
125
|
blockMap[block.Id] = block;
|
|
126
126
|
}
|
|
127
127
|
break;
|
|
128
|
-
}
|
|
129
128
|
case 'TABLE':
|
|
130
129
|
tableBlocks.push(block);
|
|
131
130
|
break;
|
|
@@ -145,14 +144,14 @@ function categorizeTextractBlocks(blocks) {
|
|
|
145
144
|
response.text.fullText = response.text.fullText.substr(0, response.text.fullText.length - 1);
|
|
146
145
|
// Post-process complex structures if they exist.
|
|
147
146
|
if (tableBlocks.length !== 0) {
|
|
148
|
-
const tableResponse =
|
|
147
|
+
const tableResponse = Array();
|
|
149
148
|
tableBlocks.forEach(table => {
|
|
150
149
|
tableResponse.push(constructTable(table, blockMap));
|
|
151
150
|
});
|
|
152
151
|
response.text.tables = tableResponse;
|
|
153
152
|
}
|
|
154
153
|
if (keyValueBlocks.length !== 0) {
|
|
155
|
-
const keyValueResponse =
|
|
154
|
+
const keyValueResponse = Array();
|
|
156
155
|
keyValueBlocks.forEach(keyValue => {
|
|
157
156
|
// We need the KeyValue blocks of EntityType = `KEY`, which has both key and value references.
|
|
158
157
|
if (keyValue.EntityTypes) {
|
|
@@ -173,7 +172,8 @@ exports.categorizeTextractBlocks = categorizeTextractBlocks;
|
|
|
173
172
|
* @param {[id: string]: Block} blockMap - Maps block Ids to blocks.
|
|
174
173
|
*/
|
|
175
174
|
function constructTable(table, blockMap) {
|
|
176
|
-
|
|
175
|
+
let tableMatrix;
|
|
176
|
+
tableMatrix = [];
|
|
177
177
|
// visit each of the cell associated with the table's relationship.
|
|
178
178
|
for (const tableRelation of table.Relationships ?? []) {
|
|
179
179
|
for (const cellId of tableRelation.Ids ?? []) {
|
|
@@ -261,7 +261,7 @@ function extractContentsFromBlock(block, blockMap) {
|
|
|
261
261
|
words += contentBlock.Text + ' ';
|
|
262
262
|
}
|
|
263
263
|
else if (contentBlock.BlockType === 'SELECTION_ELEMENT') {
|
|
264
|
-
isSelected = contentBlock.SelectionStatus === 'SELECTED';
|
|
264
|
+
isSelected = contentBlock.SelectionStatus === 'SELECTED' ? true : false;
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentifyTextUtils.js","sources":["../../../src/providers/IdentifyTextUtils.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.categorizeTextractBlocks = exports.categorizeRekognitionBlocks = void 0;\nconst Utils_1 = require(\"./Utils\");\nfunction getBoundingBox(geometry) {\n return (0, Utils_1.makeCamelCase)(geometry?.BoundingBox);\n}\nfunction getPolygon(geometry) {\n if (!geometry?.Polygon)\n return undefined;\n return (0, Utils_1.makeCamelCaseArray)(Array.from(geometry.Polygon));\n}\n/**\n * Organizes blocks from Rekognition API to each of the categories and and structures\n * their data accordingly.\n * @param {BlockList} source - Array containing blocks returned from Textract API.\n * @return {IdentifyTextOutput} - Object that categorizes each block and its information.\n */\nfunction categorizeRekognitionBlocks(blocks) {\n // Skeleton IdentifyText API response. We will populate it as we iterate through blocks.\n const response = {\n text: {\n fullText: '',\n words: [],\n lines: [],\n linesDetailed: [],\n },\n };\n // We categorize each block by running a forEach loop through them.\n blocks.forEach(block => {\n switch (block.Type) {\n case 'LINE':\n if (block.DetectedText) {\n response.text.lines.push(block.DetectedText);\n }\n response.text.linesDetailed.push({\n text: block.DetectedText,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n page: undefined, // rekognition doesn't have this info\n });\n break;\n case 'WORD':\n response.text.fullText += block.DetectedText + ' ';\n response.text.words.push({\n text: block.DetectedText,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n });\n break;\n }\n });\n // remove trailing space of fullText\n response.text.fullText = response.text.fullText.substr(0, response.text.fullText.length - 1);\n return response;\n}\nexports.categorizeRekognitionBlocks = categorizeRekognitionBlocks;\n/**\n * Organizes blocks from Textract API to each of the categories and and structures\n * their data accordingly.\n * @param {BlockList} source - Array containing blocks returned from Textract API.\n * @return {IdentifyTextOutput} - Object that categorizes each block and its information.\n */\nfunction categorizeTextractBlocks(blocks) {\n // Skeleton IdentifyText API response. We will populate it as we iterate through blocks.\n const response = {\n text: {\n fullText: '',\n words: [],\n lines: [],\n linesDetailed: [],\n },\n };\n // if blocks is an empty array, ie. textract did not detect anything, return empty response.\n if (blocks.length === 0)\n return response;\n /**\n * We categorize each of the blocks by running a forEach loop through them.\n *\n * For complex structures such as Tables and KeyValue, we need to trasverse through their children. To do so,\n * we will post-process them after the for each loop. We do this by storing table and keyvalues in arrays and\n * mapping other blocks in `blockMap` (id to block) so we can reference them easily later.\n *\n * Note that we do not map `WORD` and `TABLE` in `blockMap` because they will not be referenced by any other\n * block except the Page block.\n */\n const tableBlocks = [];\n const keyValueBlocks = [];\n const blockMap = {};\n blocks.forEach(block => {\n switch (block.BlockType) {\n case 'LINE':\n if (block.Text) {\n response.text.lines.push(block.Text);\n }\n response.text.linesDetailed.push({\n text: block.Text,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n page: block.Page,\n });\n break;\n case 'WORD':\n response.text.fullText += block.Text + ' ';\n response.text.words.push({\n text: block.Text,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n });\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n break;\n case 'SELECTION_ELEMENT': {\n const selectionStatus = block.SelectionStatus === 'SELECTED';\n if (!response.text.selections)\n response.text.selections = [];\n response.text.selections.push({\n selected: selectionStatus,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n });\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n break;\n }\n case 'TABLE':\n tableBlocks.push(block);\n break;\n case 'KEY_VALUE_SET':\n keyValueBlocks.push(block);\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n break;\n default:\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n }\n });\n // remove trailing space in fullText\n response.text.fullText = response.text.fullText.substr(0, response.text.fullText.length - 1);\n // Post-process complex structures if they exist.\n if (tableBlocks.length !== 0) {\n const tableResponse = [];\n tableBlocks.forEach(table => {\n tableResponse.push(constructTable(table, blockMap));\n });\n response.text.tables = tableResponse;\n }\n if (keyValueBlocks.length !== 0) {\n const keyValueResponse = [];\n keyValueBlocks.forEach(keyValue => {\n // We need the KeyValue blocks of EntityType = `KEY`, which has both key and value references.\n if (keyValue.EntityTypes) {\n const entityTypes = Array.from(keyValue.EntityTypes);\n if (entityTypes.indexOf('KEY') !== -1) {\n keyValueResponse.push(constructKeyValue(keyValue, blockMap));\n }\n }\n });\n response.text.keyValues = keyValueResponse;\n }\n return response;\n}\nexports.categorizeTextractBlocks = categorizeTextractBlocks;\n/**\n * Constructs a table object using data from its children cells.\n * @param {Block} table - Table block that has references (`Relationships`) to its cells\n * @param {[id: string]: Block} blockMap - Maps block Ids to blocks.\n */\nfunction constructTable(table, blockMap) {\n const tableMatrix = [];\n // visit each of the cell associated with the table's relationship.\n for (const tableRelation of table.Relationships ?? []) {\n for (const cellId of tableRelation.Ids ?? []) {\n const cellBlock = blockMap[cellId];\n if (cellBlock.RowIndex && cellBlock.ColumnIndex) {\n const row = cellBlock.RowIndex - 1; // textract starts indexing at 1, so subtract it by 1.\n const col = cellBlock.ColumnIndex - 1; // textract starts indexing at 1, so subtract it by 1.\n // extract data contained inside the cell.\n const content = extractContentsFromBlock(cellBlock, blockMap);\n const cell = {\n text: content.text,\n boundingBox: getBoundingBox(cellBlock.Geometry),\n polygon: getPolygon(cellBlock.Geometry),\n selected: content.selected,\n rowSpan: cellBlock.RowSpan,\n columnSpan: cellBlock.ColumnSpan,\n };\n if (!tableMatrix[row])\n tableMatrix[row] = [];\n tableMatrix[row][col] = cell;\n }\n }\n }\n const rowSize = tableMatrix.length;\n const columnSize = tableMatrix[0].length;\n const boundingBox = getBoundingBox(table.Geometry);\n const polygon = getPolygon(table.Geometry);\n // Note that we leave spanned cells undefined for distinction\n return {\n size: { rows: rowSize, columns: columnSize },\n table: tableMatrix,\n boundingBox,\n polygon,\n };\n}\n/**\n * Constructs a key value object from its children key and value blocks.\n * @param {Block} KeyValue - KeyValue block that has references (`Relationships`) to its children.\n * @param {[id: string]: Block} blockMap - Maps block Ids to blocks.\n */\nfunction constructKeyValue(keyBlock, blockMap) {\n let keyText = '';\n let valueText = '';\n let valueSelected = false;\n for (const keyValueRelation of keyBlock.Relationships ?? []) {\n if (keyValueRelation.Type === 'CHILD') {\n // relation refers to key\n const contents = extractContentsFromBlock(keyBlock, blockMap);\n keyText = contents.text ?? '';\n }\n else if (keyValueRelation.Type === 'VALUE') {\n // relation refers to value\n for (const valueId of keyValueRelation.Ids ?? []) {\n const valueBlock = blockMap[valueId];\n const contents = extractContentsFromBlock(valueBlock, blockMap);\n valueText = contents.text ?? '';\n if (contents.selected != null)\n valueSelected = contents.selected;\n }\n }\n }\n return {\n key: keyText,\n value: { text: valueText, selected: valueSelected },\n polygon: getPolygon(keyBlock.Geometry),\n boundingBox: getBoundingBox(keyBlock.Geometry),\n };\n}\n/**\n * Extracts text and selection from input block's children.\n * @param {Block}} block - Block that we want to extract contents from.\n * @param {[id: string]: Block} blockMap - Maps block Ids to blocks.\n */\nfunction extractContentsFromBlock(block, blockMap) {\n let words = '';\n let isSelected = false;\n if (!block.Relationships) {\n // some block might have no content\n return { text: '', selected: undefined };\n }\n for (const relation of block.Relationships) {\n for (const contentId of relation.Ids ?? []) {\n const contentBlock = blockMap[contentId];\n if (contentBlock.BlockType === 'WORD') {\n words += contentBlock.Text + ' ';\n }\n else if (contentBlock.BlockType === 'SELECTION_ELEMENT') {\n isSelected = contentBlock.SelectionStatus === 'SELECTED';\n }\n }\n }\n words = words.substr(0, words.length - 1); // remove trailing space.\n return { text: words, selected: isSelected };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IdentifyTextUtils.js","sources":["../../../src/providers/IdentifyTextUtils.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.categorizeTextractBlocks = exports.categorizeRekognitionBlocks = void 0;\nconst Utils_1 = require(\"./Utils\");\nfunction getBoundingBox(geometry) {\n return (0, Utils_1.makeCamelCase)(geometry?.BoundingBox);\n}\nfunction getPolygon(geometry) {\n if (!geometry?.Polygon)\n return undefined;\n return (0, Utils_1.makeCamelCaseArray)(Array.from(geometry.Polygon));\n}\n/**\n * Organizes blocks from Rekognition API to each of the categories and and structures\n * their data accordingly.\n * @param {BlockList} source - Array containing blocks returned from Textract API.\n * @return {IdentifyTextOutput} - Object that categorizes each block and its information.\n */\nfunction categorizeRekognitionBlocks(blocks) {\n // Skeleton IdentifyText API response. We will populate it as we iterate through blocks.\n const response = {\n text: {\n fullText: '',\n words: [],\n lines: [],\n linesDetailed: [],\n },\n };\n // We categorize each block by running a forEach loop through them.\n blocks.forEach(block => {\n switch (block.Type) {\n case 'LINE':\n if (block.DetectedText) {\n response.text.lines.push(block.DetectedText);\n }\n response.text.linesDetailed.push({\n text: block.DetectedText,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n page: undefined, // rekognition doesn't have this info\n });\n break;\n case 'WORD':\n response.text.fullText += block.DetectedText + ' ';\n response.text.words.push({\n text: block.DetectedText,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n });\n break;\n }\n });\n // remove trailing space of fullText\n response.text.fullText = response.text.fullText.substr(0, response.text.fullText.length - 1);\n return response;\n}\nexports.categorizeRekognitionBlocks = categorizeRekognitionBlocks;\n/**\n * Organizes blocks from Textract API to each of the categories and and structures\n * their data accordingly.\n * @param {BlockList} source - Array containing blocks returned from Textract API.\n * @return {IdentifyTextOutput} - Object that categorizes each block and its information.\n */\nfunction categorizeTextractBlocks(blocks) {\n // Skeleton IdentifyText API response. We will populate it as we iterate through blocks.\n const response = {\n text: {\n fullText: '',\n words: [],\n lines: [],\n linesDetailed: [],\n },\n };\n // if blocks is an empty array, ie. textract did not detect anything, return empty response.\n if (blocks.length === 0)\n return response;\n /**\n * We categorize each of the blocks by running a forEach loop through them.\n *\n * For complex structures such as Tables and KeyValue, we need to trasverse through their children. To do so,\n * we will post-process them after the for each loop. We do this by storing table and keyvalues in arrays and\n * mapping other blocks in `blockMap` (id to block) so we can reference them easily later.\n *\n * Note that we do not map `WORD` and `TABLE` in `blockMap` because they will not be referenced by any other\n * block except the Page block.\n */\n const tableBlocks = Array();\n const keyValueBlocks = Array();\n const blockMap = {};\n blocks.forEach(block => {\n switch (block.BlockType) {\n case 'LINE':\n if (block.Text) {\n response.text.lines.push(block.Text);\n }\n response.text.linesDetailed.push({\n text: block.Text,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n page: block.Page,\n });\n break;\n case 'WORD':\n response.text.fullText += block.Text + ' ';\n response.text.words.push({\n text: block.Text,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n });\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n break;\n case 'SELECTION_ELEMENT':\n const selectionStatus = block.SelectionStatus === 'SELECTED' ? true : false;\n if (!response.text.selections)\n response.text.selections = [];\n response.text.selections.push({\n selected: selectionStatus,\n polygon: getPolygon(block.Geometry),\n boundingBox: getBoundingBox(block.Geometry),\n });\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n break;\n case 'TABLE':\n tableBlocks.push(block);\n break;\n case 'KEY_VALUE_SET':\n keyValueBlocks.push(block);\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n break;\n default:\n if (block.Id) {\n blockMap[block.Id] = block;\n }\n }\n });\n // remove trailing space in fullText\n response.text.fullText = response.text.fullText.substr(0, response.text.fullText.length - 1);\n // Post-process complex structures if they exist.\n if (tableBlocks.length !== 0) {\n const tableResponse = Array();\n tableBlocks.forEach(table => {\n tableResponse.push(constructTable(table, blockMap));\n });\n response.text.tables = tableResponse;\n }\n if (keyValueBlocks.length !== 0) {\n const keyValueResponse = Array();\n keyValueBlocks.forEach(keyValue => {\n // We need the KeyValue blocks of EntityType = `KEY`, which has both key and value references.\n if (keyValue.EntityTypes) {\n const entityTypes = Array.from(keyValue.EntityTypes);\n if (entityTypes.indexOf('KEY') !== -1) {\n keyValueResponse.push(constructKeyValue(keyValue, blockMap));\n }\n }\n });\n response.text.keyValues = keyValueResponse;\n }\n return response;\n}\nexports.categorizeTextractBlocks = categorizeTextractBlocks;\n/**\n * Constructs a table object using data from its children cells.\n * @param {Block} table - Table block that has references (`Relationships`) to its cells\n * @param {[id: string]: Block} blockMap - Maps block Ids to blocks.\n */\nfunction constructTable(table, blockMap) {\n let tableMatrix;\n tableMatrix = [];\n // visit each of the cell associated with the table's relationship.\n for (const tableRelation of table.Relationships ?? []) {\n for (const cellId of tableRelation.Ids ?? []) {\n const cellBlock = blockMap[cellId];\n if (cellBlock.RowIndex && cellBlock.ColumnIndex) {\n const row = cellBlock.RowIndex - 1; // textract starts indexing at 1, so subtract it by 1.\n const col = cellBlock.ColumnIndex - 1; // textract starts indexing at 1, so subtract it by 1.\n // extract data contained inside the cell.\n const content = extractContentsFromBlock(cellBlock, blockMap);\n const cell = {\n text: content.text,\n boundingBox: getBoundingBox(cellBlock.Geometry),\n polygon: getPolygon(cellBlock.Geometry),\n selected: content.selected,\n rowSpan: cellBlock.RowSpan,\n columnSpan: cellBlock.ColumnSpan,\n };\n if (!tableMatrix[row])\n tableMatrix[row] = [];\n tableMatrix[row][col] = cell;\n }\n }\n }\n const rowSize = tableMatrix.length;\n const columnSize = tableMatrix[0].length;\n const boundingBox = getBoundingBox(table.Geometry);\n const polygon = getPolygon(table.Geometry);\n // Note that we leave spanned cells undefined for distinction\n return {\n size: { rows: rowSize, columns: columnSize },\n table: tableMatrix,\n boundingBox,\n polygon,\n };\n}\n/**\n * Constructs a key value object from its children key and value blocks.\n * @param {Block} KeyValue - KeyValue block that has references (`Relationships`) to its children.\n * @param {[id: string]: Block} blockMap - Maps block Ids to blocks.\n */\nfunction constructKeyValue(keyBlock, blockMap) {\n let keyText = '';\n let valueText = '';\n let valueSelected = false;\n for (const keyValueRelation of keyBlock.Relationships ?? []) {\n if (keyValueRelation.Type === 'CHILD') {\n // relation refers to key\n const contents = extractContentsFromBlock(keyBlock, blockMap);\n keyText = contents.text ?? '';\n }\n else if (keyValueRelation.Type === 'VALUE') {\n // relation refers to value\n for (const valueId of keyValueRelation.Ids ?? []) {\n const valueBlock = blockMap[valueId];\n const contents = extractContentsFromBlock(valueBlock, blockMap);\n valueText = contents.text ?? '';\n if (contents.selected != null)\n valueSelected = contents.selected;\n }\n }\n }\n return {\n key: keyText,\n value: { text: valueText, selected: valueSelected },\n polygon: getPolygon(keyBlock.Geometry),\n boundingBox: getBoundingBox(keyBlock.Geometry),\n };\n}\n/**\n * Extracts text and selection from input block's children.\n * @param {Block}} block - Block that we want to extract contents from.\n * @param {[id: string]: Block} blockMap - Maps block Ids to blocks.\n */\nfunction extractContentsFromBlock(block, blockMap) {\n let words = '';\n let isSelected = false;\n if (!block.Relationships) {\n // some block might have no content\n return { text: '', selected: undefined };\n }\n for (const relation of block.Relationships) {\n for (const contentId of relation.Ids ?? []) {\n const contentBlock = blockMap[contentId];\n if (contentBlock.BlockType === 'WORD') {\n words += contentBlock.Text + ' ';\n }\n else if (contentBlock.BlockType === 'SELECTION_ELEMENT') {\n isSelected = contentBlock.SelectionStatus === 'SELECTED' ? true : false;\n }\n }\n }\n words = words.substr(0, words.length - 1); // remove trailing space.\n return { text: words, selected: isSelected };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,9 @@ function makeCamelCase(obj, keys) {
|
|
|
12
12
|
if (!obj)
|
|
13
13
|
return undefined;
|
|
14
14
|
const newObj = {};
|
|
15
|
-
const keysToRename = keys
|
|
15
|
+
const keysToRename = keys ? keys : Object.keys(obj);
|
|
16
16
|
keysToRename.forEach(key => {
|
|
17
|
-
if (
|
|
17
|
+
if (obj.hasOwnProperty(key)) {
|
|
18
18
|
// change the key to camelcase.
|
|
19
19
|
const camelCaseKey = key.charAt(0).toLowerCase() + key.substr(1);
|
|
20
20
|
Object.assign(newObj, { [camelCaseKey]: obj[key] });
|
|
@@ -36,19 +36,19 @@ exports.makeCamelCaseArray = makeCamelCaseArray;
|
|
|
36
36
|
* Converts blob to array buffer
|
|
37
37
|
*/
|
|
38
38
|
function blobToArrayBuffer(blob) {
|
|
39
|
-
return new Promise((
|
|
39
|
+
return new Promise((res, rej) => {
|
|
40
40
|
const reader = new FileReader();
|
|
41
41
|
reader.onload = _event => {
|
|
42
|
-
|
|
42
|
+
res(reader.result);
|
|
43
43
|
};
|
|
44
44
|
reader.onerror = err => {
|
|
45
|
-
|
|
45
|
+
rej(err);
|
|
46
46
|
};
|
|
47
47
|
try {
|
|
48
48
|
reader.readAsArrayBuffer(blob);
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
-
|
|
51
|
+
rej(err); // in case user gives invalid type
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sources":["../../../src/providers/Utils.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.blobToArrayBuffer = exports.makeCamelCaseArray = exports.makeCamelCase = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Changes object keys to camel case. If optional parameter `keys` is given, then we extract only the\n * keys specified in `keys`.\n */\nfunction makeCamelCase(obj, keys) {\n if (!obj)\n return undefined;\n const newObj = {};\n const keysToRename = keys
|
|
1
|
+
{"version":3,"file":"Utils.js","sources":["../../../src/providers/Utils.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.blobToArrayBuffer = exports.makeCamelCaseArray = exports.makeCamelCase = void 0;\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Changes object keys to camel case. If optional parameter `keys` is given, then we extract only the\n * keys specified in `keys`.\n */\nfunction makeCamelCase(obj, keys) {\n if (!obj)\n return undefined;\n const newObj = {};\n const keysToRename = keys ? keys : Object.keys(obj);\n keysToRename.forEach(key => {\n if (obj.hasOwnProperty(key)) {\n // change the key to camelcase.\n const camelCaseKey = key.charAt(0).toLowerCase() + key.substr(1);\n Object.assign(newObj, { [camelCaseKey]: obj[key] });\n }\n });\n return newObj;\n}\nexports.makeCamelCase = makeCamelCase;\n/**\n * Given an array of object, call makeCamelCase(...) on each option.\n */\nfunction makeCamelCaseArray(objArr, keys) {\n if (!objArr)\n return undefined;\n return objArr.map(obj => makeCamelCase(obj, keys));\n}\nexports.makeCamelCaseArray = makeCamelCaseArray;\n/**\n * Converts blob to array buffer\n */\nfunction blobToArrayBuffer(blob) {\n return new Promise((res, rej) => {\n const reader = new FileReader();\n reader.onload = _event => {\n res(reader.result);\n };\n reader.onerror = err => {\n rej(err);\n };\n try {\n reader.readAsArrayBuffer(blob);\n }\n catch (err) {\n rej(err); // in case user gives invalid type\n }\n });\n}\nexports.blobToArrayBuffer = blobToArrayBuffer;\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE;AAClC,IAAI,IAAI,CAAC,GAAG;AACZ,QAAQ,OAAO,SAAS,CAAC;AACzB,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI;AAChC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACrC;AACA,YAAY,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AACtC;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE;AAC1C,IAAI,IAAI,CAAC,MAAM;AACf,QAAQ,OAAO,SAAS,CAAC;AACzB,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AACD,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAChD;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACxC,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI;AAClC,YAAY,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,OAAO,GAAG,GAAG,IAAI;AAChC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI;AACZ,YAAY,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;AACD,OAAO,CAAC,iBAAiB,GAAG,iBAAiB;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
4
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
/* tslint:disable:max-line-length */
|
|
5
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
7
|
exports.isInterpretTextOthers = exports.isInterpretTextInput = exports.isIdentifyEntitiesInput = exports.isIdentifyLabelsInput = exports.isIdentifyTextInput = exports.isIdentifyBytesSource = exports.isConvertBytesSource = exports.isFileSource = exports.isStorageSource = exports.isSpeechToTextInput = exports.isTextToSpeechInput = exports.isTranslateTextInput = exports.isIdentifyCelebrities = exports.isIdentifyFromCollection = exports.isValidInterpretInput = exports.isValidIdentifyInput = exports.isValidConvertInput = void 0;
|
|
7
8
|
function isValidConvertInput(obj) {
|
|
@@ -23,69 +24,67 @@ exports.isValidInterpretInput = isValidInterpretInput;
|
|
|
23
24
|
function isIdentifyFromCollection(obj) {
|
|
24
25
|
const key = 'collection';
|
|
25
26
|
const keyId = 'collectionId';
|
|
26
|
-
return (obj
|
|
27
|
-
(Object.prototype.hasOwnProperty.call(obj, key) ||
|
|
28
|
-
Object.prototype.hasOwnProperty.call(obj, keyId)));
|
|
27
|
+
return obj && (obj.hasOwnProperty(key) || obj.hasOwnProperty(keyId));
|
|
29
28
|
}
|
|
30
29
|
exports.isIdentifyFromCollection = isIdentifyFromCollection;
|
|
31
30
|
function isIdentifyCelebrities(obj) {
|
|
32
31
|
const key = 'celebrityDetection';
|
|
33
|
-
return obj &&
|
|
32
|
+
return obj && obj.hasOwnProperty(key);
|
|
34
33
|
}
|
|
35
34
|
exports.isIdentifyCelebrities = isIdentifyCelebrities;
|
|
36
35
|
function isTranslateTextInput(obj) {
|
|
37
36
|
const key = 'translateText';
|
|
38
|
-
return obj &&
|
|
37
|
+
return obj && obj.hasOwnProperty(key);
|
|
39
38
|
}
|
|
40
39
|
exports.isTranslateTextInput = isTranslateTextInput;
|
|
41
40
|
function isTextToSpeechInput(obj) {
|
|
42
41
|
const key = 'textToSpeech';
|
|
43
|
-
return obj &&
|
|
42
|
+
return obj && obj.hasOwnProperty(key);
|
|
44
43
|
}
|
|
45
44
|
exports.isTextToSpeechInput = isTextToSpeechInput;
|
|
46
45
|
function isSpeechToTextInput(obj) {
|
|
47
46
|
const key = 'transcription';
|
|
48
|
-
return obj &&
|
|
47
|
+
return obj && obj.hasOwnProperty(key);
|
|
49
48
|
}
|
|
50
49
|
exports.isSpeechToTextInput = isSpeechToTextInput;
|
|
51
50
|
function isStorageSource(obj) {
|
|
52
51
|
const key = 'key';
|
|
53
|
-
return obj &&
|
|
52
|
+
return obj && obj.hasOwnProperty(key);
|
|
54
53
|
}
|
|
55
54
|
exports.isStorageSource = isStorageSource;
|
|
56
55
|
function isFileSource(obj) {
|
|
57
56
|
const key = 'file';
|
|
58
|
-
return obj &&
|
|
57
|
+
return obj && obj.hasOwnProperty(key);
|
|
59
58
|
}
|
|
60
59
|
exports.isFileSource = isFileSource;
|
|
61
60
|
function isConvertBytesSource(obj) {
|
|
62
61
|
const key = 'bytes';
|
|
63
|
-
return obj &&
|
|
62
|
+
return obj && obj.hasOwnProperty(key);
|
|
64
63
|
}
|
|
65
64
|
exports.isConvertBytesSource = isConvertBytesSource;
|
|
66
65
|
function isIdentifyBytesSource(obj) {
|
|
67
66
|
const key = 'bytes';
|
|
68
|
-
return obj &&
|
|
67
|
+
return obj && obj.hasOwnProperty(key);
|
|
69
68
|
}
|
|
70
69
|
exports.isIdentifyBytesSource = isIdentifyBytesSource;
|
|
71
70
|
function isIdentifyTextInput(obj) {
|
|
72
71
|
const key = 'text';
|
|
73
|
-
return obj &&
|
|
72
|
+
return obj && obj.hasOwnProperty(key);
|
|
74
73
|
}
|
|
75
74
|
exports.isIdentifyTextInput = isIdentifyTextInput;
|
|
76
75
|
function isIdentifyLabelsInput(obj) {
|
|
77
76
|
const key = 'labels';
|
|
78
|
-
return obj &&
|
|
77
|
+
return obj && obj.hasOwnProperty(key);
|
|
79
78
|
}
|
|
80
79
|
exports.isIdentifyLabelsInput = isIdentifyLabelsInput;
|
|
81
80
|
function isIdentifyEntitiesInput(obj) {
|
|
82
81
|
const key = 'entities';
|
|
83
|
-
return obj &&
|
|
82
|
+
return obj && obj.hasOwnProperty(key);
|
|
84
83
|
}
|
|
85
84
|
exports.isIdentifyEntitiesInput = isIdentifyEntitiesInput;
|
|
86
85
|
function isInterpretTextInput(obj) {
|
|
87
86
|
const key = 'text';
|
|
88
|
-
return obj &&
|
|
87
|
+
return obj && obj.hasOwnProperty(key);
|
|
89
88
|
}
|
|
90
89
|
exports.isInterpretTextInput = isInterpretTextInput;
|
|
91
90
|
function isInterpretTextOthers(text) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Predictions.js","sources":["../../../src/types/Predictions.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInterpretTextOthers = exports.isInterpretTextInput = exports.isIdentifyEntitiesInput = exports.isIdentifyLabelsInput = exports.isIdentifyTextInput = exports.isIdentifyBytesSource = exports.isConvertBytesSource = exports.isFileSource = exports.isStorageSource = exports.isSpeechToTextInput = exports.isTextToSpeechInput = exports.isTranslateTextInput = exports.isIdentifyCelebrities = exports.isIdentifyFromCollection = exports.isValidInterpretInput = exports.isValidIdentifyInput = exports.isValidConvertInput = void 0;\nfunction isValidConvertInput(obj) {\n return (isTranslateTextInput(obj) ||\n isTextToSpeechInput(obj) ||\n isSpeechToTextInput(obj));\n}\nexports.isValidConvertInput = isValidConvertInput;\nfunction isValidIdentifyInput(obj) {\n return (isIdentifyTextInput(obj) ||\n isIdentifyLabelsInput(obj) ||\n isIdentifyEntitiesInput(obj));\n}\nexports.isValidIdentifyInput = isValidIdentifyInput;\nfunction isValidInterpretInput(obj) {\n return isInterpretTextInput(obj);\n}\nexports.isValidInterpretInput = isValidInterpretInput;\nfunction isIdentifyFromCollection(obj) {\n const key = 'collection';\n const keyId = 'collectionId';\n return
|
|
1
|
+
{"version":3,"file":"Predictions.js","sources":["../../../src/types/Predictions.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/* tslint:disable:max-line-length */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInterpretTextOthers = exports.isInterpretTextInput = exports.isIdentifyEntitiesInput = exports.isIdentifyLabelsInput = exports.isIdentifyTextInput = exports.isIdentifyBytesSource = exports.isConvertBytesSource = exports.isFileSource = exports.isStorageSource = exports.isSpeechToTextInput = exports.isTextToSpeechInput = exports.isTranslateTextInput = exports.isIdentifyCelebrities = exports.isIdentifyFromCollection = exports.isValidInterpretInput = exports.isValidIdentifyInput = exports.isValidConvertInput = void 0;\nfunction isValidConvertInput(obj) {\n return (isTranslateTextInput(obj) ||\n isTextToSpeechInput(obj) ||\n isSpeechToTextInput(obj));\n}\nexports.isValidConvertInput = isValidConvertInput;\nfunction isValidIdentifyInput(obj) {\n return (isIdentifyTextInput(obj) ||\n isIdentifyLabelsInput(obj) ||\n isIdentifyEntitiesInput(obj));\n}\nexports.isValidIdentifyInput = isValidIdentifyInput;\nfunction isValidInterpretInput(obj) {\n return isInterpretTextInput(obj);\n}\nexports.isValidInterpretInput = isValidInterpretInput;\nfunction isIdentifyFromCollection(obj) {\n const key = 'collection';\n const keyId = 'collectionId';\n return obj && (obj.hasOwnProperty(key) || obj.hasOwnProperty(keyId));\n}\nexports.isIdentifyFromCollection = isIdentifyFromCollection;\nfunction isIdentifyCelebrities(obj) {\n const key = 'celebrityDetection';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isIdentifyCelebrities = isIdentifyCelebrities;\nfunction isTranslateTextInput(obj) {\n const key = 'translateText';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isTranslateTextInput = isTranslateTextInput;\nfunction isTextToSpeechInput(obj) {\n const key = 'textToSpeech';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isTextToSpeechInput = isTextToSpeechInput;\nfunction isSpeechToTextInput(obj) {\n const key = 'transcription';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isSpeechToTextInput = isSpeechToTextInput;\nfunction isStorageSource(obj) {\n const key = 'key';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isStorageSource = isStorageSource;\nfunction isFileSource(obj) {\n const key = 'file';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isFileSource = isFileSource;\nfunction isConvertBytesSource(obj) {\n const key = 'bytes';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isConvertBytesSource = isConvertBytesSource;\nfunction isIdentifyBytesSource(obj) {\n const key = 'bytes';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isIdentifyBytesSource = isIdentifyBytesSource;\nfunction isIdentifyTextInput(obj) {\n const key = 'text';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isIdentifyTextInput = isIdentifyTextInput;\nfunction isIdentifyLabelsInput(obj) {\n const key = 'labels';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isIdentifyLabelsInput = isIdentifyLabelsInput;\nfunction isIdentifyEntitiesInput(obj) {\n const key = 'entities';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isIdentifyEntitiesInput = isIdentifyEntitiesInput;\nfunction isInterpretTextInput(obj) {\n const key = 'text';\n return obj && obj.hasOwnProperty(key);\n}\nexports.isInterpretTextInput = isInterpretTextInput;\nfunction isInterpretTextOthers(text) {\n return text.source.language !== undefined;\n}\nexports.isInterpretTextOthers = isInterpretTextOthers;\n"],"names":[],"mappings":";;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC;AACjhB,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,IAAI,QAAQ,oBAAoB,CAAC,GAAG,CAAC;AACrC,QAAQ,mBAAmB,CAAC,GAAG,CAAC;AAChC,QAAQ,mBAAmB,CAAC,GAAG,CAAC,EAAE;AAClC,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACnC,IAAI,QAAQ,mBAAmB,CAAC,GAAG,CAAC;AACpC,QAAQ,qBAAqB,CAAC,GAAG,CAAC;AAClC,QAAQ,uBAAuB,CAAC,GAAG,CAAC,EAAE;AACtC,CAAC;AACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AACpD,SAAS,qBAAqB,CAAC,GAAG,EAAE;AACpC,IAAI,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AACD,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;AACtD,SAAS,wBAAwB,CAAC,GAAG,EAAE;AACvC,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC;AAC7B,IAAI,MAAM,KAAK,GAAG,cAAc,CAAC;AACjC,IAAI,OAAO,GAAG,KAAK,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AACD,OAAO,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AAC5D,SAAS,qBAAqB,CAAC,GAAG,EAAE;AACpC,IAAI,MAAM,GAAG,GAAG,oBAAoB,CAAC;AACrC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;AACtD,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACnC,IAAI,MAAM,GAAG,GAAG,eAAe,CAAC;AAChC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AACpD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,GAAG,GAAG,cAAc,CAAC;AAC/B,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,GAAG,GAAG,eAAe,CAAC;AAChC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC;AACtB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;AAC1C,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC;AACvB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;AACpC,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACnC,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC;AACxB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AACpD,SAAS,qBAAqB,CAAC,GAAG,EAAE;AACpC,IAAI,MAAM,GAAG,GAAG,OAAO,CAAC;AACxB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;AACtD,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC;AACvB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAClD,SAAS,qBAAqB,CAAC,GAAG,EAAE;AACpC,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC;AACzB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;AACtD,SAAS,uBAAuB,CAAC,GAAG,EAAE;AACtC,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC;AAC3B,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;AAC1D,SAAS,oBAAoB,CAAC,GAAG,EAAE;AACnC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC;AACvB,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AACpD,SAAS,qBAAqB,CAAC,IAAI,EAAE;AACrC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9C,CAAC;AACD,OAAO,CAAC,qBAAqB,GAAG,qBAAqB;;"}
|
package/dist/esm/Predictions.mjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
1
2
|
import { AmazonAIConvertPredictionsProvider } from './providers/AmazonAIConvertPredictionsProvider.mjs';
|
|
2
3
|
import { AmazonAIIdentifyPredictionsProvider } from './providers/AmazonAIIdentifyPredictionsProvider.mjs';
|
|
3
4
|
import { AmazonAIInterpretPredictionsProvider } from './providers/AmazonAIInterpretPredictionsProvider.mjs';
|
|
4
5
|
|
|
5
6
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
7
|
// SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
new ConsoleLogger('Predictions');
|
|
7
9
|
class PredictionsClass {
|
|
8
10
|
constructor() {
|
|
9
11
|
this.convertProvider = new AmazonAIConvertPredictionsProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Predictions.mjs","sources":["../../src/Predictions.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmazonAIConvertPredictionsProvider, AmazonAIIdentifyPredictionsProvider, AmazonAIInterpretPredictionsProvider, } from './providers';\nexport class PredictionsClass {\n constructor() {\n this.convertProvider = new AmazonAIConvertPredictionsProvider();\n this.identifyProvider = new AmazonAIIdentifyPredictionsProvider();\n this.interpretProvider = new AmazonAIInterpretPredictionsProvider();\n }\n getModuleName() {\n return 'Predictions';\n }\n interpret(input) {\n return this.interpretProvider.interpret(input);\n }\n convert(input) {\n return this.convertProvider.convert(input);\n }\n identify(input) {\n return this.identifyProvider.identify(input);\n }\n}\nexport const Predictions = new PredictionsClass();\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Predictions.mjs","sources":["../../src/Predictions.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { AmazonAIConvertPredictionsProvider, AmazonAIIdentifyPredictionsProvider, AmazonAIInterpretPredictionsProvider, } from './providers';\nconst logger = new ConsoleLogger('Predictions');\nexport class PredictionsClass {\n constructor() {\n this.convertProvider = new AmazonAIConvertPredictionsProvider();\n this.identifyProvider = new AmazonAIIdentifyPredictionsProvider();\n this.interpretProvider = new AmazonAIInterpretPredictionsProvider();\n }\n getModuleName() {\n return 'Predictions';\n }\n interpret(input) {\n return this.interpretProvider.interpret(input);\n }\n convert(input) {\n return this.convertProvider.convert(input);\n }\n identify(input) {\n return this.identifyProvider.identify(input);\n }\n}\nexport const Predictions = new PredictionsClass();\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGe,IAAI,aAAa,CAAC,aAAa,EAAE;AACzC,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAkC,EAAE,CAAC;AACxE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAmC,EAAE,CAAC;AAC1E,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,oCAAoC,EAAE,CAAC;AAC5E,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,aAAa,CAAC;AAC7B,KAAK;AACL,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,KAAK;AACL,CAAC;AACW,MAAC,WAAW,GAAG,IAAI,gBAAgB;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
2
1
|
import { ConsoleLogger, Amplify, fetchAuthSession } from '@aws-amplify/core';
|
|
3
2
|
import { getAmplifyUserAgentObject, Category, PredictionsAction, Signer } from '@aws-amplify/core/internals/utils';
|
|
4
3
|
import { PollyClient, SynthesizeSpeechCommand } from '@aws-sdk/client-polly';
|
|
5
4
|
import { TranslateClient, TranslateTextCommand } from '@aws-sdk/client-translate';
|
|
6
5
|
import { EventStreamCodec } from '@smithy/eventstream-codec';
|
|
7
6
|
import { toUtf8, fromUtf8 } from '@smithy/util-utf8';
|
|
7
|
+
import { Buffer } from 'buffer';
|
|
8
8
|
import { PredictionsValidationErrorCode } from '../errors/types/validation.mjs';
|
|
9
9
|
import { assertValidationError } from '../errors/utils/assertValidationError.mjs';
|
|
10
10
|
import { isValidConvertInput, isTranslateTextInput, isTextToSpeechInput, isConvertBytesSource } from '../types/Predictions.mjs';
|
|
@@ -91,6 +91,7 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
91
91
|
VoiceId: voiceId,
|
|
92
92
|
TextType: 'text',
|
|
93
93
|
SampleRate: '24000',
|
|
94
|
+
// tslint:disable-next-line: align
|
|
94
95
|
});
|
|
95
96
|
const data = await this.pollyClient.send(synthesizeSpeechCommand);
|
|
96
97
|
const response = new Response(data.AudioStream);
|
|
@@ -163,7 +164,7 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
163
164
|
return decodedMessage;
|
|
164
165
|
}
|
|
165
166
|
sendDataToTranscribe({ connection, raw, languageCode, }) {
|
|
166
|
-
return new Promise((
|
|
167
|
+
return new Promise((res, rej) => {
|
|
167
168
|
let fullText = '';
|
|
168
169
|
connection.onmessage = message => {
|
|
169
170
|
try {
|
|
@@ -174,16 +175,16 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
174
175
|
}
|
|
175
176
|
catch (err) {
|
|
176
177
|
logger.debug(err);
|
|
177
|
-
|
|
178
|
+
rej(err);
|
|
178
179
|
}
|
|
179
180
|
};
|
|
180
181
|
connection.onerror = errorEvent => {
|
|
181
182
|
logger.debug({ errorEvent });
|
|
182
|
-
|
|
183
|
+
rej('failed to transcribe, network error');
|
|
183
184
|
};
|
|
184
185
|
connection.onclose = closeEvent => {
|
|
185
186
|
logger.debug({ closeEvent });
|
|
186
|
-
|
|
187
|
+
return res(fullText.trim());
|
|
187
188
|
};
|
|
188
189
|
logger.debug({ raw });
|
|
189
190
|
if (Array.isArray(raw)) {
|
|
@@ -257,8 +258,7 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
257
258
|
let offsetBuffer = 0;
|
|
258
259
|
while (offsetResult < result.length) {
|
|
259
260
|
const nextOffsetBuffer = Math.round((offsetResult + 1) * sampleRateRatio);
|
|
260
|
-
let accum = 0;
|
|
261
|
-
let count = 0;
|
|
261
|
+
let accum = 0, count = 0;
|
|
262
262
|
for (let i = offsetBuffer; i < nextOffsetBuffer && i < buffer.length; i++) {
|
|
263
263
|
accum += buffer[i];
|
|
264
264
|
count++;
|
|
@@ -270,7 +270,7 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
270
270
|
return result;
|
|
271
271
|
}
|
|
272
272
|
openConnectionWithTranscribe({ credentials, region, languageCode, }) {
|
|
273
|
-
return new Promise((
|
|
273
|
+
return new Promise(async (res, rej) => {
|
|
274
274
|
const signedUrl = this.generateTranscribeUrl({
|
|
275
275
|
credentials,
|
|
276
276
|
region,
|
|
@@ -281,7 +281,7 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
281
281
|
connection.binaryType = 'arraybuffer';
|
|
282
282
|
connection.onopen = () => {
|
|
283
283
|
logger.debug('connected');
|
|
284
|
-
|
|
284
|
+
res(connection);
|
|
285
285
|
};
|
|
286
286
|
});
|
|
287
287
|
}
|