@azure/ai-language-text 1.1.0-alpha.20241203.1 → 1.1.0-alpha.20241205.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.
Files changed (309) hide show
  1. package/dist/browser/azureKeyCredentialPolicy.d.ts +9 -0
  2. package/dist/browser/azureKeyCredentialPolicy.d.ts.map +1 -0
  3. package/dist/browser/constants.d.ts +14 -0
  4. package/dist/browser/constants.d.ts.map +1 -0
  5. package/dist/browser/generated/generatedClient.d.ts +33 -0
  6. package/dist/browser/generated/generatedClient.d.ts.map +1 -0
  7. package/{dist-esm/src → dist/browser}/generated/generatedClient.js +3 -3
  8. package/dist/browser/generated/generatedClient.js.map +1 -0
  9. package/dist/browser/generated/index.d.ts +4 -0
  10. package/dist/browser/generated/index.d.ts.map +1 -0
  11. package/dist/browser/generated/index.js +11 -0
  12. package/dist/browser/generated/index.js.map +1 -0
  13. package/dist/browser/generated/models/index.d.ts +2034 -0
  14. package/dist/browser/generated/models/index.d.ts.map +1 -0
  15. package/dist/browser/generated/models/mappers.d.ts +171 -0
  16. package/dist/browser/generated/models/mappers.d.ts.map +1 -0
  17. package/dist/browser/generated/models/parameters.d.ts +12 -0
  18. package/dist/browser/generated/models/parameters.d.ts.map +1 -0
  19. package/{dist-esm/src → dist/browser}/generated/models/parameters.js +1 -1
  20. package/{dist-esm/src → dist/browser}/generated/models/parameters.js.map +1 -1
  21. package/dist/browser/generated/operations/analyzeText.d.ts +27 -0
  22. package/dist/browser/generated/operations/analyzeText.d.ts.map +1 -0
  23. package/{dist-esm/src → dist/browser}/generated/operations/analyzeText.js +2 -2
  24. package/dist/browser/generated/operations/analyzeText.js.map +1 -0
  25. package/dist/browser/generated/operations/index.d.ts +2 -0
  26. package/dist/browser/generated/operations/index.d.ts.map +1 -0
  27. package/{dist-esm/src/generated → dist/browser/generated/operations}/index.js +1 -3
  28. package/dist/browser/generated/operations/index.js.map +1 -0
  29. package/dist/browser/generated/operationsInterfaces/analyzeText.d.ts +19 -0
  30. package/dist/browser/generated/operationsInterfaces/analyzeText.d.ts.map +1 -0
  31. package/dist/browser/generated/operationsInterfaces/analyzeText.js.map +1 -0
  32. package/dist/browser/generated/operationsInterfaces/index.d.ts +2 -0
  33. package/dist/browser/generated/operationsInterfaces/index.d.ts.map +1 -0
  34. package/dist/browser/generated/operationsInterfaces/index.js +9 -0
  35. package/dist/browser/generated/operationsInterfaces/index.js.map +1 -0
  36. package/dist/browser/index.d.ts +16 -0
  37. package/dist/browser/index.d.ts.map +1 -0
  38. package/{dist-esm/src → dist/browser}/index.js +3 -3
  39. package/dist/browser/index.js.map +1 -0
  40. package/dist/browser/logger.d.ts +6 -0
  41. package/dist/browser/logger.d.ts.map +1 -0
  42. package/dist/browser/lro.d.ts +60 -0
  43. package/dist/browser/lro.d.ts.map +1 -0
  44. package/{dist-esm/src → dist/browser}/lro.js +5 -5
  45. package/dist/browser/lro.js.map +1 -0
  46. package/dist/browser/models.d.ts +881 -0
  47. package/dist/browser/models.d.ts.map +1 -0
  48. package/{dist-esm/src → dist/browser}/models.js +1 -1
  49. package/dist/browser/models.js.map +1 -0
  50. package/dist/browser/package.json +3 -0
  51. package/dist/browser/textAnalysisClient.d.ts +487 -0
  52. package/dist/browser/textAnalysisClient.d.ts.map +1 -0
  53. package/{dist-esm/src → dist/browser}/textAnalysisClient.js +7 -7
  54. package/dist/browser/textAnalysisClient.js.map +1 -0
  55. package/dist/browser/transforms.d.ts +12 -0
  56. package/dist/browser/transforms.d.ts.map +1 -0
  57. package/{dist-esm/src → dist/browser}/transforms.js +1 -1
  58. package/dist/browser/transforms.js.map +1 -0
  59. package/dist/browser/util.d.ts +57 -0
  60. package/dist/browser/util.d.ts.map +1 -0
  61. package/{dist-esm/src → dist/browser}/util.js +1 -1
  62. package/dist/browser/util.js.map +1 -0
  63. package/dist/commonjs/azureKeyCredentialPolicy.d.ts +9 -0
  64. package/dist/commonjs/azureKeyCredentialPolicy.d.ts.map +1 -0
  65. package/dist/commonjs/azureKeyCredentialPolicy.js +25 -0
  66. package/dist/commonjs/azureKeyCredentialPolicy.js.map +1 -0
  67. package/dist/commonjs/constants.d.ts +14 -0
  68. package/dist/commonjs/constants.d.ts.map +1 -0
  69. package/dist/commonjs/constants.js +19 -0
  70. package/dist/commonjs/constants.js.map +1 -0
  71. package/dist/commonjs/generated/generatedClient.d.ts +33 -0
  72. package/dist/commonjs/generated/generatedClient.d.ts.map +1 -0
  73. package/dist/commonjs/generated/generatedClient.js +134 -0
  74. package/dist/commonjs/generated/generatedClient.js.map +1 -0
  75. package/dist/commonjs/generated/index.d.ts +4 -0
  76. package/dist/commonjs/generated/index.d.ts.map +1 -0
  77. package/dist/commonjs/generated/index.js +16 -0
  78. package/dist/commonjs/generated/index.js.map +1 -0
  79. package/dist/commonjs/generated/models/index.d.ts +2034 -0
  80. package/dist/commonjs/generated/models/index.d.ts.map +1 -0
  81. package/dist/commonjs/generated/models/index.js +735 -0
  82. package/dist/commonjs/generated/models/index.js.map +1 -0
  83. package/dist/commonjs/generated/models/mappers.d.ts +171 -0
  84. package/dist/commonjs/generated/models/mappers.d.ts.map +1 -0
  85. package/dist/commonjs/generated/models/mappers.js +2848 -0
  86. package/dist/commonjs/generated/models/mappers.js.map +1 -0
  87. package/dist/commonjs/generated/models/parameters.d.ts +12 -0
  88. package/dist/commonjs/generated/models/parameters.d.ts.map +1 -0
  89. package/dist/commonjs/generated/models/parameters.js +101 -0
  90. package/dist/commonjs/generated/models/parameters.js.map +1 -0
  91. package/dist/commonjs/generated/operations/analyzeText.d.ts +27 -0
  92. package/dist/commonjs/generated/operations/analyzeText.d.ts.map +1 -0
  93. package/dist/commonjs/generated/operations/analyzeText.js +83 -0
  94. package/dist/commonjs/generated/operations/analyzeText.js.map +1 -0
  95. package/dist/commonjs/generated/operations/index.d.ts +2 -0
  96. package/dist/commonjs/generated/operations/index.d.ts.map +1 -0
  97. package/dist/commonjs/generated/operations/index.js +12 -0
  98. package/dist/commonjs/generated/operations/index.js.map +1 -0
  99. package/dist/commonjs/generated/operationsInterfaces/analyzeText.d.ts +19 -0
  100. package/dist/commonjs/generated/operationsInterfaces/analyzeText.d.ts.map +1 -0
  101. package/dist/commonjs/generated/operationsInterfaces/analyzeText.js +10 -0
  102. package/dist/commonjs/generated/operationsInterfaces/analyzeText.js.map +1 -0
  103. package/dist/commonjs/generated/operationsInterfaces/index.d.ts +2 -0
  104. package/dist/commonjs/generated/operationsInterfaces/index.d.ts.map +1 -0
  105. package/dist/commonjs/generated/operationsInterfaces/index.js +12 -0
  106. package/dist/commonjs/generated/operationsInterfaces/index.js.map +1 -0
  107. package/dist/commonjs/index.d.ts +16 -0
  108. package/dist/commonjs/index.d.ts.map +1 -0
  109. package/dist/commonjs/index.js +31 -0
  110. package/dist/commonjs/index.js.map +1 -0
  111. package/dist/commonjs/logger.d.ts +6 -0
  112. package/dist/commonjs/logger.d.ts.map +1 -0
  113. package/dist/commonjs/logger.js +12 -0
  114. package/dist/commonjs/logger.js.map +1 -0
  115. package/dist/commonjs/lro.d.ts +60 -0
  116. package/dist/commonjs/lro.d.ts.map +1 -0
  117. package/dist/commonjs/lro.js +200 -0
  118. package/dist/commonjs/lro.js.map +1 -0
  119. package/dist/commonjs/models.d.ts +881 -0
  120. package/dist/commonjs/models.d.ts.map +1 -0
  121. package/dist/commonjs/models.js +38 -0
  122. package/dist/commonjs/models.js.map +1 -0
  123. package/dist/commonjs/package.json +3 -0
  124. package/dist/commonjs/textAnalysisClient.d.ts +487 -0
  125. package/dist/commonjs/textAnalysisClient.d.ts.map +1 -0
  126. package/dist/commonjs/textAnalysisClient.js +211 -0
  127. package/dist/commonjs/textAnalysisClient.js.map +1 -0
  128. package/dist/commonjs/transforms.d.ts +12 -0
  129. package/dist/commonjs/transforms.d.ts.map +1 -0
  130. package/dist/commonjs/transforms.js +388 -0
  131. package/dist/commonjs/transforms.js.map +1 -0
  132. package/dist/commonjs/tsdoc-metadata.json +11 -0
  133. package/dist/commonjs/util.d.ts +57 -0
  134. package/dist/commonjs/util.d.ts.map +1 -0
  135. package/dist/commonjs/util.js +141 -0
  136. package/dist/commonjs/util.js.map +1 -0
  137. package/dist/esm/azureKeyCredentialPolicy.d.ts +9 -0
  138. package/dist/esm/azureKeyCredentialPolicy.d.ts.map +1 -0
  139. package/dist/esm/azureKeyCredentialPolicy.js +22 -0
  140. package/dist/esm/azureKeyCredentialPolicy.js.map +1 -0
  141. package/dist/esm/constants.d.ts +14 -0
  142. package/dist/esm/constants.d.ts.map +1 -0
  143. package/dist/esm/constants.js +16 -0
  144. package/dist/esm/constants.js.map +1 -0
  145. package/dist/esm/generated/generatedClient.d.ts +33 -0
  146. package/dist/esm/generated/generatedClient.d.ts.map +1 -0
  147. package/dist/esm/generated/generatedClient.js +129 -0
  148. package/dist/esm/generated/generatedClient.js.map +1 -0
  149. package/dist/esm/generated/index.d.ts +4 -0
  150. package/dist/esm/generated/index.d.ts.map +1 -0
  151. package/dist/esm/generated/index.js +11 -0
  152. package/dist/esm/generated/index.js.map +1 -0
  153. package/dist/esm/generated/models/index.d.ts +2034 -0
  154. package/dist/esm/generated/models/index.d.ts.map +1 -0
  155. package/dist/esm/generated/models/index.js +732 -0
  156. package/dist/esm/generated/models/index.js.map +1 -0
  157. package/dist/esm/generated/models/mappers.d.ts +171 -0
  158. package/dist/esm/generated/models/mappers.d.ts.map +1 -0
  159. package/dist/esm/generated/models/mappers.js +2843 -0
  160. package/dist/esm/generated/models/mappers.js.map +1 -0
  161. package/dist/esm/generated/models/parameters.d.ts +12 -0
  162. package/dist/esm/generated/models/parameters.d.ts.map +1 -0
  163. package/dist/esm/generated/models/parameters.js +98 -0
  164. package/dist/esm/generated/models/parameters.js.map +1 -0
  165. package/dist/esm/generated/operations/analyzeText.d.ts +27 -0
  166. package/dist/esm/generated/operations/analyzeText.d.ts.map +1 -0
  167. package/dist/esm/generated/operations/analyzeText.js +78 -0
  168. package/dist/esm/generated/operations/analyzeText.js.map +1 -0
  169. package/dist/esm/generated/operations/index.d.ts +2 -0
  170. package/dist/esm/generated/operations/index.d.ts.map +1 -0
  171. package/dist/esm/generated/operations/index.js +9 -0
  172. package/dist/esm/generated/operations/index.js.map +1 -0
  173. package/dist/esm/generated/operationsInterfaces/analyzeText.d.ts +19 -0
  174. package/dist/esm/generated/operationsInterfaces/analyzeText.d.ts.map +1 -0
  175. package/{dist-esm/src/generated/operationsInterfaces/index.js → dist/esm/generated/operationsInterfaces/analyzeText.js} +2 -2
  176. package/dist/esm/generated/operationsInterfaces/analyzeText.js.map +1 -0
  177. package/dist/esm/generated/operationsInterfaces/index.d.ts +2 -0
  178. package/dist/esm/generated/operationsInterfaces/index.d.ts.map +1 -0
  179. package/dist/esm/generated/operationsInterfaces/index.js +9 -0
  180. package/dist/esm/generated/operationsInterfaces/index.js.map +1 -0
  181. package/dist/esm/index.d.ts +16 -0
  182. package/dist/esm/index.d.ts.map +1 -0
  183. package/dist/esm/index.js +18 -0
  184. package/dist/esm/index.js.map +1 -0
  185. package/dist/esm/logger.d.ts +6 -0
  186. package/dist/esm/logger.d.ts.map +1 -0
  187. package/dist/esm/logger.js +9 -0
  188. package/dist/esm/logger.js.map +1 -0
  189. package/dist/esm/lro.d.ts +60 -0
  190. package/dist/esm/lro.d.ts.map +1 -0
  191. package/dist/esm/lro.js +191 -0
  192. package/dist/esm/lro.js.map +1 -0
  193. package/dist/esm/models.d.ts +881 -0
  194. package/dist/esm/models.d.ts.map +1 -0
  195. package/dist/esm/models.js +35 -0
  196. package/dist/esm/models.js.map +1 -0
  197. package/dist/esm/package.json +3 -0
  198. package/dist/esm/textAnalysisClient.d.ts +487 -0
  199. package/dist/esm/textAnalysisClient.d.ts.map +1 -0
  200. package/dist/esm/textAnalysisClient.js +207 -0
  201. package/dist/esm/textAnalysisClient.js.map +1 -0
  202. package/dist/esm/transforms.d.ts +12 -0
  203. package/dist/esm/transforms.d.ts.map +1 -0
  204. package/dist/esm/transforms.js +383 -0
  205. package/dist/esm/transforms.js.map +1 -0
  206. package/dist/esm/util.d.ts +57 -0
  207. package/dist/esm/util.d.ts.map +1 -0
  208. package/dist/esm/util.js +131 -0
  209. package/dist/esm/util.js.map +1 -0
  210. package/dist/react-native/azureKeyCredentialPolicy.d.ts +9 -0
  211. package/dist/react-native/azureKeyCredentialPolicy.d.ts.map +1 -0
  212. package/dist/react-native/azureKeyCredentialPolicy.js +22 -0
  213. package/dist/react-native/azureKeyCredentialPolicy.js.map +1 -0
  214. package/dist/react-native/constants.d.ts +14 -0
  215. package/dist/react-native/constants.d.ts.map +1 -0
  216. package/dist/react-native/constants.js +16 -0
  217. package/dist/react-native/constants.js.map +1 -0
  218. package/dist/react-native/generated/generatedClient.d.ts +33 -0
  219. package/dist/react-native/generated/generatedClient.d.ts.map +1 -0
  220. package/dist/react-native/generated/generatedClient.js +129 -0
  221. package/dist/react-native/generated/generatedClient.js.map +1 -0
  222. package/dist/react-native/generated/index.d.ts +4 -0
  223. package/dist/react-native/generated/index.d.ts.map +1 -0
  224. package/dist/react-native/generated/index.js +11 -0
  225. package/dist/react-native/generated/index.js.map +1 -0
  226. package/dist/react-native/generated/models/index.d.ts +2034 -0
  227. package/dist/react-native/generated/models/index.d.ts.map +1 -0
  228. package/dist/react-native/generated/models/index.js +732 -0
  229. package/dist/react-native/generated/models/index.js.map +1 -0
  230. package/dist/react-native/generated/models/mappers.d.ts +171 -0
  231. package/dist/react-native/generated/models/mappers.d.ts.map +1 -0
  232. package/dist/react-native/generated/models/mappers.js +2843 -0
  233. package/dist/react-native/generated/models/mappers.js.map +1 -0
  234. package/dist/react-native/generated/models/parameters.d.ts +12 -0
  235. package/dist/react-native/generated/models/parameters.d.ts.map +1 -0
  236. package/dist/react-native/generated/models/parameters.js +98 -0
  237. package/dist/react-native/generated/models/parameters.js.map +1 -0
  238. package/dist/react-native/generated/operations/analyzeText.d.ts +27 -0
  239. package/dist/react-native/generated/operations/analyzeText.d.ts.map +1 -0
  240. package/dist/react-native/generated/operations/analyzeText.js +78 -0
  241. package/dist/react-native/generated/operations/analyzeText.js.map +1 -0
  242. package/dist/react-native/generated/operations/index.d.ts +2 -0
  243. package/dist/react-native/generated/operations/index.d.ts.map +1 -0
  244. package/dist/react-native/generated/operations/index.js +9 -0
  245. package/dist/react-native/generated/operations/index.js.map +1 -0
  246. package/dist/react-native/generated/operationsInterfaces/analyzeText.d.ts +19 -0
  247. package/dist/react-native/generated/operationsInterfaces/analyzeText.d.ts.map +1 -0
  248. package/{dist-esm/src/generated/operations/index.js → dist/react-native/generated/operationsInterfaces/analyzeText.js} +2 -2
  249. package/dist/react-native/generated/operationsInterfaces/analyzeText.js.map +1 -0
  250. package/dist/react-native/generated/operationsInterfaces/index.d.ts +2 -0
  251. package/dist/react-native/generated/operationsInterfaces/index.d.ts.map +1 -0
  252. package/dist/react-native/generated/operationsInterfaces/index.js +9 -0
  253. package/dist/react-native/generated/operationsInterfaces/index.js.map +1 -0
  254. package/dist/react-native/index.d.ts +16 -0
  255. package/dist/react-native/index.d.ts.map +1 -0
  256. package/dist/react-native/index.js +18 -0
  257. package/dist/react-native/index.js.map +1 -0
  258. package/dist/react-native/logger.d.ts +6 -0
  259. package/dist/react-native/logger.d.ts.map +1 -0
  260. package/dist/react-native/logger.js +9 -0
  261. package/dist/react-native/logger.js.map +1 -0
  262. package/dist/react-native/lro.d.ts +60 -0
  263. package/dist/react-native/lro.d.ts.map +1 -0
  264. package/dist/react-native/lro.js +191 -0
  265. package/dist/react-native/lro.js.map +1 -0
  266. package/dist/react-native/models.d.ts +881 -0
  267. package/dist/react-native/models.d.ts.map +1 -0
  268. package/dist/react-native/models.js +35 -0
  269. package/dist/react-native/models.js.map +1 -0
  270. package/dist/react-native/package.json +3 -0
  271. package/dist/react-native/textAnalysisClient.d.ts +487 -0
  272. package/dist/react-native/textAnalysisClient.d.ts.map +1 -0
  273. package/dist/react-native/textAnalysisClient.js +207 -0
  274. package/dist/react-native/textAnalysisClient.js.map +1 -0
  275. package/dist/react-native/transforms.d.ts +12 -0
  276. package/dist/react-native/transforms.d.ts.map +1 -0
  277. package/dist/react-native/transforms.js +383 -0
  278. package/dist/react-native/transforms.js.map +1 -0
  279. package/dist/react-native/util.d.ts +57 -0
  280. package/dist/react-native/util.d.ts.map +1 -0
  281. package/dist/react-native/util.js +131 -0
  282. package/dist/react-native/util.js.map +1 -0
  283. package/package.json +71 -50
  284. package/dist/index.js +0 -5015
  285. package/dist/index.js.map +0 -1
  286. package/dist-esm/src/generated/generatedClient.js.map +0 -1
  287. package/dist-esm/src/generated/index.js.map +0 -1
  288. package/dist-esm/src/generated/operations/analyzeText.js.map +0 -1
  289. package/dist-esm/src/generated/operations/index.js.map +0 -1
  290. package/dist-esm/src/generated/operationsInterfaces/analyzeText.js.map +0 -1
  291. package/dist-esm/src/generated/operationsInterfaces/index.js.map +0 -1
  292. package/dist-esm/src/index.js.map +0 -1
  293. package/dist-esm/src/lro.js.map +0 -1
  294. package/dist-esm/src/models.js.map +0 -1
  295. package/dist-esm/src/textAnalysisClient.js.map +0 -1
  296. package/dist-esm/src/transforms.js.map +0 -1
  297. package/dist-esm/src/util.js.map +0 -1
  298. package/types/ai-language-text.d.ts +0 -2716
  299. /package/{dist-esm/src → dist/browser}/azureKeyCredentialPolicy.js +0 -0
  300. /package/{dist-esm/src → dist/browser}/azureKeyCredentialPolicy.js.map +0 -0
  301. /package/{dist-esm/src → dist/browser}/constants.js +0 -0
  302. /package/{dist-esm/src → dist/browser}/constants.js.map +0 -0
  303. /package/{dist-esm/src → dist/browser}/generated/models/index.js +0 -0
  304. /package/{dist-esm/src → dist/browser}/generated/models/index.js.map +0 -0
  305. /package/{dist-esm/src → dist/browser}/generated/models/mappers.js +0 -0
  306. /package/{dist-esm/src → dist/browser}/generated/models/mappers.js.map +0 -0
  307. /package/{dist-esm/src → dist/browser}/generated/operationsInterfaces/analyzeText.js +0 -0
  308. /package/{dist-esm/src → dist/browser}/logger.js +0 -0
  309. /package/{dist-esm/src → dist/browser}/logger.js.map +0 -0
