@aws-amplify/predictions 5.5.6-api-v6-models.b3abc9b.0 → 6.0.0
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/README.md +3 -0
- package/lib/Predictions.d.ts +11 -45
- package/lib/Predictions.js +24 -132
- package/lib/errors/PredictionsError.d.ts +4 -0
- package/lib/errors/PredictionsError.js +15 -0
- package/lib/errors/types/validation.d.ts +14 -0
- package/lib/errors/types/validation.js +50 -0
- package/lib/errors/utils/assertValidationError.d.ts +2 -0
- package/lib/errors/utils/assertValidationError.js +14 -0
- package/lib/index.d.ts +2 -4
- package/lib/index.js +2 -9
- package/{lib-esm/Providers → lib/providers}/AmazonAIConvertPredictionsProvider.d.ts +6 -7
- package/lib/providers/AmazonAIConvertPredictionsProvider.js +307 -0
- package/lib/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.d.ts +5 -6
- package/lib/providers/AmazonAIIdentifyPredictionsProvider.js +334 -0
- package/lib/{Providers → providers}/AmazonAIInterpretPredictionsProvider.d.ts +3 -4
- package/lib/providers/AmazonAIInterpretPredictionsProvider.js +208 -0
- package/lib/providers/IdentifyTextUtils.d.ts +16 -0
- package/lib/{Providers → providers}/IdentifyTextUtils.js +97 -148
- package/lib/{Providers → providers}/Utils.d.ts +2 -2
- package/lib/{Providers → providers}/Utils.js +11 -12
- package/lib/{Providers → providers}/index.d.ts +1 -2
- package/lib/providers/index.js +11 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/AWSTypes.d.ts +8 -9
- package/lib/types/AWSTypes.js +0 -1
- package/lib/types/Predictions.d.ts +63 -59
- package/lib/types/Predictions.js +41 -28
- package/lib/types/index.js +1 -2
- package/lib-esm/Predictions.d.ts +11 -45
- package/lib-esm/Predictions.js +23 -133
- package/lib-esm/errors/PredictionsError.d.ts +4 -0
- package/lib-esm/errors/PredictionsError.js +11 -0
- package/lib-esm/errors/types/validation.d.ts +14 -0
- package/lib-esm/errors/types/validation.js +47 -0
- package/lib-esm/errors/utils/assertValidationError.d.ts +2 -0
- package/lib-esm/errors/utils/assertValidationError.js +10 -0
- package/lib-esm/index.d.ts +2 -4
- package/lib-esm/index.js +1 -5
- package/{lib/Providers → lib-esm/providers}/AmazonAIConvertPredictionsProvider.d.ts +6 -7
- package/lib-esm/providers/AmazonAIConvertPredictionsProvider.js +303 -0
- package/lib-esm/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.d.ts +5 -6
- package/lib-esm/providers/AmazonAIIdentifyPredictionsProvider.js +330 -0
- package/lib-esm/{Providers → providers}/AmazonAIInterpretPredictionsProvider.d.ts +3 -4
- package/lib-esm/providers/AmazonAIInterpretPredictionsProvider.js +204 -0
- package/lib-esm/providers/IdentifyTextUtils.d.ts +16 -0
- package/lib-esm/providers/IdentifyTextUtils.js +264 -0
- package/lib-esm/{Providers → providers}/Utils.d.ts +2 -2
- package/lib-esm/{Providers → providers}/Utils.js +10 -12
- package/lib-esm/{Providers → providers}/index.d.ts +1 -2
- package/lib-esm/{Providers → providers}/index.js +1 -3
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/lib-esm/types/AWSTypes.d.ts +8 -9
- package/lib-esm/types/AWSTypes.js +1 -1
- package/lib-esm/types/Predictions.d.ts +63 -59
- package/lib-esm/types/Predictions.js +34 -27
- package/lib-esm/types/index.js +0 -1
- package/package.json +39 -48
- package/src/Predictions.ts +33 -220
- package/src/errors/PredictionsError.ts +16 -0
- package/src/errors/types/validation.ts +51 -0
- package/src/errors/utils/assertValidationError.ts +18 -0
- package/src/index.ts +16 -16
- package/src/{Providers → providers}/AmazonAIConvertPredictionsProvider.ts +210 -171
- package/src/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.ts +244 -246
- package/src/providers/AmazonAIInterpretPredictionsProvider.ts +293 -0
- package/src/{Providers → providers}/IdentifyTextUtils.ts +69 -52
- package/src/{Providers → providers}/Utils.ts +2 -2
- package/src/{Providers → providers}/index.ts +0 -2
- package/src/types/AWSTypes.ts +5 -6
- package/src/types/Predictions.ts +107 -62
- package/lib/.tsbuildinfo +0 -3
- package/lib/Predictions.js.map +0 -1
- package/lib/Providers/AmazonAIConvertPredictionsProvider.js +0 -377
- package/lib/Providers/AmazonAIConvertPredictionsProvider.js.map +0 -1
- package/lib/Providers/AmazonAIIdentifyPredictionsProvider.js +0 -441
- package/lib/Providers/AmazonAIIdentifyPredictionsProvider.js.map +0 -1
- package/lib/Providers/AmazonAIInterpretPredictionsProvider.js +0 -321
- package/lib/Providers/AmazonAIInterpretPredictionsProvider.js.map +0 -1
- package/lib/Providers/AmazonAIPredictionsProvider.d.ts +0 -14
- package/lib/Providers/AmazonAIPredictionsProvider.js +0 -43
- package/lib/Providers/AmazonAIPredictionsProvider.js.map +0 -1
- package/lib/Providers/IdentifyTextUtils.d.ts +0 -40
- package/lib/Providers/IdentifyTextUtils.js.map +0 -1
- package/lib/Providers/Utils.js.map +0 -1
- package/lib/Providers/index.js +0 -13
- package/lib/Providers/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types/AWSTypes.js.map +0 -1
- package/lib/types/Predictions.js.map +0 -1
- package/lib/types/Providers/AbstractConvertPredictionsProvider.d.ts +0 -9
- package/lib/types/Providers/AbstractConvertPredictionsProvider.js +0 -44
- package/lib/types/Providers/AbstractConvertPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/AbstractIdentifyPredictionsProvider.d.ts +0 -9
- package/lib/types/Providers/AbstractIdentifyPredictionsProvider.js +0 -44
- package/lib/types/Providers/AbstractIdentifyPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/AbstractInterpretPredictionsProvider.d.ts +0 -7
- package/lib/types/Providers/AbstractInterpretPredictionsProvider.js +0 -27
- package/lib/types/Providers/AbstractInterpretPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/AbstractPredictionsProvider.d.ts +0 -7
- package/lib/types/Providers/AbstractPredictionsProvider.js +0 -16
- package/lib/types/Providers/AbstractPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/index.d.ts +0 -4
- package/lib/types/Providers/index.js +0 -10
- package/lib/types/Providers/index.js.map +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/Predictions.js.map +0 -1
- package/lib-esm/Providers/AmazonAIConvertPredictionsProvider.js +0 -375
- package/lib-esm/Providers/AmazonAIConvertPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/AmazonAIIdentifyPredictionsProvider.js +0 -439
- package/lib-esm/Providers/AmazonAIIdentifyPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/AmazonAIInterpretPredictionsProvider.js +0 -319
- package/lib-esm/Providers/AmazonAIInterpretPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/AmazonAIPredictionsProvider.d.ts +0 -14
- package/lib-esm/Providers/AmazonAIPredictionsProvider.js +0 -41
- package/lib-esm/Providers/AmazonAIPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/IdentifyTextUtils.d.ts +0 -40
- package/lib-esm/Providers/IdentifyTextUtils.js +0 -313
- package/lib-esm/Providers/IdentifyTextUtils.js.map +0 -1
- package/lib-esm/Providers/Utils.js.map +0 -1
- package/lib-esm/Providers/index.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/types/AWSTypes.js.map +0 -1
- package/lib-esm/types/Predictions.js.map +0 -1
- package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.d.ts +0 -9
- package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.js +0 -42
- package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.d.ts +0 -9
- package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.js +0 -42
- package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.d.ts +0 -7
- package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.js +0 -25
- package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/AbstractPredictionsProvider.d.ts +0 -7
- package/lib-esm/types/Providers/AbstractPredictionsProvider.js +0 -14
- package/lib-esm/types/Providers/AbstractPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/index.d.ts +0 -4
- package/lib-esm/types/Providers/index.js +0 -7
- package/lib-esm/types/Providers/index.js.map +0 -1
- package/lib-esm/types/index.js.map +0 -1
- package/src/Providers/AmazonAIInterpretPredictionsProvider.ts +0 -281
- package/src/Providers/AmazonAIPredictionsProvider.ts +0 -69
- package/src/types/Providers/AbstractConvertPredictionsProvider.ts +0 -55
- package/src/types/Providers/AbstractIdentifyPredictionsProvider.ts +0 -57
- package/src/types/Providers/AbstractInterpretPredictionsProvider.ts +0 -26
- package/src/types/Providers/AbstractPredictionsProvider.ts +0 -20
- package/src/types/Providers/index.ts +0 -6
|
@@ -1,439 +0,0 @@
|
|
|
1
|
-
import { __assign, __awaiter, __extends, __generator } from "tslib";
|
|
2
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
import { Category, Credentials, PredictionsAction, getAmplifyUserAgentObject, } from '@aws-amplify/core';
|
|
5
|
-
import { Storage } from '@aws-amplify/storage';
|
|
6
|
-
import { AbstractIdentifyPredictionsProvider } from '../types/Providers';
|
|
7
|
-
import { RekognitionClient, SearchFacesByImageCommand, DetectTextCommand, DetectLabelsCommand, DetectFacesCommand, DetectModerationLabelsCommand, RecognizeCelebritiesCommand, } from '@aws-sdk/client-rekognition';
|
|
8
|
-
import { isStorageSource, isFileSource, isBytesSource, isIdentifyCelebrities, isIdentifyFromCollection, } from '../types';
|
|
9
|
-
import { TextractClient, DetectDocumentTextCommand, AnalyzeDocumentCommand, } from '@aws-sdk/client-textract';
|
|
10
|
-
import { makeCamelCase, makeCamelCaseArray, blobToArrayBuffer } from './Utils';
|
|
11
|
-
import { categorizeRekognitionBlocks, categorizeTextractBlocks, } from './IdentifyTextUtils';
|
|
12
|
-
var AmazonAIIdentifyPredictionsProvider = /** @class */ (function (_super) {
|
|
13
|
-
__extends(AmazonAIIdentifyPredictionsProvider, _super);
|
|
14
|
-
function AmazonAIIdentifyPredictionsProvider() {
|
|
15
|
-
return _super.call(this) || this;
|
|
16
|
-
}
|
|
17
|
-
AmazonAIIdentifyPredictionsProvider.prototype.getProviderName = function () {
|
|
18
|
-
return 'AmazonAIIdentifyPredictionsProvider';
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Verify user input source and converts it into source object readable by Rekognition and Textract.
|
|
22
|
-
* Note that Rekognition and Textract use the same source interface, so we need not worry about types.
|
|
23
|
-
* @param {IdentifySource} source - User input source that directs to the object user wants
|
|
24
|
-
* to identify (storage, file, or bytes).
|
|
25
|
-
* @return {Promise<Image>} - Promise resolving to the converted source object.
|
|
26
|
-
*/
|
|
27
|
-
AmazonAIIdentifyPredictionsProvider.prototype.configureSource = function (source) {
|
|
28
|
-
return new Promise(function (res, rej) {
|
|
29
|
-
if (isStorageSource(source)) {
|
|
30
|
-
var storageConfig = {
|
|
31
|
-
level: source.level,
|
|
32
|
-
identityId: source.identityId,
|
|
33
|
-
};
|
|
34
|
-
Storage.get(source.key, storageConfig)
|
|
35
|
-
.then(function (url) {
|
|
36
|
-
var parser = /https:\/\/([a-zA-Z0-9%\-_.]+)\.s3\.[A-Za-z0-9%\-._~]+\/([a-zA-Z0-9%\-._~/]+)\?/;
|
|
37
|
-
var parsedURL = url.match(parser);
|
|
38
|
-
if (parsedURL.length < 3)
|
|
39
|
-
rej('Invalid S3 key was given.');
|
|
40
|
-
res({
|
|
41
|
-
S3Object: {
|
|
42
|
-
Bucket: parsedURL[1],
|
|
43
|
-
Name: decodeURIComponent(parsedURL[2]),
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
})
|
|
47
|
-
.catch(function (err) { return rej(err); });
|
|
48
|
-
}
|
|
49
|
-
else if (isFileSource(source)) {
|
|
50
|
-
blobToArrayBuffer(source.file)
|
|
51
|
-
.then(function (buffer) {
|
|
52
|
-
res({ Bytes: new Uint8Array(buffer) });
|
|
53
|
-
})
|
|
54
|
-
.catch(function (err) { return rej(err); });
|
|
55
|
-
}
|
|
56
|
-
else if (isBytesSource(source)) {
|
|
57
|
-
var bytes = source.bytes;
|
|
58
|
-
if (bytes instanceof Blob) {
|
|
59
|
-
blobToArrayBuffer(bytes)
|
|
60
|
-
.then(function (buffer) {
|
|
61
|
-
res({ Bytes: new Uint8Array(buffer) });
|
|
62
|
-
})
|
|
63
|
-
.catch(function (err) { return rej(err); });
|
|
64
|
-
}
|
|
65
|
-
if (bytes instanceof ArrayBuffer || bytes instanceof Buffer) {
|
|
66
|
-
res({ Bytes: new Uint8Array(bytes) });
|
|
67
|
-
}
|
|
68
|
-
// everything else can be directly passed to Rekognition / Textract.
|
|
69
|
-
res({ Bytes: bytes });
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
rej('Input source is not configured correctly.');
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Recognize text from real-world images and documents (plain text, forms and tables). Detects text in the input
|
|
78
|
-
* image and converts it into machine-readable text.
|
|
79
|
-
* @param {IdentifySource} source - Object containing the source image and feature types to analyze.
|
|
80
|
-
* @return {Promise<IdentifyTextOutput>} - Promise resolving to object containing identified texts.
|
|
81
|
-
*/
|
|
82
|
-
AmazonAIIdentifyPredictionsProvider.prototype.identifyText = function (input) {
|
|
83
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
-
var credentials, _a, _b, _c, region, _d, _e, configFormat, inputDocument, err_1, format, featureTypes, textractParam, rekognitionParam, detectTextCommand, rekognitionData, rekognitionResponse, detectDocumentTextCommand, Blocks, err_2, param, analyzeDocumentCommand, Blocks, err_3;
|
|
85
|
-
return __generator(this, function (_f) {
|
|
86
|
-
switch (_f.label) {
|
|
87
|
-
case 0: return [4 /*yield*/, Credentials.get()];
|
|
88
|
-
case 1:
|
|
89
|
-
credentials = _f.sent();
|
|
90
|
-
if (!credentials)
|
|
91
|
-
return [2 /*return*/, Promise.reject('No credentials')];
|
|
92
|
-
_a = this._config.identifyText, _b = _a === void 0 ? {} : _a, _c = _b.region, region = _c === void 0 ? '' : _c, _d = _b.defaults, _e = (_d === void 0 ? {} : _d).format, configFormat = _e === void 0 ? 'PLAIN' : _e;
|
|
93
|
-
this.rekognitionClient = new RekognitionClient({
|
|
94
|
-
region: region,
|
|
95
|
-
credentials: credentials,
|
|
96
|
-
customUserAgent: _getPredictionsIdentifyAmplifyUserAgent(),
|
|
97
|
-
});
|
|
98
|
-
this.textractClient = new TextractClient({
|
|
99
|
-
region: region,
|
|
100
|
-
credentials: credentials,
|
|
101
|
-
customUserAgent: _getPredictionsIdentifyAmplifyUserAgent(),
|
|
102
|
-
});
|
|
103
|
-
_f.label = 2;
|
|
104
|
-
case 2:
|
|
105
|
-
_f.trys.push([2, 4, , 5]);
|
|
106
|
-
return [4 /*yield*/, this.configureSource(input.text.source)];
|
|
107
|
-
case 3:
|
|
108
|
-
inputDocument = _f.sent();
|
|
109
|
-
return [3 /*break*/, 5];
|
|
110
|
-
case 4:
|
|
111
|
-
err_1 = _f.sent();
|
|
112
|
-
return [2 /*return*/, Promise.reject(err_1)];
|
|
113
|
-
case 5:
|
|
114
|
-
format = input.text.format || configFormat;
|
|
115
|
-
featureTypes = [];
|
|
116
|
-
if (format === 'FORM' || format === 'ALL')
|
|
117
|
-
featureTypes.push('FORMS');
|
|
118
|
-
if (format === 'TABLE' || format === 'ALL')
|
|
119
|
-
featureTypes.push('TABLES');
|
|
120
|
-
if (!(featureTypes.length === 0)) return [3 /*break*/, 11];
|
|
121
|
-
textractParam = {
|
|
122
|
-
Document: inputDocument,
|
|
123
|
-
};
|
|
124
|
-
rekognitionParam = {
|
|
125
|
-
Image: inputDocument,
|
|
126
|
-
};
|
|
127
|
-
_f.label = 6;
|
|
128
|
-
case 6:
|
|
129
|
-
_f.trys.push([6, 9, , 10]);
|
|
130
|
-
detectTextCommand = new DetectTextCommand(rekognitionParam);
|
|
131
|
-
return [4 /*yield*/, this.rekognitionClient.send(detectTextCommand)];
|
|
132
|
-
case 7:
|
|
133
|
-
rekognitionData = _f.sent();
|
|
134
|
-
rekognitionResponse = categorizeRekognitionBlocks(rekognitionData.TextDetections);
|
|
135
|
-
if (rekognitionResponse.text.words.length < 50) {
|
|
136
|
-
// did not hit the word limit, return the data
|
|
137
|
-
return [2 /*return*/, rekognitionResponse];
|
|
138
|
-
}
|
|
139
|
-
detectDocumentTextCommand = new DetectDocumentTextCommand(textractParam);
|
|
140
|
-
return [4 /*yield*/, this.textractClient.send(detectDocumentTextCommand)];
|
|
141
|
-
case 8:
|
|
142
|
-
Blocks = (_f.sent()).Blocks;
|
|
143
|
-
if (rekognitionData.TextDetections.length > Blocks.length) {
|
|
144
|
-
return [2 /*return*/, rekognitionResponse];
|
|
145
|
-
}
|
|
146
|
-
return [2 /*return*/, categorizeTextractBlocks(Blocks)];
|
|
147
|
-
case 9:
|
|
148
|
-
err_2 = _f.sent();
|
|
149
|
-
Promise.reject(err_2);
|
|
150
|
-
return [3 /*break*/, 10];
|
|
151
|
-
case 10: return [3 /*break*/, 15];
|
|
152
|
-
case 11:
|
|
153
|
-
param = {
|
|
154
|
-
Document: inputDocument,
|
|
155
|
-
FeatureTypes: featureTypes,
|
|
156
|
-
};
|
|
157
|
-
_f.label = 12;
|
|
158
|
-
case 12:
|
|
159
|
-
_f.trys.push([12, 14, , 15]);
|
|
160
|
-
analyzeDocumentCommand = new AnalyzeDocumentCommand(param);
|
|
161
|
-
return [4 /*yield*/, this.textractClient.send(analyzeDocumentCommand)];
|
|
162
|
-
case 13:
|
|
163
|
-
Blocks = (_f.sent()).Blocks;
|
|
164
|
-
return [2 /*return*/, categorizeTextractBlocks(Blocks)];
|
|
165
|
-
case 14:
|
|
166
|
-
err_3 = _f.sent();
|
|
167
|
-
return [2 /*return*/, Promise.reject(err_3)];
|
|
168
|
-
case 15: return [2 /*return*/];
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
/**
|
|
174
|
-
* Identify instances of real world entities from an image and if it contains unsafe content.
|
|
175
|
-
* @param {IdentifyLabelsInput} input - Object containing the source image and entity type to identify.
|
|
176
|
-
* @return {Promise<IdentifyLabelsOutput>} - Promise resolving to an array of identified entities.
|
|
177
|
-
*/
|
|
178
|
-
AmazonAIIdentifyPredictionsProvider.prototype.identifyLabels = function (input) {
|
|
179
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
180
|
-
var credentials, _a, _b, _c, region, _d, _e, type, inputImage_1, param, servicePromises, entityType, err_4;
|
|
181
|
-
return __generator(this, function (_f) {
|
|
182
|
-
switch (_f.label) {
|
|
183
|
-
case 0:
|
|
184
|
-
_f.trys.push([0, 3, , 4]);
|
|
185
|
-
return [4 /*yield*/, Credentials.get()];
|
|
186
|
-
case 1:
|
|
187
|
-
credentials = _f.sent();
|
|
188
|
-
if (!credentials)
|
|
189
|
-
return [2 /*return*/, Promise.reject('No credentials')];
|
|
190
|
-
_a = this._config.identifyLabels, _b = _a === void 0 ? {} : _a, _c = _b.region, region = _c === void 0 ? '' : _c, _d = _b.defaults, _e = (_d === void 0 ? {} : _d).type, type = _e === void 0 ? 'LABELS' : _e;
|
|
191
|
-
this.rekognitionClient = new RekognitionClient({
|
|
192
|
-
region: region,
|
|
193
|
-
credentials: credentials,
|
|
194
|
-
customUserAgent: _getPredictionsIdentifyAmplifyUserAgent(),
|
|
195
|
-
});
|
|
196
|
-
return [4 /*yield*/, this.configureSource(input.labels.source)
|
|
197
|
-
.then(function (data) {
|
|
198
|
-
inputImage_1 = data;
|
|
199
|
-
})
|
|
200
|
-
.catch(function (err) {
|
|
201
|
-
return Promise.reject(err);
|
|
202
|
-
})];
|
|
203
|
-
case 2:
|
|
204
|
-
_f.sent();
|
|
205
|
-
param = { Image: inputImage_1 };
|
|
206
|
-
servicePromises = [];
|
|
207
|
-
entityType = input.labels.type || type;
|
|
208
|
-
if (entityType === 'LABELS' || entityType === 'ALL') {
|
|
209
|
-
servicePromises.push(this.detectLabels(param));
|
|
210
|
-
}
|
|
211
|
-
if (entityType === 'UNSAFE' || entityType === 'ALL') {
|
|
212
|
-
servicePromises.push(this.detectModerationLabels(param));
|
|
213
|
-
}
|
|
214
|
-
return [2 /*return*/, Promise.all(servicePromises)
|
|
215
|
-
.then(function (data) {
|
|
216
|
-
var identifyResult = {};
|
|
217
|
-
// concatenate resolved promises to a single object
|
|
218
|
-
data.forEach(function (val) {
|
|
219
|
-
identifyResult = __assign(__assign({}, identifyResult), val);
|
|
220
|
-
});
|
|
221
|
-
return identifyResult;
|
|
222
|
-
})
|
|
223
|
-
.catch(function (err) { return Promise.reject(err); })];
|
|
224
|
-
case 3:
|
|
225
|
-
err_4 = _f.sent();
|
|
226
|
-
return [2 /*return*/, Promise.reject(err_4)];
|
|
227
|
-
case 4: return [2 /*return*/];
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
};
|
|
232
|
-
/**
|
|
233
|
-
* Calls Rekognition.detectLabels and organizes the returned data.
|
|
234
|
-
* @param {DetectLabelsInput} param - parameter to be passed onto Rekognition
|
|
235
|
-
* @return {Promise<IdentifyLabelsOutput>} - Promise resolving to organized detectLabels response.
|
|
236
|
-
*/
|
|
237
|
-
AmazonAIIdentifyPredictionsProvider.prototype.detectLabels = function (param) {
|
|
238
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
239
|
-
var detectLabelsCommand, data, detectLabelData, err_5;
|
|
240
|
-
return __generator(this, function (_a) {
|
|
241
|
-
switch (_a.label) {
|
|
242
|
-
case 0:
|
|
243
|
-
_a.trys.push([0, 2, , 3]);
|
|
244
|
-
detectLabelsCommand = new DetectLabelsCommand(param);
|
|
245
|
-
return [4 /*yield*/, this.rekognitionClient.send(detectLabelsCommand)];
|
|
246
|
-
case 1:
|
|
247
|
-
data = _a.sent();
|
|
248
|
-
if (!data.Labels)
|
|
249
|
-
return [2 /*return*/, { labels: null }]; // no image was detected
|
|
250
|
-
detectLabelData = data.Labels.map(function (val) {
|
|
251
|
-
var boxes = val.Instances
|
|
252
|
-
? val.Instances.map(function (val) { return makeCamelCase(val.BoundingBox); })
|
|
253
|
-
: undefined;
|
|
254
|
-
return {
|
|
255
|
-
name: val.Name,
|
|
256
|
-
boundingBoxes: boxes,
|
|
257
|
-
metadata: {
|
|
258
|
-
confidence: val.Confidence,
|
|
259
|
-
parents: makeCamelCaseArray(val.Parents),
|
|
260
|
-
},
|
|
261
|
-
};
|
|
262
|
-
});
|
|
263
|
-
return [2 /*return*/, { labels: detectLabelData }];
|
|
264
|
-
case 2:
|
|
265
|
-
err_5 = _a.sent();
|
|
266
|
-
return [2 /*return*/, Promise.reject(err_5)];
|
|
267
|
-
case 3: return [2 /*return*/];
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
};
|
|
272
|
-
/**
|
|
273
|
-
* Calls Rekognition.detectModerationLabels and organizes the returned data.
|
|
274
|
-
* @param {Rekognition.DetectLabelsRequest} param - Parameter to be passed onto Rekognition
|
|
275
|
-
* @return {Promise<IdentifyLabelsOutput>} - Promise resolving to organized detectModerationLabels response.
|
|
276
|
-
*/
|
|
277
|
-
AmazonAIIdentifyPredictionsProvider.prototype.detectModerationLabels = function (param) {
|
|
278
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
279
|
-
var detectModerationLabelsCommand, data, err_6;
|
|
280
|
-
return __generator(this, function (_a) {
|
|
281
|
-
switch (_a.label) {
|
|
282
|
-
case 0:
|
|
283
|
-
_a.trys.push([0, 2, , 3]);
|
|
284
|
-
detectModerationLabelsCommand = new DetectModerationLabelsCommand(param);
|
|
285
|
-
return [4 /*yield*/, this.rekognitionClient.send(detectModerationLabelsCommand)];
|
|
286
|
-
case 1:
|
|
287
|
-
data = _a.sent();
|
|
288
|
-
if (data.ModerationLabels.length !== 0) {
|
|
289
|
-
return [2 /*return*/, { unsafe: 'YES' }];
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
return [2 /*return*/, { unsafe: 'NO' }];
|
|
293
|
-
}
|
|
294
|
-
return [3 /*break*/, 3];
|
|
295
|
-
case 2:
|
|
296
|
-
err_6 = _a.sent();
|
|
297
|
-
return [2 /*return*/, Promise.reject(err_6)];
|
|
298
|
-
case 3: return [2 /*return*/];
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
});
|
|
302
|
-
};
|
|
303
|
-
/**
|
|
304
|
-
* Identify faces within an image that is provided as input, and match faces from a collection
|
|
305
|
-
* or identify celebrities.
|
|
306
|
-
* @param {IdentifyEntityInput} input - object containing the source image and face match options.
|
|
307
|
-
* @return {Promise<IdentifyEntityOutput>} Promise resolving to identify results.
|
|
308
|
-
*/
|
|
309
|
-
AmazonAIIdentifyPredictionsProvider.prototype.identifyEntities = function (input) {
|
|
310
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
311
|
-
var credentials, _a, _b, _c, region, _d, celebrityDetectionEnabled, _e, _f, _g, collectionIdConfig, _h, maxFacesConfig, inputImage, param, recognizeCelebritiesCommand, data, faces, err_7, _j, _k, collectionId, _l, maxFaces, updatedParam, searchFacesByImageCommand, data, faces, err_8, detectFacesCommand, data, faces, err_9;
|
|
312
|
-
var _this = this;
|
|
313
|
-
return __generator(this, function (_m) {
|
|
314
|
-
switch (_m.label) {
|
|
315
|
-
case 0: return [4 /*yield*/, Credentials.get()];
|
|
316
|
-
case 1:
|
|
317
|
-
credentials = _m.sent();
|
|
318
|
-
if (!credentials)
|
|
319
|
-
return [2 /*return*/, Promise.reject('No credentials')];
|
|
320
|
-
_a = this._config.identifyEntities, _b = _a === void 0 ? {} : _a, _c = _b.region, region = _c === void 0 ? '' : _c, _d = _b.celebrityDetectionEnabled, celebrityDetectionEnabled = _d === void 0 ? false : _d, _e = _b.defaults, _f = _e === void 0 ? {} : _e, _g = _f.collectionId, collectionIdConfig = _g === void 0 ? '' : _g, _h = _f.maxEntities, maxFacesConfig = _h === void 0 ? 50 : _h;
|
|
321
|
-
// default arguments
|
|
322
|
-
this.rekognitionClient = new RekognitionClient({
|
|
323
|
-
region: region,
|
|
324
|
-
credentials: credentials,
|
|
325
|
-
customUserAgent: _getPredictionsIdentifyAmplifyUserAgent(),
|
|
326
|
-
});
|
|
327
|
-
return [4 /*yield*/, this.configureSource(input.entities.source)
|
|
328
|
-
.then(function (data) { return (inputImage = data); })
|
|
329
|
-
.catch(function (err) {
|
|
330
|
-
return Promise.reject(err);
|
|
331
|
-
})];
|
|
332
|
-
case 2:
|
|
333
|
-
_m.sent();
|
|
334
|
-
param = { Attributes: ['ALL'], Image: inputImage };
|
|
335
|
-
if (!(isIdentifyCelebrities(input.entities) &&
|
|
336
|
-
input.entities.celebrityDetection)) return [3 /*break*/, 7];
|
|
337
|
-
if (!celebrityDetectionEnabled) {
|
|
338
|
-
return [2 /*return*/, Promise.reject('Error: You have to enable celebrity detection first')];
|
|
339
|
-
}
|
|
340
|
-
_m.label = 3;
|
|
341
|
-
case 3:
|
|
342
|
-
_m.trys.push([3, 5, , 6]);
|
|
343
|
-
recognizeCelebritiesCommand = new RecognizeCelebritiesCommand(param);
|
|
344
|
-
return [4 /*yield*/, this.rekognitionClient.send(recognizeCelebritiesCommand)];
|
|
345
|
-
case 4:
|
|
346
|
-
data = _m.sent();
|
|
347
|
-
faces = data.CelebrityFaces.map(function (celebrity) {
|
|
348
|
-
return {
|
|
349
|
-
boundingBox: makeCamelCase(celebrity.Face.BoundingBox),
|
|
350
|
-
landmarks: makeCamelCaseArray(celebrity.Face.Landmarks),
|
|
351
|
-
metadata: __assign(__assign({}, makeCamelCase(celebrity, ['Id', 'Name', 'Urls'])), { pose: makeCamelCase(celebrity.Face.Pose) }),
|
|
352
|
-
};
|
|
353
|
-
});
|
|
354
|
-
return [2 /*return*/, { entities: faces }];
|
|
355
|
-
case 5:
|
|
356
|
-
err_7 = _m.sent();
|
|
357
|
-
return [2 /*return*/, Promise.reject(err_7)];
|
|
358
|
-
case 6: return [3 /*break*/, 15];
|
|
359
|
-
case 7:
|
|
360
|
-
if (!(isIdentifyFromCollection(input.entities) &&
|
|
361
|
-
input.entities.collection)) return [3 /*break*/, 12];
|
|
362
|
-
_j = input.entities, _k = _j.collectionId, collectionId = _k === void 0 ? collectionIdConfig : _k, _l = _j.maxEntities, maxFaces = _l === void 0 ? maxFacesConfig : _l;
|
|
363
|
-
updatedParam = __assign(__assign({}, param), { CollectionId: collectionId, MaxFaces: maxFaces });
|
|
364
|
-
_m.label = 8;
|
|
365
|
-
case 8:
|
|
366
|
-
_m.trys.push([8, 10, , 11]);
|
|
367
|
-
searchFacesByImageCommand = new SearchFacesByImageCommand(updatedParam);
|
|
368
|
-
return [4 /*yield*/, this.rekognitionClient.send(searchFacesByImageCommand)];
|
|
369
|
-
case 9:
|
|
370
|
-
data = _m.sent();
|
|
371
|
-
faces = data.FaceMatches.map(function (val) {
|
|
372
|
-
return {
|
|
373
|
-
boundingBox: makeCamelCase(val.Face.BoundingBox),
|
|
374
|
-
metadata: {
|
|
375
|
-
externalImageId: _this.decodeExternalImageId(val.Face.ExternalImageId),
|
|
376
|
-
similarity: val.Similarity,
|
|
377
|
-
},
|
|
378
|
-
};
|
|
379
|
-
});
|
|
380
|
-
return [2 /*return*/, { entities: faces }];
|
|
381
|
-
case 10:
|
|
382
|
-
err_8 = _m.sent();
|
|
383
|
-
return [2 /*return*/, Promise.reject(err_8)];
|
|
384
|
-
case 11: return [3 /*break*/, 15];
|
|
385
|
-
case 12:
|
|
386
|
-
_m.trys.push([12, 14, , 15]);
|
|
387
|
-
detectFacesCommand = new DetectFacesCommand(param);
|
|
388
|
-
return [4 /*yield*/, this.rekognitionClient.send(detectFacesCommand)];
|
|
389
|
-
case 13:
|
|
390
|
-
data = _m.sent();
|
|
391
|
-
faces = data.FaceDetails.map(function (detail) {
|
|
392
|
-
// face attributes keys we want to extract from Rekognition's response
|
|
393
|
-
var attributeKeys = [
|
|
394
|
-
'Smile',
|
|
395
|
-
'Eyeglasses',
|
|
396
|
-
'Sunglasses',
|
|
397
|
-
'Gender',
|
|
398
|
-
'Beard',
|
|
399
|
-
'Mustache',
|
|
400
|
-
'EyesOpen',
|
|
401
|
-
'MouthOpen',
|
|
402
|
-
];
|
|
403
|
-
var faceAttributes = makeCamelCase(detail, attributeKeys);
|
|
404
|
-
if (detail.Emotions) {
|
|
405
|
-
faceAttributes['emotions'] = detail.Emotions.map(function (emotion) { return emotion.Type; });
|
|
406
|
-
}
|
|
407
|
-
return {
|
|
408
|
-
boundingBox: makeCamelCase(detail.BoundingBox),
|
|
409
|
-
landmarks: makeCamelCaseArray(detail.Landmarks),
|
|
410
|
-
ageRange: makeCamelCase(detail.AgeRange),
|
|
411
|
-
attributes: faceAttributes,
|
|
412
|
-
metadata: {
|
|
413
|
-
confidence: detail.Confidence,
|
|
414
|
-
pose: makeCamelCase(detail.Pose),
|
|
415
|
-
},
|
|
416
|
-
};
|
|
417
|
-
});
|
|
418
|
-
return [2 /*return*/, { entities: faces }];
|
|
419
|
-
case 14:
|
|
420
|
-
err_9 = _m.sent();
|
|
421
|
-
return [2 /*return*/, Promise.reject(err_9)];
|
|
422
|
-
case 15: return [2 /*return*/];
|
|
423
|
-
}
|
|
424
|
-
});
|
|
425
|
-
});
|
|
426
|
-
};
|
|
427
|
-
AmazonAIIdentifyPredictionsProvider.prototype.decodeExternalImageId = function (externalImageId) {
|
|
428
|
-
return ('' + externalImageId).replace(/::/g, '/');
|
|
429
|
-
};
|
|
430
|
-
return AmazonAIIdentifyPredictionsProvider;
|
|
431
|
-
}(AbstractIdentifyPredictionsProvider));
|
|
432
|
-
export { AmazonAIIdentifyPredictionsProvider };
|
|
433
|
-
function _getPredictionsIdentifyAmplifyUserAgent() {
|
|
434
|
-
return getAmplifyUserAgentObject({
|
|
435
|
-
category: Category.Predictions,
|
|
436
|
-
action: PredictionsAction.Identify,
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
//# sourceMappingURL=AmazonAIIdentifyPredictionsProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonAIIdentifyPredictionsProvider.js","sourceRoot":"","sources":["../../src/Providers/AmazonAIIdentifyPredictionsProvider.ts"],"names":[],"mappings":"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"}
|