@azure/ai-content-understanding 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +591 -0
  3. package/dist/browser/api/contentUnderstandingContext.d.ts +15 -0
  4. package/dist/browser/api/contentUnderstandingContext.js +27 -0
  5. package/dist/browser/api/contentUnderstandingContext.js.map +1 -0
  6. package/dist/browser/api/index.d.ts +4 -0
  7. package/dist/browser/api/index.js +5 -0
  8. package/dist/browser/api/index.js.map +1 -0
  9. package/dist/browser/api/operations.d.ts +67 -0
  10. package/dist/browser/api/operations.js +488 -0
  11. package/dist/browser/api/operations.js.map +1 -0
  12. package/dist/browser/api/options.d.ts +94 -0
  13. package/dist/browser/api/options.js +4 -0
  14. package/dist/browser/api/options.js.map +1 -0
  15. package/dist/browser/contentUnderstandingClient.d.ts +65 -0
  16. package/dist/browser/contentUnderstandingClient.js +161 -0
  17. package/dist/browser/contentUnderstandingClient.js.map +1 -0
  18. package/dist/browser/index.d.ts +6 -0
  19. package/dist/browser/index.js +14 -0
  20. package/dist/browser/index.js.map +1 -0
  21. package/dist/browser/logger.d.ts +2 -0
  22. package/dist/browser/logger.js +5 -0
  23. package/dist/browser/logger.js.map +1 -0
  24. package/dist/browser/models/index.d.ts +2 -0
  25. package/dist/browser/models/index.js +4 -0
  26. package/dist/browser/models/index.js.map +1 -0
  27. package/dist/browser/models/models.d.ts +846 -0
  28. package/dist/browser/models/models.js +1005 -0
  29. package/dist/browser/models/models.js.map +1 -0
  30. package/dist/browser/package.json +3 -0
  31. package/dist/browser/static-helpers/pagingHelpers.d.ts +74 -0
  32. package/dist/browser/static-helpers/pagingHelpers.js +143 -0
  33. package/dist/browser/static-helpers/pagingHelpers.js.map +1 -0
  34. package/dist/browser/static-helpers/pollingHelpers.d.ts +34 -0
  35. package/dist/browser/static-helpers/pollingHelpers.js +95 -0
  36. package/dist/browser/static-helpers/pollingHelpers.js.map +1 -0
  37. package/dist/browser/static-helpers/serialization/get-binary-response-browser.mjs.map +1 -0
  38. package/dist/browser/static-helpers/serialization/get-binary-response.d.ts +10 -0
  39. package/dist/browser/static-helpers/serialization/get-binary-response.js +19 -0
  40. package/dist/browser/static-helpers/serialization/serialize-record.d.ts +2 -0
  41. package/dist/browser/static-helpers/serialization/serialize-record.js +22 -0
  42. package/dist/browser/static-helpers/serialization/serialize-record.js.map +1 -0
  43. package/dist/browser/static-helpers/urlTemplate.d.ts +5 -0
  44. package/dist/browser/static-helpers/urlTemplate.js +200 -0
  45. package/dist/browser/static-helpers/urlTemplate.js.map +1 -0
  46. package/dist/commonjs/api/contentUnderstandingContext.d.ts +15 -0
  47. package/dist/commonjs/api/contentUnderstandingContext.js +30 -0
  48. package/dist/commonjs/api/contentUnderstandingContext.js.map +1 -0
  49. package/dist/commonjs/api/index.d.ts +4 -0
  50. package/dist/commonjs/api/index.js +24 -0
  51. package/dist/commonjs/api/index.js.map +1 -0
  52. package/dist/commonjs/api/operations.d.ts +67 -0
  53. package/dist/commonjs/api/operations.js +535 -0
  54. package/dist/commonjs/api/operations.js.map +1 -0
  55. package/dist/commonjs/api/options.d.ts +94 -0
  56. package/dist/commonjs/api/options.js +5 -0
  57. package/dist/commonjs/api/options.js.map +1 -0
  58. package/dist/commonjs/contentUnderstandingClient.d.ts +65 -0
  59. package/dist/commonjs/contentUnderstandingClient.js +160 -0
  60. package/dist/commonjs/contentUnderstandingClient.js.map +1 -0
  61. package/dist/commonjs/index.d.ts +6 -0
  62. package/dist/commonjs/index.js +19 -0
  63. package/dist/commonjs/index.js.map +1 -0
  64. package/dist/commonjs/logger.d.ts +2 -0
  65. package/dist/commonjs/logger.js +8 -0
  66. package/dist/commonjs/logger.js.map +1 -0
  67. package/dist/commonjs/models/index.d.ts +2 -0
  68. package/dist/commonjs/models/index.js +8 -0
  69. package/dist/commonjs/models/index.js.map +1 -0
  70. package/dist/commonjs/models/models.d.ts +846 -0
  71. package/dist/commonjs/models/models.js +1103 -0
  72. package/dist/commonjs/models/models.js.map +1 -0
  73. package/dist/commonjs/package.json +3 -0
  74. package/dist/commonjs/static-helpers/pagingHelpers.d.ts +74 -0
  75. package/dist/commonjs/static-helpers/pagingHelpers.js +146 -0
  76. package/dist/commonjs/static-helpers/pagingHelpers.js.map +1 -0
  77. package/dist/commonjs/static-helpers/pollingHelpers.d.ts +34 -0
  78. package/dist/commonjs/static-helpers/pollingHelpers.js +98 -0
  79. package/dist/commonjs/static-helpers/pollingHelpers.js.map +1 -0
  80. package/dist/commonjs/static-helpers/serialization/get-binary-response.d.ts +10 -0
  81. package/dist/commonjs/static-helpers/serialization/get-binary-response.js +26 -0
  82. package/dist/commonjs/static-helpers/serialization/get-binary-response.js.map +1 -0
  83. package/dist/commonjs/static-helpers/serialization/serialize-record.d.ts +2 -0
  84. package/dist/commonjs/static-helpers/serialization/serialize-record.js +25 -0
  85. package/dist/commonjs/static-helpers/serialization/serialize-record.js.map +1 -0
  86. package/dist/commonjs/static-helpers/urlTemplate.d.ts +5 -0
  87. package/dist/commonjs/static-helpers/urlTemplate.js +203 -0
  88. package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -0
  89. package/dist/commonjs/tsdoc-metadata.json +11 -0
  90. package/dist/esm/api/contentUnderstandingContext.d.ts +15 -0
  91. package/dist/esm/api/contentUnderstandingContext.js +27 -0
  92. package/dist/esm/api/contentUnderstandingContext.js.map +1 -0
  93. package/dist/esm/api/index.d.ts +4 -0
  94. package/dist/esm/api/index.js +5 -0
  95. package/dist/esm/api/index.js.map +1 -0
  96. package/dist/esm/api/operations.d.ts +67 -0
  97. package/dist/esm/api/operations.js +488 -0
  98. package/dist/esm/api/operations.js.map +1 -0
  99. package/dist/esm/api/options.d.ts +94 -0
  100. package/dist/esm/api/options.js +4 -0
  101. package/dist/esm/api/options.js.map +1 -0
  102. package/dist/esm/contentUnderstandingClient.d.ts +65 -0
  103. package/dist/esm/contentUnderstandingClient.js +161 -0
  104. package/dist/esm/contentUnderstandingClient.js.map +1 -0
  105. package/dist/esm/index.d.ts +6 -0
  106. package/dist/esm/index.js +14 -0
  107. package/dist/esm/index.js.map +1 -0
  108. package/dist/esm/logger.d.ts +2 -0
  109. package/dist/esm/logger.js +5 -0
  110. package/dist/esm/logger.js.map +1 -0
  111. package/dist/esm/models/index.d.ts +2 -0
  112. package/dist/esm/models/index.js +4 -0
  113. package/dist/esm/models/index.js.map +1 -0
  114. package/dist/esm/models/models.d.ts +846 -0
  115. package/dist/esm/models/models.js +1005 -0
  116. package/dist/esm/models/models.js.map +1 -0
  117. package/dist/esm/package.json +3 -0
  118. package/dist/esm/static-helpers/pagingHelpers.d.ts +74 -0
  119. package/dist/esm/static-helpers/pagingHelpers.js +143 -0
  120. package/dist/esm/static-helpers/pagingHelpers.js.map +1 -0
  121. package/dist/esm/static-helpers/pollingHelpers.d.ts +34 -0
  122. package/dist/esm/static-helpers/pollingHelpers.js +95 -0
  123. package/dist/esm/static-helpers/pollingHelpers.js.map +1 -0
  124. package/dist/esm/static-helpers/serialization/get-binary-response.d.ts +10 -0
  125. package/dist/esm/static-helpers/serialization/get-binary-response.js +23 -0
  126. package/dist/esm/static-helpers/serialization/get-binary-response.js.map +1 -0
  127. package/dist/esm/static-helpers/serialization/serialize-record.d.ts +2 -0
  128. package/dist/esm/static-helpers/serialization/serialize-record.js +22 -0
  129. package/dist/esm/static-helpers/serialization/serialize-record.js.map +1 -0
  130. package/dist/esm/static-helpers/urlTemplate.d.ts +5 -0
  131. package/dist/esm/static-helpers/urlTemplate.js +200 -0
  132. package/dist/esm/static-helpers/urlTemplate.js.map +1 -0
  133. package/dist/react-native/api/contentUnderstandingContext.d.ts +15 -0
  134. package/dist/react-native/api/contentUnderstandingContext.js +27 -0
  135. package/dist/react-native/api/contentUnderstandingContext.js.map +1 -0
  136. package/dist/react-native/api/index.d.ts +4 -0
  137. package/dist/react-native/api/index.js +5 -0
  138. package/dist/react-native/api/index.js.map +1 -0
  139. package/dist/react-native/api/operations.d.ts +67 -0
  140. package/dist/react-native/api/operations.js +488 -0
  141. package/dist/react-native/api/operations.js.map +1 -0
  142. package/dist/react-native/api/options.d.ts +94 -0
  143. package/dist/react-native/api/options.js +4 -0
  144. package/dist/react-native/api/options.js.map +1 -0
  145. package/dist/react-native/contentUnderstandingClient.d.ts +65 -0
  146. package/dist/react-native/contentUnderstandingClient.js +161 -0
  147. package/dist/react-native/contentUnderstandingClient.js.map +1 -0
  148. package/dist/react-native/index.d.ts +6 -0
  149. package/dist/react-native/index.js +14 -0
  150. package/dist/react-native/index.js.map +1 -0
  151. package/dist/react-native/logger.d.ts +2 -0
  152. package/dist/react-native/logger.js +5 -0
  153. package/dist/react-native/logger.js.map +1 -0
  154. package/dist/react-native/models/index.d.ts +2 -0
  155. package/dist/react-native/models/index.js +4 -0
  156. package/dist/react-native/models/index.js.map +1 -0
  157. package/dist/react-native/models/models.d.ts +846 -0
  158. package/dist/react-native/models/models.js +1005 -0
  159. package/dist/react-native/models/models.js.map +1 -0
  160. package/dist/react-native/package.json +3 -0
  161. package/dist/react-native/static-helpers/pagingHelpers.d.ts +74 -0
  162. package/dist/react-native/static-helpers/pagingHelpers.js +143 -0
  163. package/dist/react-native/static-helpers/pagingHelpers.js.map +1 -0
  164. package/dist/react-native/static-helpers/pollingHelpers.d.ts +34 -0
  165. package/dist/react-native/static-helpers/pollingHelpers.js +95 -0
  166. package/dist/react-native/static-helpers/pollingHelpers.js.map +1 -0
  167. package/dist/react-native/static-helpers/serialization/get-binary-response.d.ts +10 -0
  168. package/dist/react-native/static-helpers/serialization/get-binary-response.js +23 -0
  169. package/dist/react-native/static-helpers/serialization/get-binary-response.js.map +1 -0
  170. package/dist/react-native/static-helpers/serialization/serialize-record.d.ts +2 -0
  171. package/dist/react-native/static-helpers/serialization/serialize-record.js +22 -0
  172. package/dist/react-native/static-helpers/serialization/serialize-record.js.map +1 -0
  173. package/dist/react-native/static-helpers/urlTemplate.d.ts +5 -0
  174. package/dist/react-native/static-helpers/urlTemplate.js +200 -0
  175. package/dist/react-native/static-helpers/urlTemplate.js.map +1 -0
  176. package/package.json +180 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { serializeRecord } from \"../static-helpers/serialization/serialize-record.js\";\nimport type { ErrorModel } from \"@azure-rest/core-client\";\nimport { uint8ArrayToString } from \"@azure/core-util\";\n\n/**\n * This file contains only generated model types and their (de)serializers.\n * Disable the following rules for internal models with '_' prefix and deserializers which require 'any' for raw JSON input.\n */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/** Additional input to analyze. */\nexport interface AnalysisInput {\n /** The URL of the input to analyze. Only one of url or data should be specified. */\n url?: string;\n /** Raw image bytes. Provide bytes-like object; do not base64-encode. Only one of url or data should be specified. */\n data?: Uint8Array;\n /** Name of the input. */\n name?: string;\n /** The MIME type of the input content. Ex. application/pdf, image/jpeg, etc. */\n mimeType?: string;\n /** Range of the input to analyze (ex. `1-3,5,9-`). Document content uses 1-based page numbers, while audio visual content uses integer milliseconds. */\n contentRange?: string;\n}\n\nexport function analysisInputSerializer(item: AnalysisInput): any {\n return {\n url: item[\"url\"],\n data: !item[\"data\"] ? item[\"data\"] : uint8ArrayToString(item[\"data\"], \"base64\"),\n name: item[\"name\"],\n mimeType: item[\"mimeType\"],\n range: item[\"contentRange\"],\n };\n}\n\nexport function analysisInputArraySerializer(result: Array<AnalysisInput>): any[] {\n return result.map((item) => {\n return analysisInputSerializer(item);\n });\n}\n\n/** Provides status details for analyze operations. */\nexport interface ContentAnalyzerAnalyzeOperationStatus {\n /** The unique ID of the operation. */\n id: string;\n /** The status of the operation */\n status: OperationState;\n /** Error object that describes the error when status is \"Failed\". */\n error?: ErrorModel;\n /** The result of the operation. */\n result?: AnalysisResult;\n /** Usage details of the analyze operation. */\n usage?: UsageDetails;\n}\n\nexport function contentAnalyzerAnalyzeOperationStatusDeserializer(\n item: any,\n): ContentAnalyzerAnalyzeOperationStatus {\n return {\n id: item[\"id\"],\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : item[\"error\"],\n result: !item[\"result\"] ? item[\"result\"] : analysisResultDeserializer(item[\"result\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : usageDetailsDeserializer(item[\"usage\"]),\n };\n}\n\n/** Enum describing allowed operation states. */\nexport type OperationState = \"NotStarted\" | \"Running\" | \"Succeeded\" | \"Failed\" | \"Canceled\";\n\n/** Analyze operation result. */\nexport interface AnalysisResult {\n /** The unique identifier of the analyzer. */\n analyzerId?: string;\n /** The version of the API used to analyze the document. */\n apiVersion?: string;\n /** The date and time when the result was created. */\n createdAt?: Date;\n /** Warnings encountered while analyzing the document. */\n warnings?: ErrorModel[];\n /**\n * The string encoding format for content spans in the response.\n * Possible values are 'codePoint', 'utf16', and `utf8`. Default is `codePoint`.\")\n */\n stringEncoding?: string;\n /** The extracted content. */\n contents: AnalysisContentUnion[];\n}\n\nexport function analysisResultDeserializer(item: any): AnalysisResult {\n return {\n analyzerId: item[\"analyzerId\"],\n apiVersion: item[\"apiVersion\"],\n createdAt: !item[\"createdAt\"] ? item[\"createdAt\"] : new Date(item[\"createdAt\"]),\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : item[\"warnings\"].map((p: any) => {\n return p;\n }),\n stringEncoding: item[\"stringEncoding\"],\n contents: analysisContentUnionArrayDeserializer(item[\"contents\"]),\n };\n}\n\nexport function analysisContentUnionArrayDeserializer(result: Array<AnalysisContentUnion>): any[] {\n return result.map((item) => {\n return analysisContentUnionDeserializer(item);\n });\n}\n\n/** Media content base class. */\nexport interface AnalysisContent {\n /** Content kind. */\n /** The discriminator possible values: document, audioVisual */\n kind: AnalysisContentKind;\n /** Detected MIME type of the content. Ex. application/pdf, image/jpeg, etc. */\n mimeType: string;\n /** The analyzer that generated this content. */\n analyzerId?: string;\n /** Classified content category. */\n category?: string;\n /** The path of the content in the input. */\n path?: string;\n /** Markdown representation of the content. */\n markdown?: string;\n /** Extracted fields from the content. */\n fields?: Record<string, ContentFieldUnion>;\n}\n\nexport function analysisContentDeserializer(item: any): AnalysisContent {\n return {\n kind: item[\"kind\"],\n mimeType: item[\"mimeType\"],\n analyzerId: item[\"analyzerId\"],\n category: item[\"category\"],\n path: item[\"path\"],\n markdown: item[\"markdown\"],\n fields: !item[\"fields\"] ? item[\"fields\"] : contentFieldUnionRecordDeserializer(item[\"fields\"]),\n };\n}\n\n/** Alias for AnalysisContentUnion */\nexport type AnalysisContentUnion = DocumentContent | AudioVisualContent | AnalysisContent;\n\nexport function analysisContentUnionDeserializer(item: any): AnalysisContentUnion {\n switch (item[\"kind\"]) {\n case \"document\":\n return documentContentDeserializer(item as DocumentContent);\n\n case \"audioVisual\":\n return audioVisualContentDeserializer(item as AudioVisualContent);\n\n default:\n return analysisContentDeserializer(item);\n }\n}\n\n/** Kind of media content. */\nexport type AnalysisContentKind = \"document\" | \"audioVisual\";\n\nexport function contentFieldUnionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ContentField> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : contentFieldUnionDeserializer(item[key]);\n });\n return result;\n}\n\n/** Field extracted from the content. */\nexport interface ContentField {\n /** Semantic data type of the field value. */\n /** The discriminator possible values: string, date, time, number, integer, boolean, array, object, json */\n type: ContentFieldType;\n /** Span(s) associated with the field value in the markdown content. */\n spans?: ContentSpan[];\n /** Confidence of predicting the field value. */\n confidence?: number;\n /** Encoded source that identifies the position of the field value in the content. */\n source?: string;\n // CUSTOMIZATION: SDK-IMPROVEMENT: Added `value` property to provide a convenient way to access field values,\n // aligning with .NET SDK design for cross-language consistency.\n // CUSTOMIZATION: SDK-IMPROVEMENT: Use `unknown` instead of `any` for type safety.\n /** The value of the field. */\n value?: unknown;\n}\n\nexport function contentFieldDeserializer(item: any): ContentField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n value: undefined,\n };\n}\n\n/** Alias for ContentFieldUnion */\nexport type ContentFieldUnion =\n | StringField\n | DateField\n | TimeField\n | NumberField\n | IntegerField\n | BooleanField\n | ArrayField\n | ObjectField\n | JsonField\n | ContentField;\n\nexport function contentFieldUnionDeserializer(item: any): ContentFieldUnion {\n switch (item[\"type\"]) {\n case \"string\":\n return stringFieldDeserializer(item as StringField);\n\n case \"date\":\n return dateFieldDeserializer(item as DateField);\n\n case \"time\":\n return timeFieldDeserializer(item as TimeField);\n\n case \"number\":\n return numberFieldDeserializer(item as NumberField);\n\n case \"integer\":\n return integerFieldDeserializer(item as IntegerField);\n\n case \"boolean\":\n return booleanFieldDeserializer(item as BooleanField);\n\n case \"array\":\n return arrayFieldDeserializer(item as ArrayField);\n\n case \"object\":\n return objectFieldDeserializer(item as ObjectField);\n\n case \"json\":\n return jsonFieldDeserializer(item as JsonField);\n\n default:\n return contentFieldDeserializer(item);\n }\n}\n\n/** Semantic data type of the field value. */\nexport type ContentFieldType =\n | \"string\"\n | \"date\"\n | \"time\"\n | \"number\"\n | \"integer\"\n | \"boolean\"\n | \"array\"\n | \"object\"\n | \"json\";\n\nexport function contentSpanArrayDeserializer(result: Array<ContentSpan>): any[] {\n return result.map((item) => {\n return contentSpanDeserializer(item);\n });\n}\n\n/** Position of the element in markdown, specified as a character offset and length. */\nexport interface ContentSpan {\n /** Starting position (0-indexed) of the element in markdown, specified in characters. */\n offset: number;\n /** Length of the element in markdown, specified in characters. */\n length: number;\n}\n\nexport function contentSpanDeserializer(item: any): ContentSpan {\n return {\n offset: item[\"offset\"],\n length: item[\"length\"],\n };\n}\n\n/** String field extracted from the content. */\nexport interface StringField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"string\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueString` with `value` for a simpler, consistent API.\n // /** String field value. */\n // valueString?: string;\n /** The value of the field. */\n value?: string;\n}\n\nexport function stringFieldDeserializer(item: any): StringField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueString`\n value: item[\"valueString\"],\n };\n}\n\n/** Date field extracted from the content. */\nexport interface DateField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"date\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueDate` with `value` for a simpler, consistent API.\n // /** Date field value, in ISO 8601 (YYYY-MM-DD) format. */\n // valueDate?: Date;\n /** The value of the field. */\n value?: Date;\n}\n\nexport function dateFieldDeserializer(item: any): DateField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueDate`\n value: !item[\"valueDate\"] ? item[\"valueDate\"] : new Date(item[\"valueDate\"]),\n };\n}\n\n/** Time field extracted from the content. */\nexport interface TimeField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"time\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueTime` with `value` for a simpler, consistent API.\n // /** Time field value, in ISO 8601 (hh:mm:ss) format. */\n // valueTime?: string;\n /** The value of the field. */\n value?: string;\n}\n\nexport function timeFieldDeserializer(item: any): TimeField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueTime`\n value: item[\"valueTime\"],\n };\n}\n\n/** Number field extracted from the content. */\nexport interface NumberField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"number\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueNumber` with `value` for a simpler, consistent API.\n // /** Number field value. */\n // valueNumber?: number;\n /** The value of the field. */\n value?: number;\n}\n\nexport function numberFieldDeserializer(item: any): NumberField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueNumber`\n value: item[\"valueNumber\"],\n };\n}\n\n/** Integer field extracted from the content. */\nexport interface IntegerField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"integer\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueInteger` with `value` for a simpler, consistent API.\n // /** Integer field value. */\n // valueInteger?: number;\n /** The value of the field. */\n value?: number;\n}\n\nexport function integerFieldDeserializer(item: any): IntegerField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueInteger`\n value: item[\"valueInteger\"],\n };\n}\n\n/** Boolean field extracted from the content. */\nexport interface BooleanField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"boolean\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueBoolean` with `value` for a simpler, consistent API.\n // /** Boolean field value. */\n // valueBoolean?: boolean;\n /** The value of the field. */\n value?: boolean;\n}\n\nexport function booleanFieldDeserializer(item: any): BooleanField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueBoolean`\n value: item[\"valueBoolean\"],\n };\n}\n\n/** Array field extracted from the content. */\nexport interface ArrayField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"array\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueArray` with `value` for a simpler, consistent API.\n // /** Array field value. */\n // valueArray?: ContentFieldUnion[];\n /** The value of the field. */\n value?: ContentFieldUnion[];\n}\n\nexport function arrayFieldDeserializer(item: any): ArrayField {\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueArray`\n const value = !item[\"valueArray\"]\n ? item[\"valueArray\"]\n : contentFieldUnionArrayDeserializer(item[\"valueArray\"]);\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n value: value,\n };\n}\n\nexport function contentFieldUnionArrayDeserializer(result: Array<ContentFieldUnion>): any[] {\n return result.map((item) => {\n return contentFieldUnionDeserializer(item);\n });\n}\n\n/** Object field extracted from the content. */\nexport interface ObjectField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"object\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueObject` with `value` for a simpler, consistent API.\n // /** Object field value. */\n // valueObject?: Record<string, ContentFieldUnion>;\n /** The value of the field. */\n value?: Record<string, ContentFieldUnion>;\n}\n\nexport function objectFieldDeserializer(item: any): ObjectField {\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueObject`\n const value = !item[\"valueObject\"]\n ? item[\"valueObject\"]\n : contentFieldUnionRecordDeserializer(item[\"valueObject\"]);\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n value: value,\n };\n}\n\n/** JSON field extracted from the content. */\nexport interface JsonField extends ContentField {\n /** Semantic data type of the field value. */\n fieldType: \"json\";\n // CUSTOMIZATION: SDK-IMPROVEMENT: Replaced `valueJson` with `value` for a simpler, consistent API.\n // /** JSON field value. */\n // valueJson?: any;\n /** The value of the field. */\n value?: unknown;\n}\n\nexport function jsonFieldDeserializer(item: any): JsonField {\n return {\n type: item[\"type\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n confidence: item[\"confidence\"],\n source: item[\"source\"],\n fieldType: item[\"type\"],\n // CUSTOMIZATION: SDK-IMPROVEMENT: Map `value` from wire-format `valueJson`\n value: item[\"valueJson\"],\n };\n}\n\n/** Document content. Ex. text/plain, application/pdf, image/jpeg. */\nexport interface DocumentContent extends AnalysisContent {\n /** Content kind. */\n kind: \"document\";\n /** Start page number (1-indexed) of the content. */\n startPageNumber: number;\n /** End page number (1-indexed) of the content. */\n endPageNumber: number;\n /**\n * Length unit used by the width, height, and source properties.\n * For images/tiff, the default unit is pixel. For PDF, the default unit is inch.\n */\n unit?: LengthUnit;\n /** List of pages in the document. */\n pages?: DocumentPage[];\n /** List of paragraphs in the document. Only if enableOcr and returnDetails are true. */\n paragraphs?: DocumentParagraph[];\n /** List of sections in the document. Only if enableLayout and returnDetails are true. */\n sections?: DocumentSection[];\n /** List of tables in the document. Only if enableLayout and returnDetails are true. */\n tables?: DocumentTable[];\n /** List of figures in the document. Only if enableLayout and returnDetails are true. */\n figures?: DocumentFigureUnion[];\n /** List of annotations in the document. Only if enableAnnotations and returnDetails are true. */\n annotations?: DocumentAnnotation[];\n /** List of hyperlinks in the document. Only if returnDetails are true. */\n hyperlinks?: DocumentHyperlink[];\n /** List of detected content segments. Only if enableSegment is true. */\n segments?: DocumentContentSegment[];\n}\n\nexport function documentContentDeserializer(item: any): DocumentContent {\n return {\n kind: item[\"kind\"],\n mimeType: item[\"mimeType\"],\n analyzerId: item[\"analyzerId\"],\n category: item[\"category\"],\n path: item[\"path\"],\n markdown: item[\"markdown\"],\n fields: !item[\"fields\"] ? item[\"fields\"] : contentFieldUnionRecordDeserializer(item[\"fields\"]),\n startPageNumber: item[\"startPageNumber\"],\n endPageNumber: item[\"endPageNumber\"],\n unit: item[\"unit\"],\n pages: !item[\"pages\"] ? item[\"pages\"] : documentPageArrayDeserializer(item[\"pages\"]),\n paragraphs: !item[\"paragraphs\"]\n ? item[\"paragraphs\"]\n : documentParagraphArrayDeserializer(item[\"paragraphs\"]),\n sections: !item[\"sections\"]\n ? item[\"sections\"]\n : documentSectionArrayDeserializer(item[\"sections\"]),\n tables: !item[\"tables\"] ? item[\"tables\"] : documentTableArrayDeserializer(item[\"tables\"]),\n figures: !item[\"figures\"]\n ? item[\"figures\"]\n : documentFigureUnionArrayDeserializer(item[\"figures\"]),\n annotations: !item[\"annotations\"]\n ? item[\"annotations\"]\n : documentAnnotationArrayDeserializer(item[\"annotations\"]),\n hyperlinks: !item[\"hyperlinks\"]\n ? item[\"hyperlinks\"]\n : documentHyperlinkArrayDeserializer(item[\"hyperlinks\"]),\n segments: !item[\"segments\"]\n ? item[\"segments\"]\n : documentContentSegmentArrayDeserializer(item[\"segments\"]),\n };\n}\n\n/** Length unit used by the width, height, and source properties. */\nexport type LengthUnit = \"pixel\" | \"inch\";\n\nexport function documentPageArrayDeserializer(result: Array<DocumentPage>): any[] {\n return result.map((item) => {\n return documentPageDeserializer(item);\n });\n}\n\n/** Content from a document page. */\nexport interface DocumentPage {\n /** Page number (1-based). */\n pageNumber: number;\n /** Width of the page. */\n width?: number;\n /** Height of the page. */\n height?: number;\n /** Span(s) associated with the page in the markdown content. */\n spans?: ContentSpan[];\n /**\n * The general orientation of the content in clockwise direction,\n * measured in degrees between (-180, 180].\n * Only if enableOcr is true.\n */\n angle?: number;\n /** List of words in the page. Only if enableOcr and returnDetails are true. */\n words?: DocumentWord[];\n /** List of lines in the page. Only if enableOcr and returnDetails are true. */\n lines?: DocumentLine[];\n /** List of barcodes in the page. Only if enableBarcode and returnDetails are true. */\n barcodes?: DocumentBarcode[];\n /** List of mathematical formulas in the page. Only if enableFormula and returnDetails are true. */\n formulas?: DocumentFormula[];\n}\n\nexport function documentPageDeserializer(item: any): DocumentPage {\n return {\n pageNumber: item[\"pageNumber\"],\n width: item[\"width\"],\n height: item[\"height\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n angle: item[\"angle\"],\n words: !item[\"words\"] ? item[\"words\"] : documentWordArrayDeserializer(item[\"words\"]),\n lines: !item[\"lines\"] ? item[\"lines\"] : documentLineArrayDeserializer(item[\"lines\"]),\n barcodes: !item[\"barcodes\"]\n ? item[\"barcodes\"]\n : documentBarcodeArrayDeserializer(item[\"barcodes\"]),\n formulas: !item[\"formulas\"]\n ? item[\"formulas\"]\n : documentFormulaArrayDeserializer(item[\"formulas\"]),\n };\n}\n\nexport function documentWordArrayDeserializer(result: Array<DocumentWord>): any[] {\n return result.map((item) => {\n return documentWordDeserializer(item);\n });\n}\n\n/**\n * Word in a document, consisting of a contiguous sequence of characters.\n * For non-space delimited languages, such as Chinese, Japanese, and Korean,\n * each character is represented as its own word.\n */\nexport interface DocumentWord {\n /** Word text. */\n content: string;\n /** Encoded source that identifies the position of the word in the content. */\n source?: string;\n /** Span of the word in the markdown content. */\n span?: ContentSpan;\n /** Confidence of predicting the word. */\n confidence?: number;\n}\n\nexport function documentWordDeserializer(item: any): DocumentWord {\n return {\n content: item[\"content\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n confidence: item[\"confidence\"],\n };\n}\n\nexport function documentLineArrayDeserializer(result: Array<DocumentLine>): any[] {\n return result.map((item) => {\n return documentLineDeserializer(item);\n });\n}\n\n/** Line in a document, consisting of an contiguous sequence of words. */\nexport interface DocumentLine {\n /** Line text. */\n content: string;\n /** Encoded source that identifies the position of the line in the content. */\n source?: string;\n /** Span of the line in the markdown content. */\n span?: ContentSpan;\n}\n\nexport function documentLineDeserializer(item: any): DocumentLine {\n return {\n content: item[\"content\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n };\n}\n\nexport function documentBarcodeArrayDeserializer(result: Array<DocumentBarcode>): any[] {\n return result.map((item) => {\n return documentBarcodeDeserializer(item);\n });\n}\n\n/** Barcode in a document. */\nexport interface DocumentBarcode {\n /** Barcode kind. */\n kind: DocumentBarcodeKind;\n /** Barcode value. */\n value: string;\n /** Encoded source that identifies the position of the barcode in the content. */\n source?: string;\n /** Span of the barcode in the markdown content. */\n span?: ContentSpan;\n /** Confidence of predicting the barcode. */\n confidence?: number;\n}\n\nexport function documentBarcodeDeserializer(item: any): DocumentBarcode {\n return {\n kind: item[\"kind\"],\n value: item[\"value\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n confidence: item[\"confidence\"],\n };\n}\n\n/** Barcode kind. */\nexport type DocumentBarcodeKind =\n | \"QRCode\"\n | \"PDF417\"\n | \"UPCA\"\n | \"UPCE\"\n | \"Code39\"\n | \"Code128\"\n | \"EAN8\"\n | \"EAN13\"\n | \"DataBar\"\n | \"Code93\"\n | \"Codabar\"\n | \"DataBarExpanded\"\n | \"ITF\"\n | \"MicroQRCode\"\n | \"Aztec\"\n | \"DataMatrix\"\n | \"MaxiCode\";\n\nexport function documentFormulaArrayDeserializer(result: Array<DocumentFormula>): any[] {\n return result.map((item) => {\n return documentFormulaDeserializer(item);\n });\n}\n\n/** Mathematical formula in a document. */\nexport interface DocumentFormula {\n /** Formula kind. */\n kind: DocumentFormulaKind;\n /** LaTex expression describing the formula. */\n value: string;\n /** Encoded source that identifies the position of the formula in the content. */\n source?: string;\n /** Span of the formula in the markdown content. */\n span?: ContentSpan;\n /** Confidence of predicting the formula. */\n confidence?: number;\n}\n\nexport function documentFormulaDeserializer(item: any): DocumentFormula {\n return {\n kind: item[\"kind\"],\n value: item[\"value\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n confidence: item[\"confidence\"],\n };\n}\n\n/** Formula kind. */\nexport type DocumentFormulaKind = \"inline\" | \"display\";\n\nexport function documentParagraphArrayDeserializer(result: Array<DocumentParagraph>): any[] {\n return result.map((item) => {\n return documentParagraphDeserializer(item);\n });\n}\n\n/**\n * Paragraph in a document, generally consisting of an contiguous sequence of lines\n * with common alignment and spacing.\n */\nexport interface DocumentParagraph {\n /** Semantic role of the paragraph. */\n role?: SemanticRole;\n /** Paragraph text. */\n content: string;\n /** Encoded source that identifies the position of the paragraph in the content. */\n source?: string;\n /** Span of the paragraph in the markdown content. */\n span?: ContentSpan;\n}\n\nexport function documentParagraphDeserializer(item: any): DocumentParagraph {\n return {\n role: item[\"role\"],\n content: item[\"content\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n };\n}\n\n/** Semantic role of the paragraph. */\nexport type SemanticRole =\n | \"pageHeader\"\n | \"pageFooter\"\n | \"pageNumber\"\n | \"title\"\n | \"sectionHeading\"\n | \"footnote\"\n | \"formulaBlock\";\n\nexport function documentSectionArrayDeserializer(result: Array<DocumentSection>): any[] {\n return result.map((item) => {\n return documentSectionDeserializer(item);\n });\n}\n\n/** Section in a document. */\nexport interface DocumentSection {\n /** Span of the section in the markdown content. */\n span?: ContentSpan;\n /** Child elements of the section. */\n elements?: string[];\n}\n\nexport function documentSectionDeserializer(item: any): DocumentSection {\n return {\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function documentTableArrayDeserializer(result: Array<DocumentTable>): any[] {\n return result.map((item) => {\n return documentTableDeserializer(item);\n });\n}\n\n/** Table in a document, consisting table cells arranged in a rectangular layout. */\nexport interface DocumentTable {\n /** Number of rows in the table. */\n rowCount: number;\n /** Number of columns in the table. */\n columnCount: number;\n /** Cells contained within the table. */\n cells: DocumentTableCell[];\n /** Encoded source that identifies the position of the table in the content. */\n source?: string;\n /** Span of the table in the markdown content. */\n span?: ContentSpan;\n /** Table caption. */\n caption?: DocumentCaption;\n /** List of table footnotes. */\n footnotes?: DocumentFootnote[];\n /** Semantic role of the table. */\n role?: SemanticRole;\n}\n\nexport function documentTableDeserializer(item: any): DocumentTable {\n return {\n rowCount: item[\"rowCount\"],\n columnCount: item[\"columnCount\"],\n cells: documentTableCellArrayDeserializer(item[\"cells\"]),\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n caption: !item[\"caption\"] ? item[\"caption\"] : documentCaptionDeserializer(item[\"caption\"]),\n footnotes: !item[\"footnotes\"]\n ? item[\"footnotes\"]\n : documentFootnoteArrayDeserializer(item[\"footnotes\"]),\n role: item[\"role\"],\n };\n}\n\nexport function documentTableCellArrayDeserializer(result: Array<DocumentTableCell>): any[] {\n return result.map((item) => {\n return documentTableCellDeserializer(item);\n });\n}\n\n/** Table cell in a document table. */\nexport interface DocumentTableCell {\n /** Table cell kind. */\n kind?: DocumentTableCellKind;\n /** Row index of the cell. */\n rowIndex: number;\n /** Column index of the cell. */\n columnIndex: number;\n /** Number of rows spanned by this cell. */\n rowSpan?: number;\n /** Number of columns spanned by this cell. */\n columnSpan?: number;\n /** Content of the table cell. */\n content: string;\n /** Encoded source that identifies the position of the table cell in the content. */\n source?: string;\n /** Span of the table cell in the markdown content. */\n span?: ContentSpan;\n /** Child elements of the table cell. */\n elements?: string[];\n}\n\nexport function documentTableCellDeserializer(item: any): DocumentTableCell {\n return {\n kind: item[\"kind\"],\n rowIndex: item[\"rowIndex\"],\n columnIndex: item[\"columnIndex\"],\n rowSpan: item[\"rowSpan\"],\n columnSpan: item[\"columnSpan\"],\n content: item[\"content\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Table cell kind. */\nexport type DocumentTableCellKind =\n | \"content\"\n | \"rowHeader\"\n | \"columnHeader\"\n | \"stubHead\"\n | \"description\";\n\n/** Caption of a table or figure. */\nexport interface DocumentCaption {\n /** Content of the caption. */\n content: string;\n /** Encoded source that identifies the position of the caption in the content. */\n source?: string;\n /** Span of the caption in the markdown content. */\n span?: ContentSpan;\n /** Child elements of the caption. */\n elements?: string[];\n}\n\nexport function documentCaptionDeserializer(item: any): DocumentCaption {\n return {\n content: item[\"content\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function documentFootnoteArrayDeserializer(result: Array<DocumentFootnote>): any[] {\n return result.map((item) => {\n return documentFootnoteDeserializer(item);\n });\n}\n\n/** Footnote of a table or figure. */\nexport interface DocumentFootnote {\n /** Content of the footnote. */\n content: string;\n /** Encoded source that identifies the position of the footnote in the content. */\n source?: string;\n /** Span of the footnote in the markdown content. */\n span?: ContentSpan;\n /** Child elements of the footnote. */\n elements?: string[];\n}\n\nexport function documentFootnoteDeserializer(item: any): DocumentFootnote {\n return {\n content: item[\"content\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function documentFigureUnionArrayDeserializer(result: Array<DocumentFigureUnion>): any[] {\n return result.map((item) => {\n return documentFigureUnionDeserializer(item);\n });\n}\n\n/** Figure in a document. */\nexport interface DocumentFigure {\n /** Figure kind. */\n /** The discriminator possible values: chart, mermaid */\n kind: DocumentFigureKind;\n /** Figure identifier. */\n id: string;\n /** Encoded source that identifies the position of the figure in the content. */\n source?: string;\n /** Span of the figure in the markdown content. */\n span?: ContentSpan;\n /** Child elements of the figure, excluding any caption or footnotes. */\n elements?: string[];\n /** Figure caption. */\n caption?: DocumentCaption;\n /** List of figure footnotes. */\n footnotes?: DocumentFootnote[];\n /** Description of the figure. */\n description?: string;\n /** Semantic role of the figure. */\n role?: SemanticRole;\n}\n\nexport function documentFigureDeserializer(item: any): DocumentFigure {\n return {\n kind: item[\"kind\"],\n id: item[\"id\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n caption: !item[\"caption\"] ? item[\"caption\"] : documentCaptionDeserializer(item[\"caption\"]),\n footnotes: !item[\"footnotes\"]\n ? item[\"footnotes\"]\n : documentFootnoteArrayDeserializer(item[\"footnotes\"]),\n description: item[\"description\"],\n role: item[\"role\"],\n };\n}\n\n/** Alias for DocumentFigureUnion */\nexport type DocumentFigureUnion = DocumentChartFigure | DocumentMermaidFigure | DocumentFigure;\n\nexport function documentFigureUnionDeserializer(item: any): DocumentFigureUnion {\n switch (item[\"kind\"]) {\n case \"chart\":\n return documentChartFigureDeserializer(item as DocumentChartFigure);\n\n case \"mermaid\":\n return documentMermaidFigureDeserializer(item as DocumentMermaidFigure);\n\n default:\n return documentFigureDeserializer(item);\n }\n}\n\n/** Figure kind. */\nexport type DocumentFigureKind = \"unknown\" | \"chart\" | \"mermaid\";\n\n/** Figure containing a chart, such as a bar chart, line chart, or pie chart. */\nexport interface DocumentChartFigure extends DocumentFigure {\n /** Figure kind. */\n kind: \"chart\";\n /** Chart content represented using [Chart.js config](https://www.chartjs.org/docs/latest/configuration/). */\n content: Record<string, any>;\n}\n\nexport function documentChartFigureDeserializer(item: any): DocumentChartFigure {\n return {\n kind: item[\"kind\"],\n id: item[\"id\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n caption: !item[\"caption\"] ? item[\"caption\"] : documentCaptionDeserializer(item[\"caption\"]),\n footnotes: !item[\"footnotes\"]\n ? item[\"footnotes\"]\n : documentFootnoteArrayDeserializer(item[\"footnotes\"]),\n description: item[\"description\"],\n role: item[\"role\"],\n content: Object.fromEntries(\n Object.entries(item[\"content\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n };\n}\n\n/** Figure containing a diagram, such as a flowchart or network diagram. */\nexport interface DocumentMermaidFigure extends DocumentFigure {\n /** Figure kind. */\n kind: \"mermaid\";\n /** Diagram content represented using [Mermaid syntax](https://mermaid.js.org/intro/). */\n content: string;\n}\n\nexport function documentMermaidFigureDeserializer(item: any): DocumentMermaidFigure {\n return {\n kind: item[\"kind\"],\n id: item[\"id\"],\n source: item[\"source\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n elements: !item[\"elements\"]\n ? item[\"elements\"]\n : item[\"elements\"].map((p: any) => {\n return p;\n }),\n caption: !item[\"caption\"] ? item[\"caption\"] : documentCaptionDeserializer(item[\"caption\"]),\n footnotes: !item[\"footnotes\"]\n ? item[\"footnotes\"]\n : documentFootnoteArrayDeserializer(item[\"footnotes\"]),\n description: item[\"description\"],\n role: item[\"role\"],\n content: item[\"content\"],\n };\n}\n\nexport function documentAnnotationArrayDeserializer(result: Array<DocumentAnnotation>): any[] {\n return result.map((item) => {\n return documentAnnotationDeserializer(item);\n });\n}\n\n/** Annotation in a document, such as a strikethrough or a comment. */\nexport interface DocumentAnnotation {\n /** Annotation identifier. */\n id: string;\n /** Annotation kind. */\n kind: DocumentAnnotationKind;\n /** Spans of the content associated with the annotation. */\n spans?: ContentSpan[];\n /** Position of the annotation. */\n source?: string;\n /** Comments associated with the annotation. */\n comments?: DocumentAnnotationComment[];\n /** Annotation author. */\n author?: string;\n /** Date and time when the annotation was created. */\n createdAt?: Date;\n /** Date and time when the annotation was last modified. */\n lastModifiedAt?: Date;\n /** Tags associated with the annotation. */\n tags?: string[];\n}\n\nexport function documentAnnotationDeserializer(item: any): DocumentAnnotation {\n return {\n id: item[\"id\"],\n kind: item[\"kind\"],\n spans: !item[\"spans\"] ? item[\"spans\"] : contentSpanArrayDeserializer(item[\"spans\"]),\n source: item[\"source\"],\n comments: !item[\"comments\"]\n ? item[\"comments\"]\n : documentAnnotationCommentArrayDeserializer(item[\"comments\"]),\n author: item[\"author\"],\n createdAt: !item[\"createdAt\"] ? item[\"createdAt\"] : new Date(item[\"createdAt\"]),\n lastModifiedAt: !item[\"lastModifiedAt\"]\n ? item[\"lastModifiedAt\"]\n : new Date(item[\"lastModifiedAt\"]),\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : item[\"tags\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Document annotation kind. */\nexport type DocumentAnnotationKind =\n | \"highlight\"\n | \"strikethrough\"\n | \"underline\"\n | \"italic\"\n | \"bold\"\n | \"circle\"\n | \"note\";\n\nexport function documentAnnotationCommentArrayDeserializer(\n result: Array<DocumentAnnotationComment>,\n): any[] {\n return result.map((item) => {\n return documentAnnotationCommentDeserializer(item);\n });\n}\n\n/** Comment associated with a document annotation. */\nexport interface DocumentAnnotationComment {\n /** Comment message in Markdown. */\n message: string;\n /** Author of the comment. */\n author?: string;\n /** Date and time when the comment was created. */\n createdAt?: Date;\n /** Date and time when the comment was last modified. */\n lastModifiedAt?: Date;\n /** Tags associated with the comment. */\n tags?: string[];\n}\n\nexport function documentAnnotationCommentDeserializer(item: any): DocumentAnnotationComment {\n return {\n message: item[\"message\"],\n author: item[\"author\"],\n createdAt: !item[\"createdAt\"] ? item[\"createdAt\"] : new Date(item[\"createdAt\"]),\n lastModifiedAt: !item[\"lastModifiedAt\"]\n ? item[\"lastModifiedAt\"]\n : new Date(item[\"lastModifiedAt\"]),\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : item[\"tags\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function documentHyperlinkArrayDeserializer(result: Array<DocumentHyperlink>): any[] {\n return result.map((item) => {\n return documentHyperlinkDeserializer(item);\n });\n}\n\n/** Hyperlink in a document, such as a link to a web page or an email address. */\nexport interface DocumentHyperlink {\n /** Hyperlinked content. */\n content: string;\n /** URL of the hyperlink. */\n url: string;\n /** Span of the hyperlink in the markdown content. */\n span?: ContentSpan;\n /** Position of the hyperlink. */\n source?: string;\n}\n\nexport function documentHyperlinkDeserializer(item: any): DocumentHyperlink {\n return {\n content: item[\"content\"],\n url: item[\"url\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n source: item[\"source\"],\n };\n}\n\nexport function documentContentSegmentArrayDeserializer(\n result: Array<DocumentContentSegment>,\n): any[] {\n return result.map((item) => {\n return documentContentSegmentDeserializer(item);\n });\n}\n\n/** Detected document content segment. */\nexport interface DocumentContentSegment {\n /** Segment identifier. */\n segmentId: string;\n /** Classified content category. */\n category: string;\n /** Span of the segment in the markdown content. */\n span: ContentSpan;\n /** Start page number (1-indexed) of the segment. */\n startPageNumber: number;\n /** End page number (1-indexed) of the segment. */\n endPageNumber: number;\n}\n\nexport function documentContentSegmentDeserializer(item: any): DocumentContentSegment {\n return {\n segmentId: item[\"segmentId\"],\n category: item[\"category\"],\n span: contentSpanDeserializer(item[\"span\"]),\n startPageNumber: item[\"startPageNumber\"],\n endPageNumber: item[\"endPageNumber\"],\n };\n}\n\n/** Audio visual content. Ex. audio/wav, video/mp4. */\nexport interface AudioVisualContent extends AnalysisContent {\n /** Content kind. */\n kind: \"audioVisual\";\n /** Start time of the content in milliseconds. */\n startTimeMs: number;\n /** End time of the content in milliseconds. */\n endTimeMs: number;\n /** Width of each video frame in pixels, if applicable. */\n width?: number;\n /** Height of each video frame in pixels, if applicable. */\n height?: number;\n /** List of camera shot changes in the video, represented by its timestamp in milliseconds. Only if returnDetails is true. */\n cameraShotTimesMs?: number[];\n /** List of key frames in the video, represented by its timestamp in milliseconds. Only if returnDetails is true. */\n keyFrameTimesMs?: number[];\n /** List of transcript phrases. Only if returnDetails is true. */\n transcriptPhrases?: TranscriptPhrase[];\n /** List of detected content segments. Only if enableSegment is true. */\n segments?: AudioVisualContentSegment[];\n}\n\nexport function audioVisualContentDeserializer(item: any): AudioVisualContent {\n return {\n kind: item[\"kind\"],\n mimeType: item[\"mimeType\"],\n analyzerId: item[\"analyzerId\"],\n category: item[\"category\"],\n path: item[\"path\"],\n markdown: item[\"markdown\"],\n fields: !item[\"fields\"] ? item[\"fields\"] : contentFieldUnionRecordDeserializer(item[\"fields\"]),\n startTimeMs: item[\"startTimeMs\"],\n endTimeMs: item[\"endTimeMs\"],\n width: item[\"width\"],\n height: item[\"height\"],\n cameraShotTimesMs: !item[\"cameraShotTimesMs\"]\n ? item[\"cameraShotTimesMs\"]\n : item[\"cameraShotTimesMs\"].map((p: any) => {\n return p;\n }),\n // CUSTOMIZATION: SERVICE-FIX: Accept both `keyFrameTimesMs` (camelCase) and `KeyFrameTimesMs` (PascalCase)\n // due to a known service issue returning PascalCase for this property.\n keyFrameTimesMs: (() => {\n const val = item[\"keyFrameTimesMs\"] ?? item[\"KeyFrameTimesMs\"];\n return !val ? val : val.map((p: any) => p);\n })(),\n transcriptPhrases: !item[\"transcriptPhrases\"]\n ? item[\"transcriptPhrases\"]\n : transcriptPhraseArrayDeserializer(item[\"transcriptPhrases\"]),\n segments: !item[\"segments\"]\n ? item[\"segments\"]\n : audioVisualContentSegmentArrayDeserializer(item[\"segments\"]),\n };\n}\n\nexport function transcriptPhraseArrayDeserializer(result: Array<TranscriptPhrase>): any[] {\n return result.map((item) => {\n return transcriptPhraseDeserializer(item);\n });\n}\n\n/** Transcript phrase. */\nexport interface TranscriptPhrase {\n /** Speaker index or name. */\n speaker?: string;\n /** Start time of the phrase in milliseconds. */\n startTimeMs: number;\n /** End time of the phrase in milliseconds. */\n endTimeMs: number;\n /** Detected locale of the phrase. Ex. en-US. */\n locale?: string;\n /** Transcript text. */\n text: string;\n /** Confidence of predicting the phrase. */\n confidence?: number;\n /** Span of the phrase in the markdown content. */\n span?: ContentSpan;\n /** List of words in the phrase. */\n words: TranscriptWord[];\n}\n\nexport function transcriptPhraseDeserializer(item: any): TranscriptPhrase {\n return {\n speaker: item[\"speaker\"],\n startTimeMs: item[\"startTimeMs\"],\n endTimeMs: item[\"endTimeMs\"],\n locale: item[\"locale\"],\n text: item[\"text\"],\n confidence: item[\"confidence\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n words: transcriptWordArrayDeserializer(item[\"words\"]),\n };\n}\n\nexport function transcriptWordArrayDeserializer(result: Array<TranscriptWord>): any[] {\n return result.map((item) => {\n return transcriptWordDeserializer(item);\n });\n}\n\n/** Transcript word. */\nexport interface TranscriptWord {\n /** Start time of the word in milliseconds. */\n startTimeMs: number;\n /** End time of the word in milliseconds. */\n endTimeMs: number;\n /** Transcript text. */\n text: string;\n /** Span of the word in the markdown content. */\n span?: ContentSpan;\n}\n\nexport function transcriptWordDeserializer(item: any): TranscriptWord {\n return {\n startTimeMs: item[\"startTimeMs\"],\n endTimeMs: item[\"endTimeMs\"],\n text: item[\"text\"],\n span: !item[\"span\"] ? item[\"span\"] : contentSpanDeserializer(item[\"span\"]),\n };\n}\n\nexport function audioVisualContentSegmentArrayDeserializer(\n result: Array<AudioVisualContentSegment>,\n): any[] {\n return result.map((item) => {\n return audioVisualContentSegmentDeserializer(item);\n });\n}\n\n/** Detected audio/visual content segment. */\nexport interface AudioVisualContentSegment {\n /** Segment identifier. */\n segmentId: string;\n /** Classified content category. */\n category: string;\n /** Span of the segment in the markdown content. */\n span: ContentSpan;\n /** Start time of the segment in milliseconds. */\n startTimeMs: number;\n /** End time of the segment in milliseconds. */\n endTimeMs: number;\n}\n\nexport function audioVisualContentSegmentDeserializer(item: any): AudioVisualContentSegment {\n return {\n segmentId: item[\"segmentId\"],\n category: item[\"category\"],\n span: contentSpanDeserializer(item[\"span\"]),\n startTimeMs: item[\"startTimeMs\"],\n endTimeMs: item[\"endTimeMs\"],\n };\n}\n\n/** Usage details. */\nexport interface UsageDetails {\n /**\n * The number of document pages processed at the minimal level.\n * For documents without explicit pages (ex. txt, html), every 3000 UTF-16 characters is counted as one page.\n */\n documentPagesMinimal?: number;\n /**\n * The number of document pages processed at the basic level.\n * For documents without explicit pages (ex. txt, html), every 3000 UTF-16 characters is counted as one page.\n */\n documentPagesBasic?: number;\n /**\n * The number of document pages processed at the standard level.\n * For documents without explicit pages (ex. txt, html), every 3000 UTF-16 characters is counted as one page.\n */\n documentPagesStandard?: number;\n /** The hours of audio processed. */\n audioHours?: number;\n /** The hours of video processed. */\n videoHours?: number;\n /** The number of contextualization tokens consumed for preparing context, generating confidence scores, source grounding, and output formatting. */\n contextualizationTokens?: number;\n /** The number of LLM and embedding tokens consumed, grouped by model (ex. GTP 4.1) and type (ex. input, cached input, output). */\n tokens?: Record<string, number>;\n}\n\nexport function usageDetailsDeserializer(item: any): UsageDetails {\n return {\n documentPagesMinimal: item[\"documentPagesMinimal\"],\n documentPagesBasic: item[\"documentPagesBasic\"],\n documentPagesStandard: item[\"documentPagesStandard\"],\n audioHours: item[\"audioHours\"],\n videoHours: item[\"videoHours\"],\n contextualizationTokens: item[\"contextualizationTokens\"],\n tokens: !item[\"tokens\"]\n ? item[\"tokens\"]\n : Object.fromEntries(Object.entries(item[\"tokens\"]).map(([k, p]: [string, any]) => [k, p])),\n };\n}\n\n/** Analyzer that extracts content and fields from multimodal documents. */\nexport interface ContentAnalyzer {\n /** The unique identifier of the analyzer. */\n readonly analyzerId: string;\n /** A description of the analyzer. */\n description?: string;\n /** Tags associated with the analyzer. */\n tags?: Record<string, string>;\n /** The status of the analyzer. */\n readonly status: ContentAnalyzerStatus;\n /** The date and time when the analyzer was created. */\n readonly createdAt: Date;\n /** The date and time when the analyzer was last modified. */\n readonly lastModifiedAt: Date;\n /** Warnings encountered while creating the analyzer. */\n readonly warnings?: ErrorModel[];\n /** The analyzer to incrementally train from. */\n baseAnalyzerId?: string;\n /** Analyzer configuration settings. */\n config?: ContentAnalyzerConfig;\n /** The schema of fields to extracted. */\n fieldSchema?: ContentFieldSchema;\n /** Indicates whether the result may contain additional fields outside of the defined schema. */\n dynamicFieldSchema?: boolean;\n /** The location where the data may be processed. Defaults to global. */\n processingLocation?: ProcessingLocation;\n /** Additional knowledge sources used to enhance the analyzer. */\n knowledgeSources?: KnowledgeSourceUnion[];\n /**\n * Mapping of model roles to specific model names.\n * Ex. { \"completion\": \"gpt-4.1\", \"embedding\": \"text-embedding-3-large\" }.\n */\n models?: Record<string, string>;\n /** Chat completion and embedding models supported by the analyzer. */\n readonly supportedModels?: SupportedModels;\n}\n\nexport function contentAnalyzerSerializer(item: ContentAnalyzer): any {\n return {\n description: item[\"description\"],\n tags: item[\"tags\"],\n baseAnalyzerId: item[\"baseAnalyzerId\"],\n config: !item[\"config\"] ? item[\"config\"] : contentAnalyzerConfigSerializer(item[\"config\"]),\n fieldSchema: !item[\"fieldSchema\"]\n ? item[\"fieldSchema\"]\n : contentFieldSchemaSerializer(item[\"fieldSchema\"]),\n dynamicFieldSchema: item[\"dynamicFieldSchema\"],\n processingLocation: item[\"processingLocation\"],\n knowledgeSources: !item[\"knowledgeSources\"]\n ? item[\"knowledgeSources\"]\n : knowledgeSourceUnionArraySerializer(item[\"knowledgeSources\"]),\n models: item[\"models\"],\n };\n}\n\nexport function contentAnalyzerDeserializer(item: any): ContentAnalyzer {\n return {\n analyzerId: item[\"analyzerId\"],\n description: item[\"description\"],\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : Object.fromEntries(Object.entries(item[\"tags\"]).map(([k, p]: [string, any]) => [k, p])),\n status: item[\"status\"],\n createdAt: new Date(item[\"createdAt\"]),\n lastModifiedAt: new Date(item[\"lastModifiedAt\"]),\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : item[\"warnings\"].map((p: any) => {\n return p;\n }),\n baseAnalyzerId: item[\"baseAnalyzerId\"],\n config: !item[\"config\"] ? item[\"config\"] : contentAnalyzerConfigDeserializer(item[\"config\"]),\n fieldSchema: !item[\"fieldSchema\"]\n ? item[\"fieldSchema\"]\n : contentFieldSchemaDeserializer(item[\"fieldSchema\"]),\n dynamicFieldSchema: item[\"dynamicFieldSchema\"],\n processingLocation: item[\"processingLocation\"],\n knowledgeSources: !item[\"knowledgeSources\"]\n ? item[\"knowledgeSources\"]\n : knowledgeSourceUnionArrayDeserializer(item[\"knowledgeSources\"]),\n models: !item[\"models\"]\n ? item[\"models\"]\n : Object.fromEntries(Object.entries(item[\"models\"]).map(([k, p]: [string, any]) => [k, p])),\n supportedModels: !item[\"supportedModels\"]\n ? item[\"supportedModels\"]\n : supportedModelsDeserializer(item[\"supportedModels\"]),\n };\n}\n\n/** Status of a resource. */\nexport type ContentAnalyzerStatus = \"creating\" | \"ready\" | \"deleting\" | \"failed\";\n\n/** Configuration settings for an analyzer. */\nexport interface ContentAnalyzerConfig {\n /** Return all content details. */\n returnDetails?: boolean;\n /** List of locale hints for speech transcription. */\n locales?: string[];\n /** Enable optical character recognition (OCR). */\n enableOcr?: boolean;\n /** Enable layout analysis. */\n enableLayout?: boolean;\n /** Enable generation of figure description. */\n enableFigureDescription?: boolean;\n /** Enable analysis of figures, such as charts and diagrams. */\n enableFigureAnalysis?: boolean;\n /** Enable mathematical formula detection. */\n enableFormula?: boolean;\n /** Representation format of tables in analyze result markdown. */\n tableFormat?: TableFormat;\n /** Representation format of charts in analyze result markdown. */\n chartFormat?: ChartFormat;\n /** Representation format of annotations in analyze result markdown. */\n annotationFormat?: AnnotationFormat;\n /** Disable the default blurring of faces for privacy while processing the content. */\n disableFaceBlurring?: boolean;\n /** Return field grounding source and confidence. */\n estimateFieldSourceAndConfidence?: boolean;\n /** Map of categories to classify the input content(s) against. */\n contentCategories?: Record<string, ContentCategoryDefinition>;\n /** Enable segmentation of the input by contentCategories. */\n enableSegment?: boolean;\n /** Force segmentation of document content by page. */\n segmentPerPage?: boolean;\n /**\n * Omit the content for this analyzer from analyze result.\n * Only return content(s) from additional analyzers specified in contentCategories, if any.\n */\n omitContent?: boolean;\n}\n\nexport function contentAnalyzerConfigSerializer(item: ContentAnalyzerConfig): any {\n return {\n returnDetails: item[\"returnDetails\"],\n locales: !item[\"locales\"]\n ? item[\"locales\"]\n : item[\"locales\"].map((p: any) => {\n return p;\n }),\n enableOcr: item[\"enableOcr\"],\n enableLayout: item[\"enableLayout\"],\n enableFigureDescription: item[\"enableFigureDescription\"],\n enableFigureAnalysis: item[\"enableFigureAnalysis\"],\n enableFormula: item[\"enableFormula\"],\n tableFormat: item[\"tableFormat\"],\n chartFormat: item[\"chartFormat\"],\n annotationFormat: item[\"annotationFormat\"],\n disableFaceBlurring: item[\"disableFaceBlurring\"],\n estimateFieldSourceAndConfidence: item[\"estimateFieldSourceAndConfidence\"],\n contentCategories: !item[\"contentCategories\"]\n ? item[\"contentCategories\"]\n : contentCategoryDefinitionRecordSerializer(item[\"contentCategories\"]),\n enableSegment: item[\"enableSegment\"],\n segmentPerPage: item[\"segmentPerPage\"],\n omitContent: item[\"omitContent\"],\n };\n}\n\nexport function contentAnalyzerConfigDeserializer(item: any): ContentAnalyzerConfig {\n return {\n returnDetails: item[\"returnDetails\"],\n locales: !item[\"locales\"]\n ? item[\"locales\"]\n : item[\"locales\"].map((p: any) => {\n return p;\n }),\n enableOcr: item[\"enableOcr\"],\n enableLayout: item[\"enableLayout\"],\n enableFigureDescription: item[\"enableFigureDescription\"],\n enableFigureAnalysis: item[\"enableFigureAnalysis\"],\n enableFormula: item[\"enableFormula\"],\n tableFormat: item[\"tableFormat\"],\n chartFormat: item[\"chartFormat\"],\n annotationFormat: item[\"annotationFormat\"],\n disableFaceBlurring: item[\"disableFaceBlurring\"],\n estimateFieldSourceAndConfidence: item[\"estimateFieldSourceAndConfidence\"],\n contentCategories: !item[\"contentCategories\"]\n ? item[\"contentCategories\"]\n : contentCategoryDefinitionRecordDeserializer(item[\"contentCategories\"]),\n enableSegment: item[\"enableSegment\"],\n segmentPerPage: item[\"segmentPerPage\"],\n omitContent: item[\"omitContent\"],\n };\n}\n\n/** Representation format of tables in analyze result markdown. */\nexport type TableFormat = \"html\" | \"markdown\";\n/** Representation format of charts in analyze result markdown. */\nexport type ChartFormat = \"chartJs\" | \"markdown\";\n/** Representation format of annotations in analyze result markdown. */\nexport type AnnotationFormat = \"none\" | \"markdown\";\n\nexport function contentCategoryDefinitionRecordSerializer(\n item: Record<string, ContentCategoryDefinition>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : contentCategoryDefinitionSerializer(item[key]);\n });\n return result;\n}\n\nexport function contentCategoryDefinitionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ContentCategoryDefinition> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : contentCategoryDefinitionDeserializer(item[key]);\n });\n return result;\n}\n\n/** Content category definition. */\nexport interface ContentCategoryDefinition {\n /** The description of the category. */\n description?: string;\n /** Optional analyzer used to process the content. */\n analyzerId?: string;\n /** Optional inline definition of analyzer used to process the content. */\n analyzer?: ContentAnalyzer;\n}\n\nexport function contentCategoryDefinitionSerializer(item: ContentCategoryDefinition): any {\n return {\n description: item[\"description\"],\n analyzerId: item[\"analyzerId\"],\n analyzer: !item[\"analyzer\"] ? item[\"analyzer\"] : contentAnalyzerSerializer(item[\"analyzer\"]),\n };\n}\n\nexport function contentCategoryDefinitionDeserializer(item: any): ContentCategoryDefinition {\n return {\n description: item[\"description\"],\n analyzerId: item[\"analyzerId\"],\n analyzer: !item[\"analyzer\"] ? item[\"analyzer\"] : contentAnalyzerDeserializer(item[\"analyzer\"]),\n };\n}\n\n/** Schema of fields to be extracted from documents. */\nexport interface ContentFieldSchema {\n /** The name of the field schema. */\n name?: string;\n /** A description of the field schema. */\n description?: string;\n /** The fields defined in the schema. */\n fields: Record<string, ContentFieldDefinition>;\n /** Additional definitions referenced by the fields in the schema. */\n definitions?: Record<string, ContentFieldDefinition>;\n}\n\nexport function contentFieldSchemaSerializer(item: ContentFieldSchema): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n fields: contentFieldDefinitionRecordSerializer(item[\"fields\"]),\n definitions: !item[\"definitions\"]\n ? item[\"definitions\"]\n : contentFieldDefinitionRecordSerializer(item[\"definitions\"]),\n };\n}\n\nexport function contentFieldSchemaDeserializer(item: any): ContentFieldSchema {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n fields: contentFieldDefinitionRecordDeserializer(item[\"fields\"]),\n definitions: !item[\"definitions\"]\n ? item[\"definitions\"]\n : contentFieldDefinitionRecordDeserializer(item[\"definitions\"]),\n };\n}\n\nexport function contentFieldDefinitionRecordSerializer(\n item: Record<string, ContentFieldDefinition>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : contentFieldDefinitionSerializer(item[key]);\n });\n return result;\n}\n\nexport function contentFieldDefinitionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ContentFieldDefinition> {\n // CUSTOMIZATION: EMITTER-FIX: Added null/undefined guard to prevent runtime error when\n // `definitions` property in `ContentFieldSchema` is optional and not present.\n if (!item) {\n return item;\n }\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : contentFieldDefinitionDeserializer(item[key]);\n });\n return result;\n}\n\n/** Definition of the field using a JSON Schema like syntax. */\nexport interface ContentFieldDefinition {\n /** Generation method. */\n method?: GenerationMethod;\n /** Semantic data type of the field value. */\n type?: ContentFieldType;\n /** Field description. */\n description?: string;\n /** Field type schema of each array element, if type is array. */\n itemDefinition?: ContentFieldDefinition;\n /** Named sub-fields, if type is object. */\n properties?: Record<string, ContentFieldDefinition>;\n /** Examples of field values. */\n examples?: string[];\n /** Enumeration of possible field values. */\n enum?: string[];\n /** Descriptions for each enumeration value. */\n enumDescriptions?: Record<string, string>;\n /** Reference to another field definition. */\n ref?: string;\n /** Return grounding source and confidence. */\n estimateSourceAndConfidence?: boolean;\n}\n\nexport function contentFieldDefinitionSerializer(item: ContentFieldDefinition): any {\n return {\n method: item[\"method\"],\n type: item[\"type\"],\n description: item[\"description\"],\n items: !item[\"itemDefinition\"]\n ? item[\"itemDefinition\"]\n : contentFieldDefinitionSerializer(item[\"itemDefinition\"]),\n properties: !item[\"properties\"]\n ? item[\"properties\"]\n : contentFieldDefinitionRecordSerializer(item[\"properties\"]),\n examples: !item[\"examples\"]\n ? item[\"examples\"]\n : item[\"examples\"].map((p: any) => {\n return p;\n }),\n enum: !item[\"enum\"]\n ? item[\"enum\"]\n : item[\"enum\"].map((p: any) => {\n return p;\n }),\n enumDescriptions: item[\"enumDescriptions\"],\n $ref: item[\"ref\"],\n estimateSourceAndConfidence: item[\"estimateSourceAndConfidence\"],\n };\n}\n\nexport function contentFieldDefinitionDeserializer(item: any): ContentFieldDefinition {\n return {\n method: item[\"method\"],\n type: item[\"type\"],\n description: item[\"description\"],\n itemDefinition: !item[\"items\"]\n ? item[\"items\"]\n : contentFieldDefinitionDeserializer(item[\"items\"]),\n properties: !item[\"properties\"]\n ? item[\"properties\"]\n : contentFieldDefinitionRecordDeserializer(item[\"properties\"]),\n examples: !item[\"examples\"]\n ? item[\"examples\"]\n : item[\"examples\"].map((p: any) => {\n return p;\n }),\n enum: !item[\"enum\"]\n ? item[\"enum\"]\n : item[\"enum\"].map((p: any) => {\n return p;\n }),\n enumDescriptions: !item[\"enumDescriptions\"]\n ? item[\"enumDescriptions\"]\n : Object.fromEntries(\n Object.entries(item[\"enumDescriptions\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n ref: item[\"$ref\"],\n estimateSourceAndConfidence: item[\"estimateSourceAndConfidence\"],\n };\n}\n\n/** Generation method. */\nexport type GenerationMethod = \"generate\" | \"extract\" | \"classify\";\n/** The location where the data may be processed. */\nexport type ProcessingLocation = \"geography\" | \"dataZone\" | \"global\";\n\nexport function knowledgeSourceUnionArraySerializer(result: Array<KnowledgeSourceUnion>): any[] {\n return result.map((item) => {\n return knowledgeSourceUnionSerializer(item);\n });\n}\n\nexport function knowledgeSourceUnionArrayDeserializer(result: Array<KnowledgeSourceUnion>): any[] {\n return result.map((item) => {\n return knowledgeSourceUnionDeserializer(item);\n });\n}\n\n/** Knowledge source. */\nexport interface KnowledgeSource {\n /** The kind of knowledge source. */\n /** The discriminator possible values: labeledData */\n kind: KnowledgeSourceKind;\n}\n\nexport function knowledgeSourceSerializer(item: KnowledgeSource): any {\n return { kind: item[\"kind\"] };\n}\n\nexport function knowledgeSourceDeserializer(item: any): KnowledgeSource {\n return {\n kind: item[\"kind\"],\n };\n}\n\n/** Alias for KnowledgeSourceUnion */\nexport type KnowledgeSourceUnion = LabeledDataKnowledgeSource | KnowledgeSource;\n\nexport function knowledgeSourceUnionSerializer(item: KnowledgeSourceUnion): any {\n switch (item.kind) {\n case \"labeledData\":\n return labeledDataKnowledgeSourceSerializer(item as LabeledDataKnowledgeSource);\n\n default:\n return knowledgeSourceSerializer(item);\n }\n}\n\nexport function knowledgeSourceUnionDeserializer(item: any): KnowledgeSourceUnion {\n switch (item[\"kind\"]) {\n case \"labeledData\":\n return labeledDataKnowledgeSourceDeserializer(item as LabeledDataKnowledgeSource);\n\n default:\n return knowledgeSourceDeserializer(item);\n }\n}\n\n/** Knowledge source kind. */\nexport type KnowledgeSourceKind = \"labeledData\";\n\n/** Labeled data knowledge source. */\nexport interface LabeledDataKnowledgeSource extends KnowledgeSource {\n /** A blob container containing labeled data. */\n kind: \"labeledData\";\n /** The URL of the blob container containing labeled data. */\n containerUrl: string;\n /** An optional prefix to filter blobs within the container. */\n prefix?: string;\n /** An optional path to a file listing specific blobs to include. */\n fileListPath: string;\n}\n\nexport function labeledDataKnowledgeSourceSerializer(item: LabeledDataKnowledgeSource): any {\n return {\n kind: item[\"kind\"],\n containerUrl: item[\"containerUrl\"],\n prefix: item[\"prefix\"],\n fileListPath: item[\"fileListPath\"],\n };\n}\n\nexport function labeledDataKnowledgeSourceDeserializer(item: any): LabeledDataKnowledgeSource {\n return {\n kind: item[\"kind\"],\n containerUrl: item[\"containerUrl\"],\n prefix: item[\"prefix\"],\n fileListPath: item[\"fileListPath\"],\n };\n}\n\n/** Chat completion and embedding models supported by the analyzer. */\nexport interface SupportedModels {\n /** Chat completion models supported by the analyzer. */\n completion?: string[];\n /** Embedding models supported by the analyzer. */\n embedding?: string[];\n}\n\nexport function supportedModelsDeserializer(item: any): SupportedModels {\n return {\n completion: !item[\"completion\"]\n ? item[\"completion\"]\n : item[\"completion\"].map((p: any) => {\n return p;\n }),\n embedding: !item[\"embedding\"]\n ? item[\"embedding\"]\n : item[\"embedding\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Provides status details for analyzer creation operations. */\nexport interface ContentAnalyzerOperationStatus {\n /** The unique ID of the operation. */\n id: string;\n /** The status of the operation */\n status: OperationState;\n /** Error object that describes the error when status is \"Failed\". */\n error?: ErrorModel;\n /** The result of the operation. */\n result?: ContentAnalyzer;\n /** Usage details of the analyzer creation operation. */\n usage?: UsageDetails;\n}\n\nexport function contentAnalyzerOperationStatusDeserializer(\n item: any,\n): ContentAnalyzerOperationStatus {\n return {\n id: item[\"id\"],\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : item[\"error\"],\n result: !item[\"result\"] ? item[\"result\"] : contentAnalyzerDeserializer(item[\"result\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : usageDetailsDeserializer(item[\"usage\"]),\n };\n}\n\n/** Default settings for this Content Understanding resource. */\nexport interface ContentUnderstandingDefaults {\n /** Specify the default mapping of model names to LLM/embedding deployments in Microsoft Foundry. For details and current semantics, see https://aka.ms/cudoc-quickstart-rest. */\n modelDeployments: Record<string, string>;\n}\n\nexport function contentUnderstandingDefaultsDeserializer(item: any): ContentUnderstandingDefaults {\n return {\n modelDeployments: Object.fromEntries(\n Object.entries(item[\"modelDeployments\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n };\n}\n\n/** Copy authorization details for cross-resource copy. */\nexport interface CopyAuthorization {\n /** Full path of the source analyzer. */\n source: string;\n /** Azure resource ID of the target location to copy to. */\n targetAzureResourceId: string;\n /** Date/time when the copy authorization expires. */\n expiresAt: Date;\n}\n\nexport function copyAuthorizationDeserializer(item: any): CopyAuthorization {\n return {\n source: item[\"source\"],\n targetAzureResourceId: item[\"targetAzureResourceId\"],\n expiresAt: new Date(item[\"expiresAt\"]),\n };\n}\n\n/** Paged collection of ContentAnalyzer items */\nexport interface _PagedContentAnalyzer {\n /** The ContentAnalyzer items on this page */\n value: ContentAnalyzer[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedContentAnalyzerDeserializer(item: any): _PagedContentAnalyzer {\n return {\n value: contentAnalyzerArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function contentAnalyzerArraySerializer(result: Array<ContentAnalyzer>): any[] {\n return result.map((item) => {\n return contentAnalyzerSerializer(item);\n });\n}\n\nexport function contentAnalyzerArrayDeserializer(result: Array<ContentAnalyzer>): any[] {\n return result.map((item) => {\n return contentAnalyzerDeserializer(item);\n });\n}\n\n/** model interface RecordMergePatchUpdate */\nexport interface RecordMergePatchUpdate {\n /** Additional properties */\n additionalProperties?: Record<string, string>;\n}\n\nexport function recordMergePatchUpdateSerializer(item: RecordMergePatchUpdate): any {\n return { ...serializeRecord(item.additionalProperties ?? {}) };\n}\n\n/** Service API versions. */\nexport enum KnownVersions {\n /** The 2025-11-01 version of the Content Understanding service. */\n V20251101 = \"2025-11-01\",\n}\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,74 @@
1
+ import type { Client, PathUncheckedResponse } from "@azure-rest/core-client";
2
+ /**
3
+ * Options for the byPage method
4
+ */
5
+ export interface PageSettings {
6
+ /**
7
+ * A reference to a specific page to start iterating from.
8
+ */
9
+ continuationToken?: string;
10
+ }
11
+ /**
12
+ * An interface that describes a page of results.
13
+ */
14
+ export type ContinuablePage<TElement, TPage = TElement[]> = TPage & {
15
+ /**
16
+ * The token that keeps track of where to continue the iterator
17
+ */
18
+ continuationToken?: string;
19
+ };
20
+ /**
21
+ * An interface that allows async iterable iteration both to completion and by page.
22
+ */
23
+ export interface PagedAsyncIterableIterator<TElement, TPage = TElement[], TPageSettings extends PageSettings = PageSettings> {
24
+ /**
25
+ * The next method, part of the iteration protocol
26
+ */
27
+ next(): Promise<IteratorResult<TElement>>;
28
+ /**
29
+ * The connection to the async iterator, part of the iteration protocol
30
+ */
31
+ [Symbol.asyncIterator](): PagedAsyncIterableIterator<TElement, TPage, TPageSettings>;
32
+ /**
33
+ * Return an AsyncIterableIterator that works a page at a time
34
+ */
35
+ byPage: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;
36
+ }
37
+ /**
38
+ * An interface that describes how to communicate with the service.
39
+ */
40
+ export interface PagedResult<TElement, TPage = TElement[], TPageSettings extends PageSettings = PageSettings> {
41
+ /**
42
+ * Link to the first page of results.
43
+ */
44
+ firstPageLink?: string;
45
+ /**
46
+ * A method that returns a page of results.
47
+ */
48
+ getPage: (pageLink?: string) => Promise<{
49
+ page: TPage;
50
+ nextPageLink?: string;
51
+ } | undefined>;
52
+ /**
53
+ * a function to implement the `byPage` method on the paged async iterator.
54
+ */
55
+ byPage?: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;
56
+ /**
57
+ * A function to extract elements from a page.
58
+ */
59
+ toElements?: (page: TPage) => TElement[];
60
+ }
61
+ /**
62
+ * Options for the paging helper
63
+ */
64
+ export interface BuildPagedAsyncIteratorOptions {
65
+ itemName?: string;
66
+ nextLinkName?: string;
67
+ nextLinkMethod?: "GET" | "POST";
68
+ apiVersion?: string;
69
+ }
70
+ /**
71
+ * Helper to paginate results in a generic way and return a PagedAsyncIterableIterator
72
+ */
73
+ export declare function buildPagedAsyncIterator<TElement, TPage = TElement[], TPageSettings extends PageSettings = PageSettings, TResponse extends PathUncheckedResponse = PathUncheckedResponse>(client: Client, getInitialResponse: () => PromiseLike<TResponse>, processResponseBody: (result: TResponse) => PromiseLike<unknown>, expectedStatuses: string[], options?: BuildPagedAsyncIteratorOptions): PagedAsyncIterableIterator<TElement, TPage, TPageSettings>;
74
+ //# sourceMappingURL=pagingHelpers.d.ts.map
@@ -0,0 +1,143 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { createRestError } from "@azure-rest/core-client";
4
+ import { RestError } from "@azure/core-rest-pipeline";
5
+ /**
6
+ * Helper to paginate results in a generic way and return a PagedAsyncIterableIterator
7
+ */
8
+ export function buildPagedAsyncIterator(client, getInitialResponse, processResponseBody, expectedStatuses, options = {}) {
9
+ const itemName = options.itemName ?? "value";
10
+ const nextLinkName = options.nextLinkName ?? "nextLink";
11
+ const nextLinkMethod = options.nextLinkMethod ?? "GET";
12
+ const apiVersion = options.apiVersion;
13
+ const pagedResult = {
14
+ getPage: async (pageLink) => {
15
+ let result;
16
+ if (pageLink === undefined) {
17
+ result = await getInitialResponse();
18
+ }
19
+ else {
20
+ const resolvedPageLink = apiVersion ? addApiVersionToUrl(pageLink, apiVersion) : pageLink;
21
+ result =
22
+ nextLinkMethod === "POST"
23
+ ? await client.pathUnchecked(resolvedPageLink).post()
24
+ : await client.pathUnchecked(resolvedPageLink).get();
25
+ }
26
+ checkPagingRequest(result, expectedStatuses);
27
+ const results = await processResponseBody(result);
28
+ const nextLink = getNextLink(results, nextLinkName);
29
+ const values = getElements(results, itemName);
30
+ return {
31
+ page: values,
32
+ nextPageLink: nextLink,
33
+ };
34
+ },
35
+ byPage: (settings) => {
36
+ const { continuationToken } = settings ?? {};
37
+ return getPageAsyncIterator(pagedResult, {
38
+ pageLink: continuationToken,
39
+ });
40
+ },
41
+ };
42
+ return getPagedAsyncIterator(pagedResult);
43
+ }
44
+ /**
45
+ * returns an async iterator that iterates over results. It also has a `byPage`
46
+ * method that returns pages of items at once.
47
+ *
48
+ * @param pagedResult - an object that specifies how to get pages.
49
+ * @returns a paged async iterator that iterates over results.
50
+ */
51
+ function getPagedAsyncIterator(pagedResult) {
52
+ const iter = getItemAsyncIterator(pagedResult);
53
+ return {
54
+ next() {
55
+ return iter.next();
56
+ },
57
+ [Symbol.asyncIterator]() {
58
+ return this;
59
+ },
60
+ byPage: pagedResult?.byPage ??
61
+ ((settings) => {
62
+ const { continuationToken } = settings ?? {};
63
+ return getPageAsyncIterator(pagedResult, {
64
+ pageLink: continuationToken,
65
+ });
66
+ }),
67
+ };
68
+ }
69
+ async function* getItemAsyncIterator(pagedResult) {
70
+ const pages = getPageAsyncIterator(pagedResult);
71
+ for await (const page of pages) {
72
+ yield* page;
73
+ }
74
+ }
75
+ async function* getPageAsyncIterator(pagedResult, options = {}) {
76
+ const { pageLink } = options;
77
+ let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink);
78
+ if (!response) {
79
+ return;
80
+ }
81
+ let result = response.page;
82
+ result.continuationToken = response.nextPageLink;
83
+ yield result;
84
+ while (response.nextPageLink) {
85
+ response = await pagedResult.getPage(response.nextPageLink);
86
+ if (!response) {
87
+ return;
88
+ }
89
+ result = response.page;
90
+ result.continuationToken = response.nextPageLink;
91
+ yield result;
92
+ }
93
+ }
94
+ /**
95
+ * Gets for the value of nextLink in the body
96
+ */
97
+ function getNextLink(body, nextLinkName) {
98
+ if (!nextLinkName) {
99
+ return undefined;
100
+ }
101
+ const nextLink = body[nextLinkName];
102
+ if (typeof nextLink !== "string" && typeof nextLink !== "undefined" && nextLink !== null) {
103
+ throw new RestError(`Body Property ${nextLinkName} should be a string or undefined or null but got ${typeof nextLink}`);
104
+ }
105
+ if (nextLink === null) {
106
+ return undefined;
107
+ }
108
+ return nextLink;
109
+ }
110
+ /**
111
+ * Gets the elements of the current request in the body.
112
+ */
113
+ function getElements(body, itemName) {
114
+ const value = body[itemName];
115
+ if (!Array.isArray(value)) {
116
+ throw new RestError(`Couldn't paginate response\n Body doesn't contain an array property with name: ${itemName}`);
117
+ }
118
+ return value ?? [];
119
+ }
120
+ /**
121
+ * Checks if a request failed
122
+ */
123
+ function checkPagingRequest(response, expectedStatuses) {
124
+ if (!expectedStatuses.includes(response.status)) {
125
+ throw createRestError(`Pagination failed with unexpected statusCode ${response.status}`, response);
126
+ }
127
+ }
128
+ /**
129
+ * Adds the api-version query parameter on a URL if it's not present.
130
+ * @param url - the URL to modify
131
+ * @param apiVersion - the API version to set
132
+ * @returns - the URL with the api-version query parameter set
133
+ */
134
+ function addApiVersionToUrl(url, apiVersion) {
135
+ // The base URL is only used for parsing and won't appear in the returned URL
136
+ const urlObj = new URL(url, "https://microsoft.com");
137
+ if (!urlObj.searchParams.get("api-version")) {
138
+ // Append one if there is no apiVersion
139
+ return `${url}${Array.from(urlObj.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${apiVersion}`;
140
+ }
141
+ return url;
142
+ }
143
+ //# sourceMappingURL=pagingHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagingHelpers.js","sourceRoot":"","sources":["../../../src/static-helpers/pagingHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Client, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { createRestError } from \"@azure-rest/core-client\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options for the byPage method\n */\nexport interface PageSettings {\n /**\n * A reference to a specific page to start iterating from.\n */\n continuationToken?: string;\n}\n\n/**\n * An interface that describes a page of results.\n */\nexport type ContinuablePage<TElement, TPage = TElement[]> = TPage & {\n /**\n * The token that keeps track of where to continue the iterator\n */\n continuationToken?: string;\n};\n\n/**\n * An interface that allows async iterable iteration both to completion and by page.\n */\nexport interface PagedAsyncIterableIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n> {\n /**\n * The next method, part of the iteration protocol\n */\n next(): Promise<IteratorResult<TElement>>;\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator](): PagedAsyncIterableIterator<TElement, TPage, TPageSettings>;\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;\n}\n\n/**\n * An interface that describes how to communicate with the service.\n */\nexport interface PagedResult<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n> {\n /**\n * Link to the first page of results.\n */\n firstPageLink?: string;\n /**\n * A method that returns a page of results.\n */\n getPage: (pageLink?: string) => Promise<{ page: TPage; nextPageLink?: string } | undefined>;\n /**\n * a function to implement the `byPage` method on the paged async iterator.\n */\n byPage?: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;\n\n /**\n * A function to extract elements from a page.\n */\n toElements?: (page: TPage) => TElement[];\n}\n\n/**\n * Options for the paging helper\n */\nexport interface BuildPagedAsyncIteratorOptions {\n itemName?: string;\n nextLinkName?: string;\n nextLinkMethod?: \"GET\" | \"POST\";\n apiVersion?: string;\n}\n\n/**\n * Helper to paginate results in a generic way and return a PagedAsyncIterableIterator\n */\nexport function buildPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n TResponse extends PathUncheckedResponse = PathUncheckedResponse,\n>(\n client: Client,\n getInitialResponse: () => PromiseLike<TResponse>,\n processResponseBody: (result: TResponse) => PromiseLike<unknown>,\n expectedStatuses: string[],\n options: BuildPagedAsyncIteratorOptions = {},\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const itemName = options.itemName ?? \"value\";\n const nextLinkName = options.nextLinkName ?? \"nextLink\";\n const nextLinkMethod = options.nextLinkMethod ?? \"GET\";\n const apiVersion = options.apiVersion;\n const pagedResult: PagedResult<TElement, TPage, TPageSettings> = {\n getPage: async (pageLink?: string) => {\n let result;\n if (pageLink === undefined) {\n result = await getInitialResponse();\n } else {\n const resolvedPageLink = apiVersion ? addApiVersionToUrl(pageLink, apiVersion) : pageLink;\n result =\n nextLinkMethod === \"POST\"\n ? await client.pathUnchecked(resolvedPageLink).post()\n : await client.pathUnchecked(resolvedPageLink).get();\n }\n checkPagingRequest(result, expectedStatuses);\n const results = await processResponseBody(result as TResponse);\n const nextLink = getNextLink(results, nextLinkName);\n const values = getElements<TElement>(results, itemName) as TPage;\n return {\n page: values,\n nextPageLink: nextLink,\n };\n },\n byPage: (settings?: TPageSettings) => {\n const { continuationToken } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken,\n });\n },\n };\n return getPagedAsyncIterator(pagedResult);\n}\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nfunction getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n ((settings?: TPageSettings) => {\n const { continuationToken } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken,\n });\n }),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TPageSettings extends PageSettings>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n for await (const page of pages) {\n yield* page as unknown as TElement[];\n }\n}\n\nasync function* getPageAsyncIterator<TElement, TPage, TPageSettings extends PageSettings>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n options: {\n pageLink?: string;\n } = {},\n): AsyncIterableIterator<ContinuablePage<TElement, TPage>> {\n const { pageLink } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink);\n if (!response) {\n return;\n }\n let result = response.page as ContinuablePage<TElement, TPage>;\n result.continuationToken = response.nextPageLink;\n yield result;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink);\n if (!response) {\n return;\n }\n result = response.page as ContinuablePage<TElement, TPage>;\n result.continuationToken = response.nextPageLink;\n yield result;\n }\n}\n\n/**\n * Gets for the value of nextLink in the body\n */\nfunction getNextLink(body: unknown, nextLinkName?: string): string | undefined {\n if (!nextLinkName) {\n return undefined;\n }\n\n const nextLink = (body as Record<string, unknown>)[nextLinkName];\n\n if (typeof nextLink !== \"string\" && typeof nextLink !== \"undefined\" && nextLink !== null) {\n throw new RestError(\n `Body Property ${nextLinkName} should be a string or undefined or null but got ${typeof nextLink}`,\n );\n }\n\n if (nextLink === null) {\n return undefined;\n }\n\n return nextLink;\n}\n\n/**\n * Gets the elements of the current request in the body.\n */\nfunction getElements<T = unknown>(body: unknown, itemName: string): T[] {\n const value = (body as Record<string, unknown>)[itemName] as T[];\n if (!Array.isArray(value)) {\n throw new RestError(\n `Couldn't paginate response\\n Body doesn't contain an array property with name: ${itemName}`,\n );\n }\n\n return value ?? [];\n}\n\n/**\n * Checks if a request failed\n */\nfunction checkPagingRequest(response: PathUncheckedResponse, expectedStatuses: string[]): void {\n if (!expectedStatuses.includes(response.status)) {\n throw createRestError(\n `Pagination failed with unexpected statusCode ${response.status}`,\n response,\n );\n }\n}\n\n/**\n * Adds the api-version query parameter on a URL if it's not present.\n * @param url - the URL to modify\n * @param apiVersion - the API version to set\n * @returns - the URL with the api-version query parameter set\n */\nfunction addApiVersionToUrl(url: string, apiVersion: string): string {\n // The base URL is only used for parsing and won't appear in the returned URL\n const urlObj = new URL(url, \"https://microsoft.com\");\n if (!urlObj.searchParams.get(\"api-version\")) {\n // Append one if there is no apiVersion\n return `${url}${\n Array.from(urlObj.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n return url;\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import type { PollerLike, OperationState, ResourceLocationConfig } from "@azure/core-lro";
2
+ import type { Client, PathUncheckedResponse } from "@azure-rest/core-client";
3
+ import type { AbortSignalLike } from "@azure/abort-controller";
4
+ export interface GetLongRunningPollerOptions<TResponse> {
5
+ /** Delay to wait until next poll, in milliseconds. */
6
+ updateIntervalInMs?: number;
7
+ /**
8
+ * The signal which can be used to abort requests.
9
+ */
10
+ abortSignal?: AbortSignalLike;
11
+ /**
12
+ * The potential location of the result of the LRO if specified by the LRO extension in the swagger.
13
+ */
14
+ resourceLocationConfig?: ResourceLocationConfig;
15
+ /**
16
+ * The original url of the LRO
17
+ * Should not be null when restoreFrom is set
18
+ */
19
+ initialRequestUrl?: string;
20
+ /**
21
+ * A serialized poller which can be used to resume an existing paused Long-Running-Operation.
22
+ */
23
+ restoreFrom?: string;
24
+ /**
25
+ * The function to get the initial response
26
+ */
27
+ getInitialResponse?: () => PromiseLike<TResponse>;
28
+ /**
29
+ * The api-version of the LRO
30
+ */
31
+ apiVersion?: string;
32
+ }
33
+ export declare function getLongRunningPoller<TResponse extends PathUncheckedResponse, TResult = void>(client: Client, processResponseBody: (result: TResponse) => Promise<TResult>, expectedStatuses: string[], options: GetLongRunningPollerOptions<TResponse>): PollerLike<OperationState<TResult>, TResult>;
34
+ //# sourceMappingURL=pollingHelpers.d.ts.map