@azure/search-documents 12.2.0-beta.2 → 12.2.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 (844) hide show
  1. package/LICENSE +3 -3
  2. package/README.md +208 -232
  3. package/dist/browser/base64-browser.d.mts.map +1 -0
  4. package/dist/browser/base64-browser.mjs.map +1 -0
  5. package/dist/browser/base64.d.ts +11 -0
  6. package/{dist-esm/src/base64.browser.js → dist/browser/base64.js} +1 -1
  7. package/dist/browser/errorModels.d.ts +50 -0
  8. package/dist/browser/errorModels.d.ts.map +1 -0
  9. package/dist/browser/errorModels.js.map +1 -0
  10. package/dist/browser/generated/data/index.d.ts +4 -0
  11. package/dist/browser/generated/data/index.d.ts.map +1 -0
  12. package/{dist-esm/src → dist/browser}/generated/data/index.js +3 -3
  13. package/dist/browser/generated/data/index.js.map +1 -0
  14. package/dist/browser/generated/data/models/index.d.ts +783 -0
  15. package/dist/browser/generated/data/models/index.d.ts.map +1 -0
  16. package/dist/browser/generated/data/models/index.js +80 -0
  17. package/dist/browser/generated/data/models/index.js.map +1 -0
  18. package/dist/browser/generated/data/models/mappers.d.ts +34 -0
  19. package/dist/browser/generated/data/models/mappers.d.ts.map +1 -0
  20. package/{dist-esm/src → dist/browser}/generated/data/models/mappers.js +18 -365
  21. package/dist/browser/generated/data/models/mappers.js.map +1 -0
  22. package/dist/browser/generated/data/models/parameters.d.ts +58 -0
  23. package/dist/browser/generated/data/models/parameters.d.ts.map +1 -0
  24. package/{dist-esm/src → dist/browser}/generated/data/models/parameters.js +1 -43
  25. package/dist/browser/generated/data/models/parameters.js.map +1 -0
  26. package/dist/browser/generated/data/operations/documents.d.ts +70 -0
  27. package/dist/browser/generated/data/operations/documents.d.ts.map +1 -0
  28. package/{dist-esm/src → dist/browser}/generated/data/operations/documents.js +9 -6
  29. package/dist/browser/generated/data/operations/documents.js.map +1 -0
  30. package/dist/browser/generated/data/operations/index.d.ts +2 -0
  31. package/dist/browser/generated/data/operations/index.d.ts.map +1 -0
  32. package/{dist-esm/src/generated/data/operationsInterfaces → dist/browser/generated/data/operations}/index.js +1 -1
  33. package/dist/browser/generated/data/operations/index.js.map +1 -0
  34. package/dist/browser/generated/data/operationsInterfaces/documents.d.ts +62 -0
  35. package/dist/browser/generated/data/operationsInterfaces/documents.d.ts.map +1 -0
  36. package/dist/browser/generated/data/operationsInterfaces/documents.js.map +1 -0
  37. package/dist/browser/generated/data/operationsInterfaces/index.d.ts +2 -0
  38. package/dist/browser/generated/data/operationsInterfaces/index.d.ts.map +1 -0
  39. package/{dist-esm/src/generated/data/operations → dist/browser/generated/data/operationsInterfaces}/index.js +1 -1
  40. package/dist/browser/generated/data/operationsInterfaces/index.js.map +1 -0
  41. package/dist/browser/generated/data/searchClient.d.ts +21 -0
  42. package/dist/browser/generated/data/searchClient.d.ts.map +1 -0
  43. package/{dist-esm/src → dist/browser}/generated/data/searchClient.js +15 -5
  44. package/dist/browser/generated/data/searchClient.js.map +1 -0
  45. package/dist/browser/generated/service/index.d.ts +4 -0
  46. package/dist/browser/generated/service/index.d.ts.map +1 -0
  47. package/dist/browser/generated/service/index.js +11 -0
  48. package/dist/browser/generated/service/index.js.map +1 -0
  49. package/dist/browser/generated/service/models/index.d.ts +4428 -0
  50. package/dist/browser/generated/service/models/index.d.ts.map +1 -0
  51. package/{dist-esm/src → dist/browser}/generated/service/models/index.js +44 -94
  52. package/dist/browser/generated/service/models/index.js.map +1 -0
  53. package/dist/browser/generated/service/models/mappers.d.ts +272 -0
  54. package/dist/browser/generated/service/models/mappers.d.ts.map +1 -0
  55. package/{dist-esm/src → dist/browser}/generated/service/models/mappers.js +794 -906
  56. package/dist/browser/generated/service/models/mappers.js.map +1 -0
  57. package/dist/browser/generated/service/models/parameters.d.ts +22 -0
  58. package/dist/browser/generated/service/models/parameters.d.ts.map +1 -0
  59. package/{dist-esm/src → dist/browser}/generated/service/models/parameters.js +1 -51
  60. package/dist/browser/generated/service/models/parameters.js.map +1 -0
  61. package/dist/browser/generated/service/operations/aliases.d.ts +2 -0
  62. package/dist/browser/generated/service/operations/aliases.d.ts.map +1 -0
  63. package/dist/browser/generated/service/operations/aliases.js +201 -0
  64. package/dist/browser/generated/service/operations/aliases.js.map +1 -0
  65. package/dist/browser/generated/service/operations/dataSources.d.ts +43 -0
  66. package/dist/browser/generated/service/operations/dataSources.d.ts.map +1 -0
  67. package/{dist-esm/src → dist/browser}/generated/service/operations/dataSources.js +4 -6
  68. package/dist/browser/generated/service/operations/dataSources.js.map +1 -0
  69. package/dist/browser/generated/service/operations/index.d.ts +6 -0
  70. package/dist/browser/generated/service/operations/index.d.ts.map +1 -0
  71. package/dist/browser/generated/service/operations/index.js +13 -0
  72. package/dist/browser/generated/service/operations/index.js.map +1 -0
  73. package/dist/browser/generated/service/operations/indexers.d.ts +61 -0
  74. package/dist/browser/generated/service/operations/indexers.d.ts.map +1 -0
  75. package/{dist-esm/src → dist/browser}/generated/service/operations/indexers.js +4 -31
  76. package/dist/browser/generated/service/operations/indexers.js.map +1 -0
  77. package/dist/browser/generated/service/operations/indexes.d.ts +58 -0
  78. package/dist/browser/generated/service/operations/indexes.d.ts.map +1 -0
  79. package/{dist-esm/src → dist/browser}/generated/service/operations/indexes.js +3 -2
  80. package/dist/browser/generated/service/operations/indexes.js.map +1 -0
  81. package/dist/browser/generated/service/operations/skillsets.d.ts +43 -0
  82. package/dist/browser/generated/service/operations/skillsets.d.ts.map +1 -0
  83. package/{dist-esm/src → dist/browser}/generated/service/operations/skillsets.js +4 -32
  84. package/dist/browser/generated/service/operations/skillsets.js.map +1 -0
  85. package/dist/browser/generated/service/operations/synonymMaps.d.ts +43 -0
  86. package/dist/browser/generated/service/operations/synonymMaps.d.ts.map +1 -0
  87. package/{dist-esm/src → dist/browser}/generated/service/operations/synonymMaps.js +3 -2
  88. package/dist/browser/generated/service/operations/synonymMaps.js.map +1 -0
  89. package/dist/browser/generated/service/operationsInterfaces/aliases.d.ts +2 -0
  90. package/dist/browser/generated/service/operationsInterfaces/aliases.d.ts.map +1 -0
  91. package/dist/browser/generated/service/operationsInterfaces/aliases.js +68 -0
  92. package/dist/browser/generated/service/operationsInterfaces/aliases.js.map +1 -0
  93. package/dist/browser/generated/service/operationsInterfaces/dataSources.d.ts +35 -0
  94. package/dist/browser/generated/service/operationsInterfaces/dataSources.d.ts.map +1 -0
  95. package/dist/browser/generated/service/operationsInterfaces/dataSources.js.map +1 -0
  96. package/dist/browser/generated/service/operationsInterfaces/index.d.ts +6 -0
  97. package/dist/browser/generated/service/operationsInterfaces/index.d.ts.map +1 -0
  98. package/dist/browser/generated/service/operationsInterfaces/index.js +13 -0
  99. package/dist/browser/generated/service/operationsInterfaces/index.js.map +1 -0
  100. package/dist/browser/generated/service/operationsInterfaces/indexers.d.ts +53 -0
  101. package/dist/browser/generated/service/operationsInterfaces/indexers.d.ts.map +1 -0
  102. package/dist/browser/generated/service/operationsInterfaces/indexers.js.map +1 -0
  103. package/dist/browser/generated/service/operationsInterfaces/indexes.d.ts +50 -0
  104. package/dist/browser/generated/service/operationsInterfaces/indexes.d.ts.map +1 -0
  105. package/dist/browser/generated/service/operationsInterfaces/indexes.js.map +1 -0
  106. package/dist/browser/generated/service/operationsInterfaces/skillsets.d.ts +35 -0
  107. package/dist/browser/generated/service/operationsInterfaces/skillsets.d.ts.map +1 -0
  108. package/dist/browser/generated/service/operationsInterfaces/skillsets.js.map +1 -0
  109. package/dist/browser/generated/service/operationsInterfaces/synonymMaps.d.ts +35 -0
  110. package/dist/browser/generated/service/operationsInterfaces/synonymMaps.d.ts.map +1 -0
  111. package/dist/browser/generated/service/operationsInterfaces/synonymMaps.js.map +1 -0
  112. package/dist/browser/generated/service/searchServiceClient.d.ts +28 -0
  113. package/dist/browser/generated/service/searchServiceClient.d.ts.map +1 -0
  114. package/{dist-esm/src → dist/browser}/generated/service/searchServiceClient.js +18 -8
  115. package/dist/browser/generated/service/searchServiceClient.js.map +1 -0
  116. package/dist/browser/geographyPoint.d.ts +27 -0
  117. package/dist/browser/geographyPoint.d.ts.map +1 -0
  118. package/{dist-esm/src → dist/browser}/geographyPoint.js +8 -0
  119. package/dist/browser/geographyPoint.js.map +1 -0
  120. package/dist/browser/index.d.ts +15 -0
  121. package/dist/browser/index.d.ts.map +1 -0
  122. package/dist/browser/index.js +16 -0
  123. package/dist/browser/index.js.map +1 -0
  124. package/dist/browser/indexDocumentsBatch.d.ts +41 -0
  125. package/dist/browser/indexDocumentsBatch.d.ts.map +1 -0
  126. package/{dist-esm/src → dist/browser}/indexDocumentsBatch.js +20 -4
  127. package/dist/browser/indexDocumentsBatch.js.map +1 -0
  128. package/dist/browser/indexModels.d.ts +722 -0
  129. package/dist/browser/indexModels.d.ts.map +1 -0
  130. package/dist/browser/indexModels.js.map +1 -0
  131. package/dist/browser/logger.d.ts +5 -0
  132. package/dist/browser/logger.d.ts.map +1 -0
  133. package/dist/browser/odata.d.ts +14 -0
  134. package/dist/browser/odata.d.ts.map +1 -0
  135. package/dist/browser/odataMetadataPolicy.d.ts +9 -0
  136. package/dist/browser/odataMetadataPolicy.d.ts.map +1 -0
  137. package/dist/browser/odataMetadataPolicy.js.map +1 -0
  138. package/dist/browser/package.json +3 -0
  139. package/dist/browser/searchApiKeyCredentialPolicy.d.ts +8 -0
  140. package/dist/browser/searchApiKeyCredentialPolicy.d.ts.map +1 -0
  141. package/dist/browser/searchApiKeyCredentialPolicy.js.map +1 -0
  142. package/dist/browser/searchAudience.d.ts +18 -0
  143. package/dist/browser/searchAudience.d.ts.map +1 -0
  144. package/dist/browser/searchClient.d.ts +266 -0
  145. package/dist/browser/searchClient.d.ts.map +1 -0
  146. package/{dist-esm/src → dist/browser}/searchClient.js +138 -138
  147. package/dist/browser/searchClient.js.map +1 -0
  148. package/dist/browser/searchIndexClient.d.ts +177 -0
  149. package/dist/browser/searchIndexClient.d.ts.map +1 -0
  150. package/{dist-esm/src → dist/browser}/searchIndexClient.js +118 -268
  151. package/dist/browser/searchIndexClient.js.map +1 -0
  152. package/dist/browser/searchIndexerClient.d.ts +187 -0
  153. package/dist/browser/searchIndexerClient.d.ts.map +1 -0
  154. package/{dist-esm/src → dist/browser}/searchIndexerClient.js +79 -93
  155. package/dist/browser/searchIndexerClient.js.map +1 -0
  156. package/dist/browser/searchIndexingBufferedSender.d.ts +193 -0
  157. package/dist/browser/searchIndexingBufferedSender.d.ts.map +1 -0
  158. package/{dist-esm/src → dist/browser}/searchIndexingBufferedSender.js +54 -15
  159. package/dist/browser/searchIndexingBufferedSender.js.map +1 -0
  160. package/dist/browser/serialization.d.ts +3 -0
  161. package/dist/browser/serialization.d.ts.map +1 -0
  162. package/{dist-esm/src → dist/browser}/serialization.js +2 -2
  163. package/dist/browser/serialization.js.map +1 -0
  164. package/dist/browser/serviceModels.d.ts +2181 -0
  165. package/dist/browser/serviceModels.d.ts.map +1 -0
  166. package/dist/browser/serviceModels.js.map +1 -0
  167. package/dist/browser/serviceUtils.d.ts +35 -0
  168. package/dist/browser/serviceUtils.d.ts.map +1 -0
  169. package/{dist-esm/src → dist/browser}/serviceUtils.js +139 -139
  170. package/dist/browser/serviceUtils.js.map +1 -0
  171. package/dist/browser/synonymMapHelper-browser.d.mts.map +1 -0
  172. package/dist/browser/synonymMapHelper-browser.mjs.map +1 -0
  173. package/dist/browser/synonymMapHelper.d.ts +11 -0
  174. package/{dist-esm/src/synonymMapHelper.browser.js → dist/browser/synonymMapHelper.js} +1 -1
  175. package/dist/browser/tracing.d.ts +7 -0
  176. package/dist/browser/tracing.d.ts.map +1 -0
  177. package/dist/browser/walk.d.ts +2 -0
  178. package/dist/browser/walk.d.ts.map +1 -0
  179. package/{dist-esm/src → dist/browser}/walk.js +9 -12
  180. package/dist/browser/walk.js.map +1 -0
  181. package/dist/commonjs/base64.d.ts +11 -0
  182. package/dist/commonjs/base64.d.ts.map +1 -0
  183. package/dist/commonjs/base64.js +21 -0
  184. package/dist/commonjs/base64.js.map +1 -0
  185. package/dist/commonjs/errorModels.d.ts +50 -0
  186. package/dist/commonjs/errorModels.d.ts.map +1 -0
  187. package/dist/commonjs/errorModels.js +5 -0
  188. package/dist/commonjs/errorModels.js.map +1 -0
  189. package/dist/commonjs/generated/data/index.d.ts +4 -0
  190. package/dist/commonjs/generated/data/index.d.ts.map +1 -0
  191. package/dist/commonjs/generated/data/index.js +16 -0
  192. package/dist/commonjs/generated/data/index.js.map +1 -0
  193. package/dist/commonjs/generated/data/models/index.d.ts +783 -0
  194. package/dist/commonjs/generated/data/models/index.d.ts.map +1 -0
  195. package/dist/commonjs/generated/data/models/index.js +83 -0
  196. package/dist/commonjs/generated/data/models/index.js.map +1 -0
  197. package/dist/commonjs/generated/data/models/mappers.d.ts +34 -0
  198. package/dist/commonjs/generated/data/models/mappers.d.ts.map +1 -0
  199. package/dist/commonjs/generated/data/models/mappers.js +1091 -0
  200. package/dist/commonjs/generated/data/models/mappers.js.map +1 -0
  201. package/dist/commonjs/generated/data/models/parameters.d.ts +58 -0
  202. package/dist/commonjs/generated/data/models/parameters.d.ts.map +1 -0
  203. package/dist/commonjs/generated/data/models/parameters.js +581 -0
  204. package/dist/commonjs/generated/data/models/parameters.js.map +1 -0
  205. package/dist/commonjs/generated/data/operations/documents.d.ts +70 -0
  206. package/dist/commonjs/generated/data/operations/documents.d.ts.map +1 -0
  207. package/dist/commonjs/generated/data/operations/documents.js +320 -0
  208. package/dist/commonjs/generated/data/operations/documents.js.map +1 -0
  209. package/dist/commonjs/generated/data/operations/index.d.ts +2 -0
  210. package/dist/commonjs/generated/data/operations/index.d.ts.map +1 -0
  211. package/dist/commonjs/generated/data/operations/index.js +12 -0
  212. package/dist/commonjs/generated/data/operations/index.js.map +1 -0
  213. package/dist/commonjs/generated/data/operationsInterfaces/documents.d.ts +62 -0
  214. package/dist/commonjs/generated/data/operationsInterfaces/documents.d.ts.map +1 -0
  215. package/dist/commonjs/generated/data/operationsInterfaces/documents.js +10 -0
  216. package/dist/commonjs/generated/data/operationsInterfaces/documents.js.map +1 -0
  217. package/dist/commonjs/generated/data/operationsInterfaces/index.d.ts +2 -0
  218. package/dist/commonjs/generated/data/operationsInterfaces/index.d.ts.map +1 -0
  219. package/dist/commonjs/generated/data/operationsInterfaces/index.js +12 -0
  220. package/dist/commonjs/generated/data/operationsInterfaces/index.js.map +1 -0
  221. package/dist/commonjs/generated/data/searchClient.d.ts +21 -0
  222. package/dist/commonjs/generated/data/searchClient.d.ts.map +1 -0
  223. package/dist/commonjs/generated/data/searchClient.js +93 -0
  224. package/dist/commonjs/generated/data/searchClient.js.map +1 -0
  225. package/dist/commonjs/generated/service/index.d.ts +4 -0
  226. package/dist/commonjs/generated/service/index.d.ts.map +1 -0
  227. package/dist/commonjs/generated/service/index.js +16 -0
  228. package/dist/commonjs/generated/service/index.js.map +1 -0
  229. package/dist/commonjs/generated/service/models/index.d.ts +4428 -0
  230. package/dist/commonjs/generated/service/models/index.d.ts.map +1 -0
  231. package/dist/commonjs/generated/service/models/index.js +1459 -0
  232. package/dist/commonjs/generated/service/models/index.js.map +1 -0
  233. package/dist/commonjs/generated/service/models/mappers.d.ts +272 -0
  234. package/dist/commonjs/generated/service/models/mappers.d.ts.map +1 -0
  235. package/dist/commonjs/generated/service/models/mappers.js +6077 -0
  236. package/dist/commonjs/generated/service/models/mappers.js.map +1 -0
  237. package/dist/commonjs/generated/service/models/parameters.d.ts +22 -0
  238. package/dist/commonjs/generated/service/models/parameters.d.ts.map +1 -0
  239. package/dist/commonjs/generated/service/models/parameters.js +176 -0
  240. package/dist/commonjs/generated/service/models/parameters.js.map +1 -0
  241. package/dist/commonjs/generated/service/operations/aliases.d.ts +2 -0
  242. package/dist/commonjs/generated/service/operations/aliases.d.ts.map +1 -0
  243. package/dist/commonjs/generated/service/operations/aliases.js +202 -0
  244. package/dist/commonjs/generated/service/operations/aliases.js.map +1 -0
  245. package/dist/commonjs/generated/service/operations/dataSources.d.ts +43 -0
  246. package/dist/commonjs/generated/service/operations/dataSources.d.ts.map +1 -0
  247. package/dist/commonjs/generated/service/operations/dataSources.js +165 -0
  248. package/dist/commonjs/generated/service/operations/dataSources.js.map +1 -0
  249. package/dist/commonjs/generated/service/operations/index.d.ts +6 -0
  250. package/dist/commonjs/generated/service/operations/index.d.ts.map +1 -0
  251. package/dist/commonjs/generated/service/operations/index.js +16 -0
  252. package/dist/commonjs/generated/service/operations/index.js.map +1 -0
  253. package/dist/commonjs/generated/service/operations/indexers.d.ts +61 -0
  254. package/dist/commonjs/generated/service/operations/indexers.d.ts.map +1 -0
  255. package/dist/commonjs/generated/service/operations/indexers.js +233 -0
  256. package/dist/commonjs/generated/service/operations/indexers.js.map +1 -0
  257. package/dist/commonjs/generated/service/operations/indexes.d.ts +58 -0
  258. package/dist/commonjs/generated/service/operations/indexes.d.ts.map +1 -0
  259. package/dist/commonjs/generated/service/operations/indexes.js +218 -0
  260. package/dist/commonjs/generated/service/operations/indexes.js.map +1 -0
  261. package/dist/commonjs/generated/service/operations/skillsets.d.ts +43 -0
  262. package/dist/commonjs/generated/service/operations/skillsets.d.ts.map +1 -0
  263. package/dist/commonjs/generated/service/operations/skillsets.js +165 -0
  264. package/dist/commonjs/generated/service/operations/skillsets.js.map +1 -0
  265. package/dist/commonjs/generated/service/operations/synonymMaps.d.ts +43 -0
  266. package/dist/commonjs/generated/service/operations/synonymMaps.d.ts.map +1 -0
  267. package/dist/commonjs/generated/service/operations/synonymMaps.js +165 -0
  268. package/dist/commonjs/generated/service/operations/synonymMaps.js.map +1 -0
  269. package/dist/commonjs/generated/service/operationsInterfaces/aliases.d.ts +2 -0
  270. package/dist/commonjs/generated/service/operationsInterfaces/aliases.d.ts.map +1 -0
  271. package/dist/commonjs/generated/service/operationsInterfaces/aliases.js +69 -0
  272. package/dist/commonjs/generated/service/operationsInterfaces/aliases.js.map +1 -0
  273. package/dist/commonjs/generated/service/operationsInterfaces/dataSources.d.ts +35 -0
  274. package/dist/commonjs/generated/service/operationsInterfaces/dataSources.d.ts.map +1 -0
  275. package/dist/commonjs/generated/service/operationsInterfaces/dataSources.js +10 -0
  276. package/dist/commonjs/generated/service/operationsInterfaces/dataSources.js.map +1 -0
  277. package/dist/commonjs/generated/service/operationsInterfaces/index.d.ts +6 -0
  278. package/dist/commonjs/generated/service/operationsInterfaces/index.d.ts.map +1 -0
  279. package/dist/commonjs/generated/service/operationsInterfaces/index.js +16 -0
  280. package/dist/commonjs/generated/service/operationsInterfaces/index.js.map +1 -0
  281. package/dist/commonjs/generated/service/operationsInterfaces/indexers.d.ts +53 -0
  282. package/dist/commonjs/generated/service/operationsInterfaces/indexers.d.ts.map +1 -0
  283. package/dist/commonjs/generated/service/operationsInterfaces/indexers.js +10 -0
  284. package/dist/commonjs/generated/service/operationsInterfaces/indexers.js.map +1 -0
  285. package/dist/commonjs/generated/service/operationsInterfaces/indexes.d.ts +50 -0
  286. package/dist/commonjs/generated/service/operationsInterfaces/indexes.d.ts.map +1 -0
  287. package/dist/commonjs/generated/service/operationsInterfaces/indexes.js +10 -0
  288. package/dist/commonjs/generated/service/operationsInterfaces/indexes.js.map +1 -0
  289. package/dist/commonjs/generated/service/operationsInterfaces/skillsets.d.ts +35 -0
  290. package/dist/commonjs/generated/service/operationsInterfaces/skillsets.d.ts.map +1 -0
  291. package/dist/commonjs/generated/service/operationsInterfaces/skillsets.js +10 -0
  292. package/dist/commonjs/generated/service/operationsInterfaces/skillsets.js.map +1 -0
  293. package/dist/commonjs/generated/service/operationsInterfaces/synonymMaps.d.ts +35 -0
  294. package/dist/commonjs/generated/service/operationsInterfaces/synonymMaps.d.ts.map +1 -0
  295. package/dist/commonjs/generated/service/operationsInterfaces/synonymMaps.js +10 -0
  296. package/dist/commonjs/generated/service/operationsInterfaces/synonymMaps.js.map +1 -0
  297. package/dist/commonjs/generated/service/searchServiceClient.d.ts +28 -0
  298. package/dist/commonjs/generated/service/searchServiceClient.d.ts.map +1 -0
  299. package/dist/commonjs/generated/service/searchServiceClient.js +121 -0
  300. package/dist/commonjs/generated/service/searchServiceClient.js.map +1 -0
  301. package/dist/commonjs/geographyPoint.d.ts +27 -0
  302. package/dist/commonjs/geographyPoint.d.ts.map +1 -0
  303. package/dist/commonjs/geographyPoint.js +39 -0
  304. package/dist/commonjs/geographyPoint.js.map +1 -0
  305. package/dist/commonjs/index.d.ts +15 -0
  306. package/dist/commonjs/index.d.ts.map +1 -0
  307. package/dist/commonjs/index.js +81 -0
  308. package/dist/commonjs/index.js.map +1 -0
  309. package/dist/commonjs/indexDocumentsBatch.d.ts +41 -0
  310. package/dist/commonjs/indexDocumentsBatch.d.ts.map +1 -0
  311. package/dist/commonjs/indexDocumentsBatch.js +83 -0
  312. package/dist/commonjs/indexDocumentsBatch.js.map +1 -0
  313. package/dist/commonjs/indexModels.d.ts +722 -0
  314. package/dist/commonjs/indexModels.d.ts.map +1 -0
  315. package/dist/commonjs/indexModels.js +5 -0
  316. package/dist/commonjs/indexModels.js.map +1 -0
  317. package/dist/commonjs/logger.d.ts +5 -0
  318. package/dist/commonjs/logger.d.ts.map +1 -0
  319. package/dist/commonjs/logger.js +11 -0
  320. package/dist/commonjs/logger.js.map +1 -0
  321. package/dist/commonjs/odata.d.ts +14 -0
  322. package/dist/commonjs/odata.d.ts.map +1 -0
  323. package/dist/commonjs/odata.js +50 -0
  324. package/dist/commonjs/odata.js.map +1 -0
  325. package/dist/commonjs/odataMetadataPolicy.d.ts +9 -0
  326. package/dist/commonjs/odataMetadataPolicy.d.ts.map +1 -0
  327. package/dist/commonjs/odataMetadataPolicy.js +21 -0
  328. package/dist/commonjs/odataMetadataPolicy.js.map +1 -0
  329. package/dist/commonjs/package.json +3 -0
  330. package/dist/commonjs/searchApiKeyCredentialPolicy.d.ts +8 -0
  331. package/dist/commonjs/searchApiKeyCredentialPolicy.d.ts.map +1 -0
  332. package/dist/commonjs/searchApiKeyCredentialPolicy.js +23 -0
  333. package/dist/commonjs/searchApiKeyCredentialPolicy.js.map +1 -0
  334. package/dist/commonjs/searchAudience.d.ts +18 -0
  335. package/dist/commonjs/searchAudience.d.ts.map +1 -0
  336. package/dist/commonjs/searchAudience.js +24 -0
  337. package/dist/commonjs/searchAudience.js.map +1 -0
  338. package/dist/commonjs/searchClient.d.ts +266 -0
  339. package/dist/commonjs/searchClient.d.ts.map +1 -0
  340. package/dist/commonjs/searchClient.js +669 -0
  341. package/dist/commonjs/searchClient.js.map +1 -0
  342. package/dist/commonjs/searchIndexClient.d.ts +177 -0
  343. package/dist/commonjs/searchIndexClient.d.ts.map +1 -0
  344. package/dist/commonjs/searchIndexClient.js +514 -0
  345. package/dist/commonjs/searchIndexClient.js.map +1 -0
  346. package/dist/commonjs/searchIndexerClient.d.ts +187 -0
  347. package/dist/commonjs/searchIndexerClient.d.ts.map +1 -0
  348. package/dist/commonjs/searchIndexerClient.js +591 -0
  349. package/dist/commonjs/searchIndexerClient.js.map +1 -0
  350. package/dist/commonjs/searchIndexingBufferedSender.d.ts +193 -0
  351. package/dist/commonjs/searchIndexingBufferedSender.d.ts.map +1 -0
  352. package/dist/commonjs/searchIndexingBufferedSender.js +327 -0
  353. package/dist/commonjs/searchIndexingBufferedSender.js.map +1 -0
  354. package/dist/commonjs/serialization.d.ts +3 -0
  355. package/dist/commonjs/serialization.d.ts.map +1 -0
  356. package/dist/commonjs/serialization.js +149 -0
  357. package/dist/commonjs/serialization.js.map +1 -0
  358. package/dist/commonjs/serviceModels.d.ts +2181 -0
  359. package/dist/commonjs/serviceModels.d.ts.map +1 -0
  360. package/dist/commonjs/serviceModels.js +658 -0
  361. package/dist/commonjs/serviceModels.js.map +1 -0
  362. package/dist/commonjs/serviceUtils.d.ts +35 -0
  363. package/dist/commonjs/serviceUtils.d.ts.map +1 -0
  364. package/dist/commonjs/serviceUtils.js +548 -0
  365. package/dist/commonjs/serviceUtils.js.map +1 -0
  366. package/dist/commonjs/synonymMapHelper.d.ts +10 -0
  367. package/dist/commonjs/synonymMapHelper.d.ts.map +1 -0
  368. package/dist/commonjs/synonymMapHelper.js +28 -0
  369. package/dist/commonjs/synonymMapHelper.js.map +1 -0
  370. package/dist/commonjs/tracing.d.ts +7 -0
  371. package/dist/commonjs/tracing.d.ts.map +1 -0
  372. package/dist/commonjs/tracing.js +16 -0
  373. package/dist/commonjs/tracing.js.map +1 -0
  374. package/dist/commonjs/tsdoc-metadata.json +11 -0
  375. package/dist/commonjs/walk.d.ts +2 -0
  376. package/dist/commonjs/walk.d.ts.map +1 -0
  377. package/dist/commonjs/walk.js +79 -0
  378. package/dist/commonjs/walk.js.map +1 -0
  379. package/dist/esm/base64.d.ts +11 -0
  380. package/dist/esm/base64.d.ts.map +1 -0
  381. package/dist/esm/errorModels.d.ts +50 -0
  382. package/dist/esm/errorModels.d.ts.map +1 -0
  383. package/dist/esm/errorModels.js +4 -0
  384. package/dist/esm/errorModels.js.map +1 -0
  385. package/dist/esm/generated/data/index.d.ts +4 -0
  386. package/dist/esm/generated/data/index.d.ts.map +1 -0
  387. package/{dist-esm/src/generated/service → dist/esm/generated/data}/index.js +3 -3
  388. package/dist/esm/generated/data/index.js.map +1 -0
  389. package/dist/esm/generated/data/models/index.d.ts +783 -0
  390. package/dist/esm/generated/data/models/index.d.ts.map +1 -0
  391. package/dist/esm/generated/data/models/index.js +80 -0
  392. package/dist/esm/generated/data/models/index.js.map +1 -0
  393. package/dist/esm/generated/data/models/mappers.d.ts +34 -0
  394. package/dist/esm/generated/data/models/mappers.d.ts.map +1 -0
  395. package/dist/esm/generated/data/models/mappers.js +1088 -0
  396. package/dist/esm/generated/data/models/mappers.js.map +1 -0
  397. package/dist/esm/generated/data/models/parameters.d.ts +58 -0
  398. package/dist/esm/generated/data/models/parameters.d.ts.map +1 -0
  399. package/dist/esm/generated/data/models/parameters.js +577 -0
  400. package/dist/esm/generated/data/models/parameters.js.map +1 -0
  401. package/dist/esm/generated/data/operations/documents.d.ts +70 -0
  402. package/dist/esm/generated/data/operations/documents.d.ts.map +1 -0
  403. package/dist/esm/generated/data/operations/documents.js +315 -0
  404. package/dist/esm/generated/data/operations/documents.js.map +1 -0
  405. package/dist/esm/generated/data/operations/index.d.ts +2 -0
  406. package/dist/esm/generated/data/operations/index.d.ts.map +1 -0
  407. package/dist/esm/generated/data/operations/index.js +9 -0
  408. package/dist/esm/generated/data/operations/index.js.map +1 -0
  409. package/dist/esm/generated/data/operationsInterfaces/documents.d.ts +62 -0
  410. package/dist/esm/generated/data/operationsInterfaces/documents.d.ts.map +1 -0
  411. package/dist/esm/generated/data/operationsInterfaces/documents.js +9 -0
  412. package/dist/esm/generated/data/operationsInterfaces/documents.js.map +1 -0
  413. package/dist/esm/generated/data/operationsInterfaces/index.d.ts +2 -0
  414. package/dist/esm/generated/data/operationsInterfaces/index.d.ts.map +1 -0
  415. package/dist/esm/generated/data/operationsInterfaces/index.js +9 -0
  416. package/dist/esm/generated/data/operationsInterfaces/index.js.map +1 -0
  417. package/dist/esm/generated/data/searchClient.d.ts +21 -0
  418. package/dist/esm/generated/data/searchClient.d.ts.map +1 -0
  419. package/dist/esm/generated/data/searchClient.js +88 -0
  420. package/dist/esm/generated/data/searchClient.js.map +1 -0
  421. package/dist/esm/generated/service/index.d.ts +4 -0
  422. package/dist/esm/generated/service/index.d.ts.map +1 -0
  423. package/dist/esm/generated/service/index.js +11 -0
  424. package/dist/esm/generated/service/index.js.map +1 -0
  425. package/dist/esm/generated/service/models/index.d.ts +4428 -0
  426. package/dist/esm/generated/service/models/index.d.ts.map +1 -0
  427. package/dist/esm/generated/service/models/index.js +1456 -0
  428. package/dist/esm/generated/service/models/index.js.map +1 -0
  429. package/dist/esm/generated/service/models/mappers.d.ts +272 -0
  430. package/dist/esm/generated/service/models/mappers.d.ts.map +1 -0
  431. package/dist/esm/generated/service/models/mappers.js +6071 -0
  432. package/dist/esm/generated/service/models/mappers.js.map +1 -0
  433. package/dist/esm/generated/service/models/parameters.d.ts +22 -0
  434. package/dist/esm/generated/service/models/parameters.d.ts.map +1 -0
  435. package/dist/esm/generated/service/models/parameters.js +173 -0
  436. package/dist/esm/generated/service/models/parameters.js.map +1 -0
  437. package/dist/esm/generated/service/operations/aliases.d.ts +2 -0
  438. package/dist/esm/generated/service/operations/aliases.d.ts.map +1 -0
  439. package/dist/esm/generated/service/operations/aliases.js +201 -0
  440. package/dist/esm/generated/service/operations/aliases.js.map +1 -0
  441. package/dist/esm/generated/service/operations/dataSources.d.ts +43 -0
  442. package/dist/esm/generated/service/operations/dataSources.d.ts.map +1 -0
  443. package/dist/esm/generated/service/operations/dataSources.js +160 -0
  444. package/dist/esm/generated/service/operations/dataSources.js.map +1 -0
  445. package/dist/esm/generated/service/operations/index.d.ts +6 -0
  446. package/dist/esm/generated/service/operations/index.d.ts.map +1 -0
  447. package/dist/esm/generated/service/operations/index.js +13 -0
  448. package/dist/esm/generated/service/operations/index.js.map +1 -0
  449. package/dist/esm/generated/service/operations/indexers.d.ts +61 -0
  450. package/dist/esm/generated/service/operations/indexers.d.ts.map +1 -0
  451. package/dist/esm/generated/service/operations/indexers.js +228 -0
  452. package/dist/esm/generated/service/operations/indexers.js.map +1 -0
  453. package/dist/esm/generated/service/operations/indexes.d.ts +58 -0
  454. package/dist/esm/generated/service/operations/indexes.d.ts.map +1 -0
  455. package/dist/esm/generated/service/operations/indexes.js +213 -0
  456. package/dist/esm/generated/service/operations/indexes.js.map +1 -0
  457. package/dist/esm/generated/service/operations/skillsets.d.ts +43 -0
  458. package/dist/esm/generated/service/operations/skillsets.d.ts.map +1 -0
  459. package/{dist-esm/src/generated/service/operations/aliases.js → dist/esm/generated/service/operations/skillsets.js} +71 -71
  460. package/dist/esm/generated/service/operations/skillsets.js.map +1 -0
  461. package/dist/esm/generated/service/operations/synonymMaps.d.ts +43 -0
  462. package/dist/esm/generated/service/operations/synonymMaps.d.ts.map +1 -0
  463. package/dist/esm/generated/service/operations/synonymMaps.js +160 -0
  464. package/dist/esm/generated/service/operations/synonymMaps.js.map +1 -0
  465. package/dist/esm/generated/service/operationsInterfaces/aliases.d.ts +2 -0
  466. package/dist/esm/generated/service/operationsInterfaces/aliases.d.ts.map +1 -0
  467. package/dist/esm/generated/service/operationsInterfaces/aliases.js +68 -0
  468. package/dist/esm/generated/service/operationsInterfaces/aliases.js.map +1 -0
  469. package/dist/esm/generated/service/operationsInterfaces/dataSources.d.ts +35 -0
  470. package/dist/esm/generated/service/operationsInterfaces/dataSources.d.ts.map +1 -0
  471. package/dist/esm/generated/service/operationsInterfaces/dataSources.js +9 -0
  472. package/dist/esm/generated/service/operationsInterfaces/dataSources.js.map +1 -0
  473. package/dist/esm/generated/service/operationsInterfaces/index.d.ts +6 -0
  474. package/dist/esm/generated/service/operationsInterfaces/index.d.ts.map +1 -0
  475. package/dist/esm/generated/service/operationsInterfaces/index.js +13 -0
  476. package/dist/esm/generated/service/operationsInterfaces/index.js.map +1 -0
  477. package/dist/esm/generated/service/operationsInterfaces/indexers.d.ts +53 -0
  478. package/dist/esm/generated/service/operationsInterfaces/indexers.d.ts.map +1 -0
  479. package/dist/esm/generated/service/operationsInterfaces/indexers.js +9 -0
  480. package/dist/esm/generated/service/operationsInterfaces/indexers.js.map +1 -0
  481. package/dist/esm/generated/service/operationsInterfaces/indexes.d.ts +50 -0
  482. package/dist/esm/generated/service/operationsInterfaces/indexes.d.ts.map +1 -0
  483. package/{dist-esm/src/generated/service/operationsInterfaces/aliases.js → dist/esm/generated/service/operationsInterfaces/indexes.js} +1 -1
  484. package/dist/esm/generated/service/operationsInterfaces/indexes.js.map +1 -0
  485. package/dist/esm/generated/service/operationsInterfaces/skillsets.d.ts +35 -0
  486. package/dist/esm/generated/service/operationsInterfaces/skillsets.d.ts.map +1 -0
  487. package/dist/esm/generated/service/operationsInterfaces/skillsets.js +9 -0
  488. package/dist/esm/generated/service/operationsInterfaces/skillsets.js.map +1 -0
  489. package/dist/esm/generated/service/operationsInterfaces/synonymMaps.d.ts +35 -0
  490. package/dist/esm/generated/service/operationsInterfaces/synonymMaps.d.ts.map +1 -0
  491. package/dist/esm/generated/service/operationsInterfaces/synonymMaps.js +9 -0
  492. package/dist/esm/generated/service/operationsInterfaces/synonymMaps.js.map +1 -0
  493. package/dist/esm/generated/service/searchServiceClient.d.ts +28 -0
  494. package/dist/esm/generated/service/searchServiceClient.d.ts.map +1 -0
  495. package/dist/esm/generated/service/searchServiceClient.js +116 -0
  496. package/dist/esm/generated/service/searchServiceClient.js.map +1 -0
  497. package/dist/esm/geographyPoint.d.ts +27 -0
  498. package/dist/esm/geographyPoint.d.ts.map +1 -0
  499. package/dist/esm/geographyPoint.js +36 -0
  500. package/dist/esm/geographyPoint.js.map +1 -0
  501. package/dist/esm/index.d.ts +15 -0
  502. package/dist/esm/index.d.ts.map +1 -0
  503. package/dist/esm/index.js +16 -0
  504. package/dist/esm/index.js.map +1 -0
  505. package/dist/esm/indexDocumentsBatch.d.ts +41 -0
  506. package/dist/esm/indexDocumentsBatch.d.ts.map +1 -0
  507. package/dist/esm/indexDocumentsBatch.js +79 -0
  508. package/dist/esm/indexDocumentsBatch.js.map +1 -0
  509. package/dist/esm/indexModels.d.ts +722 -0
  510. package/dist/esm/indexModels.d.ts.map +1 -0
  511. package/dist/esm/indexModels.js +4 -0
  512. package/dist/esm/indexModels.js.map +1 -0
  513. package/dist/esm/logger.d.ts +5 -0
  514. package/dist/esm/logger.d.ts.map +1 -0
  515. package/dist/esm/logger.js +8 -0
  516. package/dist/esm/logger.js.map +1 -0
  517. package/dist/esm/odata.d.ts +14 -0
  518. package/dist/esm/odata.d.ts.map +1 -0
  519. package/dist/esm/odata.js +47 -0
  520. package/dist/esm/odata.js.map +1 -0
  521. package/dist/esm/odataMetadataPolicy.d.ts +9 -0
  522. package/dist/esm/odataMetadataPolicy.d.ts.map +1 -0
  523. package/dist/esm/odataMetadataPolicy.js +18 -0
  524. package/dist/esm/odataMetadataPolicy.js.map +1 -0
  525. package/dist/esm/package.json +3 -0
  526. package/dist/esm/searchApiKeyCredentialPolicy.d.ts +8 -0
  527. package/dist/esm/searchApiKeyCredentialPolicy.d.ts.map +1 -0
  528. package/dist/esm/searchApiKeyCredentialPolicy.js +20 -0
  529. package/dist/esm/searchApiKeyCredentialPolicy.js.map +1 -0
  530. package/dist/esm/searchAudience.d.ts +18 -0
  531. package/dist/esm/searchAudience.d.ts.map +1 -0
  532. package/dist/esm/searchAudience.js +21 -0
  533. package/dist/esm/searchAudience.js.map +1 -0
  534. package/dist/esm/searchClient.d.ts +266 -0
  535. package/dist/esm/searchClient.d.ts.map +1 -0
  536. package/dist/esm/searchClient.js +664 -0
  537. package/dist/esm/searchClient.js.map +1 -0
  538. package/dist/esm/searchIndexClient.d.ts +177 -0
  539. package/dist/esm/searchIndexClient.d.ts.map +1 -0
  540. package/dist/esm/searchIndexClient.js +509 -0
  541. package/dist/esm/searchIndexClient.js.map +1 -0
  542. package/dist/esm/searchIndexerClient.d.ts +187 -0
  543. package/dist/esm/searchIndexerClient.d.ts.map +1 -0
  544. package/dist/esm/searchIndexerClient.js +586 -0
  545. package/dist/esm/searchIndexerClient.js.map +1 -0
  546. package/dist/esm/searchIndexingBufferedSender.d.ts +193 -0
  547. package/dist/esm/searchIndexingBufferedSender.d.ts.map +1 -0
  548. package/dist/esm/searchIndexingBufferedSender.js +322 -0
  549. package/dist/esm/searchIndexingBufferedSender.js.map +1 -0
  550. package/dist/esm/serialization.d.ts +3 -0
  551. package/dist/esm/serialization.d.ts.map +1 -0
  552. package/dist/esm/serialization.js +144 -0
  553. package/dist/esm/serialization.js.map +1 -0
  554. package/dist/esm/serviceModels.d.ts +2181 -0
  555. package/dist/esm/serviceModels.d.ts.map +1 -0
  556. package/dist/esm/serviceModels.js +654 -0
  557. package/dist/esm/serviceModels.js.map +1 -0
  558. package/dist/esm/serviceUtils.d.ts +35 -0
  559. package/dist/esm/serviceUtils.d.ts.map +1 -0
  560. package/dist/esm/serviceUtils.js +518 -0
  561. package/dist/esm/serviceUtils.js.map +1 -0
  562. package/dist/esm/synonymMapHelper.d.ts +10 -0
  563. package/dist/esm/synonymMapHelper.d.ts.map +1 -0
  564. package/{dist-esm/src → dist/esm}/synonymMapHelper.js.map +1 -1
  565. package/dist/esm/tracing.d.ts +7 -0
  566. package/dist/esm/tracing.d.ts.map +1 -0
  567. package/dist/esm/tracing.js +13 -0
  568. package/dist/esm/tracing.js.map +1 -0
  569. package/dist/esm/walk.d.ts +2 -0
  570. package/dist/esm/walk.d.ts.map +1 -0
  571. package/dist/esm/walk.js +76 -0
  572. package/dist/esm/walk.js.map +1 -0
  573. package/dist/react-native/base64.d.ts +11 -0
  574. package/dist/react-native/base64.d.ts.map +1 -0
  575. package/dist/react-native/base64.js +17 -0
  576. package/dist/react-native/base64.js.map +1 -0
  577. package/dist/react-native/errorModels.d.ts +50 -0
  578. package/dist/react-native/errorModels.d.ts.map +1 -0
  579. package/dist/react-native/errorModels.js +4 -0
  580. package/dist/react-native/errorModels.js.map +1 -0
  581. package/dist/react-native/generated/data/index.d.ts +4 -0
  582. package/dist/react-native/generated/data/index.d.ts.map +1 -0
  583. package/dist/react-native/generated/data/index.js +11 -0
  584. package/dist/react-native/generated/data/index.js.map +1 -0
  585. package/dist/react-native/generated/data/models/index.d.ts +783 -0
  586. package/dist/react-native/generated/data/models/index.d.ts.map +1 -0
  587. package/dist/react-native/generated/data/models/index.js +80 -0
  588. package/dist/react-native/generated/data/models/index.js.map +1 -0
  589. package/dist/react-native/generated/data/models/mappers.d.ts +34 -0
  590. package/dist/react-native/generated/data/models/mappers.d.ts.map +1 -0
  591. package/dist/react-native/generated/data/models/mappers.js +1088 -0
  592. package/dist/react-native/generated/data/models/mappers.js.map +1 -0
  593. package/dist/react-native/generated/data/models/parameters.d.ts +58 -0
  594. package/dist/react-native/generated/data/models/parameters.d.ts.map +1 -0
  595. package/dist/react-native/generated/data/models/parameters.js +577 -0
  596. package/dist/react-native/generated/data/models/parameters.js.map +1 -0
  597. package/dist/react-native/generated/data/operations/documents.d.ts +70 -0
  598. package/dist/react-native/generated/data/operations/documents.d.ts.map +1 -0
  599. package/dist/react-native/generated/data/operations/documents.js +315 -0
  600. package/dist/react-native/generated/data/operations/documents.js.map +1 -0
  601. package/dist/react-native/generated/data/operations/index.d.ts +2 -0
  602. package/dist/react-native/generated/data/operations/index.d.ts.map +1 -0
  603. package/dist/react-native/generated/data/operations/index.js +9 -0
  604. package/dist/react-native/generated/data/operations/index.js.map +1 -0
  605. package/dist/react-native/generated/data/operationsInterfaces/documents.d.ts +62 -0
  606. package/dist/react-native/generated/data/operationsInterfaces/documents.d.ts.map +1 -0
  607. package/dist/react-native/generated/data/operationsInterfaces/documents.js +9 -0
  608. package/dist/react-native/generated/data/operationsInterfaces/documents.js.map +1 -0
  609. package/dist/react-native/generated/data/operationsInterfaces/index.d.ts +2 -0
  610. package/dist/react-native/generated/data/operationsInterfaces/index.d.ts.map +1 -0
  611. package/dist/react-native/generated/data/operationsInterfaces/index.js +9 -0
  612. package/dist/react-native/generated/data/operationsInterfaces/index.js.map +1 -0
  613. package/dist/react-native/generated/data/searchClient.d.ts +21 -0
  614. package/dist/react-native/generated/data/searchClient.d.ts.map +1 -0
  615. package/dist/react-native/generated/data/searchClient.js +88 -0
  616. package/dist/react-native/generated/data/searchClient.js.map +1 -0
  617. package/dist/react-native/generated/service/index.d.ts +4 -0
  618. package/dist/react-native/generated/service/index.d.ts.map +1 -0
  619. package/dist/react-native/generated/service/index.js +11 -0
  620. package/dist/react-native/generated/service/index.js.map +1 -0
  621. package/dist/react-native/generated/service/models/index.d.ts +4428 -0
  622. package/dist/react-native/generated/service/models/index.d.ts.map +1 -0
  623. package/dist/react-native/generated/service/models/index.js +1456 -0
  624. package/dist/react-native/generated/service/models/index.js.map +1 -0
  625. package/dist/react-native/generated/service/models/mappers.d.ts +272 -0
  626. package/dist/react-native/generated/service/models/mappers.d.ts.map +1 -0
  627. package/dist/react-native/generated/service/models/mappers.js +6071 -0
  628. package/dist/react-native/generated/service/models/mappers.js.map +1 -0
  629. package/dist/react-native/generated/service/models/parameters.d.ts +22 -0
  630. package/dist/react-native/generated/service/models/parameters.d.ts.map +1 -0
  631. package/dist/react-native/generated/service/models/parameters.js +173 -0
  632. package/dist/react-native/generated/service/models/parameters.js.map +1 -0
  633. package/dist/react-native/generated/service/operations/aliases.d.ts +2 -0
  634. package/dist/react-native/generated/service/operations/aliases.d.ts.map +1 -0
  635. package/dist/react-native/generated/service/operations/aliases.js +201 -0
  636. package/dist/react-native/generated/service/operations/aliases.js.map +1 -0
  637. package/dist/react-native/generated/service/operations/dataSources.d.ts +43 -0
  638. package/dist/react-native/generated/service/operations/dataSources.d.ts.map +1 -0
  639. package/dist/react-native/generated/service/operations/dataSources.js +160 -0
  640. package/dist/react-native/generated/service/operations/dataSources.js.map +1 -0
  641. package/dist/react-native/generated/service/operations/index.d.ts +6 -0
  642. package/dist/react-native/generated/service/operations/index.d.ts.map +1 -0
  643. package/dist/react-native/generated/service/operations/index.js +13 -0
  644. package/dist/react-native/generated/service/operations/index.js.map +1 -0
  645. package/dist/react-native/generated/service/operations/indexers.d.ts +61 -0
  646. package/dist/react-native/generated/service/operations/indexers.d.ts.map +1 -0
  647. package/dist/react-native/generated/service/operations/indexers.js +228 -0
  648. package/dist/react-native/generated/service/operations/indexers.js.map +1 -0
  649. package/dist/react-native/generated/service/operations/indexes.d.ts +58 -0
  650. package/dist/react-native/generated/service/operations/indexes.d.ts.map +1 -0
  651. package/dist/react-native/generated/service/operations/indexes.js +213 -0
  652. package/dist/react-native/generated/service/operations/indexes.js.map +1 -0
  653. package/dist/react-native/generated/service/operations/skillsets.d.ts +43 -0
  654. package/dist/react-native/generated/service/operations/skillsets.d.ts.map +1 -0
  655. package/dist/react-native/generated/service/operations/skillsets.js +160 -0
  656. package/dist/react-native/generated/service/operations/skillsets.js.map +1 -0
  657. package/dist/react-native/generated/service/operations/synonymMaps.d.ts +43 -0
  658. package/dist/react-native/generated/service/operations/synonymMaps.d.ts.map +1 -0
  659. package/dist/react-native/generated/service/operations/synonymMaps.js +160 -0
  660. package/dist/react-native/generated/service/operations/synonymMaps.js.map +1 -0
  661. package/dist/react-native/generated/service/operationsInterfaces/aliases.d.ts +2 -0
  662. package/dist/react-native/generated/service/operationsInterfaces/aliases.d.ts.map +1 -0
  663. package/dist/react-native/generated/service/operationsInterfaces/aliases.js +68 -0
  664. package/dist/react-native/generated/service/operationsInterfaces/aliases.js.map +1 -0
  665. package/dist/react-native/generated/service/operationsInterfaces/dataSources.d.ts +35 -0
  666. package/dist/react-native/generated/service/operationsInterfaces/dataSources.d.ts.map +1 -0
  667. package/dist/react-native/generated/service/operationsInterfaces/dataSources.js +9 -0
  668. package/dist/react-native/generated/service/operationsInterfaces/dataSources.js.map +1 -0
  669. package/dist/react-native/generated/service/operationsInterfaces/index.d.ts +6 -0
  670. package/dist/react-native/generated/service/operationsInterfaces/index.d.ts.map +1 -0
  671. package/dist/react-native/generated/service/operationsInterfaces/index.js +13 -0
  672. package/dist/react-native/generated/service/operationsInterfaces/index.js.map +1 -0
  673. package/dist/react-native/generated/service/operationsInterfaces/indexers.d.ts +53 -0
  674. package/dist/react-native/generated/service/operationsInterfaces/indexers.d.ts.map +1 -0
  675. package/dist/react-native/generated/service/operationsInterfaces/indexers.js +9 -0
  676. package/dist/react-native/generated/service/operationsInterfaces/indexers.js.map +1 -0
  677. package/dist/react-native/generated/service/operationsInterfaces/indexes.d.ts +50 -0
  678. package/dist/react-native/generated/service/operationsInterfaces/indexes.d.ts.map +1 -0
  679. package/dist/react-native/generated/service/operationsInterfaces/indexes.js +9 -0
  680. package/dist/react-native/generated/service/operationsInterfaces/indexes.js.map +1 -0
  681. package/dist/react-native/generated/service/operationsInterfaces/skillsets.d.ts +35 -0
  682. package/dist/react-native/generated/service/operationsInterfaces/skillsets.d.ts.map +1 -0
  683. package/dist/react-native/generated/service/operationsInterfaces/skillsets.js +9 -0
  684. package/dist/react-native/generated/service/operationsInterfaces/skillsets.js.map +1 -0
  685. package/dist/react-native/generated/service/operationsInterfaces/synonymMaps.d.ts +35 -0
  686. package/dist/react-native/generated/service/operationsInterfaces/synonymMaps.d.ts.map +1 -0
  687. package/dist/react-native/generated/service/operationsInterfaces/synonymMaps.js +9 -0
  688. package/dist/react-native/generated/service/operationsInterfaces/synonymMaps.js.map +1 -0
  689. package/dist/react-native/generated/service/searchServiceClient.d.ts +28 -0
  690. package/dist/react-native/generated/service/searchServiceClient.d.ts.map +1 -0
  691. package/dist/react-native/generated/service/searchServiceClient.js +116 -0
  692. package/dist/react-native/generated/service/searchServiceClient.js.map +1 -0
  693. package/dist/react-native/geographyPoint.d.ts +27 -0
  694. package/dist/react-native/geographyPoint.d.ts.map +1 -0
  695. package/dist/react-native/geographyPoint.js +36 -0
  696. package/dist/react-native/geographyPoint.js.map +1 -0
  697. package/dist/react-native/index.d.ts +15 -0
  698. package/dist/react-native/index.d.ts.map +1 -0
  699. package/dist/react-native/index.js +16 -0
  700. package/dist/react-native/index.js.map +1 -0
  701. package/dist/react-native/indexDocumentsBatch.d.ts +41 -0
  702. package/dist/react-native/indexDocumentsBatch.d.ts.map +1 -0
  703. package/dist/react-native/indexDocumentsBatch.js +79 -0
  704. package/dist/react-native/indexDocumentsBatch.js.map +1 -0
  705. package/dist/react-native/indexModels.d.ts +722 -0
  706. package/dist/react-native/indexModels.d.ts.map +1 -0
  707. package/dist/react-native/indexModels.js +4 -0
  708. package/dist/react-native/indexModels.js.map +1 -0
  709. package/dist/react-native/logger.d.ts +5 -0
  710. package/dist/react-native/logger.d.ts.map +1 -0
  711. package/dist/react-native/logger.js +8 -0
  712. package/dist/react-native/logger.js.map +1 -0
  713. package/dist/react-native/odata.d.ts +14 -0
  714. package/dist/react-native/odata.d.ts.map +1 -0
  715. package/dist/react-native/odata.js +47 -0
  716. package/dist/react-native/odata.js.map +1 -0
  717. package/dist/react-native/odataMetadataPolicy.d.ts +9 -0
  718. package/dist/react-native/odataMetadataPolicy.d.ts.map +1 -0
  719. package/dist/react-native/odataMetadataPolicy.js +18 -0
  720. package/dist/react-native/odataMetadataPolicy.js.map +1 -0
  721. package/dist/react-native/package.json +3 -0
  722. package/dist/react-native/searchApiKeyCredentialPolicy.d.ts +8 -0
  723. package/dist/react-native/searchApiKeyCredentialPolicy.d.ts.map +1 -0
  724. package/dist/react-native/searchApiKeyCredentialPolicy.js +20 -0
  725. package/dist/react-native/searchApiKeyCredentialPolicy.js.map +1 -0
  726. package/dist/react-native/searchAudience.d.ts +18 -0
  727. package/dist/react-native/searchAudience.d.ts.map +1 -0
  728. package/dist/react-native/searchAudience.js +21 -0
  729. package/dist/react-native/searchAudience.js.map +1 -0
  730. package/dist/react-native/searchClient.d.ts +266 -0
  731. package/dist/react-native/searchClient.d.ts.map +1 -0
  732. package/dist/react-native/searchClient.js +664 -0
  733. package/dist/react-native/searchClient.js.map +1 -0
  734. package/dist/react-native/searchIndexClient.d.ts +177 -0
  735. package/dist/react-native/searchIndexClient.d.ts.map +1 -0
  736. package/dist/react-native/searchIndexClient.js +509 -0
  737. package/dist/react-native/searchIndexClient.js.map +1 -0
  738. package/dist/react-native/searchIndexerClient.d.ts +187 -0
  739. package/dist/react-native/searchIndexerClient.d.ts.map +1 -0
  740. package/dist/react-native/searchIndexerClient.js +586 -0
  741. package/dist/react-native/searchIndexerClient.js.map +1 -0
  742. package/dist/react-native/searchIndexingBufferedSender.d.ts +193 -0
  743. package/dist/react-native/searchIndexingBufferedSender.d.ts.map +1 -0
  744. package/dist/react-native/searchIndexingBufferedSender.js +322 -0
  745. package/dist/react-native/searchIndexingBufferedSender.js.map +1 -0
  746. package/dist/react-native/serialization.d.ts +3 -0
  747. package/dist/react-native/serialization.d.ts.map +1 -0
  748. package/dist/react-native/serialization.js +144 -0
  749. package/dist/react-native/serialization.js.map +1 -0
  750. package/dist/react-native/serviceModels.d.ts +2181 -0
  751. package/dist/react-native/serviceModels.d.ts.map +1 -0
  752. package/dist/react-native/serviceModels.js +654 -0
  753. package/dist/react-native/serviceModels.js.map +1 -0
  754. package/dist/react-native/serviceUtils.d.ts +35 -0
  755. package/dist/react-native/serviceUtils.d.ts.map +1 -0
  756. package/dist/react-native/serviceUtils.js +518 -0
  757. package/dist/react-native/serviceUtils.js.map +1 -0
  758. package/dist/react-native/synonymMapHelper.d.ts +10 -0
  759. package/dist/react-native/synonymMapHelper.d.ts.map +1 -0
  760. package/dist/react-native/synonymMapHelper.js +24 -0
  761. package/dist/react-native/synonymMapHelper.js.map +1 -0
  762. package/dist/react-native/tracing.d.ts +7 -0
  763. package/dist/react-native/tracing.d.ts.map +1 -0
  764. package/dist/react-native/tracing.js +13 -0
  765. package/dist/react-native/tracing.js.map +1 -0
  766. package/dist/react-native/walk.d.ts +2 -0
  767. package/dist/react-native/walk.d.ts.map +1 -0
  768. package/dist/react-native/walk.js +76 -0
  769. package/dist/react-native/walk.js.map +1 -0
  770. package/package.json +88 -81
  771. package/dist/index.js +0 -15948
  772. package/dist/index.js.map +0 -1
  773. package/dist-esm/src/base64.browser.js.map +0 -1
  774. package/dist-esm/src/errorModels.js.map +0 -1
  775. package/dist-esm/src/generated/data/index.js.map +0 -1
  776. package/dist-esm/src/generated/data/models/index.js +0 -286
  777. package/dist-esm/src/generated/data/models/index.js.map +0 -1
  778. package/dist-esm/src/generated/data/models/mappers.js.map +0 -1
  779. package/dist-esm/src/generated/data/models/parameters.js.map +0 -1
  780. package/dist-esm/src/generated/data/operations/documents.js.map +0 -1
  781. package/dist-esm/src/generated/data/operations/index.js.map +0 -1
  782. package/dist-esm/src/generated/data/operationsInterfaces/documents.js.map +0 -1
  783. package/dist-esm/src/generated/data/operationsInterfaces/index.js.map +0 -1
  784. package/dist-esm/src/generated/data/searchClient.js.map +0 -1
  785. package/dist-esm/src/generated/service/index.js.map +0 -1
  786. package/dist-esm/src/generated/service/models/index.js.map +0 -1
  787. package/dist-esm/src/generated/service/models/mappers.js.map +0 -1
  788. package/dist-esm/src/generated/service/models/parameters.js.map +0 -1
  789. package/dist-esm/src/generated/service/operations/aliases.js.map +0 -1
  790. package/dist-esm/src/generated/service/operations/dataSources.js.map +0 -1
  791. package/dist-esm/src/generated/service/operations/index.js +0 -14
  792. package/dist-esm/src/generated/service/operations/index.js.map +0 -1
  793. package/dist-esm/src/generated/service/operations/indexers.js.map +0 -1
  794. package/dist-esm/src/generated/service/operations/indexes.js.map +0 -1
  795. package/dist-esm/src/generated/service/operations/skillsets.js.map +0 -1
  796. package/dist-esm/src/generated/service/operations/synonymMaps.js.map +0 -1
  797. package/dist-esm/src/generated/service/operationsInterfaces/aliases.js.map +0 -1
  798. package/dist-esm/src/generated/service/operationsInterfaces/dataSources.js.map +0 -1
  799. package/dist-esm/src/generated/service/operationsInterfaces/index.js +0 -14
  800. package/dist-esm/src/generated/service/operationsInterfaces/index.js.map +0 -1
  801. package/dist-esm/src/generated/service/operationsInterfaces/indexers.js.map +0 -1
  802. package/dist-esm/src/generated/service/operationsInterfaces/indexes.js.map +0 -1
  803. package/dist-esm/src/generated/service/operationsInterfaces/skillsets.js.map +0 -1
  804. package/dist-esm/src/generated/service/operationsInterfaces/synonymMaps.js.map +0 -1
  805. package/dist-esm/src/generated/service/searchServiceClient.js.map +0 -1
  806. package/dist-esm/src/geographyPoint.js.map +0 -1
  807. package/dist-esm/src/index.js +0 -16
  808. package/dist-esm/src/index.js.map +0 -1
  809. package/dist-esm/src/indexDocumentsBatch.js.map +0 -1
  810. package/dist-esm/src/indexModels.js.map +0 -1
  811. package/dist-esm/src/odataMetadataPolicy.js.map +0 -1
  812. package/dist-esm/src/searchApiKeyCredentialPolicy.js.map +0 -1
  813. package/dist-esm/src/searchClient.js.map +0 -1
  814. package/dist-esm/src/searchIndexClient.js.map +0 -1
  815. package/dist-esm/src/searchIndexerClient.js.map +0 -1
  816. package/dist-esm/src/searchIndexingBufferedSender.js.map +0 -1
  817. package/dist-esm/src/serialization.js.map +0 -1
  818. package/dist-esm/src/serviceModels.js.map +0 -1
  819. package/dist-esm/src/serviceUtils.js.map +0 -1
  820. package/dist-esm/src/synonymMapHelper.browser.js.map +0 -1
  821. package/dist-esm/src/walk.js.map +0 -1
  822. package/types/search-documents.d.ts +0 -8041
  823. /package/{dist-esm/src → dist/browser}/errorModels.js +0 -0
  824. /package/{dist-esm/src → dist/browser}/generated/data/operationsInterfaces/documents.js +0 -0
  825. /package/{dist-esm/src → dist/browser}/generated/service/operationsInterfaces/dataSources.js +0 -0
  826. /package/{dist-esm/src → dist/browser}/generated/service/operationsInterfaces/indexers.js +0 -0
  827. /package/{dist-esm/src → dist/browser}/generated/service/operationsInterfaces/indexes.js +0 -0
  828. /package/{dist-esm/src → dist/browser}/generated/service/operationsInterfaces/skillsets.js +0 -0
  829. /package/{dist-esm/src → dist/browser}/generated/service/operationsInterfaces/synonymMaps.js +0 -0
  830. /package/{dist-esm/src → dist/browser}/indexModels.js +0 -0
  831. /package/{dist-esm/src → dist/browser}/logger.js +0 -0
  832. /package/{dist-esm/src → dist/browser}/logger.js.map +0 -0
  833. /package/{dist-esm/src → dist/browser}/odata.js +0 -0
  834. /package/{dist-esm/src → dist/browser}/odata.js.map +0 -0
  835. /package/{dist-esm/src → dist/browser}/odataMetadataPolicy.js +0 -0
  836. /package/{dist-esm/src → dist/browser}/searchApiKeyCredentialPolicy.js +0 -0
  837. /package/{dist-esm/src → dist/browser}/searchAudience.js +0 -0
  838. /package/{dist-esm/src → dist/browser}/searchAudience.js.map +0 -0
  839. /package/{dist-esm/src → dist/browser}/serviceModels.js +0 -0
  840. /package/{dist-esm/src → dist/browser}/tracing.js +0 -0
  841. /package/{dist-esm/src → dist/browser}/tracing.js.map +0 -0
  842. /package/{dist-esm/src → dist/esm}/base64.js +0 -0
  843. /package/{dist-esm/src → dist/esm}/base64.js.map +0 -0
  844. /package/{dist-esm/src → dist/esm}/synonymMapHelper.js +0 -0
