@aws-amplify/predictions 6.0.22 → 6.0.23
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 +2 -4
- 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 +25 -20
- 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 +15 -14
- package/dist/cjs/types/Predictions.js.map +1 -1
- package/dist/esm/Predictions.mjs +0 -2
- 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 +25 -20
- 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 +15 -14
- package/dist/esm/types/Predictions.mjs.map +1 -1
- package/package.json +6 -5
- package/src/Predictions.ts +2 -3
- package/src/providers/AmazonAIConvertPredictionsProvider.ts +20 -10
- package/src/providers/AmazonAIIdentifyPredictionsProvider.ts +41 -26
- package/src/providers/AmazonAIInterpretPredictionsProvider.ts +22 -18
- package/src/providers/IdentifyTextUtils.ts +25 -22
- package/src/providers/Utils.ts +8 -6
- package/src/providers/index.ts +1 -0
- package/src/types/AWSTypes.ts +2 -3
- package/src/types/Predictions.ts +60 -44
|
@@ -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 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":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,OAAO,CAAC,oCAAoC,GAAG,KAAK,CAAC,CAAC;AACtD;AACA;AACA,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAClE,MAAM,YAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC3D,MAAM,uBAAuB,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;AACjF,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,oCAAoC,CAAC;AAC3C,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,sCAAsC,CAAC;AACtD,KAAK;AACL,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,IAAI,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC;AAChK,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,aAAa,CAAC,KAAK,EAAE;AAC/B,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC;AACrE,QAAQ,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;AACrI,QAAQ,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC;AAC/F,QAAQ,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;AAC7D,QAAQ,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC;AACpD,QAAQ,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAC3C,QAAQ,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC;AAC1D,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AAChC,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI,IAAI,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE;AAC5D,YAAY,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;AAClD,SAAS;AACT,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,mBAAmB,CAAC,gBAAgB,CAAC;AACzE,YAAY,WAAW;AACvB,YAAY,MAAM;AAClB,YAAY,eAAe,EAAE,IAAI,OAAO,CAAC,yBAAyB,EAAE;AACpE,gBAAgB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;AACtD,gBAAgB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,SAAS;AAC3D,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;AACrC,QAAQ,IAAI,YAAY,GAAG,QAAQ,CAAC;AACpC,QAAQ,IAAI,KAAK,IAAI,IAAI,KAAK,UAAU,EAAE;AAC1C,YAAY,MAAM,uBAAuB,GAAG;AAC5C,gBAAgB,IAAI,EAAE,IAAI;AAC1B,aAAa,CAAC;AACd,YAAY,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,eAAe,CAAC;AAC5B,QAAQ,IAAI,KAAK,IAAI,IAAI,KAAK,UAAU,EAAE;AAC1C,YAAY,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACvI,YAAY,MAAM,uBAAuB,GAAG;AAC5C,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa,CAAC;AACd,YAAY,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC3E,SAAS;AACT,QAAQ,IAAI,gBAAgB,CAAC;AAC7B,QAAQ,IAAI,KAAK,IAAI,IAAI,KAAK,WAAW,EAAE;AAC3C,YAAY,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACvI,YAAY,MAAM,eAAe,GAAG;AACpC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa,CAAC;AACd,YAAY,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,IAAI,aAAa,CAAC;AAC1B,QAAQ,IAAI,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE;AACxC,YAAY,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACvI,YAAY,MAAM,YAAY,GAAG;AACjC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa,CAAC;AACd,YAAY,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,iBAAiB,CAAC;AAC9B,QAAQ,IAAI,KAAK,IAAI,IAAI,KAAK,YAAY,EAAE;AAC5C,YAAY,IAAI,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACvI,YAAY,MAAM,gBAAgB,GAAG;AACrC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,YAAY,EAAE,YAAY;AAC1C,aAAa,CAAC;AACd,YAAY,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACxE,SAAS;AACT,QAAQ,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAChF,YAAY,eAAe;AAC3B,YAAY,gBAAgB;AAC5B,YAAY,aAAa;AACzB,YAAY,iBAAiB;AAC7B,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ,EAAE,YAAY;AACtC,gBAAgB,SAAS;AACzB,gBAAgB,MAAM;AACtB,gBAAgB,YAAY;AAC5B,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,gBAAgB,CAAC,MAAM,EAAE;AACnC,QAAQ,IAAI;AACZ,YAAY,MAAM,uBAAuB,GAAG,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACpG,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACnF,YAAY,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;AACnD,YAAY,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;AACtD,gBAAgB,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;AACtD,gBAAgB,MAAM,IAAI,KAAK,CAAC,0FAA0F;AAC1H,oBAAoB,yBAAyB,CAAC,CAAC;AAC/C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,CAAC;AAC1B,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,YAAY,CAAC,MAAM,EAAE;AAC/B,QAAQ,IAAI;AACZ,YAAY,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5F,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC/E,YAAY,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;AACrD,YAAY,OAAO,IAAI,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;AACpE,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;AACtD,gBAAgB,MAAM,IAAI,KAAK,CAAC,0FAA0F;AAC1H,oBAAoB,yBAAyB,CAAC,CAAC;AAC/C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,CAAC;AAC1B,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,6BAA6B,CAAC,MAAM,EAAE;AAC1C,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7C,YAAY,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK;AACpG,gBAAgB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACxC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,eAAe,CAAC,MAAM,EAAE;AAClC,QAAQ,IAAI;AACZ,YAAY,MAAM,sBAAsB,GAAG,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAClG,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAClF,YAAY,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACnL,YAAY,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACvE,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;AACtD,gBAAgB,MAAM,IAAI,KAAK,CAAC,0FAA0F;AAC1H,oBAAoB,yBAAyB,CAAC,CAAC;AAC/C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,CAAC;AAC1B,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,cAAc,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAChG,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACjF,YAAY,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;AACjD,YAAY,OAAO,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAClE,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;AACtD,gBAAgB,MAAM,IAAI,KAAK,CAAC,0FAA0F;AAC1H,oBAAoB,yBAAyB,CAAC,CAAC;AAC/C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,CAAC;AAC1B,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,+BAA+B,CAAC,IAAI,EAAE;AAC1C,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACzC,YAAY,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;AAChE,gBAAgB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,MAAM,cAAc,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,6BAA6B,GAAG,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAChH,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AAC/E,YAAY,CAAC,CAAC,EAAE,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACvI,YAAY,OAAO,YAAY,CAAC;AAChC,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;AACtD,gBAAgB,MAAM,IAAI,KAAK,CAAC,0FAA0F;AAC1H,oBAAoB,yBAAyB,CAAC,CAAC;AAC/C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,CAAC;AAC1B,aAAa;AACb,SAAS;AACT,KAAK;AACL,CAAC;AACD,OAAO,CAAC,oCAAoC,GAAG,oCAAoC;;"}
|
|
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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"}
|
|
@@ -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 = [];
|
|
89
|
+
const keyValueBlocks = [];
|
|
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';
|
|
117
117
|
if (!response.text.selections)
|
|
118
118
|
response.text.selections = [];
|
|
119
119
|
response.text.selections.push({
|
|
@@ -125,6 +125,7 @@ function categorizeTextractBlocks(blocks) {
|
|
|
125
125
|
blockMap[block.Id] = block;
|
|
126
126
|
}
|
|
127
127
|
break;
|
|
128
|
+
}
|
|
128
129
|
case 'TABLE':
|
|
129
130
|
tableBlocks.push(block);
|
|
130
131
|
break;
|
|
@@ -144,14 +145,14 @@ function categorizeTextractBlocks(blocks) {
|
|
|
144
145
|
response.text.fullText = response.text.fullText.substr(0, response.text.fullText.length - 1);
|
|
145
146
|
// Post-process complex structures if they exist.
|
|
146
147
|
if (tableBlocks.length !== 0) {
|
|
147
|
-
const tableResponse =
|
|
148
|
+
const tableResponse = [];
|
|
148
149
|
tableBlocks.forEach(table => {
|
|
149
150
|
tableResponse.push(constructTable(table, blockMap));
|
|
150
151
|
});
|
|
151
152
|
response.text.tables = tableResponse;
|
|
152
153
|
}
|
|
153
154
|
if (keyValueBlocks.length !== 0) {
|
|
154
|
-
const keyValueResponse =
|
|
155
|
+
const keyValueResponse = [];
|
|
155
156
|
keyValueBlocks.forEach(keyValue => {
|
|
156
157
|
// We need the KeyValue blocks of EntityType = `KEY`, which has both key and value references.
|
|
157
158
|
if (keyValue.EntityTypes) {
|
|
@@ -172,8 +173,7 @@ exports.categorizeTextractBlocks = categorizeTextractBlocks;
|
|
|
172
173
|
* @param {[id: string]: Block} blockMap - Maps block Ids to blocks.
|
|
173
174
|
*/
|
|
174
175
|
function constructTable(table, blockMap) {
|
|
175
|
-
|
|
176
|
-
tableMatrix = [];
|
|
176
|
+
const 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';
|
|
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 = 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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"}
|
|
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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"}
|
|
@@ -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 || Object.keys(obj);
|
|
16
16
|
keysToRename.forEach(key => {
|
|
17
|
-
if (
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(obj, 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((resolve, reject) => {
|
|
40
40
|
const reader = new FileReader();
|
|
41
41
|
reader.onload = _event => {
|
|
42
|
-
|
|
42
|
+
resolve(reader.result);
|
|
43
43
|
};
|
|
44
44
|
reader.onerror = err => {
|
|
45
|
-
|
|
45
|
+
reject(err);
|
|
46
46
|
};
|
|
47
47
|
try {
|
|
48
48
|
reader.readAsArrayBuffer(blob);
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
-
|
|
51
|
+
reject(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 || Object.keys(obj);\n keysToRename.forEach(key => {\n if (Object.prototype.hasOwnProperty.call(obj, 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((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = _event => {\n resolve(reader.result);\n };\n reader.onerror = err => {\n reject(err);\n };\n try {\n reader.readAsArrayBuffer(blob);\n }\n catch (err) {\n reject(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,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI;AAChC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AAC5D;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,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACxC,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI;AAClC,YAAY,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnC,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,OAAO,GAAG,GAAG,IAAI;AAChC,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS,CAAC;AACV,QAAQ,IAAI;AACZ,YAAY,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;AACD,OAAO,CAAC,iBAAiB,GAAG,iBAAiB;;"}
|
|
@@ -2,7 +2,6 @@
|
|
|
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 */
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
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;
|
|
8
7
|
function isValidConvertInput(obj) {
|
|
@@ -24,67 +23,69 @@ exports.isValidInterpretInput = isValidInterpretInput;
|
|
|
24
23
|
function isIdentifyFromCollection(obj) {
|
|
25
24
|
const key = 'collection';
|
|
26
25
|
const keyId = 'collectionId';
|
|
27
|
-
return obj &&
|
|
26
|
+
return (obj &&
|
|
27
|
+
(Object.prototype.hasOwnProperty.call(obj, key) ||
|
|
28
|
+
Object.prototype.hasOwnProperty.call(obj, keyId)));
|
|
28
29
|
}
|
|
29
30
|
exports.isIdentifyFromCollection = isIdentifyFromCollection;
|
|
30
31
|
function isIdentifyCelebrities(obj) {
|
|
31
32
|
const key = 'celebrityDetection';
|
|
32
|
-
return obj &&
|
|
33
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
33
34
|
}
|
|
34
35
|
exports.isIdentifyCelebrities = isIdentifyCelebrities;
|
|
35
36
|
function isTranslateTextInput(obj) {
|
|
36
37
|
const key = 'translateText';
|
|
37
|
-
return obj &&
|
|
38
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
38
39
|
}
|
|
39
40
|
exports.isTranslateTextInput = isTranslateTextInput;
|
|
40
41
|
function isTextToSpeechInput(obj) {
|
|
41
42
|
const key = 'textToSpeech';
|
|
42
|
-
return obj &&
|
|
43
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
43
44
|
}
|
|
44
45
|
exports.isTextToSpeechInput = isTextToSpeechInput;
|
|
45
46
|
function isSpeechToTextInput(obj) {
|
|
46
47
|
const key = 'transcription';
|
|
47
|
-
return obj &&
|
|
48
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
48
49
|
}
|
|
49
50
|
exports.isSpeechToTextInput = isSpeechToTextInput;
|
|
50
51
|
function isStorageSource(obj) {
|
|
51
52
|
const key = 'key';
|
|
52
|
-
return obj &&
|
|
53
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
53
54
|
}
|
|
54
55
|
exports.isStorageSource = isStorageSource;
|
|
55
56
|
function isFileSource(obj) {
|
|
56
57
|
const key = 'file';
|
|
57
|
-
return obj &&
|
|
58
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
58
59
|
}
|
|
59
60
|
exports.isFileSource = isFileSource;
|
|
60
61
|
function isConvertBytesSource(obj) {
|
|
61
62
|
const key = 'bytes';
|
|
62
|
-
return obj &&
|
|
63
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
63
64
|
}
|
|
64
65
|
exports.isConvertBytesSource = isConvertBytesSource;
|
|
65
66
|
function isIdentifyBytesSource(obj) {
|
|
66
67
|
const key = 'bytes';
|
|
67
|
-
return obj &&
|
|
68
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
68
69
|
}
|
|
69
70
|
exports.isIdentifyBytesSource = isIdentifyBytesSource;
|
|
70
71
|
function isIdentifyTextInput(obj) {
|
|
71
72
|
const key = 'text';
|
|
72
|
-
return obj &&
|
|
73
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
73
74
|
}
|
|
74
75
|
exports.isIdentifyTextInput = isIdentifyTextInput;
|
|
75
76
|
function isIdentifyLabelsInput(obj) {
|
|
76
77
|
const key = 'labels';
|
|
77
|
-
return obj &&
|
|
78
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
78
79
|
}
|
|
79
80
|
exports.isIdentifyLabelsInput = isIdentifyLabelsInput;
|
|
80
81
|
function isIdentifyEntitiesInput(obj) {
|
|
81
82
|
const key = 'entities';
|
|
82
|
-
return obj &&
|
|
83
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
83
84
|
}
|
|
84
85
|
exports.isIdentifyEntitiesInput = isIdentifyEntitiesInput;
|
|
85
86
|
function isInterpretTextInput(obj) {
|
|
86
87
|
const key = 'text';
|
|
87
|
-
return obj &&
|
|
88
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, key);
|
|
88
89
|
}
|
|
89
90
|
exports.isInterpretTextInput = isInterpretTextInput;
|
|
90
91
|
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\
|
|
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 (obj &&\n (Object.prototype.hasOwnProperty.call(obj, key) ||\n Object.prototype.hasOwnProperty.call(obj, keyId)));\n}\nexports.isIdentifyFromCollection = isIdentifyFromCollection;\nfunction isIdentifyCelebrities(obj) {\n const key = 'celebrityDetection';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isIdentifyCelebrities = isIdentifyCelebrities;\nfunction isTranslateTextInput(obj) {\n const key = 'translateText';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isTranslateTextInput = isTranslateTextInput;\nfunction isTextToSpeechInput(obj) {\n const key = 'textToSpeech';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isTextToSpeechInput = isTextToSpeechInput;\nfunction isSpeechToTextInput(obj) {\n const key = 'transcription';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isSpeechToTextInput = isSpeechToTextInput;\nfunction isStorageSource(obj) {\n const key = 'key';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isStorageSource = isStorageSource;\nfunction isFileSource(obj) {\n const key = 'file';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isFileSource = isFileSource;\nfunction isConvertBytesSource(obj) {\n const key = 'bytes';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isConvertBytesSource = isConvertBytesSource;\nfunction isIdentifyBytesSource(obj) {\n const key = 'bytes';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isIdentifyBytesSource = isIdentifyBytesSource;\nfunction isIdentifyTextInput(obj) {\n const key = 'text';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isIdentifyTextInput = isIdentifyTextInput;\nfunction isIdentifyLabelsInput(obj) {\n const key = 'labels';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isIdentifyLabelsInput = isIdentifyLabelsInput;\nfunction isIdentifyEntitiesInput(obj) {\n const key = 'entities';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isIdentifyEntitiesInput = isIdentifyEntitiesInput;\nfunction isInterpretTextInput(obj) {\n const key = 'text';\n return obj && Object.prototype.hasOwnProperty.call(obj, key);\n}\nexports.isInterpretTextInput = isInterpretTextInput;\nfunction isInterpretTextOthers(text) {\n return text.source.language !== undefined;\n}\nexports.isInterpretTextOthers = isInterpretTextOthers;\n"],"names":[],"mappings":"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"}
|
package/dist/esm/Predictions.mjs
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { ConsoleLogger } from '@aws-amplify/core';
|
|
2
1
|
import { AmazonAIConvertPredictionsProvider } from './providers/AmazonAIConvertPredictionsProvider.mjs';
|
|
3
2
|
import { AmazonAIIdentifyPredictionsProvider } from './providers/AmazonAIIdentifyPredictionsProvider.mjs';
|
|
4
3
|
import { AmazonAIInterpretPredictionsProvider } from './providers/AmazonAIInterpretPredictionsProvider.mjs';
|
|
5
4
|
|
|
6
5
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
// SPDX-License-Identifier: Apache-2.0
|
|
8
|
-
new ConsoleLogger('Predictions');
|
|
9
7
|
class PredictionsClass {
|
|
10
8
|
constructor() {
|
|
11
9
|
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 {
|
|
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":";;;;AAAA;AACA;AAEO,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';
|
|
1
2
|
import { ConsoleLogger, Amplify, fetchAuthSession } from '@aws-amplify/core';
|
|
2
3
|
import { getAmplifyUserAgentObject, Category, PredictionsAction, Signer } from '@aws-amplify/core/internals/utils';
|
|
3
4
|
import { PollyClient, SynthesizeSpeechCommand } from '@aws-sdk/client-polly';
|
|
4
5
|
import { TranslateClient, TranslateTextCommand } from '@aws-sdk/client-translate';
|
|
5
6
|
import { EventStreamCodec } from '@smithy/eventstream-codec';
|
|
6
7
|
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,7 +91,6 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
91
91
|
VoiceId: voiceId,
|
|
92
92
|
TextType: 'text',
|
|
93
93
|
SampleRate: '24000',
|
|
94
|
-
// tslint:disable-next-line: align
|
|
95
94
|
});
|
|
96
95
|
const data = await this.pollyClient.send(synthesizeSpeechCommand);
|
|
97
96
|
const response = new Response(data.AudioStream);
|
|
@@ -164,7 +163,7 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
164
163
|
return decodedMessage;
|
|
165
164
|
}
|
|
166
165
|
sendDataToTranscribe({ connection, raw, languageCode, }) {
|
|
167
|
-
return new Promise((
|
|
166
|
+
return new Promise((resolve, reject) => {
|
|
168
167
|
let fullText = '';
|
|
169
168
|
connection.onmessage = message => {
|
|
170
169
|
try {
|
|
@@ -175,16 +174,16 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
175
174
|
}
|
|
176
175
|
catch (err) {
|
|
177
176
|
logger.debug(err);
|
|
178
|
-
|
|
177
|
+
reject(err);
|
|
179
178
|
}
|
|
180
179
|
};
|
|
181
180
|
connection.onerror = errorEvent => {
|
|
182
181
|
logger.debug({ errorEvent });
|
|
183
|
-
|
|
182
|
+
reject(new Error('failed to transcribe, network error'));
|
|
184
183
|
};
|
|
185
184
|
connection.onclose = closeEvent => {
|
|
186
185
|
logger.debug({ closeEvent });
|
|
187
|
-
|
|
186
|
+
resolve(fullText.trim());
|
|
188
187
|
};
|
|
189
188
|
logger.debug({ raw });
|
|
190
189
|
if (Array.isArray(raw)) {
|
|
@@ -258,7 +257,8 @@ class AmazonAIConvertPredictionsProvider {
|
|
|
258
257
|
let offsetBuffer = 0;
|
|
259
258
|
while (offsetResult < result.length) {
|
|
260
259
|
const nextOffsetBuffer = Math.round((offsetResult + 1) * sampleRateRatio);
|
|
261
|
-
let accum = 0
|
|
260
|
+
let accum = 0;
|
|
261
|
+
let 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((resolve, _reject) => {
|
|
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
|
+
resolve(connection);
|
|
285
285
|
};
|
|
286
286
|
});
|
|
287
287
|
}
|