@azure/ai-text-analytics 5.2.0-beta.2 → 6.0.0-alpha.20220518.3
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/LICENSE +1 -1
- package/README.md +375 -133
- package/dist/index.js +2797 -4176
- package/dist/index.js.map +1 -1
- package/dist-esm/src/azureKeyCredentialPolicy.js +2 -2
- package/dist-esm/src/azureKeyCredentialPolicy.js.map +1 -1
- package/dist-esm/src/constants.js +16 -0
- package/dist-esm/src/constants.js.map +1 -0
- package/dist-esm/src/generated/generatedClient.js +80 -334
- package/dist-esm/src/generated/generatedClient.js.map +1 -1
- package/dist-esm/src/generated/index.js +1 -1
- package/dist-esm/src/generated/index.js.map +1 -1
- package/dist-esm/src/generated/models/index.js +106 -35
- package/dist-esm/src/generated/models/index.js.map +1 -1
- package/dist-esm/src/generated/models/mappers.js +1625 -2101
- package/dist-esm/src/generated/models/mappers.js.map +1 -1
- package/dist-esm/src/generated/models/parameters.js +18 -105
- package/dist-esm/src/generated/models/parameters.js.map +1 -1
- package/dist-esm/src/generated/operations/analyzeText.js +105 -0
- package/dist-esm/src/generated/operations/analyzeText.js.map +1 -0
- package/dist-esm/src/generated/operations/index.js +9 -0
- package/dist-esm/src/generated/operations/index.js.map +1 -0
- package/dist-esm/src/generated/operationsInterfaces/analyzeText.js +9 -0
- package/dist-esm/src/generated/operationsInterfaces/analyzeText.js.map +1 -0
- package/dist-esm/src/generated/operationsInterfaces/index.js +9 -0
- package/dist-esm/src/generated/operationsInterfaces/index.js.map +1 -0
- package/dist-esm/src/index.js +14 -5
- package/dist-esm/src/index.js.map +1 -1
- package/dist-esm/src/lro.js +195 -0
- package/dist-esm/src/lro.js.map +1 -0
- package/dist-esm/src/models.js +42 -0
- package/dist-esm/src/models.js.map +1 -0
- package/dist-esm/src/textAnalysisClient.js +197 -0
- package/dist-esm/src/textAnalysisClient.js.map +1 -0
- package/dist-esm/src/transforms.js +279 -0
- package/dist-esm/src/transforms.js.map +1 -0
- package/dist-esm/src/util.js +35 -141
- package/dist-esm/src/util.js.map +1 -1
- package/package.json +25 -33
- package/types/ai-text-analytics.d.ts +1402 -1421
- package/CHANGELOG.md +0 -162
- package/dist-esm/src/analyzeActionsResult.js +0 -205
- package/dist-esm/src/analyzeActionsResult.js.map +0 -1
- package/dist-esm/src/analyzeHealthcareEntitiesResult.js +0 -53
- package/dist-esm/src/analyzeHealthcareEntitiesResult.js.map +0 -1
- package/dist-esm/src/analyzeLro.js +0 -132
- package/dist-esm/src/analyzeLro.js.map +0 -1
- package/dist-esm/src/analyzeSentimentResult.js +0 -74
- package/dist-esm/src/analyzeSentimentResult.js.map +0 -1
- package/dist-esm/src/analyzeSentimentResultArray.js +0 -11
- package/dist-esm/src/analyzeSentimentResultArray.js.map +0 -1
- package/dist-esm/src/detectLanguageResult.js +0 -17
- package/dist-esm/src/detectLanguageResult.js.map +0 -1
- package/dist-esm/src/detectLanguageResultArray.js +0 -11
- package/dist-esm/src/detectLanguageResultArray.js.map +0 -1
- package/dist-esm/src/extractKeyPhrasesResult.js +0 -17
- package/dist-esm/src/extractKeyPhrasesResult.js.map +0 -1
- package/dist-esm/src/extractKeyPhrasesResultArray.js +0 -11
- package/dist-esm/src/extractKeyPhrasesResultArray.js.map +0 -1
- package/dist-esm/src/extractSummaryResult.js +0 -17
- package/dist-esm/src/extractSummaryResult.js.map +0 -1
- package/dist-esm/src/extractSummaryResultArray.js +0 -11
- package/dist-esm/src/extractSummaryResultArray.js.map +0 -1
- package/dist-esm/src/generated/generatedClientContext.js +0 -42
- package/dist-esm/src/generated/generatedClientContext.js.map +0 -1
- package/dist-esm/src/healthLro.js +0 -139
- package/dist-esm/src/healthLro.js.map +0 -1
- package/dist-esm/src/multiCategoryClassifyResult.js +0 -17
- package/dist-esm/src/multiCategoryClassifyResult.js.map +0 -1
- package/dist-esm/src/multiCategoryClassifyResultArray.js +0 -11
- package/dist-esm/src/multiCategoryClassifyResultArray.js.map +0 -1
- package/dist-esm/src/pollerModels.js +0 -4
- package/dist-esm/src/pollerModels.js.map +0 -1
- package/dist-esm/src/recognizeCategorizedEntitiesResult.js +0 -17
- package/dist-esm/src/recognizeCategorizedEntitiesResult.js.map +0 -1
- package/dist-esm/src/recognizeCategorizedEntitiesResultArray.js +0 -11
- package/dist-esm/src/recognizeCategorizedEntitiesResultArray.js.map +0 -1
- package/dist-esm/src/recognizeCustomEntitiesResult.js +0 -17
- package/dist-esm/src/recognizeCustomEntitiesResult.js.map +0 -1
- package/dist-esm/src/recognizeCustomEntitiesResultArray.js +0 -11
- package/dist-esm/src/recognizeCustomEntitiesResultArray.js.map +0 -1
- package/dist-esm/src/recognizeLinkedEntitiesResult.js +0 -17
- package/dist-esm/src/recognizeLinkedEntitiesResult.js.map +0 -1
- package/dist-esm/src/recognizeLinkedEntitiesResultArray.js +0 -11
- package/dist-esm/src/recognizeLinkedEntitiesResultArray.js.map +0 -1
- package/dist-esm/src/recognizePiiEntitiesResult.js +0 -18
- package/dist-esm/src/recognizePiiEntitiesResult.js.map +0 -1
- package/dist-esm/src/recognizePiiEntitiesResultArray.js +0 -11
- package/dist-esm/src/recognizePiiEntitiesResultArray.js.map +0 -1
- package/dist-esm/src/singleCategoryClassifyResult.js +0 -17
- package/dist-esm/src/singleCategoryClassifyResult.js.map +0 -1
- package/dist-esm/src/singleCategoryClassifyResultArray.js +0 -11
- package/dist-esm/src/singleCategoryClassifyResultArray.js.map +0 -1
- package/dist-esm/src/textAnalyticsAction.js +0 -4
- package/dist-esm/src/textAnalyticsAction.js.map +0 -1
- package/dist-esm/src/textAnalyticsClient.js +0 -511
- package/dist-esm/src/textAnalyticsClient.js.map +0 -1
- package/dist-esm/src/textAnalyticsOperationOptions.js +0 -4
- package/dist-esm/src/textAnalyticsOperationOptions.js.map +0 -1
- package/dist-esm/src/textAnalyticsResult.js +0 -94
- package/dist-esm/src/textAnalyticsResult.js.map +0 -1
- package/dist-esm/src/tracing.js +0 -12
- package/dist-esm/src/tracing.js.map +0 -1
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
import { __rest } from "tslib";
|
|
4
|
+
import { parseAssessmentIndex, parseHealthcareEntityIndex, sortResponseIdObjects, } from "./util";
|
|
5
|
+
import { RestError } from "@azure/core-rest-pipeline";
|
|
6
|
+
/**
|
|
7
|
+
* Helper function for converting nested service error to the unified
|
|
8
|
+
* TextAnalysisError
|
|
9
|
+
*/
|
|
10
|
+
function toTextAnalysisError(errorModel) {
|
|
11
|
+
// Return the deepest error.
|
|
12
|
+
if (errorModel.innererror !== undefined) {
|
|
13
|
+
return toTextAnalysisError(errorModel.innererror);
|
|
14
|
+
}
|
|
15
|
+
return Object.assign({}, errorModel);
|
|
16
|
+
}
|
|
17
|
+
function makeTextAnalysisErrorResult(id, error) {
|
|
18
|
+
return {
|
|
19
|
+
id,
|
|
20
|
+
error: toTextAnalysisError(error),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* combines successful and erroneous results into a single array of results and
|
|
25
|
+
* sort them so that the IDs order match that of the input documents array.
|
|
26
|
+
* @param input - the array of documents sent to the service for processing.
|
|
27
|
+
* @param response - the response received from the service.
|
|
28
|
+
* @param options - an options bag that includes functions to process the results.
|
|
29
|
+
*/
|
|
30
|
+
function transformDocumentResults(input, response, options) {
|
|
31
|
+
const { processError = makeTextAnalysisErrorResult, processSuccess } = options || {};
|
|
32
|
+
const successResults = processSuccess
|
|
33
|
+
? response.documents.map(processSuccess)
|
|
34
|
+
: response.documents;
|
|
35
|
+
const unsortedResults = successResults.concat(response.errors.map((error) => processError(error.id, error.error)));
|
|
36
|
+
return sortResponseIdObjects(input, unsortedResults);
|
|
37
|
+
}
|
|
38
|
+
function toLanguageDetectionResult(documents, results) {
|
|
39
|
+
return transformDocumentResults(documents, results, {
|
|
40
|
+
processSuccess: (_a) => {
|
|
41
|
+
var { detectedLanguage } = _a, rest = __rest(_a, ["detectedLanguage"]);
|
|
42
|
+
return (Object.assign({ primaryLanguage: detectedLanguage }, rest));
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function toPiiEntityRecognitionResult(documents, results) {
|
|
47
|
+
return transformDocumentResults(documents, results);
|
|
48
|
+
}
|
|
49
|
+
function toSentimentAnalysisResult(documents, results) {
|
|
50
|
+
return transformDocumentResults(documents, results, {
|
|
51
|
+
processSuccess: (_a) => {
|
|
52
|
+
var { sentences } = _a, rest = __rest(_a, ["sentences"]);
|
|
53
|
+
return (Object.assign(Object.assign({}, rest), { sentences: sentences.map((sentence) => convertGeneratedSentenceSentiment(sentence, sentences)) }));
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Converts a sentence sentiment object returned by the service to another that
|
|
59
|
+
* is user-friendly.
|
|
60
|
+
*
|
|
61
|
+
* @param sentence - The sentence sentiment object to be converted.
|
|
62
|
+
* @param response - The entire response returned by the service.
|
|
63
|
+
* @returns The user-friendly sentence sentiment object.
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
function convertGeneratedSentenceSentiment(_a, sentences) {
|
|
67
|
+
var _b;
|
|
68
|
+
var { targets, assessments: _ } = _a, rest = __rest(_a, ["targets", "assessments"]);
|
|
69
|
+
return Object.assign(Object.assign({}, rest), { opinions: (_b = targets === null || targets === void 0 ? void 0 : targets.map(
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
71
|
+
(_a) => {
|
|
72
|
+
var { relations } = _a, rest = __rest(_a, ["relations"]);
|
|
73
|
+
return ({
|
|
74
|
+
target: rest,
|
|
75
|
+
assessments: relations
|
|
76
|
+
.filter((relation) => relation.relationType === "assessment")
|
|
77
|
+
.map((relation) => convertTargetRelationToAssessmentSentiment(relation, sentences)),
|
|
78
|
+
});
|
|
79
|
+
})) !== null && _b !== void 0 ? _b : [] });
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Converts a target relation object returned by the service to an assessment
|
|
83
|
+
* sentiment object where JSON pointers in the former are realized in the
|
|
84
|
+
* latter.
|
|
85
|
+
*
|
|
86
|
+
* @param targetRelation - The target relation object to be converted.
|
|
87
|
+
* @param response - The entire response returned by the service.
|
|
88
|
+
* @returns The user-friendly assessment sentiment object.
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
function convertTargetRelationToAssessmentSentiment(targetRelation, sentences) {
|
|
92
|
+
var _a;
|
|
93
|
+
const assessmentPtr = targetRelation.ref;
|
|
94
|
+
const assessmentIndex = parseAssessmentIndex(assessmentPtr);
|
|
95
|
+
const assessment = (_a = sentences === null || sentences === void 0 ? void 0 : sentences[assessmentIndex.sentence].assessments) === null || _a === void 0 ? void 0 : _a[assessmentIndex.assessment];
|
|
96
|
+
if (assessment !== undefined) {
|
|
97
|
+
return assessment;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
throw new Error(`Pointer "${assessmentPtr}" is not a valid Assessment pointer`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function toEntityLinkingResult(documents, results) {
|
|
104
|
+
return transformDocumentResults(documents, results);
|
|
105
|
+
}
|
|
106
|
+
function toKeyPhraseExtractionResult(documents, results) {
|
|
107
|
+
return transformDocumentResults(documents, results);
|
|
108
|
+
}
|
|
109
|
+
function toEntityRecognitionResult(documents, results) {
|
|
110
|
+
return transformDocumentResults(documents, results);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
export function transformActionResult(actionName, input, response) {
|
|
116
|
+
switch (response.kind) {
|
|
117
|
+
case "EntityLinkingResults": {
|
|
118
|
+
return toEntityLinkingResult(input, response.results);
|
|
119
|
+
}
|
|
120
|
+
case "EntityRecognitionResults": {
|
|
121
|
+
return toEntityRecognitionResult(input, response.results);
|
|
122
|
+
}
|
|
123
|
+
case "KeyPhraseExtractionResults": {
|
|
124
|
+
return toKeyPhraseExtractionResult(input, response.results);
|
|
125
|
+
}
|
|
126
|
+
case "PiiEntityRecognitionResults": {
|
|
127
|
+
return toPiiEntityRecognitionResult(input, response.results);
|
|
128
|
+
}
|
|
129
|
+
case "SentimentAnalysisResults": {
|
|
130
|
+
return toSentimentAnalysisResult(input, response.results);
|
|
131
|
+
}
|
|
132
|
+
case "LanguageDetectionResults": {
|
|
133
|
+
return toLanguageDetectionResult(input, response.results);
|
|
134
|
+
}
|
|
135
|
+
default: {
|
|
136
|
+
const __exhaust = response;
|
|
137
|
+
throw new Error(`Unsupported results kind: ${__exhaust} for an action of type ${actionName}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function appendReadableErrorMessage(currentMessage, innerMessage) {
|
|
142
|
+
let message = currentMessage;
|
|
143
|
+
if (message.slice(-1) !== ".") {
|
|
144
|
+
message = message + ".";
|
|
145
|
+
}
|
|
146
|
+
return message + " " + innerMessage;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @internal
|
|
150
|
+
* parses incoming errors from the service/
|
|
151
|
+
* @param error - the incoming error
|
|
152
|
+
*/
|
|
153
|
+
export function transformError(errorResponse) {
|
|
154
|
+
var _a;
|
|
155
|
+
const strongErrorResponse = errorResponse;
|
|
156
|
+
if (!strongErrorResponse.response) {
|
|
157
|
+
throw errorResponse;
|
|
158
|
+
}
|
|
159
|
+
const topLevelError = (_a = strongErrorResponse.response.parsedBody) === null || _a === void 0 ? void 0 : _a.error;
|
|
160
|
+
if (!topLevelError)
|
|
161
|
+
return errorResponse;
|
|
162
|
+
let errorMessage = topLevelError.message;
|
|
163
|
+
let code = topLevelError.code;
|
|
164
|
+
function unwrap(error) {
|
|
165
|
+
const innerError = error.innererror;
|
|
166
|
+
if (innerError) {
|
|
167
|
+
if (innerError.message) {
|
|
168
|
+
errorMessage = appendReadableErrorMessage(errorMessage, innerError.message);
|
|
169
|
+
}
|
|
170
|
+
if (innerError.code) {
|
|
171
|
+
code = innerError.code;
|
|
172
|
+
}
|
|
173
|
+
return unwrap(innerError);
|
|
174
|
+
}
|
|
175
|
+
return error;
|
|
176
|
+
}
|
|
177
|
+
unwrap(topLevelError);
|
|
178
|
+
return new RestError(errorMessage, {
|
|
179
|
+
code,
|
|
180
|
+
statusCode: strongErrorResponse.statusCode,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function toHealthcareResult(documents, results) {
|
|
184
|
+
function makeHealthcareEntity(entity) {
|
|
185
|
+
const { dataSources } = entity, rest = __rest(entity, ["dataSources"]);
|
|
186
|
+
return Object.assign({ dataSources: dataSources !== null && dataSources !== void 0 ? dataSources : [] }, rest);
|
|
187
|
+
}
|
|
188
|
+
function makeHealthcareRelation(entities) {
|
|
189
|
+
return (relation) => ({
|
|
190
|
+
relationType: relation.relationType,
|
|
191
|
+
roles: relation.entities.map((role) => ({
|
|
192
|
+
entity: entities[parseHealthcareEntityIndex(role.ref)],
|
|
193
|
+
name: role.role,
|
|
194
|
+
})),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return transformDocumentResults(documents, results, {
|
|
198
|
+
processSuccess: (_a) => {
|
|
199
|
+
var { entities, relations } = _a, rest = __rest(_a, ["entities", "relations"]);
|
|
200
|
+
const newEntities = entities.map(makeHealthcareEntity);
|
|
201
|
+
return Object.assign({ entities: newEntities, entityRelations: relations.map(makeHealthcareRelation(newEntities)) }, rest);
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function toCustomSingleLabelClassificationResult(documents, results) {
|
|
206
|
+
return transformDocumentResults(documents, results, {
|
|
207
|
+
processSuccess: (_a) => {
|
|
208
|
+
var { classification } = _a, rest = __rest(_a, ["classification"]);
|
|
209
|
+
return Object.assign({ classifications: [classification] }, rest);
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
export function transformAnalyzeBatchResults(documents, response = []) {
|
|
217
|
+
return response.map((actionData) => {
|
|
218
|
+
const { lastUpdateDateTime: completedOn, actionName, kind } = actionData;
|
|
219
|
+
switch (kind) {
|
|
220
|
+
case "SentimentAnalysisLROResults": {
|
|
221
|
+
const { results } = actionData;
|
|
222
|
+
const { modelVersion, statistics } = results;
|
|
223
|
+
return Object.assign(Object.assign(Object.assign({ kind: "SentimentAnalysis", results: toSentimentAnalysisResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
224
|
+
}
|
|
225
|
+
case "EntityRecognitionLROResults": {
|
|
226
|
+
const { results } = actionData;
|
|
227
|
+
const { modelVersion, statistics } = results;
|
|
228
|
+
return Object.assign(Object.assign(Object.assign({ kind: "EntityRecognition", results: toEntityRecognitionResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
229
|
+
}
|
|
230
|
+
case "PiiEntityRecognitionLROResults": {
|
|
231
|
+
const { results } = actionData;
|
|
232
|
+
const { modelVersion, statistics } = results;
|
|
233
|
+
return Object.assign(Object.assign(Object.assign({ kind: "PiiEntityRecognition", results: toPiiEntityRecognitionResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
234
|
+
}
|
|
235
|
+
case "KeyPhraseExtractionLROResults": {
|
|
236
|
+
const { results } = actionData;
|
|
237
|
+
const { modelVersion, statistics } = results;
|
|
238
|
+
return Object.assign(Object.assign(Object.assign({ kind: "KeyPhraseExtraction", results: toKeyPhraseExtractionResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
239
|
+
}
|
|
240
|
+
case "EntityLinkingLROResults": {
|
|
241
|
+
const { results } = actionData;
|
|
242
|
+
const { modelVersion, statistics } = results;
|
|
243
|
+
return Object.assign(Object.assign(Object.assign({ kind: "EntityLinking", results: toEntityLinkingResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
244
|
+
}
|
|
245
|
+
case "HealthcareLROResults": {
|
|
246
|
+
const { results } = actionData;
|
|
247
|
+
const { modelVersion, statistics } = results;
|
|
248
|
+
return Object.assign(Object.assign(Object.assign({ kind: "Healthcare", results: toHealthcareResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
249
|
+
}
|
|
250
|
+
case "CustomEntityRecognitionLROResults": {
|
|
251
|
+
const { results } = actionData;
|
|
252
|
+
const { deploymentName, projectName, statistics } = results;
|
|
253
|
+
return Object.assign(Object.assign(Object.assign({ kind: "CustomEntityRecognition", results: transformDocumentResults(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
|
|
254
|
+
projectName });
|
|
255
|
+
}
|
|
256
|
+
case "CustomSingleLabelClassificationLROResults": {
|
|
257
|
+
const { results } = actionData;
|
|
258
|
+
const { deploymentName, projectName, statistics } = results;
|
|
259
|
+
return Object.assign(Object.assign(Object.assign({ kind: "CustomSingleLabelClassification", results: toCustomSingleLabelClassificationResult(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
|
|
260
|
+
projectName });
|
|
261
|
+
}
|
|
262
|
+
case "CustomMultiLabelClassificationLROResults": {
|
|
263
|
+
const { results } = actionData;
|
|
264
|
+
const { deploymentName, projectName, statistics } = results;
|
|
265
|
+
return Object.assign(Object.assign(Object.assign({ kind: "CustomMultiLabelClassification", results: transformDocumentResults(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
|
|
266
|
+
projectName });
|
|
267
|
+
}
|
|
268
|
+
case "ExtractiveSummarizationLROResults": {
|
|
269
|
+
const { results } = actionData;
|
|
270
|
+
const { modelVersion, statistics } = results;
|
|
271
|
+
return Object.assign(Object.assign(Object.assign({ kind: "ExtractiveSummarization", results: transformDocumentResults(documents, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
|
|
272
|
+
}
|
|
273
|
+
default: {
|
|
274
|
+
throw new Error(`Unsupported results kind: ${kind}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=transforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../src/transforms.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AnalyzeActionName,\n AnalyzeBatchResult,\n AnalyzeResult,\n CustomSingleLabelClassificationResult,\n CustomSingleLabelClassificationSuccessResult,\n EntityLinkingResult,\n EntityRecognitionResult,\n HealthcareEntity,\n HealthcareEntityRelation,\n HealthcareEntityRelationRole,\n HealthcareResult,\n HealthcareSuccessResult,\n KeyPhraseExtractionResult,\n LanguageDetectionResult,\n Opinion,\n PiiEntityRecognitionResult,\n SentenceSentiment,\n SentimentAnalysisResult,\n TextAnalysisError,\n TextAnalysisErrorResult,\n TextAnalysisSuccessResult,\n} from \"./models\";\nimport {\n AnalyzeResponse,\n AnalyzeTextLROResultUnion,\n AssessmentSentiment,\n CustomEntityRecognitionLROResult,\n CustomMultiLabelClassificationLROResult,\n CustomSingleLabelClassificationLROResult,\n DocumentError,\n EntitiesTaskResult,\n EntityLinkingLROResult,\n EntityLinkingTaskResult,\n EntityRecognitionLROResult,\n ErrorModel,\n ErrorResponse,\n ExtractiveSummarizationLROResult,\n CustomSingleLabelClassificationResult as GeneratedCustomSingleLabelClassificationResult,\n EntityLinkingResult as GeneratedEntityLinkingResult,\n EntitiesResult as GeneratedEntityRecognitionResult,\n HealthcareEntity as GeneratedHealthcareEntity,\n HealthcareResult as GeneratedHealthcareResult,\n KeyPhraseResult as GeneratedKeyPhraseExtractionResult,\n LanguageDetectionResult as GeneratedLanguageDetectionResult,\n PiiResult as GeneratedPiiEntityRecognitionResult,\n SentenceSentiment as GeneratedSentenceSentiment,\n SentimentResponse as GeneratedSentimentAnalysisResult,\n HealthcareEntitiesDocumentResult,\n HealthcareLROResult,\n HealthcareRelation,\n HealthcareRelationEntity,\n InnerErrorModel,\n KeyPhraseExtractionLROResult,\n KeyPhraseTaskResult,\n KnownAnalyzeTextLROResultsKind,\n LanguageDetectionInput,\n LanguageDetectionTaskResult,\n PiiEntityRecognitionLROResult,\n PiiTaskResult,\n SentenceTarget,\n SentimentLROResult,\n SentimentTaskResult,\n SingleClassificationDocumentResult,\n TargetRelation,\n TextDocumentInput,\n} from \"./generated\";\nimport {\n AssessmentIndex,\n parseAssessmentIndex,\n parseHealthcareEntityIndex,\n sortResponseIdObjects,\n} from \"./util\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\n\n/**\n * Helper function for converting nested service error to the unified\n * TextAnalysisError\n */\nfunction toTextAnalysisError(errorModel: ErrorModel | InnerErrorModel): TextAnalysisError {\n // Return the deepest error.\n if (errorModel.innererror !== undefined) {\n return toTextAnalysisError(errorModel.innererror);\n }\n\n return {\n ...errorModel,\n };\n}\n\nfunction makeTextAnalysisErrorResult(id: string, error: ErrorModel): TextAnalysisErrorResult {\n return {\n id,\n error: toTextAnalysisError(error),\n };\n}\n\n/**\n * combines successful and erroneous results into a single array of results and\n * sort them so that the IDs order match that of the input documents array.\n * @param input - the array of documents sent to the service for processing.\n * @param response - the response received from the service.\n * @param options - an options bag that includes functions to process the results.\n */\nfunction transformDocumentResults<\n DocumentSuccess extends TextAnalysisSuccessResult,\n PublicDocumentSuccess extends TextAnalysisSuccessResult = DocumentSuccess,\n TError extends TextAnalysisErrorResult = TextAnalysisErrorResult\n>(\n input: TextDocumentInput[],\n response: {\n documents: DocumentSuccess[];\n errors: DocumentError[];\n },\n options?: {\n processSuccess?: (successResult: DocumentSuccess) => PublicDocumentSuccess;\n processError?: (id: string, error: ErrorModel) => TError;\n }\n): (PublicDocumentSuccess | TextAnalysisErrorResult)[] {\n const { processError = makeTextAnalysisErrorResult, processSuccess } = options || {};\n const successResults = processSuccess\n ? response.documents.map(processSuccess)\n : response.documents;\n const unsortedResults = (\n successResults as (PublicDocumentSuccess | TextAnalysisErrorResult)[]\n ).concat(response.errors.map((error) => processError(error.id, error.error)));\n\n return sortResponseIdObjects(input, unsortedResults);\n}\n\nfunction toLanguageDetectionResult(\n documents: LanguageDetectionInput[],\n results: GeneratedLanguageDetectionResult\n): LanguageDetectionResult[] {\n return transformDocumentResults(documents, results, {\n processSuccess: ({ detectedLanguage, ...rest }) => ({\n primaryLanguage: detectedLanguage,\n ...rest,\n }),\n });\n}\n\nfunction toPiiEntityRecognitionResult(\n documents: TextDocumentInput[],\n results: GeneratedPiiEntityRecognitionResult\n): PiiEntityRecognitionResult[] {\n return transformDocumentResults(documents, results);\n}\n\nfunction toSentimentAnalysisResult(\n documents: TextDocumentInput[],\n results: GeneratedSentimentAnalysisResult\n): SentimentAnalysisResult[] {\n return transformDocumentResults(documents, results, {\n processSuccess: ({ sentences, ...rest }) => ({\n ...rest,\n sentences: sentences.map((sentence) =>\n convertGeneratedSentenceSentiment(sentence, sentences)\n ),\n }),\n });\n}\n\n/**\n * Converts a sentence sentiment object returned by the service to another that\n * is user-friendly.\n *\n * @param sentence - The sentence sentiment object to be converted.\n * @param response - The entire response returned by the service.\n * @returns The user-friendly sentence sentiment object.\n * @internal\n */\nfunction convertGeneratedSentenceSentiment(\n { targets, assessments: _, ...rest }: GeneratedSentenceSentiment,\n sentences: GeneratedSentenceSentiment[]\n): SentenceSentiment {\n return {\n ...rest,\n opinions:\n targets?.map(\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ({ relations, ...rest }: SentenceTarget): Opinion => ({\n target: rest,\n assessments: relations\n .filter((relation) => relation.relationType === \"assessment\")\n .map((relation) => convertTargetRelationToAssessmentSentiment(relation, sentences)),\n })\n ) ?? [],\n };\n}\n\n/**\n * Converts a target relation object returned by the service to an assessment\n * sentiment object where JSON pointers in the former are realized in the\n * latter.\n *\n * @param targetRelation - The target relation object to be converted.\n * @param response - The entire response returned by the service.\n * @returns The user-friendly assessment sentiment object.\n * @internal\n */\nfunction convertTargetRelationToAssessmentSentiment(\n targetRelation: TargetRelation,\n sentences: GeneratedSentenceSentiment[]\n): AssessmentSentiment {\n const assessmentPtr = targetRelation.ref;\n const assessmentIndex: AssessmentIndex = parseAssessmentIndex(assessmentPtr);\n const assessment =\n sentences?.[assessmentIndex.sentence].assessments?.[assessmentIndex.assessment];\n if (assessment !== undefined) {\n return assessment;\n } else {\n throw new Error(`Pointer \"${assessmentPtr}\" is not a valid Assessment pointer`);\n }\n}\n\nfunction toEntityLinkingResult(\n documents: TextDocumentInput[],\n results: GeneratedEntityLinkingResult\n): EntityLinkingResult[] {\n return transformDocumentResults(documents, results);\n}\n\nfunction toKeyPhraseExtractionResult(\n documents: TextDocumentInput[],\n results: GeneratedKeyPhraseExtractionResult\n): KeyPhraseExtractionResult[] {\n return transformDocumentResults(documents, results);\n}\n\nfunction toEntityRecognitionResult(\n documents: TextDocumentInput[],\n results: GeneratedEntityRecognitionResult\n): EntityRecognitionResult[] {\n return transformDocumentResults(documents, results);\n}\n\n/**\n * @internal\n */\nexport function transformActionResult<ActionName extends AnalyzeActionName>(\n actionName: ActionName,\n input: TextDocumentInput[] | LanguageDetectionInput[],\n response: AnalyzeResponse\n): AnalyzeResult<AnalyzeActionName> {\n switch (response.kind) {\n case \"EntityLinkingResults\": {\n return toEntityLinkingResult(input, (response as EntityLinkingTaskResult).results);\n }\n case \"EntityRecognitionResults\": {\n return toEntityRecognitionResult(input, (response as EntitiesTaskResult).results);\n }\n case \"KeyPhraseExtractionResults\": {\n return toKeyPhraseExtractionResult(input, (response as KeyPhraseTaskResult).results);\n }\n case \"PiiEntityRecognitionResults\": {\n return toPiiEntityRecognitionResult(input, (response as PiiTaskResult).results);\n }\n case \"SentimentAnalysisResults\": {\n return toSentimentAnalysisResult(input, (response as SentimentTaskResult).results);\n }\n case \"LanguageDetectionResults\": {\n return toLanguageDetectionResult(input, (response as LanguageDetectionTaskResult).results);\n }\n default: {\n const __exhaust: never = response;\n throw new Error(`Unsupported results kind: ${__exhaust} for an action of type ${actionName}`);\n }\n }\n}\n\nfunction appendReadableErrorMessage(currentMessage: string, innerMessage: string): string {\n let message = currentMessage;\n if (message.slice(-1) !== \".\") {\n message = message + \".\";\n }\n return message + \" \" + innerMessage;\n}\n\n/**\n * @internal\n * parses incoming errors from the service/\n * @param error - the incoming error\n */\nexport function transformError(errorResponse: unknown): any {\n const strongErrorResponse = errorResponse as {\n response: {\n parsedBody?: ErrorResponse;\n };\n statusCode: number;\n };\n if (!strongErrorResponse.response) {\n throw errorResponse;\n }\n const topLevelError = strongErrorResponse.response.parsedBody?.error;\n if (!topLevelError) return errorResponse;\n let errorMessage = topLevelError.message;\n let code = topLevelError.code;\n function unwrap(error: ErrorModel | InnerErrorModel): ErrorModel {\n const innerError = error.innererror;\n if (innerError) {\n if (innerError.message) {\n errorMessage = appendReadableErrorMessage(errorMessage, innerError.message);\n }\n if (innerError.code) {\n code = innerError.code;\n }\n return unwrap(innerError);\n }\n return error as ErrorModel;\n }\n unwrap(topLevelError);\n return new RestError(errorMessage, {\n code,\n statusCode: strongErrorResponse.statusCode,\n });\n}\n\nfunction toHealthcareResult(\n documents: TextDocumentInput[],\n results: GeneratedHealthcareResult\n): HealthcareResult[] {\n function makeHealthcareEntity(entity: GeneratedHealthcareEntity): HealthcareEntity {\n const { dataSources, ...rest } = entity;\n return {\n dataSources: dataSources ?? [],\n ...rest,\n };\n }\n function makeHealthcareRelation(\n entities: HealthcareEntity[]\n ): (relation: HealthcareRelation) => HealthcareEntityRelation {\n return (relation: HealthcareRelation): HealthcareEntityRelation => ({\n relationType: relation.relationType,\n roles: relation.entities.map(\n (role: HealthcareRelationEntity): HealthcareEntityRelationRole => ({\n entity: entities[parseHealthcareEntityIndex(role.ref)],\n name: role.role,\n })\n ),\n });\n }\n return transformDocumentResults<HealthcareEntitiesDocumentResult, HealthcareSuccessResult>(\n documents,\n results,\n {\n processSuccess: ({ entities, relations, ...rest }) => {\n const newEntities = entities.map(makeHealthcareEntity);\n return {\n entities: newEntities,\n entityRelations: relations.map(makeHealthcareRelation(newEntities)),\n ...rest,\n };\n },\n }\n );\n}\n\nfunction toCustomSingleLabelClassificationResult(\n documents: TextDocumentInput[],\n results: GeneratedCustomSingleLabelClassificationResult\n): CustomSingleLabelClassificationResult[] {\n return transformDocumentResults<\n SingleClassificationDocumentResult,\n CustomSingleLabelClassificationSuccessResult\n >(documents, results, {\n processSuccess: ({ classification, ...rest }) => {\n return {\n classifications: [classification],\n ...rest,\n };\n },\n });\n}\n\n/**\n * @internal\n */\nexport function transformAnalyzeBatchResults(\n documents: TextDocumentInput[],\n response: AnalyzeTextLROResultUnion[] = []\n): AnalyzeBatchResult[] {\n return response.map((actionData) => {\n const { lastUpdateDateTime: completedOn, actionName, kind } = actionData;\n switch (kind as KnownAnalyzeTextLROResultsKind) {\n case \"SentimentAnalysisLROResults\": {\n const { results } = actionData as SentimentLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"SentimentAnalysis\",\n results: toSentimentAnalysisResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"EntityRecognitionLROResults\": {\n const { results } = actionData as EntityRecognitionLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"EntityRecognition\",\n results: toEntityRecognitionResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"PiiEntityRecognitionLROResults\": {\n const { results } = actionData as PiiEntityRecognitionLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"PiiEntityRecognition\",\n results: toPiiEntityRecognitionResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"KeyPhraseExtractionLROResults\": {\n const { results } = actionData as KeyPhraseExtractionLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"KeyPhraseExtraction\",\n results: toKeyPhraseExtractionResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"EntityLinkingLROResults\": {\n const { results } = actionData as EntityLinkingLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"EntityLinking\",\n results: toEntityLinkingResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"HealthcareLROResults\": {\n const { results } = actionData as HealthcareLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"Healthcare\",\n results: toHealthcareResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"CustomEntityRecognitionLROResults\": {\n const { results } = actionData as CustomEntityRecognitionLROResult;\n const { deploymentName, projectName, statistics } = results;\n return {\n kind: \"CustomEntityRecognition\",\n results: transformDocumentResults(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n deploymentName,\n projectName,\n };\n }\n case \"CustomSingleLabelClassificationLROResults\": {\n const { results } = actionData as CustomSingleLabelClassificationLROResult;\n const { deploymentName, projectName, statistics } = results;\n return {\n kind: \"CustomSingleLabelClassification\",\n results: toCustomSingleLabelClassificationResult(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n deploymentName,\n projectName,\n };\n }\n case \"CustomMultiLabelClassificationLROResults\": {\n const { results } = actionData as CustomMultiLabelClassificationLROResult;\n const { deploymentName, projectName, statistics } = results;\n return {\n kind: \"CustomMultiLabelClassification\",\n results: transformDocumentResults(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n deploymentName,\n projectName,\n };\n }\n case \"ExtractiveSummarizationLROResults\": {\n const { results } = actionData as ExtractiveSummarizationLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"ExtractiveSummarization\",\n results: transformDocumentResults(documents, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n default: {\n throw new Error(`Unsupported results kind: ${kind}`);\n }\n }\n });\n}\n"]}
|
package/dist-esm/src/util.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
import { __rest } from "tslib";
|
|
4
|
-
import { RestError } from "@azure/core-rest-pipeline";
|
|
5
|
-
import { SpanStatusCode } from "@azure/core-tracing";
|
|
6
4
|
import { logger } from "./logger";
|
|
7
|
-
import { createSpan } from "./tracing";
|
|
8
5
|
/**
|
|
9
6
|
* Given a sorted array of input objects (with a unique ID) and an unsorted array of results,
|
|
10
7
|
* return a sorted array of results.
|
|
@@ -23,6 +20,11 @@ export function sortResponseIdObjects(sortedArray, unsortedArray) {
|
|
|
23
20
|
logger.warning(`The service returned ${ordinal} responses than inputs. Some errors may be treated as fatal.`);
|
|
24
21
|
}
|
|
25
22
|
const result = [];
|
|
23
|
+
/**
|
|
24
|
+
* When the results are returned in pages, sortedArray will probably have more
|
|
25
|
+
* items than unsortedArray so it is ok to ignore the case when a sorted item
|
|
26
|
+
* ID is not found in `unsortedMap`.
|
|
27
|
+
*/
|
|
26
28
|
for (const sortedItem of sortedArray) {
|
|
27
29
|
const item = unsortedMap.get(sortedItem.id);
|
|
28
30
|
if (item) {
|
|
@@ -41,7 +43,7 @@ export function parseAssessmentIndex(pointer) {
|
|
|
41
43
|
const assessmentIndex = {
|
|
42
44
|
document: parseInt(res[1]),
|
|
43
45
|
sentence: parseInt(res[2]),
|
|
44
|
-
assessment: parseInt(res[3])
|
|
46
|
+
assessment: parseInt(res[3]),
|
|
45
47
|
};
|
|
46
48
|
return assessmentIndex;
|
|
47
49
|
}
|
|
@@ -64,160 +66,52 @@ export function parseHealthcareEntityIndex(pointer) {
|
|
|
64
66
|
throw new Error(`Pointer "${pointer}" is not a valid healthcare entity pointer`);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
|
-
const jsEncodingUnit = "Utf16CodeUnit";
|
|
68
69
|
/**
|
|
69
70
|
* @internal
|
|
70
71
|
*/
|
|
71
|
-
export function
|
|
72
|
-
return
|
|
72
|
+
export function isStringArray(documents) {
|
|
73
|
+
return typeof documents[0] === "string";
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
|
-
* Set the stringIndexType property with default if it does not exist in x.
|
|
76
|
-
* @param options - operation options bag that has a {@link StringIndexType}
|
|
77
76
|
* @internal
|
|
78
77
|
*/
|
|
79
|
-
export function
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
* Set the opinion mining property
|
|
87
|
-
* @internal
|
|
88
|
-
*/
|
|
89
|
-
export function setOpinionMining(x) {
|
|
90
|
-
return Object.assign(Object.assign({}, x), { opinionMining: x.includeOpinionMining });
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Set the pii categories property
|
|
94
|
-
* @internal
|
|
95
|
-
*/
|
|
96
|
-
export function setCategoriesFilter(x) {
|
|
97
|
-
return Object.assign(Object.assign({}, x), { piiCategories: x.categoriesFilter });
|
|
98
|
-
}
|
|
99
|
-
export function setSentenceCount(x) {
|
|
100
|
-
return Object.assign(Object.assign({}, x), { sentenceCount: x.maxSentenceCount });
|
|
101
|
-
}
|
|
102
|
-
export function setOrderBy(x) {
|
|
103
|
-
return Object.assign(Object.assign({}, x), { sortBy: x.orderBy });
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* @internal
|
|
107
|
-
*/
|
|
108
|
-
export function addParamsToTask(action) {
|
|
109
|
-
const { actionName } = action, params = __rest(action, ["actionName"]);
|
|
110
|
-
return { parameters: params, taskName: actionName };
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Set the modelVersion property with default if it does not exist in x.
|
|
114
|
-
* @param options - operation options bag that has a {@link StringIndexType}
|
|
115
|
-
* @internal
|
|
116
|
-
*/
|
|
117
|
-
export function setModelVersionParam(x) {
|
|
118
|
-
return Object.assign(Object.assign({}, x), { modelVersion: x.modelVersion || "latest" });
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* @internal
|
|
122
|
-
*/
|
|
123
|
-
export function getOperationId(operationLocation) {
|
|
124
|
-
const lastSlashIndex = operationLocation.lastIndexOf("/");
|
|
125
|
-
return operationLocation.substring(lastSlashIndex + 1);
|
|
126
|
-
}
|
|
127
|
-
function appendReadableErrorMessage(currentMessage, innerMessage) {
|
|
128
|
-
let message = currentMessage;
|
|
129
|
-
if (message.slice(-1) !== ".") {
|
|
130
|
-
message = message + ".";
|
|
131
|
-
}
|
|
132
|
-
return message + " " + innerMessage;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* @internal
|
|
136
|
-
* parses incoming errors from the service and if the inner error code is
|
|
137
|
-
* InvalidDocumentBatch, it exposes that as the statusCode instead.
|
|
138
|
-
* @param error - the incoming error
|
|
139
|
-
*/
|
|
140
|
-
export function compileError(errorResponse) {
|
|
141
|
-
var _a;
|
|
142
|
-
const castErrorResponse = errorResponse;
|
|
143
|
-
const topLevelError = (_a = castErrorResponse.response.parsedBody) === null || _a === void 0 ? void 0 : _a.error;
|
|
144
|
-
if (!topLevelError)
|
|
145
|
-
return errorResponse;
|
|
146
|
-
let errorMessage = topLevelError.message || "";
|
|
147
|
-
let invalidDocumentBatchCode = false;
|
|
148
|
-
function unwrap(error) {
|
|
149
|
-
if ((error === null || error === void 0 ? void 0 : error.innererror) !== undefined && error.innererror.message !== undefined) {
|
|
150
|
-
if (error.innererror.code === "InvalidDocumentBatch") {
|
|
151
|
-
invalidDocumentBatchCode = true;
|
|
152
|
-
}
|
|
153
|
-
errorMessage = appendReadableErrorMessage(errorMessage, error.innererror.message);
|
|
154
|
-
return unwrap(error.innererror);
|
|
155
|
-
}
|
|
156
|
-
return error;
|
|
157
|
-
}
|
|
158
|
-
unwrap(topLevelError);
|
|
159
|
-
return new RestError(errorMessage, {
|
|
160
|
-
code: invalidDocumentBatchCode ? "InvalidDocumentBatch" : topLevelError.code,
|
|
161
|
-
statusCode: castErrorResponse.statusCode
|
|
78
|
+
export function convertToTextDocumentInput(inputs, language) {
|
|
79
|
+
return inputs.map((text, index) => {
|
|
80
|
+
return {
|
|
81
|
+
id: String(index),
|
|
82
|
+
language,
|
|
83
|
+
text,
|
|
84
|
+
};
|
|
162
85
|
});
|
|
163
86
|
}
|
|
164
|
-
/**
|
|
165
|
-
* A wrapper for setTimeout that resolves a promise after t milliseconds.
|
|
166
|
-
* @internal
|
|
167
|
-
* @param timeInMs - The number of milliseconds to be delayed.
|
|
168
|
-
* @returns Resolved promise
|
|
169
|
-
*/
|
|
170
|
-
export function delay(timeInMs) {
|
|
171
|
-
return new Promise((resolve) => setTimeout(() => resolve(), timeInMs));
|
|
172
|
-
}
|
|
173
87
|
/**
|
|
174
88
|
* @internal
|
|
175
89
|
*/
|
|
176
|
-
export function
|
|
177
|
-
return (
|
|
90
|
+
export function convertToLanguageDetectionInput(inputs, countryHint) {
|
|
91
|
+
return inputs.map((text, index) => {
|
|
92
|
+
return {
|
|
93
|
+
id: String(index),
|
|
94
|
+
countryHint,
|
|
95
|
+
text,
|
|
96
|
+
};
|
|
97
|
+
});
|
|
178
98
|
}
|
|
179
99
|
/**
|
|
180
100
|
* @internal
|
|
181
101
|
*/
|
|
182
|
-
export
|
|
183
|
-
const { onResponse } = options
|
|
184
|
-
let rawResponse = undefined;
|
|
185
|
-
const flatResponse = await f(Object.assign(Object.assign({}, options), { onResponse: (response, flatResponseParam) => {
|
|
186
|
-
rawResponse = response;
|
|
187
|
-
onResponse === null || onResponse === void 0 ? void 0 : onResponse(response, flatResponseParam);
|
|
188
|
-
} }));
|
|
102
|
+
export function getOperationOptions(options) {
|
|
103
|
+
const { abortSignal, apiVersion, includeStatistics, onResponse, requestOptions, serializerOptions, tracingOptions } = options, rest = __rest(options, ["abortSignal", "apiVersion", "includeStatistics", "onResponse", "requestOptions", "serializerOptions", "tracingOptions"]);
|
|
189
104
|
return {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
105
|
+
options: {
|
|
106
|
+
abortSignal,
|
|
107
|
+
apiVersion,
|
|
108
|
+
includeStatistics,
|
|
109
|
+
onResponse,
|
|
110
|
+
requestOptions,
|
|
111
|
+
serializerOptions,
|
|
112
|
+
tracingOptions,
|
|
113
|
+
},
|
|
114
|
+
rest,
|
|
196
115
|
};
|
|
197
116
|
}
|
|
198
|
-
/**
|
|
199
|
-
* @internal
|
|
200
|
-
*/
|
|
201
|
-
export async function sendGetRequest(
|
|
202
|
-
// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters
|
|
203
|
-
client, spec, spanStr, options, path) {
|
|
204
|
-
const { span, updatedOptions: finalOptions } = createSpan(`TextAnalyticsClient-${spanStr}`, options);
|
|
205
|
-
try {
|
|
206
|
-
const { flatResponse, rawResponse } = await getRawResponse((paramOptions) => client.sendOperationRequest({ options: paramOptions }, Object.assign(Object.assign({}, spec), { path, httpMethod: "GET" })), finalOptions);
|
|
207
|
-
return {
|
|
208
|
-
flatResponse: flatResponse,
|
|
209
|
-
rawResponse
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
catch (e) {
|
|
213
|
-
span.setStatus({
|
|
214
|
-
code: SpanStatusCode.ERROR,
|
|
215
|
-
message: e.message
|
|
216
|
-
});
|
|
217
|
-
throw e;
|
|
218
|
-
}
|
|
219
|
-
finally {
|
|
220
|
-
span.end();
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
117
|
//# sourceMappingURL=util.js.map
|
package/dist-esm/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { FullOperationResponse, OperationOptions, OperationSpec } from \"@azure/core-client\";\nimport { SpanStatusCode } from \"@azure/core-tracing\";\nimport { logger } from \"./logger\";\nimport {\n ErrorResponse,\n GeneratedClient,\n InnerError,\n StringIndexType as GeneratedStringIndexType,\n TextAnalyticsError\n} from \"./generated\";\nimport { TextAnalyticsAction } from \"./textAnalyticsAction\";\nimport { createSpan } from \"./tracing\";\nimport { LroResponse } from \"@azure/core-lro\";\n\n/**\n * @internal\n */\nexport interface IdObject {\n id: string;\n}\n\n/**\n * Given a sorted array of input objects (with a unique ID) and an unsorted array of results,\n * return a sorted array of results.\n *\n * @internal\n * @param sortedArray - An array of entries sorted by `id`\n * @param unsortedArray - An array of entries that contain `id` but are not sorted\n */\nexport function sortResponseIdObjects<T extends IdObject, U extends IdObject>(\n sortedArray: T[],\n unsortedArray: U[]\n): U[] {\n const unsortedMap = new Map<string, U>();\n for (const item of unsortedArray) {\n unsortedMap.set(item.id, item);\n }\n\n if (unsortedArray.length !== sortedArray.length) {\n const ordinal = unsortedArray.length > sortedArray.length ? \"more\" : \"fewer\";\n logger.warning(\n `The service returned ${ordinal} responses than inputs. Some errors may be treated as fatal.`\n );\n }\n\n const result: U[] = [];\n for (const sortedItem of sortedArray) {\n const item = unsortedMap.get(sortedItem.id);\n if (item) {\n result.push(item);\n }\n }\n return result;\n}\n\n/**\n * @internal\n */\nexport interface AssessmentIndex {\n document: number;\n sentence: number;\n assessment: number;\n}\n\n/**\n * @internal\n */\nexport function parseAssessmentIndex(pointer: string): AssessmentIndex {\n const regex = new RegExp(/#\\/documents\\/(\\d+)\\/sentences\\/(\\d+)\\/assessments\\/(\\d+)/);\n const res = regex.exec(pointer);\n if (res !== null) {\n const assessmentIndex: AssessmentIndex = {\n document: parseInt(res[1]),\n sentence: parseInt(res[2]),\n assessment: parseInt(res[3])\n };\n return assessmentIndex;\n } else {\n throw new Error(`Pointer \"${pointer}\" is not a valid Assessment pointer`);\n }\n}\n\n/**\n * Parses the index of the healthcare entity from a JSON pointer.\n * @param pointer - a JSON pointer representing an entity\n * @internal\n */\nexport function parseHealthcareEntityIndex(pointer: string): number {\n const regex = new RegExp(/#\\/results\\/documents\\/(\\d+)\\/entities\\/(\\d+)/);\n const res = regex.exec(pointer);\n if (res !== null) {\n return parseInt(res[2]);\n } else {\n throw new Error(`Pointer \"${pointer}\" is not a valid healthcare entity pointer`);\n }\n}\n\nconst jsEncodingUnit = \"Utf16CodeUnit\";\n\n/**\n * Measurement units that can used to calculate the offset and length properties.\n */\nexport type StringIndexType = \"TextElement_v8\" | \"UnicodeCodePoint\" | \"Utf16CodeUnit\";\n\n/**\n * @internal\n */\nexport function addStrEncodingParam<Options extends { stringIndexType?: StringIndexType }>(\n options: Options\n): Options & { stringIndexType: StringIndexType } {\n return { ...options, stringIndexType: options.stringIndexType || jsEncodingUnit };\n}\n\n/**\n * Set the stringIndexType property with default if it does not exist in x.\n * @param options - operation options bag that has a {@link StringIndexType}\n * @internal\n */\nexport function setStrEncodingParam<X extends { stringIndexType?: GeneratedStringIndexType }>(\n x: X\n): X & { stringIndexType: GeneratedStringIndexType } {\n return { ...x, stringIndexType: x.stringIndexType || jsEncodingUnit };\n}\n\nexport function setStrEncodingParamValue(\n stringIndexType?: GeneratedStringIndexType\n): GeneratedStringIndexType {\n return stringIndexType || jsEncodingUnit;\n}\n\n/**\n * Set the opinion mining property\n * @internal\n */\nexport function setOpinionMining<X extends { includeOpinionMining?: boolean }>(\n x: X\n): X & { opinionMining?: boolean } {\n return { ...x, opinionMining: x.includeOpinionMining };\n}\n\n/**\n * Set the pii categories property\n * @internal\n */\nexport function setCategoriesFilter<X extends { categoriesFilter?: string[] }>(\n x: X\n): X & { piiCategories?: string[] } {\n return { ...x, piiCategories: x.categoriesFilter };\n}\n\nexport function setSentenceCount<X extends { maxSentenceCount?: number }>(\n x: X\n): X & { sentenceCount?: number } {\n return { ...x, sentenceCount: x.maxSentenceCount };\n}\n\nexport function setOrderBy<X extends { orderBy?: string }>(x: X): X & { sortBy?: string } {\n return { ...x, sortBy: x.orderBy };\n}\n\n/**\n * @internal\n */\nexport function addParamsToTask<X extends TextAnalyticsAction>(\n action: X\n): { parameters?: Omit<X, \"actionName\">; taskName?: string } {\n const { actionName, ...params } = action;\n return { parameters: params, taskName: actionName };\n}\n\n/**\n * Set the modelVersion property with default if it does not exist in x.\n * @param options - operation options bag that has a {@link StringIndexType}\n * @internal\n */\nexport function setModelVersionParam<X extends { modelVersion?: string }>(\n x: X\n): X & { modelVersion: string } {\n return { ...x, modelVersion: x.modelVersion || \"latest\" };\n}\n\n/**\n * @internal\n */\nexport interface PageParam {\n top: number;\n skip: number;\n}\n\n/**\n * @internal\n */\nexport function getOperationId(operationLocation: string): string {\n const lastSlashIndex = operationLocation.lastIndexOf(\"/\");\n return operationLocation.substring(lastSlashIndex + 1);\n}\n\nfunction appendReadableErrorMessage(currentMessage: string, innerMessage: string): string {\n let message = currentMessage;\n if (message.slice(-1) !== \".\") {\n message = message + \".\";\n }\n return message + \" \" + innerMessage;\n}\n\n/**\n * @internal\n * parses incoming errors from the service and if the inner error code is\n * InvalidDocumentBatch, it exposes that as the statusCode instead.\n * @param error - the incoming error\n */\nexport function compileError(errorResponse: unknown): any {\n const castErrorResponse = errorResponse as {\n response: {\n parsedBody?: ErrorResponse;\n };\n statusCode: number;\n };\n const topLevelError = castErrorResponse.response.parsedBody?.error;\n if (!topLevelError) return errorResponse;\n let errorMessage = topLevelError.message || \"\";\n let invalidDocumentBatchCode = false;\n function unwrap(error: TextAnalyticsError | InnerError): TextAnalyticsError {\n if (error?.innererror !== undefined && error.innererror.message !== undefined) {\n if (error.innererror.code === \"InvalidDocumentBatch\") {\n invalidDocumentBatchCode = true;\n }\n errorMessage = appendReadableErrorMessage(errorMessage, error.innererror.message);\n return unwrap(error.innererror);\n }\n return error as TextAnalyticsError;\n }\n unwrap(topLevelError);\n return new RestError(errorMessage, {\n code: invalidDocumentBatchCode ? \"InvalidDocumentBatch\" : topLevelError.code,\n statusCode: castErrorResponse.statusCode\n });\n}\n\n/**\n * A wrapper for setTimeout that resolves a promise after t milliseconds.\n * @internal\n * @param timeInMs - The number of milliseconds to be delayed.\n * @returns Resolved promise\n */\nexport function delay(timeInMs: number): Promise<void> {\n return new Promise((resolve) => setTimeout(() => resolve(), timeInMs));\n}\n\n/**\n * @internal\n */\nexport function compose<T1, T2, T3>(fn1: (x: T1) => T2, fn2: (y: T2) => T3): (x: T1) => T3 {\n return (value: T1) => fn2(fn1(value));\n}\n\n/**\n * @internal\n */\nexport async function getRawResponse<TOptions extends OperationOptions, TResult>(\n f: (options: TOptions) => Promise<TResult>,\n options: TOptions\n): Promise<LroResponse<TResult>> {\n const { onResponse } = options || {};\n let rawResponse: FullOperationResponse | undefined = undefined;\n const flatResponse = await f({\n ...options,\n onResponse: (response: FullOperationResponse, flatResponseParam: unknown) => {\n rawResponse = response;\n onResponse?.(response, flatResponseParam);\n }\n });\n return {\n flatResponse,\n rawResponse: {\n statusCode: rawResponse!.status,\n headers: rawResponse!.headers.toJSON(),\n body: rawResponse!.parsedBody\n }\n };\n}\n\n/**\n * @internal\n */\nexport async function sendGetRequest<TOptions extends OperationOptions>(\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n client: GeneratedClient,\n spec: OperationSpec,\n spanStr: string,\n options: TOptions,\n path: string\n): Promise<LroResponse<unknown>> {\n const { span, updatedOptions: finalOptions } = createSpan(\n `TextAnalyticsClient-${spanStr}`,\n options\n );\n try {\n const { flatResponse, rawResponse } = await getRawResponse(\n (paramOptions) =>\n client.sendOperationRequest(\n { options: paramOptions },\n {\n ...spec,\n path,\n httpMethod: \"GET\"\n }\n ),\n finalOptions\n );\n return {\n flatResponse: flatResponse,\n rawResponse\n };\n } catch (e) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message\n });\n throw e;\n } finally {\n span.end();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { LanguageDetectionInput, TextDocumentInput } from \"./generated\";\nimport { TextAnalysisOperationOptions } from \"./models\";\nimport { logger } from \"./logger\";\n\ninterface IdObject {\n id: string;\n}\n\n/**\n * Given a sorted array of input objects (with a unique ID) and an unsorted array of results,\n * return a sorted array of results.\n *\n * @internal\n * @param sortedArray - An array of entries sorted by `id`\n * @param unsortedArray - An array of entries that contain `id` but are not sorted\n */\nexport function sortResponseIdObjects<U extends IdObject>(\n sortedArray: IdObject[],\n unsortedArray: U[]\n): U[] {\n const unsortedMap = new Map<string, U>();\n for (const item of unsortedArray) {\n unsortedMap.set(item.id, item);\n }\n\n if (unsortedArray.length !== sortedArray.length) {\n const ordinal = unsortedArray.length > sortedArray.length ? \"more\" : \"fewer\";\n logger.warning(\n `The service returned ${ordinal} responses than inputs. Some errors may be treated as fatal.`\n );\n }\n\n const result: U[] = [];\n /**\n * When the results are returned in pages, sortedArray will probably have more\n * items than unsortedArray so it is ok to ignore the case when a sorted item\n * ID is not found in `unsortedMap`.\n */\n for (const sortedItem of sortedArray) {\n const item = unsortedMap.get(sortedItem.id);\n if (item) {\n result.push(item);\n }\n }\n return result;\n}\n\n/**\n * @internal\n */\nexport interface AssessmentIndex {\n document: number;\n sentence: number;\n assessment: number;\n}\n\n/**\n * @internal\n */\nexport function parseAssessmentIndex(pointer: string): AssessmentIndex {\n const regex = new RegExp(/#\\/documents\\/(\\d+)\\/sentences\\/(\\d+)\\/assessments\\/(\\d+)/);\n const res = regex.exec(pointer);\n if (res !== null) {\n const assessmentIndex: AssessmentIndex = {\n document: parseInt(res[1]),\n sentence: parseInt(res[2]),\n assessment: parseInt(res[3]),\n };\n return assessmentIndex;\n } else {\n throw new Error(`Pointer \"${pointer}\" is not a valid Assessment pointer`);\n }\n}\n\n/**\n * Parses the index of the healthcare entity from a JSON pointer.\n * @param pointer - a JSON pointer representing an entity\n * @internal\n */\nexport function parseHealthcareEntityIndex(pointer: string): number {\n const regex = new RegExp(/#\\/results\\/documents\\/(\\d+)\\/entities\\/(\\d+)/);\n const res = regex.exec(pointer);\n if (res !== null) {\n return parseInt(res[2]);\n } else {\n throw new Error(`Pointer \"${pointer}\" is not a valid healthcare entity pointer`);\n }\n}\n\n/**\n * @internal\n */\nexport function isStringArray(documents: unknown[]): documents is string[] {\n return typeof documents[0] === \"string\";\n}\n\n/**\n * @internal\n */\nexport function convertToTextDocumentInput(\n inputs: string[],\n language?: string\n): TextDocumentInput[] {\n return inputs.map((text: string, index): TextDocumentInput => {\n return {\n id: String(index),\n language,\n text,\n };\n });\n}\n\n/**\n * @internal\n */\nexport function convertToLanguageDetectionInput(\n inputs: string[],\n countryHint?: string\n): LanguageDetectionInput[] {\n return inputs.map((text: string, index): LanguageDetectionInput => {\n return {\n id: String(index),\n countryHint,\n text,\n };\n });\n}\n\n/**\n * @internal\n */\nexport function getOperationOptions<OptionsT extends TextAnalysisOperationOptions>(\n options: OptionsT\n): {\n options: TextAnalysisOperationOptions;\n rest: Omit<\n OptionsT,\n | \"onResponse\"\n | \"abortSignal\"\n | \"apiVersion\"\n | \"includeStatistics\"\n | \"requestOptions\"\n | \"serializerOptions\"\n | \"tracingOptions\"\n >;\n} {\n const {\n abortSignal,\n apiVersion,\n includeStatistics,\n onResponse,\n requestOptions,\n serializerOptions,\n tracingOptions,\n ...rest\n } = options;\n return {\n options: {\n abortSignal,\n apiVersion,\n includeStatistics,\n onResponse,\n requestOptions,\n serializerOptions,\n tracingOptions,\n },\n rest,\n };\n}\n"]}
|