@@ -0,0 +1,193 @@
1
+ import { RestError } from "@azure/core-rest-pipeline";
2
+ import { IndexDocumentsResult } from "./generated/data/models/index.js";
3
+ import { IndexDocumentsBatch } from "./indexDocumentsBatch.js";
4
+ import { IndexDocumentsAction, IndexDocumentsOptions, SearchIndexingBufferedSenderDeleteDocumentsOptions, SearchIndexingBufferedSenderFlushDocumentsOptions, SearchIndexingBufferedSenderMergeDocumentsOptions, SearchIndexingBufferedSenderMergeOrUploadDocumentsOptions, SearchIndexingBufferedSenderOptions, SearchIndexingBufferedSenderUploadDocumentsOptions } from "./indexModels.js";
5
+ /**
6
+ * Index Documents Client
7
+ */
8
+ export interface IndexDocumentsClient<TModel extends object> {
9
+ /**
10
+ * Perform a set of index modifications (upload, merge, mergeOrUpload, delete)
11
+ * for the given set of documents.
12
+ *
13
+ * @param batch - An array of actions to perform on the index.
14
+ * @param options - Additional options.
15
+ */
16
+ indexDocuments(batch: IndexDocumentsBatch<TModel>, options: IndexDocumentsOptions): Promise<IndexDocumentsResult>;
17
+ }
18
+ /**
19
+ * Default Batch Size
20
+ */
21
+ export declare const DEFAULT_BATCH_SIZE: number;
22
+ /**
23
+ * Default window flush interval
24
+ */
25
+ export declare const DEFAULT_FLUSH_WINDOW: number;
26
+ /**
27
+ * Default number of times to retry.
28
+ */
29
+ export declare const DEFAULT_RETRY_COUNT: number;
30
+ /**
31
+ * Class used to perform buffered operations against a search index,
32
+ * including adding, updating, and removing them.
33
+ */
34
+ export declare class SearchIndexingBufferedSender<TModel extends object> {
35
+ /**
36
+ * Search Client used to call the underlying IndexBatch operations.
37
+ */
38
+ private client;
39
+ /**
40
+ * Indicates if autoFlush is enabled.
41
+ */
42
+ private autoFlush;
43
+ /**
44
+ * Interval between flushes (in milliseconds).
45
+ */
46
+ private flushWindowInMs;
47
+ /**
48
+ * Delay between retries
49
+ */
50
+ private throttlingDelayInMs;
51
+ /**
52
+ * Maximum number of Retries
53
+ */
54
+ private maxRetriesPerAction;
55
+ /**
56
+ * Max Delay between retries
57
+ */
58
+ private maxThrottlingDelayInMs;
59
+ /**
60
+ * Size of the batch.
61
+ */
62
+ private initialBatchActionCount;
63
+ /**
64
+ * Batch object used to complete the service call.
65
+ */
66
+ private batchObject;
67
+ /**
68
+ * Clean up for the timer
69
+ */
70
+ private cleanupTimer?;
71
+ /**
72
+ * Event emitter/publisher used in the Buffered Sender
73
+ */
74
+ private readonly emitter;
75
+ /**
76
+ * Method to retrieve the document key
77
+ */
78
+ private documentKeyRetriever;
79
+ /**
80
+ * Creates a new instance of SearchIndexingBufferedSender.
81
+ *
82
+ * @param client - Search Client used to call the underlying IndexBatch operations.
83
+ * @param options - Options to modify auto flush.
84
+ *
85
+ */
86
+ constructor(client: IndexDocumentsClient<TModel>, documentKeyRetriever: (document: TModel) => string, options?: SearchIndexingBufferedSenderOptions);
87
+ /**
88
+ * Uploads the documents/Adds the documents to the upload queue.
89
+ *
90
+ * @param documents - Documents to be uploaded.
91
+ * @param options - Upload options.
92
+ */
93
+ uploadDocuments(documents: TModel[], options?: SearchIndexingBufferedSenderUploadDocumentsOptions): Promise<void>;
94
+ /**
95
+ * Merges the documents/Adds the documents to the merge queue.
96
+ *
97
+ * @param documents - Documents to be merged.
98
+ * @param options - Upload options.
99
+ */
100
+ mergeDocuments(documents: TModel[], options?: SearchIndexingBufferedSenderMergeDocumentsOptions): Promise<void>;
101
+ /**
102
+ * Merges/Uploads the documents/Adds the documents to the merge/upload queue.
103
+ *
104
+ * @param documents - Documents to be merged/uploaded.
105
+ * @param options - Upload options.
106
+ */
107
+ mergeOrUploadDocuments(documents: TModel[], options?: SearchIndexingBufferedSenderMergeOrUploadDocumentsOptions): Promise<void>;
108
+ /**
109
+ * Deletes the documents/Adds the documents to the delete queue.
110
+ *
111
+ * @param documents - Documents to be deleted.
112
+ * @param options - Upload options.
113
+ */
114
+ deleteDocuments(documents: TModel[], options?: SearchIndexingBufferedSenderDeleteDocumentsOptions): Promise<void>;
115
+ /**
116
+ * Flushes the queue manually.
117
+ *
118
+ * @param options - Flush options.
119
+ */
120
+ flush(options?: SearchIndexingBufferedSenderFlushDocumentsOptions): Promise<void>;
121
+ /**
122
+ * If using autoFlush: true, call this to cleanup the autoflush timer.
123
+ */
124
+ dispose(): Promise<void>;
125
+ /**
126
+ * Attach Batch Added Event
127
+ *
128
+ * @param event - Event to be emitted
129
+ * @param listener - Event Listener
130
+ */
131
+ on(event: "batchAdded", listener: (e: {
132
+ action: string;
133
+ documents: TModel[];
134
+ }) => void): void;
135
+ /**
136
+ * Attach Batch Sent Event
137
+ *
138
+ * @param event - Event to be emitted
139
+ * @param listener - Event Listener
140
+ */
141
+ on(event: "beforeDocumentSent", listener: (e: IndexDocumentsAction<TModel>) => void): void;
142
+ /**
143
+ * Attach Batch Succeeded Event
144
+ *
145
+ * @param event - Event to be emitted
146
+ * @param listener - Event Listener
147
+ */
148
+ on(event: "batchSucceeded", listener: (e: IndexDocumentsResult) => void): void;
149
+ /**
150
+ * Attach Batch Failed Event
151
+ *
152
+ * @param event - Event to be emitted
153
+ * @param listener - Event Listener
154
+ */
155
+ on(event: "batchFailed", listener: (e: RestError) => void): void;
156
+ /**
157
+ * Detach Batch Added Event
158
+ *
159
+ * @param event - Event to be emitted
160
+ * @param listener - Event Listener
161
+ */
162
+ off(event: "batchAdded", listener: (e: {
163
+ action: string;
164
+ documents: TModel[];
165
+ }) => void): void;
166
+ /**
167
+ * Detach Batch Sent Event
168
+ *
169
+ * @param event - Event to be emitted
170
+ * @param listener - Event Listener
171
+ */
172
+ off(event: "beforeDocumentSent", listener: (e: IndexDocumentsAction<TModel>) => void): void;
173
+ /**
174
+ * Detach Batch Succeeded Event
175
+ *
176
+ * @param event - Event to be emitted
177
+ * @param listener - Event Listener
178
+ */
179
+ off(event: "batchSucceeded", listener: (e: IndexDocumentsResult) => void): void;
180
+ /**
181
+ * Detach Batch Failed Event
182
+ *
183
+ * @param event - Event to be emitted
184
+ * @param listener - Event Listener
185
+ */
186
+ off(event: "batchFailed", listener: (e: RestError) => void): void;
187
+ private isBatchReady;
188
+ private internalFlush;
189
+ private pruneActions;
190
+ private submitDocuments;
191
+ private isRetryAbleError;
192
+ }
193
+ //# sourceMappingURL=searchIndexingBufferedSender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchIndexingBufferedSender.d.ts","sourceRoot":"","sources":["../../src/searchIndexingBufferedSender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.SearchIndexingBufferedSender = exports.DEFAULT_RETRY_COUNT = exports.DEFAULT_FLUSH_WINDOW = exports.DEFAULT_BATCH_SIZE = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const core_util_1 = require("@azure/core-util");
8
+ const events_1 = tslib_1.__importDefault(require("events"));
9
+ const indexDocumentsBatch_js_1 = require("./indexDocumentsBatch.js");
10
+ const serviceUtils_js_1 = require("./serviceUtils.js");
11
+ const tracing_js_1 = require("./tracing.js");
12
+ /**
13
+ * Default Batch Size
14
+ */
15
+ exports.DEFAULT_BATCH_SIZE = 512;
16
+ /**
17
+ * Default window flush interval
18
+ */
19
+ exports.DEFAULT_FLUSH_WINDOW = 60000;
20
+ /**
21
+ * Default number of times to retry.
22
+ */
23
+ exports.DEFAULT_RETRY_COUNT = 3;
24
+ /**
25
+ * Default Max Delay between retries.
26
+ */
27
+ const DEFAULT_MAX_RETRY_DELAY = 60000;
28
+ /**
29
+ * Class used to perform buffered operations against a search index,
30
+ * including adding, updating, and removing them.
31
+ */
32
+ class SearchIndexingBufferedSender {
33
+ /**
34
+ * Search Client used to call the underlying IndexBatch operations.
35
+ */
36
+ client;
37
+ /**
38
+ * Indicates if autoFlush is enabled.
39
+ */
40
+ autoFlush;
41
+ /**
42
+ * Interval between flushes (in milliseconds).
43
+ */
44
+ flushWindowInMs;
45
+ /**
46
+ * Delay between retries
47
+ */
48
+ throttlingDelayInMs;
49
+ /**
50
+ * Maximum number of Retries
51
+ */
52
+ maxRetriesPerAction;
53
+ /**
54
+ * Max Delay between retries
55
+ */
56
+ maxThrottlingDelayInMs;
57
+ /**
58
+ * Size of the batch.
59
+ */
60
+ initialBatchActionCount;
61
+ /**
62
+ * Batch object used to complete the service call.
63
+ */
64
+ batchObject;
65
+ /**
66
+ * Clean up for the timer
67
+ */
68
+ cleanupTimer;
69
+ /**
70
+ * Event emitter/publisher used in the Buffered Sender
71
+ */
72
+ emitter = new events_1.default();
73
+ /**
74
+ * Method to retrieve the document key
75
+ */
76
+ documentKeyRetriever;
77
+ /**
78
+ * Creates a new instance of SearchIndexingBufferedSender.
79
+ *
80
+ * @param client - Search Client used to call the underlying IndexBatch operations.
81
+ * @param options - Options to modify auto flush.
82
+ *
83
+ */
84
+ constructor(client, documentKeyRetriever, options = {}) {
85
+ this.client = client;
86
+ this.documentKeyRetriever = documentKeyRetriever;
87
+ // General Configuration properties
88
+ this.autoFlush = options.autoFlush ?? true;
89
+ this.initialBatchActionCount = options.initialBatchActionCount ?? exports.DEFAULT_BATCH_SIZE;
90
+ this.flushWindowInMs = options.flushWindowInMs ?? exports.DEFAULT_FLUSH_WINDOW;
91
+ // Retry specific configuration properties
92
+ this.throttlingDelayInMs = options.throttlingDelayInMs ?? exports.DEFAULT_FLUSH_WINDOW;
93
+ this.maxRetriesPerAction = options.maxRetriesPerAction ?? exports.DEFAULT_RETRY_COUNT;
94
+ this.maxThrottlingDelayInMs = options.maxThrottlingDelayInMs ?? DEFAULT_MAX_RETRY_DELAY;
95
+ this.batchObject = new indexDocumentsBatch_js_1.IndexDocumentsBatch();
96
+ if (this.autoFlush) {
97
+ const interval = setInterval(() => this.flush(), this.flushWindowInMs);
98
+ interval?.unref();
99
+ this.cleanupTimer = () => {
100
+ clearInterval(interval);
101
+ };
102
+ }
103
+ }
104
+ /**
105
+ * Uploads the documents/Adds the documents to the upload queue.
106
+ *
107
+ * @param documents - Documents to be uploaded.
108
+ * @param options - Upload options.
109
+ */
110
+ async uploadDocuments(documents, options = {}) {
111
+ const { span, updatedOptions } = (0, tracing_js_1.createSpan)("SearchIndexingBufferedSender-uploadDocuments", options);
112
+ try {
113
+ this.batchObject.upload(documents);
114
+ this.emitter.emit("batchAdded", {
115
+ action: "upload",
116
+ documents,
117
+ });
118
+ return this.internalFlush(false, updatedOptions);
119
+ }
120
+ catch (e) {
121
+ span.setStatus({
122
+ status: "error",
123
+ error: e.message,
124
+ });
125
+ throw e;
126
+ }
127
+ finally {
128
+ span.end();
129
+ }
130
+ }
131
+ /**
132
+ * Merges the documents/Adds the documents to the merge queue.
133
+ *
134
+ * @param documents - Documents to be merged.
135
+ * @param options - Upload options.
136
+ */
137
+ async mergeDocuments(documents, options = {}) {
138
+ const { span, updatedOptions } = (0, tracing_js_1.createSpan)("SearchIndexingBufferedSender-mergeDocuments", options);
139
+ try {
140
+ this.batchObject.merge(documents);
141
+ this.emitter.emit("batchAdded", {
142
+ action: "merge",
143
+ documents,
144
+ });
145
+ return this.internalFlush(false, updatedOptions);
146
+ }
147
+ catch (e) {
148
+ span.setStatus({
149
+ status: "error",
150
+ error: e.message,
151
+ });
152
+ throw e;
153
+ }
154
+ finally {
155
+ span.end();
156
+ }
157
+ }
158
+ /**
159
+ * Merges/Uploads the documents/Adds the documents to the merge/upload queue.
160
+ *
161
+ * @param documents - Documents to be merged/uploaded.
162
+ * @param options - Upload options.
163
+ */
164
+ async mergeOrUploadDocuments(documents, options = {}) {
165
+ const { span, updatedOptions } = (0, tracing_js_1.createSpan)("SearchIndexingBufferedSender-mergeOrUploadDocuments", options);
166
+ try {
167
+ this.batchObject.mergeOrUpload(documents);
168
+ this.emitter.emit("batchAdded", {
169
+ action: "mergeOrUpload",
170
+ documents,
171
+ });
172
+ return this.internalFlush(false, updatedOptions);
173
+ }
174
+ catch (e) {
175
+ span.setStatus({
176
+ status: "error",
177
+ error: e.message,
178
+ });
179
+ throw e;
180
+ }
181
+ finally {
182
+ span.end();
183
+ }
184
+ }
185
+ /**
186
+ * Deletes the documents/Adds the documents to the delete queue.
187
+ *
188
+ * @param documents - Documents to be deleted.
189
+ * @param options - Upload options.
190
+ */
191
+ async deleteDocuments(documents, options = {}) {
192
+ const { span, updatedOptions } = (0, tracing_js_1.createSpan)("SearchIndexingBufferedSender-deleteDocuments", options);
193
+ try {
194
+ this.batchObject.delete(documents);
195
+ this.emitter.emit("batchAdded", {
196
+ action: "delete",
197
+ documents,
198
+ });
199
+ return this.internalFlush(false, updatedOptions);
200
+ }
201
+ catch (e) {
202
+ span.setStatus({
203
+ status: "error",
204
+ error: e.message,
205
+ });
206
+ throw e;
207
+ }
208
+ finally {
209
+ span.end();
210
+ }
211
+ }
212
+ /**
213
+ * Flushes the queue manually.
214
+ *
215
+ * @param options - Flush options.
216
+ */
217
+ async flush(options = {}) {
218
+ const { span, updatedOptions } = (0, tracing_js_1.createSpan)("SearchIndexingBufferedSender-flush", options);
219
+ try {
220
+ if (this.batchObject.actions.length > 0) {
221
+ return this.internalFlush(true, updatedOptions);
222
+ }
223
+ }
224
+ catch (e) {
225
+ span.setStatus({
226
+ status: "error",
227
+ error: e.message,
228
+ });
229
+ throw e;
230
+ }
231
+ finally {
232
+ span.end();
233
+ }
234
+ }
235
+ /**
236
+ * If using autoFlush: true, call this to cleanup the autoflush timer.
237
+ */
238
+ async dispose() {
239
+ if (this.batchObject.actions.length > 0) {
240
+ await this.internalFlush(true);
241
+ }
242
+ if (this.cleanupTimer) {
243
+ this.cleanupTimer();
244
+ }
245
+ }
246
+ on(event, listener) {
247
+ this.emitter.on(event, listener);
248
+ }
249
+ off(event, listener) {
250
+ this.emitter.removeListener(event, listener);
251
+ }
252
+ isBatchReady() {
253
+ return this.batchObject.actions.length >= this.initialBatchActionCount;
254
+ }
255
+ async internalFlush(force, options = {}) {
256
+ if (force || (this.autoFlush && this.isBatchReady())) {
257
+ // Split it
258
+ const actions = this.batchObject.actions;
259
+ this.batchObject = new indexDocumentsBatch_js_1.IndexDocumentsBatch();
260
+ while (actions.length > 0) {
261
+ const actionsToSend = actions.splice(0, this.initialBatchActionCount);
262
+ const { batchToSubmit, submitLater } = this.pruneActions(actionsToSend);
263
+ actions.unshift(...submitLater);
264
+ await this.submitDocuments(batchToSubmit, options);
265
+ }
266
+ }
267
+ }
268
+ pruneActions(batch) {
269
+ const hashSet = new Set();
270
+ const resultBatch = [];
271
+ const pruned = [];
272
+ for (const document of batch) {
273
+ const key = this.documentKeyRetriever(document);
274
+ if (hashSet.has(key)) {
275
+ pruned.push(document);
276
+ }
277
+ else {
278
+ hashSet.add(key);
279
+ resultBatch.push(document);
280
+ }
281
+ }
282
+ return { batchToSubmit: resultBatch, submitLater: pruned };
283
+ }
284
+ async submitDocuments(actionsToSend, options, retryAttempt = 1) {
285
+ try {
286
+ for (const action of actionsToSend) {
287
+ this.emitter.emit("beforeDocumentSent", action);
288
+ }
289
+ const result = await this.client.indexDocuments(new indexDocumentsBatch_js_1.IndexDocumentsBatch(actionsToSend), options);
290
+ // raise success event
291
+ this.emitter.emit("batchSucceeded", result);
292
+ }
293
+ catch (e) {
294
+ if (e.statusCode && e.statusCode === 413 && actionsToSend.length > 1) {
295
+ // Cut the payload size to half
296
+ const splitActionsArray = [
297
+ actionsToSend.slice(0, actionsToSend.length / 2),
298
+ actionsToSend.slice(actionsToSend.length / 2, actionsToSend.length),
299
+ ];
300
+ this.initialBatchActionCount = splitActionsArray[0].length; // So, we do not want 413 happening again and again
301
+ for (const actions of splitActionsArray) {
302
+ await this.submitDocuments(actions, options);
303
+ }
304
+ }
305
+ else if (this.isRetryAbleError(e) && retryAttempt <= this.maxRetriesPerAction) {
306
+ // Exponentially increase the delay each time
307
+ const exponentialDelay = this.throttlingDelayInMs * Math.pow(2, retryAttempt);
308
+ // Don't let the delay exceed the maximum
309
+ const clampedExponentialDelay = Math.min(this.maxThrottlingDelayInMs, exponentialDelay);
310
+ // Allow the final value to have some "jitter" (within 50% of the delay size) so
311
+ // that retries across multiple clients don't occur simultaneously.
312
+ const delayWithJitter = clampedExponentialDelay / 2 + (0, serviceUtils_js_1.getRandomIntegerInclusive)(0, clampedExponentialDelay / 2);
313
+ await (0, core_util_1.delay)(delayWithJitter);
314
+ await this.submitDocuments(actionsToSend, options, retryAttempt + 1);
315
+ }
316
+ else {
317
+ this.emitter.emit("batchFailed", e);
318
+ throw e;
319
+ }
320
+ }
321
+ }
322
+ isRetryAbleError(e) {
323
+ return e.statusCode && (e.statusCode === 422 || e.statusCode === 409 || e.statusCode === 503);
324
+ }
325
+ }
326
+ exports.SearchIndexingBufferedSender = SearchIndexingBufferedSender;
327
+ //# sourceMappingURL=searchIndexingBufferedSender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchIndexingBufferedSender.js","sourceRoot":"","sources":["../../src/searchIndexingBufferedSender.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { OperationOptions } from \"@azure/core-client\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { delay } from \"@azure/core-util\";\nimport EventEmitter from \"events\";\nimport { IndexDocumentsResult } from \"./generated/data/models/index.js\";\nimport { IndexDocumentsBatch } from \"./indexDocumentsBatch.js\";\nimport {\n IndexDocumentsAction,\n IndexDocumentsOptions,\n SearchIndexingBufferedSenderDeleteDocumentsOptions,\n SearchIndexingBufferedSenderFlushDocumentsOptions,\n SearchIndexingBufferedSenderMergeDocumentsOptions,\n SearchIndexingBufferedSenderMergeOrUploadDocumentsOptions,\n SearchIndexingBufferedSenderOptions,\n SearchIndexingBufferedSenderUploadDocumentsOptions,\n} from \"./indexModels.js\";\nimport { getRandomIntegerInclusive } from \"./serviceUtils.js\";\nimport { createSpan } from \"./tracing.js\";\n\n/**\n * Index Documents Client\n */\nexport interface IndexDocumentsClient<TModel extends object> {\n /**\n * Perform a set of index modifications (upload, merge, mergeOrUpload, delete)\n * for the given set of documents.\n *\n * @param batch - An array of actions to perform on the index.\n * @param options - Additional options.\n */\n indexDocuments(\n batch: IndexDocumentsBatch<TModel>,\n options: IndexDocumentsOptions,\n ): Promise<IndexDocumentsResult>;\n}\n\n/**\n * Default Batch Size\n */\nexport const DEFAULT_BATCH_SIZE: number = 512;\n/**\n * Default window flush interval\n */\nexport const DEFAULT_FLUSH_WINDOW: number = 60000;\n/**\n * Default number of times to retry.\n */\nexport const DEFAULT_RETRY_COUNT: number = 3;\n/**\n * Default Max Delay between retries.\n */\nconst DEFAULT_MAX_RETRY_DELAY: number = 60000;\n\n/**\n * Class used to perform buffered operations against a search index,\n * including adding, updating, and removing them.\n */\nexport class SearchIndexingBufferedSender<TModel extends object> {\n /**\n * Search Client used to call the underlying IndexBatch operations.\n */\n private client: IndexDocumentsClient<TModel>;\n /**\n * Indicates if autoFlush is enabled.\n */\n private autoFlush: boolean;\n /**\n * Interval between flushes (in milliseconds).\n */\n private flushWindowInMs: number;\n /**\n * Delay between retries\n */\n private throttlingDelayInMs: number;\n /**\n * Maximum number of Retries\n */\n private maxRetriesPerAction: number;\n /**\n * Max Delay between retries\n */\n private maxThrottlingDelayInMs: number;\n /**\n * Size of the batch.\n */\n private initialBatchActionCount: number;\n /**\n * Batch object used to complete the service call.\n */\n private batchObject: IndexDocumentsBatch<TModel>;\n /**\n * Clean up for the timer\n */\n private cleanupTimer?: () => void;\n /**\n * Event emitter/publisher used in the Buffered Sender\n */\n private readonly emitter = new EventEmitter();\n /**\n * Method to retrieve the document key\n */\n private documentKeyRetriever: (document: TModel) => string;\n\n /**\n * Creates a new instance of SearchIndexingBufferedSender.\n *\n * @param client - Search Client used to call the underlying IndexBatch operations.\n * @param options - Options to modify auto flush.\n *\n */\n constructor(\n client: IndexDocumentsClient<TModel>,\n documentKeyRetriever: (document: TModel) => string,\n options: SearchIndexingBufferedSenderOptions = {},\n ) {\n this.client = client;\n this.documentKeyRetriever = documentKeyRetriever;\n // General Configuration properties\n this.autoFlush = options.autoFlush ?? true;\n this.initialBatchActionCount = options.initialBatchActionCount ?? DEFAULT_BATCH_SIZE;\n this.flushWindowInMs = options.flushWindowInMs ?? DEFAULT_FLUSH_WINDOW;\n // Retry specific configuration properties\n this.throttlingDelayInMs = options.throttlingDelayInMs ?? DEFAULT_FLUSH_WINDOW;\n this.maxRetriesPerAction = options.maxRetriesPerAction ?? DEFAULT_RETRY_COUNT;\n this.maxThrottlingDelayInMs = options.maxThrottlingDelayInMs ?? DEFAULT_MAX_RETRY_DELAY;\n\n this.batchObject = new IndexDocumentsBatch<TModel>();\n if (this.autoFlush) {\n const interval = setInterval(() => this.flush(), this.flushWindowInMs);\n interval?.unref();\n this.cleanupTimer = () => {\n clearInterval(interval);\n };\n }\n }\n\n /**\n * Uploads the documents/Adds the documents to the upload queue.\n *\n * @param documents - Documents to be uploaded.\n * @param options - Upload options.\n */\n public async uploadDocuments(\n documents: TModel[],\n options: SearchIndexingBufferedSenderUploadDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexingBufferedSender-uploadDocuments\",\n options,\n );\n try {\n this.batchObject.upload(documents);\n this.emitter.emit(\"batchAdded\", {\n action: \"upload\",\n documents,\n });\n return this.internalFlush(false, updatedOptions);\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Merges the documents/Adds the documents to the merge queue.\n *\n * @param documents - Documents to be merged.\n * @param options - Upload options.\n */\n public async mergeDocuments(\n documents: TModel[],\n options: SearchIndexingBufferedSenderMergeDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexingBufferedSender-mergeDocuments\",\n options,\n );\n try {\n this.batchObject.merge(documents);\n this.emitter.emit(\"batchAdded\", {\n action: \"merge\",\n documents,\n });\n return this.internalFlush(false, updatedOptions);\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Merges/Uploads the documents/Adds the documents to the merge/upload queue.\n *\n * @param documents - Documents to be merged/uploaded.\n * @param options - Upload options.\n */\n public async mergeOrUploadDocuments(\n documents: TModel[],\n options: SearchIndexingBufferedSenderMergeOrUploadDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexingBufferedSender-mergeOrUploadDocuments\",\n options,\n );\n try {\n this.batchObject.mergeOrUpload(documents);\n this.emitter.emit(\"batchAdded\", {\n action: \"mergeOrUpload\",\n documents,\n });\n return this.internalFlush(false, updatedOptions);\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes the documents/Adds the documents to the delete queue.\n *\n * @param documents - Documents to be deleted.\n * @param options - Upload options.\n */\n public async deleteDocuments(\n documents: TModel[],\n options: SearchIndexingBufferedSenderDeleteDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexingBufferedSender-deleteDocuments\",\n options,\n );\n try {\n this.batchObject.delete(documents);\n this.emitter.emit(\"batchAdded\", {\n action: \"delete\",\n documents,\n });\n return this.internalFlush(false, updatedOptions);\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Flushes the queue manually.\n *\n * @param options - Flush options.\n */\n public async flush(\n options: SearchIndexingBufferedSenderFlushDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexingBufferedSender-flush\", options);\n try {\n if (this.batchObject.actions.length > 0) {\n return this.internalFlush(true, updatedOptions);\n }\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * If using autoFlush: true, call this to cleanup the autoflush timer.\n */\n public async dispose(): Promise<void> {\n if (this.batchObject.actions.length > 0) {\n await this.internalFlush(true);\n }\n if (this.cleanupTimer) {\n this.cleanupTimer();\n }\n }\n\n /**\n * Attach Batch Added Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public on(\n event: \"batchAdded\",\n listener: (e: { action: string; documents: TModel[] }) => void,\n ): void;\n /**\n * Attach Batch Sent Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public on(event: \"beforeDocumentSent\", listener: (e: IndexDocumentsAction<TModel>) => void): void;\n /**\n * Attach Batch Succeeded Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public on(event: \"batchSucceeded\", listener: (e: IndexDocumentsResult) => void): void;\n /**\n * Attach Batch Failed Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public on(event: \"batchFailed\", listener: (e: RestError) => void): void;\n public on(\n event: \"batchAdded\" | \"beforeDocumentSent\" | \"batchSucceeded\" | \"batchFailed\" | \"batchResizing\",\n listener: (e: any) => void,\n ): void {\n this.emitter.on(event, listener);\n }\n\n /**\n * Detach Batch Added Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public off(\n event: \"batchAdded\",\n listener: (e: { action: string; documents: TModel[] }) => void,\n ): void;\n /**\n * Detach Batch Sent Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public off(\n event: \"beforeDocumentSent\",\n listener: (e: IndexDocumentsAction<TModel>) => void,\n ): void;\n /**\n * Detach Batch Succeeded Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public off(event: \"batchSucceeded\", listener: (e: IndexDocumentsResult) => void): void;\n /**\n * Detach Batch Failed Event\n *\n * @param event - Event to be emitted\n * @param listener - Event Listener\n */\n public off(event: \"batchFailed\", listener: (e: RestError) => void): void;\n public off(\n event: \"batchAdded\" | \"beforeDocumentSent\" | \"batchSucceeded\" | \"batchFailed\",\n listener: (e: any) => void,\n ): void {\n this.emitter.removeListener(event, listener);\n }\n\n private isBatchReady(): boolean {\n return this.batchObject.actions.length >= this.initialBatchActionCount;\n }\n\n private async internalFlush(force: boolean, options: OperationOptions = {}): Promise<void> {\n if (force || (this.autoFlush && this.isBatchReady())) {\n // Split it\n const actions: IndexDocumentsAction<TModel>[] = this.batchObject.actions;\n this.batchObject = new IndexDocumentsBatch<TModel>();\n while (actions.length > 0) {\n const actionsToSend = actions.splice(0, this.initialBatchActionCount);\n const { batchToSubmit, submitLater } = this.pruneActions(actionsToSend);\n actions.unshift(...submitLater);\n await this.submitDocuments(batchToSubmit, options);\n }\n }\n }\n\n private pruneActions(batch: IndexDocumentsAction<TModel>[]): {\n batchToSubmit: IndexDocumentsAction<TModel>[];\n submitLater: IndexDocumentsAction<TModel>[];\n } {\n const hashSet: Set<string> = new Set<string>();\n const resultBatch: IndexDocumentsAction<TModel>[] = [];\n const pruned: IndexDocumentsAction<TModel>[] = [];\n\n for (const document of batch) {\n const key = this.documentKeyRetriever(document as unknown as TModel);\n if (hashSet.has(key)) {\n pruned.push(document);\n } else {\n hashSet.add(key);\n resultBatch.push(document);\n }\n }\n return { batchToSubmit: resultBatch, submitLater: pruned };\n }\n\n private async submitDocuments(\n actionsToSend: IndexDocumentsAction<TModel>[],\n options: OperationOptions,\n retryAttempt: number = 1,\n ): Promise<void> {\n try {\n for (const action of actionsToSend) {\n this.emitter.emit(\"beforeDocumentSent\", action);\n }\n const result = await this.client.indexDocuments(\n new IndexDocumentsBatch<TModel>(actionsToSend),\n options,\n );\n // raise success event\n this.emitter.emit(\"batchSucceeded\", result);\n } catch (e: any) {\n if (e.statusCode && e.statusCode === 413 && actionsToSend.length > 1) {\n // Cut the payload size to half\n const splitActionsArray = [\n actionsToSend.slice(0, actionsToSend.length / 2),\n actionsToSend.slice(actionsToSend.length / 2, actionsToSend.length),\n ];\n this.initialBatchActionCount = splitActionsArray[0].length; // So, we do not want 413 happening again and again\n for (const actions of splitActionsArray) {\n await this.submitDocuments(actions, options);\n }\n } else if (this.isRetryAbleError(e) && retryAttempt <= this.maxRetriesPerAction) {\n // Exponentially increase the delay each time\n const exponentialDelay = this.throttlingDelayInMs * Math.pow(2, retryAttempt);\n // Don't let the delay exceed the maximum\n const clampedExponentialDelay = Math.min(this.maxThrottlingDelayInMs, exponentialDelay);\n // Allow the final value to have some \"jitter\" (within 50% of the delay size) so\n // that retries across multiple clients don't occur simultaneously.\n const delayWithJitter =\n clampedExponentialDelay / 2 + getRandomIntegerInclusive(0, clampedExponentialDelay / 2);\n await delay(delayWithJitter);\n await this.submitDocuments(actionsToSend, options, retryAttempt + 1);\n } else {\n this.emitter.emit(\"batchFailed\", e);\n throw e;\n }\n }\n }\n\n private isRetryAbleError(e: any): boolean {\n return e.statusCode && (e.statusCode === 422 || e.statusCode === 409 || e.statusCode === 503);\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare function serialize<OutputT>(obj: unknown): OutputT;
2
+ export declare function deserialize<OutputT>(obj: unknown): OutputT;
3
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/serialization.ts"],"names":[],"mappings":"AAmBA,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAExD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAE1D"}