@@ -0,0 +1,383 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { __rest } from "tslib";
4
+ import { extractErrorPointerIndex, parseAssessmentIndex, parseHealthcareEntityIndex, sortResponseIdObjects, } from "./util.js";
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 ids - the array of input document IDs.
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(ids, 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(ids, unsortedResults);
37
+ }
38
+ function toLanguageDetectionResult(docIds, results) {
39
+ return transformDocumentResults(docIds, 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(docIds, results) {
47
+ return transformDocumentResults(docIds, results);
48
+ }
49
+ function toSentimentAnalysisResult(docIds, results) {
50
+ return transformDocumentResults(docIds, 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(docIds, results) {
104
+ return transformDocumentResults(docIds, results);
105
+ }
106
+ function toKeyPhraseExtractionResult(docIds, results) {
107
+ return transformDocumentResults(docIds, results);
108
+ }
109
+ function toEntityRecognitionResult(docIds, results) {
110
+ return transformDocumentResults(docIds, results);
111
+ }
112
+ /**
113
+ * @internal
114
+ */
115
+ export function transformActionResult(actionName, docIds, response) {
116
+ switch (response.kind) {
117
+ case "EntityLinkingResults": {
118
+ return toEntityLinkingResult(docIds, response.results);
119
+ }
120
+ case "EntityRecognitionResults": {
121
+ return toEntityRecognitionResult(docIds, response.results);
122
+ }
123
+ case "KeyPhraseExtractionResults": {
124
+ return toKeyPhraseExtractionResult(docIds, response.results);
125
+ }
126
+ case "PiiEntityRecognitionResults": {
127
+ return toPiiEntityRecognitionResult(docIds, response.results);
128
+ }
129
+ case "SentimentAnalysisResults": {
130
+ return toSentimentAnalysisResult(docIds, response.results);
131
+ }
132
+ case "LanguageDetectionResults": {
133
+ return toLanguageDetectionResult(docIds, 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
+ 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
+ export async function throwError(p) {
184
+ try {
185
+ return await p;
186
+ }
187
+ catch (e) {
188
+ throw transformError(e);
189
+ }
190
+ }
191
+ function toHealthcareResult(docIds, results) {
192
+ function makeHealthcareEntity(entity) {
193
+ const { dataSources } = entity, rest = __rest(entity, ["dataSources"]);
194
+ return Object.assign({ dataSources: dataSources !== null && dataSources !== void 0 ? dataSources : [] }, rest);
195
+ }
196
+ function makeHealthcareRelation(entities) {
197
+ return ({ entities: generatedEntities, relationType, confidenceScore, }) => ({
198
+ relationType: relationType,
199
+ confidenceScore,
200
+ roles: generatedEntities.map((role) => ({
201
+ entity: entities[parseHealthcareEntityIndex(role.ref)],
202
+ name: role.role,
203
+ })),
204
+ });
205
+ }
206
+ return transformDocumentResults(docIds, results, {
207
+ processSuccess: (_a) => {
208
+ var { entities, relations } = _a, rest = __rest(_a, ["entities", "relations"]);
209
+ const newEntities = entities.map(makeHealthcareEntity);
210
+ return Object.assign({ entities: newEntities, entityRelations: relations.map(makeHealthcareRelation(newEntities)) }, rest);
211
+ },
212
+ });
213
+ }
214
+ /**
215
+ * @internal
216
+ */
217
+ export function transformAnalyzeBatchResults(docIds, response = [], errors = []) {
218
+ const errorMap = toIndexErrorMap(errors);
219
+ return response.map((actionData, idx) => {
220
+ const { lastUpdateDateTime: completedOn, actionName, kind: resultKind } = actionData;
221
+ const error = errorMap.get(idx);
222
+ switch (resultKind) {
223
+ case "SentimentAnalysisLROResults": {
224
+ const kind = "SentimentAnalysis";
225
+ if (actionData.status === "failed") {
226
+ return returnErrorTask(kind, error, completedOn);
227
+ }
228
+ const { results } = actionData;
229
+ const { modelVersion, statistics } = results;
230
+ return Object.assign(Object.assign(Object.assign({ kind, results: toSentimentAnalysisResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
231
+ }
232
+ case "EntityRecognitionLROResults": {
233
+ const kind = "EntityRecognition";
234
+ if (actionData.status === "failed") {
235
+ return returnErrorTask(kind, error, completedOn);
236
+ }
237
+ const { results } = actionData;
238
+ const { modelVersion, statistics } = results;
239
+ return Object.assign(Object.assign(Object.assign({ kind: "EntityRecognition", results: toEntityRecognitionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
240
+ }
241
+ case "PiiEntityRecognitionLROResults": {
242
+ const kind = "PiiEntityRecognition";
243
+ if (actionData.status === "failed") {
244
+ return returnErrorTask(kind, error, completedOn);
245
+ }
246
+ const { results } = actionData;
247
+ const { modelVersion, statistics } = results;
248
+ return Object.assign(Object.assign(Object.assign({ kind, results: toPiiEntityRecognitionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
249
+ }
250
+ case "KeyPhraseExtractionLROResults": {
251
+ const kind = "KeyPhraseExtraction";
252
+ if (actionData.status === "failed") {
253
+ return returnErrorTask(kind, error, completedOn);
254
+ }
255
+ const { results } = actionData;
256
+ const { modelVersion, statistics } = results;
257
+ return Object.assign(Object.assign(Object.assign({ kind, results: toKeyPhraseExtractionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
258
+ }
259
+ case "EntityLinkingLROResults": {
260
+ const kind = "EntityLinking";
261
+ if (actionData.status === "failed") {
262
+ return returnErrorTask(kind, error, completedOn);
263
+ }
264
+ const { results } = actionData;
265
+ const { modelVersion, statistics } = results;
266
+ return Object.assign(Object.assign(Object.assign({ kind, results: toEntityLinkingResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
267
+ }
268
+ case "HealthcareLROResults": {
269
+ const kind = "Healthcare";
270
+ if (actionData.status === "failed") {
271
+ return returnErrorTask(kind, error, completedOn);
272
+ }
273
+ const { results } = actionData;
274
+ const { modelVersion, statistics } = results;
275
+ return Object.assign(Object.assign(Object.assign({ kind, results: toHealthcareResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
276
+ }
277
+ case "CustomEntityRecognitionLROResults": {
278
+ const kind = "CustomEntityRecognition";
279
+ if (actionData.status === "failed") {
280
+ return returnErrorCustomTask(kind, error, completedOn);
281
+ }
282
+ const { results } = actionData;
283
+ const { deploymentName, projectName, statistics } = results;
284
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
285
+ projectName });
286
+ }
287
+ case "CustomSingleLabelClassificationLROResults": {
288
+ const kind = "CustomSingleLabelClassification";
289
+ if (actionData.status === "failed") {
290
+ return returnErrorCustomTask(kind, error, completedOn);
291
+ }
292
+ const { results } = actionData;
293
+ const { deploymentName, projectName, statistics } = results;
294
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
295
+ projectName });
296
+ }
297
+ case "CustomMultiLabelClassificationLROResults": {
298
+ const kind = "CustomMultiLabelClassification";
299
+ if (actionData.status === "failed") {
300
+ return returnErrorCustomTask(kind, error, completedOn);
301
+ }
302
+ const { results } = actionData;
303
+ const { deploymentName, projectName, statistics } = results;
304
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
305
+ projectName });
306
+ }
307
+ case "ExtractiveSummarizationLROResults": {
308
+ const kind = "ExtractiveSummarization";
309
+ if (actionData.status === "failed") {
310
+ return returnErrorTask(kind, error, completedOn);
311
+ }
312
+ const { results } = actionData;
313
+ const { modelVersion, statistics } = results;
314
+ return Object.assign(Object.assign(Object.assign({ kind: "ExtractiveSummarization", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
315
+ }
316
+ case "AbstractiveSummarizationLROResults": {
317
+ const kind = "AbstractiveSummarization";
318
+ if (actionData.status === "failed") {
319
+ return returnErrorTask(kind, error, completedOn);
320
+ }
321
+ const { results } = actionData;
322
+ const { modelVersion, statistics } = results;
323
+ return Object.assign(Object.assign(Object.assign({ kind: "AbstractiveSummarization", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
324
+ }
325
+ default: {
326
+ throw new Error(`Unsupported results kind: ${resultKind}`);
327
+ }
328
+ }
329
+ });
330
+ }
331
+ /**
332
+ * @internal
333
+ * Transform a list of error into index and error Map
334
+ */
335
+ function toIndexErrorMap(errors) {
336
+ const errorMap = new Map();
337
+ for (const error of errors) {
338
+ const position = extractErrorPointerIndex(error);
339
+ const { target } = error, errorWithoutTarget = __rest(error, ["target"]);
340
+ errorMap.set(position, toTextAnalysisError(errorWithoutTarget));
341
+ }
342
+ return errorMap;
343
+ }
344
+ /**
345
+ * Return the error for non-custom task
346
+ *
347
+ * @param kind - non custom task kind
348
+ * @param error - error returned from the service
349
+ * @param failedOn - the LastUpdateDateTime from the service
350
+ * @returns - AnalyzeBatchResult with error
351
+ */
352
+ function returnErrorTask(kind, error, failedOn) {
353
+ if (!error) {
354
+ throw new Error("Unexpected response from service - no errors for missing action results.");
355
+ }
356
+ return {
357
+ kind,
358
+ modelVersion: "",
359
+ failedOn,
360
+ error,
361
+ };
362
+ }
363
+ /**
364
+ * Return the error for non-custom task
365
+ *
366
+ * @param kind - non custom task kind
367
+ * @param error - error returned from the service
368
+ * @param failedOn - the LastUpdateDateTime from the service
369
+ * @returns AnalyzeBatchResult for custom task with error
370
+ */
371
+ function returnErrorCustomTask(kind, error, failedOn) {
372
+ if (!error) {
373
+ throw new Error("Unexpected response from service - no errors for missing action results.");
374
+ }
375
+ return {
376
+ kind,
377
+ projectName: "",
378
+ deploymentName: "",
379
+ failedOn,
380
+ error,
381
+ };
382
+ }
383
+ //# 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 type {\n AbstractiveSummarizationLROResult,\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 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 HealthcareLROResult,\n HealthcareRelation,\n HealthcareRelationEntity,\n InnerErrorModel,\n KeyPhraseExtractionLROResult,\n KeyPhraseTaskResult,\n KnownAnalyzeTextLROResultsKind,\n LanguageDetectionTaskResult,\n PiiEntityRecognitionLROResult,\n PiiTaskResult,\n SentenceTarget,\n SentimentLROResult,\n SentimentTaskResult,\n TargetRelation,\n CustomEntitiesResultDocumentsItem,\n CustomLabelClassificationResultDocumentsItem,\n HealthcareEntitiesDocumentResult,\n} from \"./generated/index.js\";\nimport type {\n AnalyzeActionName,\n AnalyzeBatchActionName,\n AnalyzeBatchResult,\n AnalyzeResult,\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.js\";\nimport type { AssessmentIndex } from \"./util.js\";\nimport {\n extractErrorPointerIndex,\n parseAssessmentIndex,\n parseHealthcareEntityIndex,\n sortResponseIdObjects,\n} from \"./util.js\";\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 ids - the array of input document IDs.\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 ids: string[],\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(ids, unsortedResults);\n}\n\nfunction toLanguageDetectionResult(\n docIds: string[],\n results: GeneratedLanguageDetectionResult,\n): LanguageDetectionResult[] {\n return transformDocumentResults(docIds, results, {\n processSuccess: ({ detectedLanguage, ...rest }) => ({\n primaryLanguage: detectedLanguage,\n ...rest,\n }),\n });\n}\n\nfunction toPiiEntityRecognitionResult(\n docIds: string[],\n results: GeneratedPiiEntityRecognitionResult,\n): PiiEntityRecognitionResult[] {\n return transformDocumentResults(docIds, results);\n}\n\nfunction toSentimentAnalysisResult(\n docIds: string[],\n results: GeneratedSentimentAnalysisResult,\n): SentimentAnalysisResult[] {\n return transformDocumentResults(docIds, 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 docIds: string[],\n results: GeneratedEntityLinkingResult,\n): EntityLinkingResult[] {\n return transformDocumentResults(docIds, results);\n}\n\nfunction toKeyPhraseExtractionResult(\n docIds: string[],\n results: GeneratedKeyPhraseExtractionResult,\n): KeyPhraseExtractionResult[] {\n return transformDocumentResults(docIds, results);\n}\n\nfunction toEntityRecognitionResult(\n docIds: string[],\n results: GeneratedEntityRecognitionResult,\n): EntityRecognitionResult[] {\n return transformDocumentResults(docIds, results);\n}\n\n/**\n * @internal\n */\nexport function transformActionResult<ActionName extends AnalyzeActionName>(\n actionName: ActionName,\n docIds: string[],\n response: AnalyzeResponse,\n): AnalyzeResult<AnalyzeActionName> {\n switch (response.kind) {\n case \"EntityLinkingResults\": {\n return toEntityLinkingResult(docIds, (response as EntityLinkingTaskResult).results);\n }\n case \"EntityRecognitionResults\": {\n return toEntityRecognitionResult(docIds, (response as EntitiesTaskResult).results);\n }\n case \"KeyPhraseExtractionResults\": {\n return toKeyPhraseExtractionResult(docIds, (response as KeyPhraseTaskResult).results);\n }\n case \"PiiEntityRecognitionResults\": {\n return toPiiEntityRecognitionResult(docIds, (response as PiiTaskResult).results);\n }\n case \"SentimentAnalysisResults\": {\n return toSentimentAnalysisResult(docIds, (response as SentimentTaskResult).results);\n }\n case \"LanguageDetectionResults\": {\n return toLanguageDetectionResult(docIds, (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 */\nfunction 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\nexport async function throwError<T>(p: Promise<T>): Promise<T> {\n try {\n return await p;\n } catch (e: unknown) {\n throw transformError(e);\n }\n}\n\nfunction toHealthcareResult(\n docIds: string[],\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 ({\n entities: generatedEntities,\n relationType,\n confidenceScore,\n }: HealthcareRelation): HealthcareEntityRelation => ({\n relationType: relationType,\n confidenceScore,\n roles: generatedEntities.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 docIds,\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\n/**\n * @internal\n */\nexport function transformAnalyzeBatchResults(\n docIds: string[],\n response: AnalyzeTextLROResultUnion[] = [],\n errors: ErrorModel[] = [],\n): AnalyzeBatchResult[] {\n const errorMap = toIndexErrorMap(errors);\n return response.map((actionData, idx): AnalyzeBatchResult => {\n const { lastUpdateDateTime: completedOn, actionName, kind: resultKind } = actionData;\n const error = errorMap.get(idx);\n switch (resultKind as KnownAnalyzeTextLROResultsKind) {\n case \"SentimentAnalysisLROResults\": {\n const kind = \"SentimentAnalysis\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as SentimentLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind,\n results: toSentimentAnalysisResult(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"EntityRecognitionLROResults\": {\n const kind = \"EntityRecognition\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as EntityRecognitionLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"EntityRecognition\",\n results: toEntityRecognitionResult(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"PiiEntityRecognitionLROResults\": {\n const kind = \"PiiEntityRecognition\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as PiiEntityRecognitionLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind,\n results: toPiiEntityRecognitionResult(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"KeyPhraseExtractionLROResults\": {\n const kind = \"KeyPhraseExtraction\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as KeyPhraseExtractionLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind,\n results: toKeyPhraseExtractionResult(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"EntityLinkingLROResults\": {\n const kind = \"EntityLinking\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as EntityLinkingLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind,\n results: toEntityLinkingResult(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"HealthcareLROResults\": {\n const kind = \"Healthcare\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as HealthcareLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind,\n results: toHealthcareResult(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"CustomEntityRecognitionLROResults\": {\n const kind = \"CustomEntityRecognition\";\n if (actionData.status === \"failed\") {\n return returnErrorCustomTask(kind, error, completedOn);\n }\n const { results } = actionData as CustomEntityRecognitionLROResult;\n const { deploymentName, projectName, statistics } = results;\n return {\n kind,\n results: transformDocumentResults<CustomEntitiesResultDocumentsItem>(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n deploymentName,\n projectName,\n };\n }\n case \"CustomSingleLabelClassificationLROResults\": {\n const kind = \"CustomSingleLabelClassification\";\n if (actionData.status === \"failed\") {\n return returnErrorCustomTask(kind, error, completedOn);\n }\n const { results } = actionData as CustomSingleLabelClassificationLROResult;\n const { deploymentName, projectName, statistics } = results;\n return {\n kind,\n results: transformDocumentResults<CustomLabelClassificationResultDocumentsItem>(\n docIds,\n results,\n ),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n deploymentName,\n projectName,\n };\n }\n case \"CustomMultiLabelClassificationLROResults\": {\n const kind = \"CustomMultiLabelClassification\";\n if (actionData.status === \"failed\") {\n return returnErrorCustomTask(kind, error, completedOn);\n }\n const { results } = actionData as CustomMultiLabelClassificationLROResult;\n const { deploymentName, projectName, statistics } = results;\n return {\n kind,\n results: transformDocumentResults<CustomLabelClassificationResultDocumentsItem>(\n docIds,\n results,\n ),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n deploymentName,\n projectName,\n };\n }\n case \"ExtractiveSummarizationLROResults\": {\n const kind = \"ExtractiveSummarization\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as ExtractiveSummarizationLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"ExtractiveSummarization\",\n results: transformDocumentResults(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n case \"AbstractiveSummarizationLROResults\": {\n const kind = \"AbstractiveSummarization\";\n if (actionData.status === \"failed\") {\n return returnErrorTask(kind, error, completedOn);\n }\n const { results } = actionData as AbstractiveSummarizationLROResult;\n const { modelVersion, statistics } = results;\n return {\n kind: \"AbstractiveSummarization\",\n results: transformDocumentResults(docIds, results),\n completedOn,\n ...(actionName ? { actionName } : {}),\n ...(statistics ? { statistics } : {}),\n modelVersion,\n };\n }\n default: {\n throw new Error(`Unsupported results kind: ${resultKind}`);\n }\n }\n });\n}\n/**\n * @internal\n * Transform a list of error into index and error Map\n */\nfunction toIndexErrorMap(errors: ErrorModel[]): Map<number, TextAnalysisError> {\n const errorMap = new Map<number, TextAnalysisError>();\n for (const error of errors) {\n const position = extractErrorPointerIndex(error);\n const { target, ...errorWithoutTarget } = error;\n errorMap.set(position, toTextAnalysisError(errorWithoutTarget));\n }\n return errorMap;\n}\n\n/**\n * Return the error for non-custom task\n *\n * @param kind - non custom task kind\n * @param error - error returned from the service\n * @param failedOn - the LastUpdateDateTime from the service\n * @returns - AnalyzeBatchResult with error\n */\nfunction returnErrorTask(\n kind: AnalyzeBatchActionName,\n error: TextAnalysisError | undefined,\n failedOn: Date,\n): AnalyzeBatchResult {\n if (!error) {\n throw new Error(\"Unexpected response from service - no errors for missing action results.\");\n }\n return {\n kind,\n modelVersion: \"\",\n failedOn,\n error,\n } as AnalyzeBatchResult;\n}\n/**\n * Return the error for non-custom task\n *\n * @param kind - non custom task kind\n * @param error - error returned from the service\n * @param failedOn - the LastUpdateDateTime from the service\n * @returns AnalyzeBatchResult for custom task with error\n */\nfunction returnErrorCustomTask(\n kind: AnalyzeBatchActionName,\n error: TextAnalysisError | undefined,\n failedOn: Date,\n): AnalyzeBatchResult {\n if (!error) {\n throw new Error(\"Unexpected response from service - no errors for missing action results.\");\n }\n return {\n kind,\n projectName: \"\",\n deploymentName: \"\",\n failedOn,\n error,\n } as AnalyzeBatchResult;\n}\n"]}
@@ -0,0 +1,57 @@
1
+ import type { ErrorModel, LanguageDetectionInput, TextDocumentInput } from "./generated/index.js";
2
+ import type { TextAnalysisOperationOptions } from "./models.js";
3
+ /**
4
+ * Given a sorted array of input objects (with a unique ID) and an unsorted array of results,
5
+ * return a sorted array of results.
6
+ *
7
+ * @internal
8
+ * @param sortedIds - An array of sorted IDs
9
+ * @param unsortedArray - An array of entries that contain `id` but are not sorted
10
+ */
11
+ export declare function sortResponseIdObjects<U extends {
12
+ id: string;
13
+ }>(sortedIds: string[], unsortedArray: U[]): U[];
14
+ /**
15
+ * @internal
16
+ */
17
+ export interface AssessmentIndex {
18
+ document: number;
19
+ sentence: number;
20
+ assessment: number;
21
+ }
22
+ /**
23
+ * @internal
24
+ */
25
+ export declare function parseAssessmentIndex(pointer: string): AssessmentIndex;
26
+ /**
27
+ * Parses the index of the healthcare entity from a JSON pointer.
28
+ * @param pointer - a JSON pointer representing an entity
29
+ * @internal
30
+ */
31
+ export declare function parseHealthcareEntityIndex(pointer: string): number;
32
+ /**
33
+ * @internal
34
+ */
35
+ export declare function isStringArray(documents: unknown[]): documents is string[];
36
+ /**
37
+ * @internal
38
+ */
39
+ export declare function convertToTextDocumentInput(inputs: string[], language?: string): TextDocumentInput[];
40
+ /**
41
+ * @internal
42
+ */
43
+ export declare function convertToLanguageDetectionInput(inputs: string[], countryHint?: string): LanguageDetectionInput[];
44
+ /**
45
+ * @internal
46
+ */
47
+ export declare function getOperationOptions<OptionsT extends TextAnalysisOperationOptions>(options: OptionsT): {
48
+ options: TextAnalysisOperationOptions;
49
+ rest: Omit<OptionsT, "onResponse" | "abortSignal" | "includeStatistics" | "requestOptions" | "serializerOptions" | "tracingOptions">;
50
+ };
51
+ /**
52
+ *
53
+ * @param error - error with the target in the JSON error pointer format "#/items/0
54
+ * @returns number: the position of the task with error
55
+ */
56
+ export declare function extractErrorPointerIndex(error: ErrorModel): number;
57
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAGhE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC5D,SAAS,EAAE,MAAM,EAAE,EACnB,aAAa,EAAE,CAAC,EAAE,GACjB,CAAC,EAAE,CA0BL;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAarE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS,IAAI,MAAM,EAAE,CAEzE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,EAAE,CAQrB;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,sBAAsB,EAAE,CAQ1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,4BAA4B,EAC/E,OAAO,EAAE,QAAQ,GAChB;IACD,OAAO,EAAE,4BAA4B,CAAC;IACtC,IAAI,EAAE,IAAI,CACR,QAAQ,EACN,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,CACnB,CAAC;CACH,CAqBA;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAalE"}
@@ -0,0 +1,131 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { __rest } from "tslib";
4
+ import { logger } from "./logger.js";
5
+ /**
6
+ * Given a sorted array of input objects (with a unique ID) and an unsorted array of results,
7
+ * return a sorted array of results.
8
+ *
9
+ * @internal
10
+ * @param sortedIds - An array of sorted IDs
11
+ * @param unsortedArray - An array of entries that contain `id` but are not sorted
12
+ */
13
+ export function sortResponseIdObjects(sortedIds, unsortedArray) {
14
+ const unsortedMap = new Map();
15
+ for (const item of unsortedArray) {
16
+ unsortedMap.set(item.id, item);
17
+ }
18
+ if (unsortedArray.length !== sortedIds.length) {
19
+ const ordinal = unsortedArray.length > sortedIds.length ? "more" : "fewer";
20
+ logger.warning(`The service returned ${ordinal} responses than inputs. Some errors may be treated as fatal.`);
21
+ }
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
+ */
28
+ for (const id of sortedIds) {
29
+ const item = unsortedMap.get(id);
30
+ if (item) {
31
+ result.push(item);
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ /**
37
+ * @internal
38
+ */
39
+ export function parseAssessmentIndex(pointer) {
40
+ const regex = new RegExp(/#\/documents\/(\d+)\/sentences\/(\d+)\/assessments\/(\d+)/);
41
+ const res = regex.exec(pointer);
42
+ if (res !== null) {
43
+ const assessmentIndex = {
44
+ document: parseInt(res[1]),
45
+ sentence: parseInt(res[2]),
46
+ assessment: parseInt(res[3]),
47
+ };
48
+ return assessmentIndex;
49
+ }
50
+ else {
51
+ throw new Error(`Pointer "${pointer}" is not a valid Assessment pointer`);
52
+ }
53
+ }
54
+ /**
55
+ * Parses the index of the healthcare entity from a JSON pointer.
56
+ * @param pointer - a JSON pointer representing an entity
57
+ * @internal
58
+ */
59
+ export function parseHealthcareEntityIndex(pointer) {
60
+ const regex = new RegExp(/#\/results\/documents\/(\d+)\/entities\/(\d+)/);
61
+ const res = regex.exec(pointer);
62
+ if (res !== null) {
63
+ return parseInt(res[2]);
64
+ }
65
+ else {
66
+ throw new Error(`Pointer "${pointer}" is not a valid healthcare entity pointer`);
67
+ }
68
+ }
69
+ /**
70
+ * @internal
71
+ */
72
+ export function isStringArray(documents) {
73
+ return typeof documents[0] === "string";
74
+ }
75
+ /**
76
+ * @internal
77
+ */
78
+ export function convertToTextDocumentInput(inputs, language) {
79
+ return inputs.map((text, index) => {
80
+ return {
81
+ id: String(index),
82
+ language,
83
+ text,
84
+ };
85
+ });
86
+ }
87
+ /**
88
+ * @internal
89
+ */
90
+ export function convertToLanguageDetectionInput(inputs, countryHint) {
91
+ return inputs.map((text, index) => {
92
+ return {
93
+ id: String(index),
94
+ countryHint,
95
+ text,
96
+ };
97
+ });
98
+ }
99
+ /**
100
+ * @internal
101
+ */
102
+ export function getOperationOptions(options) {
103
+ const { abortSignal, includeStatistics, onResponse, requestOptions, serializerOptions, tracingOptions } = options, rest = __rest(options, ["abortSignal", "includeStatistics", "onResponse", "requestOptions", "serializerOptions", "tracingOptions"]);
104
+ return {
105
+ options: {
106
+ abortSignal,
107
+ includeStatistics,
108
+ onResponse,
109
+ requestOptions,
110
+ serializerOptions,
111
+ tracingOptions,
112
+ },
113
+ rest,
114
+ };
115
+ }
116
+ /**
117
+ *
118
+ * @param error - error with the target in the JSON error pointer format "#/items/0
119
+ * @returns number: the position of the task with error
120
+ */
121
+ export function extractErrorPointerIndex(error) {
122
+ if (!error.target) {
123
+ throw new Error("Unexpected response from service - no target present");
124
+ }
125
+ const position = parseInt(error.target.split("/").pop());
126
+ if (isNaN(position)) {
127
+ throw new Error(`Unexpected response from service - action pointer "${error.target}" is not a valid action pointer.`);
128
+ }
129
+ return position;
130
+ }
131
+ //# sourceMappingURL=util.js.map