@azure/search-documents 12.2.0-beta.1 → 12.2.0-beta.2

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 (38) hide show
  1. package/dist/index.js +430 -46
  2. package/dist/index.js.map +1 -1
  3. package/dist-esm/src/generated/data/models/index.js +26 -14
  4. package/dist-esm/src/generated/data/models/index.js.map +1 -1
  5. package/dist-esm/src/generated/data/models/mappers.js +112 -9
  6. package/dist-esm/src/generated/data/models/mappers.js.map +1 -1
  7. package/dist-esm/src/generated/data/models/parameters.js +9 -0
  8. package/dist-esm/src/generated/data/models/parameters.js.map +1 -1
  9. package/dist-esm/src/generated/data/operations/documents.js +1 -0
  10. package/dist-esm/src/generated/data/operations/documents.js.map +1 -1
  11. package/dist-esm/src/generated/data/searchClient.js +1 -1
  12. package/dist-esm/src/generated/data/searchClient.js.map +1 -1
  13. package/dist-esm/src/generated/service/models/index.js +62 -6
  14. package/dist-esm/src/generated/service/models/index.js.map +1 -1
  15. package/dist-esm/src/generated/service/models/mappers.js +124 -0
  16. package/dist-esm/src/generated/service/models/mappers.js.map +1 -1
  17. package/dist-esm/src/generated/service/searchServiceClient.js +1 -1
  18. package/dist-esm/src/generated/service/searchServiceClient.js.map +1 -1
  19. package/dist-esm/src/index.js +2 -2
  20. package/dist-esm/src/index.js.map +1 -1
  21. package/dist-esm/src/indexDocumentsBatch.js.map +1 -1
  22. package/dist-esm/src/indexModels.js.map +1 -1
  23. package/dist-esm/src/odataMetadataPolicy.js.map +1 -1
  24. package/dist-esm/src/searchApiKeyCredentialPolicy.js.map +1 -1
  25. package/dist-esm/src/searchClient.js +43 -6
  26. package/dist-esm/src/searchClient.js.map +1 -1
  27. package/dist-esm/src/searchIndexClient.js +5 -2
  28. package/dist-esm/src/searchIndexClient.js.map +1 -1
  29. package/dist-esm/src/searchIndexerClient.js +5 -1
  30. package/dist-esm/src/searchIndexerClient.js.map +1 -1
  31. package/dist-esm/src/searchIndexingBufferedSender.js.map +1 -1
  32. package/dist-esm/src/serviceModels.js.map +1 -1
  33. package/dist-esm/src/serviceUtils.js +33 -7
  34. package/dist-esm/src/serviceUtils.js.map +1 -1
  35. package/dist-esm/src/synonymMapHelper.browser.js.map +1 -1
  36. package/dist-esm/src/synonymMapHelper.js.map +1 -1
  37. package/package.json +8 -11
  38. package/types/search-documents.d.ts +286 -37
@@ -1 +1 @@
1
- {"version":3,"file":"searchIndexerClient.js","sourceRoot":"","sources":["../../src/searchIndexerClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isTokenCredential, KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { InternalClientPipelineOptions } from \"@azure/core-client\";\nimport { ExtendedCommonClientOptions } from \"@azure/core-http-compat\";\nimport { bearerTokenAuthenticationPolicy, Pipeline } from \"@azure/core-rest-pipeline\";\nimport { SearchIndexerStatus } from \"./generated/service/models\";\nimport { SearchServiceClient as GeneratedClient } from \"./generated/service/searchServiceClient\";\nimport { logger } from \"./logger\";\nimport { createOdataMetadataPolicy } from \"./odataMetadataPolicy\";\nimport { createSearchApiKeyCredentialPolicy } from \"./searchApiKeyCredentialPolicy\";\nimport { KnownSearchAudience } from \"./searchAudience\";\nimport {\n CreateDataSourceConnectionOptions,\n CreateIndexerOptions,\n CreateorUpdateDataSourceConnectionOptions,\n CreateorUpdateIndexerOptions,\n CreateOrUpdateSkillsetOptions,\n CreateSkillsetOptions,\n DeleteDataSourceConnectionOptions,\n DeleteIndexerOptions,\n DeleteSkillsetOptions,\n GetDataSourceConnectionOptions,\n GetIndexerOptions,\n GetIndexerStatusOptions,\n GetSkillSetOptions,\n ListDataSourceConnectionsOptions,\n ListIndexersOptions,\n ListSkillsetsOptions,\n ResetDocumentsOptions,\n ResetIndexerOptions,\n ResetSkillsOptions,\n RunIndexerOptions,\n SearchIndexer,\n SearchIndexerDataSourceConnection,\n SearchIndexerSkillset,\n} from \"./serviceModels\";\nimport * as utils from \"./serviceUtils\";\nimport { createSpan } from \"./tracing\";\n\n/**\n * Client options used to configure Cognitive Search API requests.\n */\nexport interface SearchIndexerClientOptions extends ExtendedCommonClientOptions {\n /**\n * The API version to use when communicating with the service.\n * @deprecated use {@Link serviceVersion} instead\n */\n apiVersion?: string;\n\n /**\n * The service version to use when communicating with the service.\n */\n serviceVersion?: string;\n\n /**\n * The Audience to use for authentication with Azure Active Directory (AAD). The\n * audience is not considered when using a shared key.\n * {@link KnownSearchAudience} can be used interchangeably with audience\n */\n audience?: string;\n}\n\n/**\n * Class to perform operations to manage\n * (create, update, list/delete)\n * indexers, datasources & skillsets.\n */\nexport class SearchIndexerClient {\n /**\n * The API version to use when communicating with the service.\n */\n public readonly serviceVersion: string = utils.defaultServiceVersion;\n\n /**\n * The API version to use when communicating with the service.\n * @deprecated use {@Link serviceVersion} instead\n */\n public readonly apiVersion: string = utils.defaultServiceVersion;\n\n /**\n * The endpoint of the search service\n */\n public readonly endpoint: string;\n\n /**\n * @hidden\n * A reference to the auto-generated SearchServiceClient\n */\n private readonly client: GeneratedClient;\n\n /**\n * A reference to the internal HTTP pipeline for use with raw requests\n */\n public readonly pipeline: Pipeline;\n\n /**\n * Creates an instance of SearchIndexerClient.\n *\n * Example usage:\n * ```ts\n * const { SearchIndexerClient, AzureKeyCredential } = require(\"@azure/search-documents\");\n *\n * const client = new SearchIndexerClient(\n * \"<endpoint>\",\n * new AzureKeyCredential(\"<Admin Key>\");\n * );\n * ```\n * @param endpoint - The endpoint of the search service\n * @param credential - Used to authenticate requests to the service.\n * @param options - Used to configure the Search client.\n */\n constructor(\n endpoint: string,\n credential: KeyCredential | TokenCredential,\n options: SearchIndexerClientOptions = {},\n ) {\n this.endpoint = endpoint;\n\n const internalClientPipelineOptions: InternalClientPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [\n \"elapsed-time\",\n \"Location\",\n \"OData-MaxVersion\",\n \"OData-Version\",\n \"Prefer\",\n \"throttle-reason\",\n ],\n },\n },\n };\n\n this.serviceVersion =\n options.serviceVersion ?? options.apiVersion ?? utils.defaultServiceVersion;\n this.apiVersion = this.serviceVersion;\n\n this.client = new GeneratedClient(\n this.endpoint,\n this.serviceVersion,\n internalClientPipelineOptions,\n );\n this.pipeline = this.client.pipeline;\n\n if (isTokenCredential(credential)) {\n const scope: string = options.audience\n ? `${options.audience}/.default`\n : `${KnownSearchAudience.AzurePublicCloud}/.default`;\n\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({ credential, scopes: scope }),\n );\n } else {\n this.client.pipeline.addPolicy(createSearchApiKeyCredentialPolicy(credential));\n }\n\n this.client.pipeline.addPolicy(createOdataMetadataPolicy(\"minimal\"));\n }\n\n /**\n * Retrieves a list of existing indexers in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listIndexers(options: ListIndexersOptions = {}): Promise<Array<SearchIndexer>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listIndexers\", options);\n try {\n const result = await this.client.indexers.list(updatedOptions);\n return result.indexers.map(utils.generatedSearchIndexerToPublicSearchIndexer);\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 * Retrieves a list of names of existing indexers in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listIndexersNames(options: ListIndexersOptions = {}): Promise<Array<string>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listIndexersNames\", options);\n try {\n const result = await this.client.indexers.list({\n ...updatedOptions,\n select: \"name\",\n });\n return result.indexers.map((idx) => idx.name);\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 * Retrieves a list of existing data sources in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listDataSourceConnections(\n options: ListDataSourceConnectionsOptions = {},\n ): Promise<Array<SearchIndexerDataSourceConnection>> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-listDataSourceConnections\",\n options,\n );\n try {\n const result = await this.client.dataSources.list(updatedOptions);\n return result.dataSources.map(utils.generatedDataSourceToPublicDataSource);\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 * Retrieves a list of names of existing data sources in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listDataSourceConnectionsNames(\n options: ListDataSourceConnectionsOptions = {},\n ): Promise<Array<string>> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-listDataSourceConnectionsNames\",\n options,\n );\n try {\n const result = await this.client.dataSources.list({\n ...updatedOptions,\n select: \"name\",\n });\n return result.dataSources.map((ds) => ds.name);\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 * Retrieves a list of existing Skillsets in the service.\n * @param options - Options to the list Skillsets operation.\n */\n public async listSkillsets(\n options: ListSkillsetsOptions = {},\n ): Promise<Array<SearchIndexerSkillset>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listSkillsets\", options);\n try {\n const result = await this.client.skillsets.list(updatedOptions);\n return result.skillsets.map(utils.generatedSkillsetToPublicSkillset);\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 * Retrieves a list of names of existing Skillsets in the service.\n * @param options - Options to the list Skillsets operation.\n */\n public async listSkillsetsNames(options: ListSkillsetsOptions = {}): Promise<Array<string>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listSkillsetsNames\", options);\n try {\n const result = await this.client.skillsets.list({\n ...updatedOptions,\n select: \"name\",\n });\n return result.skillsets.map((sks) => sks.name);\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 * Retrieves information about an Indexer.\n * @param indexerName - The name of the Indexer.\n * @param options - Additional optional arguments.\n */\n public async getIndexer(\n indexerName: string,\n options: GetIndexerOptions = {},\n ): Promise<SearchIndexer> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-getIndexer\", options);\n try {\n const result = await this.client.indexers.get(indexerName, updatedOptions);\n return utils.generatedSearchIndexerToPublicSearchIndexer(result);\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 * Retrieves information about a DataSource\n * @param dataSourceName - The name of the DataSource\n * @param options - Additional optional arguments\n */\n public async getDataSourceConnection(\n dataSourceConnectionName: string,\n options: GetDataSourceConnectionOptions = {},\n ): Promise<SearchIndexerDataSourceConnection> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-getDataSourceConnection\",\n options,\n );\n try {\n const result = await this.client.dataSources.get(dataSourceConnectionName, updatedOptions);\n return utils.generatedDataSourceToPublicDataSource(result);\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 * Retrieves information about an Skillset.\n * @param indexName - The name of the Skillset.\n * @param options - Additional optional arguments.\n */\n public async getSkillset(\n skillsetName: string,\n options: GetSkillSetOptions = {},\n ): Promise<SearchIndexerSkillset> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-getSkillset\", options);\n try {\n const result = await this.client.skillsets.get(skillsetName, updatedOptions);\n return utils.generatedSkillsetToPublicSkillset(result);\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 * Creates a new indexer in a search service.\n * @param indexer - The indexer definition to create in a search service.\n * @param options - Additional optional arguments.\n */\n public async createIndexer(\n indexer: SearchIndexer,\n options: CreateIndexerOptions = {},\n ): Promise<SearchIndexer> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-createIndexer\", options);\n try {\n const result = await this.client.indexers.create(\n utils.publicSearchIndexerToGeneratedSearchIndexer(indexer),\n updatedOptions,\n );\n return utils.generatedSearchIndexerToPublicSearchIndexer(result);\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 * Creates a new dataSource in a search service.\n * @param dataSourceConnection - The dataSource definition to create in a search service.\n * @param options - Additional optional arguments.\n */\n public async createDataSourceConnection(\n dataSourceConnection: SearchIndexerDataSourceConnection,\n options: CreateDataSourceConnectionOptions = {},\n ): Promise<SearchIndexerDataSourceConnection> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createDataSourceConnection\",\n options,\n );\n try {\n const result = await this.client.dataSources.create(\n utils.publicDataSourceToGeneratedDataSource(dataSourceConnection),\n updatedOptions,\n );\n return utils.generatedDataSourceToPublicDataSource(result);\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 * Creates a new skillset in a search service.\n * @param skillset - The skillset containing one or more skills to create in a search service.\n * @param options - Additional optional arguments.\n */\n public async createSkillset(\n skillset: SearchIndexerSkillset,\n options: CreateSkillsetOptions = {},\n ): Promise<SearchIndexerSkillset> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-createSkillset\", options);\n try {\n const result = await this.client.skillsets.create(\n utils.publicSkillsetToGeneratedSkillset(skillset),\n updatedOptions,\n );\n return utils.generatedSkillsetToPublicSkillset(result);\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 * Creates a new indexer or modifies an existing one.\n * @param indexer - The information describing the indexer to be created/updated.\n * @param options - Additional optional arguments.\n */\n public async createOrUpdateIndexer(\n indexer: SearchIndexer,\n options: CreateorUpdateIndexerOptions = {},\n ): Promise<SearchIndexer> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createOrUpdateIndexer\",\n options,\n );\n\n const { onlyIfUnchanged, ...restOptions } = updatedOptions;\n try {\n const etag = onlyIfUnchanged ? indexer.etag : undefined;\n\n const result = await this.client.indexers.createOrUpdate(\n indexer.name,\n utils.publicSearchIndexerToGeneratedSearchIndexer(indexer),\n {\n ...restOptions,\n ifMatch: etag,\n },\n );\n return utils.generatedSearchIndexerToPublicSearchIndexer(result);\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 * Creates a new datasource or modifies an existing one.\n * @param dataSourceConnection - The information describing the datasource to be created/updated.\n * @param options - Additional optional arguments.\n */\n public async createOrUpdateDataSourceConnection(\n dataSourceConnection: SearchIndexerDataSourceConnection,\n options: CreateorUpdateDataSourceConnectionOptions = {},\n ): Promise<SearchIndexerDataSourceConnection> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createOrUpdateDataSourceConnection\",\n options,\n );\n try {\n const etag = options.onlyIfUnchanged ? dataSourceConnection.etag : undefined;\n\n const result = await this.client.dataSources.createOrUpdate(\n dataSourceConnection.name,\n utils.publicDataSourceToGeneratedDataSource(dataSourceConnection),\n {\n ...updatedOptions,\n ifMatch: etag,\n },\n );\n return utils.generatedDataSourceToPublicDataSource(result);\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 * Creates a new Skillset or modifies an existing one.\n * @param skillset - The information describing the index to be created.\n * @param options - Additional optional arguments.\n */\n public async createOrUpdateSkillset(\n skillset: SearchIndexerSkillset,\n options: CreateOrUpdateSkillsetOptions = {},\n ): Promise<SearchIndexerSkillset> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createOrUpdateSkillset\",\n options,\n );\n try {\n const etag = options.onlyIfUnchanged ? skillset.etag : undefined;\n\n const result = await this.client.skillsets.createOrUpdate(\n skillset.name,\n utils.publicSkillsetToGeneratedSkillset(skillset),\n {\n ...updatedOptions,\n ifMatch: etag,\n },\n );\n\n return utils.generatedSkillsetToPublicSkillset(result);\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 an existing indexer.\n * @param indexer - Indexer/Name of the indexer to delete.\n * @param options - Additional optional arguments.\n */\n public async deleteIndexer(\n indexer: string | SearchIndexer,\n options: DeleteIndexerOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-deleteIndexer\", options);\n try {\n const indexerName: string = typeof indexer === \"string\" ? indexer : indexer.name;\n const etag =\n typeof indexer === \"string\"\n ? undefined\n : options.onlyIfUnchanged\n ? indexer.etag\n : undefined;\n\n await this.client.indexers.delete(indexerName, {\n ...updatedOptions,\n ifMatch: etag,\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 * Deletes an existing datasource.\n * @param dataSource - Datasource/Name of the datasource to delete.\n * @param options - Additional optional arguments.\n */\n public async deleteDataSourceConnection(\n dataSourceConnection: string | SearchIndexerDataSourceConnection,\n options: DeleteDataSourceConnectionOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-deleteDataSourceConnection\",\n options,\n );\n try {\n const dataSourceConnectionName: string =\n typeof dataSourceConnection === \"string\" ? dataSourceConnection : dataSourceConnection.name;\n const etag =\n typeof dataSourceConnection === \"string\"\n ? undefined\n : options.onlyIfUnchanged\n ? dataSourceConnection.etag\n : undefined;\n\n await this.client.dataSources.delete(dataSourceConnectionName, {\n ...updatedOptions,\n ifMatch: etag,\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 * Deletes an existing Skillset.\n * @param skillset - Skillset/Name of the Skillset to delete.\n * @param options - Additional optional arguments.\n */\n public async deleteSkillset(\n skillset: string | SearchIndexerSkillset,\n options: DeleteSkillsetOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-deleteSkillset\", options);\n try {\n const skillsetName: string = typeof skillset === \"string\" ? skillset : skillset.name;\n const etag =\n typeof skillset === \"string\"\n ? undefined\n : options.onlyIfUnchanged\n ? skillset.etag\n : undefined;\n\n await this.client.skillsets.delete(skillsetName, {\n ...updatedOptions,\n ifMatch: etag,\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 * Returns the current status and execution history of an indexer.\n * @param indexerName - The name of the indexer.\n * @param options - Additional optional arguments.\n */\n public async getIndexerStatus(\n indexerName: string,\n options: GetIndexerStatusOptions = {},\n ): Promise<SearchIndexerStatus> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-getIndexerStatus\", options);\n try {\n const result = await this.client.indexers.getStatus(indexerName, updatedOptions);\n return result;\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 * Resets the change tracking state associated with an indexer.\n * @param indexerName - The name of the indexer to reset.\n * @param options - Additional optional arguments.\n */\n public async resetIndexer(indexerName: string, options: ResetIndexerOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-resetIndexer\", options);\n try {\n await this.client.indexers.reset(indexerName, 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 * Runs an indexer on-demand.\n * @param indexerName - The name of the indexer to run.\n * @param options - Additional optional arguments.\n */\n public async runIndexer(indexerName: string, options: RunIndexerOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-runIndexer\", options);\n try {\n await this.client.indexers.run(indexerName, 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 * Resets specific documents in the datasource to be selectively re-ingested by the indexer.\n * @param indexerName - The name of the indexer to reset documents for.\n * @param options - Additional optional arguments.\n */\n public async resetDocuments(\n indexerName: string,\n options: ResetDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-resetDocs\", options);\n try {\n await this.client.indexers.resetDocs(indexerName, {\n ...updatedOptions,\n keysOrIds: {\n documentKeys: updatedOptions.documentKeys,\n datasourceDocumentIds: updatedOptions.datasourceDocumentIds,\n },\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 * Reset an existing skillset in a search service.\n * @param skillsetName - The name of the skillset to reset.\n * @param skillNames - The names of skills to reset.\n * @param options - The options parameters.\n */\n public async resetSkills(skillsetName: string, options: ResetSkillsOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-resetSkills\", options);\n try {\n await this.client.skillsets.resetSkills(\n skillsetName,\n { skillNames: options.skillNames },\n 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"]}
1
+ {"version":3,"file":"searchIndexerClient.js","sourceRoot":"","sources":["../../src/searchIndexerClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type { InternalClientPipelineOptions } from \"@azure/core-client\";\nimport type { ExtendedCommonClientOptions } from \"@azure/core-http-compat\";\nimport type { Pipeline } from \"@azure/core-rest-pipeline\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport type { SearchIndexerStatus } from \"./generated/service/models\";\nimport { SearchServiceClient as GeneratedClient } from \"./generated/service/searchServiceClient\";\nimport { logger } from \"./logger\";\nimport { createOdataMetadataPolicy } from \"./odataMetadataPolicy\";\nimport { createSearchApiKeyCredentialPolicy } from \"./searchApiKeyCredentialPolicy\";\nimport { KnownSearchAudience } from \"./searchAudience\";\nimport type {\n CreateDataSourceConnectionOptions,\n CreateIndexerOptions,\n CreateorUpdateDataSourceConnectionOptions,\n CreateorUpdateIndexerOptions,\n CreateOrUpdateSkillsetOptions,\n CreateSkillsetOptions,\n DeleteDataSourceConnectionOptions,\n DeleteIndexerOptions,\n DeleteSkillsetOptions,\n GetDataSourceConnectionOptions,\n GetIndexerOptions,\n GetIndexerStatusOptions,\n GetSkillSetOptions,\n ListDataSourceConnectionsOptions,\n ListIndexersOptions,\n ListSkillsetsOptions,\n ResetDocumentsOptions,\n ResetIndexerOptions,\n ResetSkillsOptions,\n RunIndexerOptions,\n SearchIndexer,\n SearchIndexerDataSourceConnection,\n SearchIndexerSkillset,\n} from \"./serviceModels\";\nimport * as utils from \"./serviceUtils\";\nimport { createSpan } from \"./tracing\";\n\n/**\n * Client options used to configure Cognitive Search API requests.\n */\nexport interface SearchIndexerClientOptions extends ExtendedCommonClientOptions {\n /**\n * The API version to use when communicating with the service.\n * @deprecated use {@Link serviceVersion} instead\n */\n apiVersion?: string;\n\n /**\n * The service version to use when communicating with the service.\n */\n serviceVersion?: string;\n\n /**\n * The Audience to use for authentication with Azure Active Directory (AAD). The\n * audience is not considered when using a shared key.\n * {@link KnownSearchAudience} can be used interchangeably with audience\n */\n audience?: string;\n}\n\n/**\n * Class to perform operations to manage\n * (create, update, list/delete)\n * indexers, datasources & skillsets.\n */\nexport class SearchIndexerClient {\n /**\n * The API version to use when communicating with the service.\n */\n public readonly serviceVersion: string = utils.defaultServiceVersion;\n\n /**\n * The API version to use when communicating with the service.\n * @deprecated use {@Link serviceVersion} instead\n */\n public readonly apiVersion: string = utils.defaultServiceVersion;\n\n /**\n * The endpoint of the search service\n */\n public readonly endpoint: string;\n\n /**\n * @hidden\n * A reference to the auto-generated SearchServiceClient\n */\n private readonly client: GeneratedClient;\n\n /**\n * A reference to the internal HTTP pipeline for use with raw requests\n */\n public readonly pipeline: Pipeline;\n\n /**\n * Creates an instance of SearchIndexerClient.\n *\n * Example usage:\n * ```ts\n * const { SearchIndexerClient, AzureKeyCredential } = require(\"@azure/search-documents\");\n *\n * const client = new SearchIndexerClient(\n * \"<endpoint>\",\n * new AzureKeyCredential(\"<Admin Key>\");\n * );\n * ```\n * @param endpoint - The endpoint of the search service\n * @param credential - Used to authenticate requests to the service.\n * @param options - Used to configure the Search client.\n */\n constructor(\n endpoint: string,\n credential: KeyCredential | TokenCredential,\n options: SearchIndexerClientOptions = {},\n ) {\n this.endpoint = endpoint;\n\n const internalClientPipelineOptions: InternalClientPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [\n \"elapsed-time\",\n \"Location\",\n \"OData-MaxVersion\",\n \"OData-Version\",\n \"Prefer\",\n \"throttle-reason\",\n ],\n },\n },\n };\n\n this.serviceVersion =\n options.serviceVersion ?? options.apiVersion ?? utils.defaultServiceVersion;\n this.apiVersion = this.serviceVersion;\n\n this.client = new GeneratedClient(\n this.endpoint,\n this.serviceVersion,\n internalClientPipelineOptions,\n );\n this.pipeline = this.client.pipeline;\n\n if (isTokenCredential(credential)) {\n const scope: string = options.audience\n ? `${options.audience}/.default`\n : `${KnownSearchAudience.AzurePublicCloud}/.default`;\n\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({ credential, scopes: scope }),\n );\n } else {\n this.client.pipeline.addPolicy(createSearchApiKeyCredentialPolicy(credential));\n }\n\n this.client.pipeline.addPolicy(createOdataMetadataPolicy(\"minimal\"));\n }\n\n /**\n * Retrieves a list of existing indexers in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listIndexers(options: ListIndexersOptions = {}): Promise<Array<SearchIndexer>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listIndexers\", options);\n try {\n const result = await this.client.indexers.list(updatedOptions);\n return result.indexers.map(utils.generatedSearchIndexerToPublicSearchIndexer);\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 * Retrieves a list of names of existing indexers in the service.\n * @param options - Options to the list indexers operation.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async listIndexersNames(options: ListIndexersOptions = {}): Promise<Array<string>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listIndexersNames\", options);\n try {\n const result = await this.client.indexers.list({\n ...updatedOptions,\n select: \"name\",\n });\n return result.indexers.map((idx) => idx.name);\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 * Retrieves a list of existing data sources in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listDataSourceConnections(\n options: ListDataSourceConnectionsOptions = {},\n ): Promise<Array<SearchIndexerDataSourceConnection>> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-listDataSourceConnections\",\n options,\n );\n try {\n const result = await this.client.dataSources.list(updatedOptions);\n return result.dataSources.map(utils.generatedDataSourceToPublicDataSource);\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 * Retrieves a list of names of existing data sources in the service.\n * @param options - Options to the list indexers operation.\n */\n public async listDataSourceConnectionsNames(\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: ListDataSourceConnectionsOptions = {},\n ): Promise<Array<string>> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-listDataSourceConnectionsNames\",\n options,\n );\n try {\n const result = await this.client.dataSources.list({\n ...updatedOptions,\n select: \"name\",\n });\n return result.dataSources.map((ds) => ds.name);\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 * Retrieves a list of existing Skillsets in the service.\n * @param options - Options to the list Skillsets operation.\n */\n public async listSkillsets(\n options: ListSkillsetsOptions = {},\n ): Promise<Array<SearchIndexerSkillset>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listSkillsets\", options);\n try {\n const result = await this.client.skillsets.list(updatedOptions);\n return result.skillsets.map(utils.generatedSkillsetToPublicSkillset);\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 * Retrieves a list of names of existing Skillsets in the service.\n * @param options - Options to the list Skillsets operation.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async listSkillsetsNames(options: ListSkillsetsOptions = {}): Promise<Array<string>> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-listSkillsetsNames\", options);\n try {\n const result = await this.client.skillsets.list({\n ...updatedOptions,\n select: \"name\",\n });\n return result.skillsets.map((sks) => sks.name);\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 * Retrieves information about an Indexer.\n * @param indexerName - The name of the Indexer.\n * @param options - Additional optional arguments.\n */\n public async getIndexer(\n indexerName: string,\n options: GetIndexerOptions = {},\n ): Promise<SearchIndexer> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-getIndexer\", options);\n try {\n const result = await this.client.indexers.get(indexerName, updatedOptions);\n return utils.generatedSearchIndexerToPublicSearchIndexer(result);\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 * Retrieves information about a DataSource\n * @param dataSourceName - The name of the DataSource\n * @param options - Additional optional arguments\n */\n public async getDataSourceConnection(\n dataSourceConnectionName: string,\n options: GetDataSourceConnectionOptions = {},\n ): Promise<SearchIndexerDataSourceConnection> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-getDataSourceConnection\",\n options,\n );\n try {\n const result = await this.client.dataSources.get(dataSourceConnectionName, updatedOptions);\n return utils.generatedDataSourceToPublicDataSource(result);\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 * Retrieves information about an Skillset.\n * @param indexName - The name of the Skillset.\n * @param options - Additional optional arguments.\n */\n public async getSkillset(\n skillsetName: string,\n options: GetSkillSetOptions = {},\n ): Promise<SearchIndexerSkillset> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-getSkillset\", options);\n try {\n const result = await this.client.skillsets.get(skillsetName, updatedOptions);\n return utils.generatedSkillsetToPublicSkillset(result);\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 * Creates a new indexer in a search service.\n * @param indexer - The indexer definition to create in a search service.\n * @param options - Additional optional arguments.\n */\n public async createIndexer(\n indexer: SearchIndexer,\n options: CreateIndexerOptions = {},\n ): Promise<SearchIndexer> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-createIndexer\", options);\n try {\n const result = await this.client.indexers.create(\n utils.publicSearchIndexerToGeneratedSearchIndexer(indexer),\n updatedOptions,\n );\n return utils.generatedSearchIndexerToPublicSearchIndexer(result);\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 * Creates a new dataSource in a search service.\n * @param dataSourceConnection - The dataSource definition to create in a search service.\n * @param options - Additional optional arguments.\n */\n public async createDataSourceConnection(\n dataSourceConnection: SearchIndexerDataSourceConnection,\n options: CreateDataSourceConnectionOptions = {},\n ): Promise<SearchIndexerDataSourceConnection> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createDataSourceConnection\",\n options,\n );\n try {\n const result = await this.client.dataSources.create(\n utils.publicDataSourceToGeneratedDataSource(dataSourceConnection),\n updatedOptions,\n );\n return utils.generatedDataSourceToPublicDataSource(result);\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 * Creates a new skillset in a search service.\n * @param skillset - The skillset containing one or more skills to create in a search service.\n * @param options - Additional optional arguments.\n */\n public async createSkillset(\n skillset: SearchIndexerSkillset,\n options: CreateSkillsetOptions = {},\n ): Promise<SearchIndexerSkillset> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-createSkillset\", options);\n try {\n const result = await this.client.skillsets.create(\n utils.publicSkillsetToGeneratedSkillset(skillset),\n updatedOptions,\n );\n return utils.generatedSkillsetToPublicSkillset(result);\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 * Creates a new indexer or modifies an existing one.\n * @param indexer - The information describing the indexer to be created/updated.\n * @param options - Additional optional arguments.\n */\n public async createOrUpdateIndexer(\n indexer: SearchIndexer,\n options: CreateorUpdateIndexerOptions = {},\n ): Promise<SearchIndexer> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createOrUpdateIndexer\",\n options,\n );\n\n const { onlyIfUnchanged, ...restOptions } = updatedOptions;\n try {\n const etag = onlyIfUnchanged ? indexer.etag : undefined;\n\n const result = await this.client.indexers.createOrUpdate(\n indexer.name,\n utils.publicSearchIndexerToGeneratedSearchIndexer(indexer),\n {\n ...restOptions,\n ifMatch: etag,\n },\n );\n return utils.generatedSearchIndexerToPublicSearchIndexer(result);\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 * Creates a new datasource or modifies an existing one.\n * @param dataSourceConnection - The information describing the datasource to be created/updated.\n * @param options - Additional optional arguments.\n */\n public async createOrUpdateDataSourceConnection(\n dataSourceConnection: SearchIndexerDataSourceConnection,\n options: CreateorUpdateDataSourceConnectionOptions = {},\n ): Promise<SearchIndexerDataSourceConnection> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createOrUpdateDataSourceConnection\",\n options,\n );\n try {\n const etag = options.onlyIfUnchanged ? dataSourceConnection.etag : undefined;\n\n const result = await this.client.dataSources.createOrUpdate(\n dataSourceConnection.name,\n utils.publicDataSourceToGeneratedDataSource(dataSourceConnection),\n {\n ...updatedOptions,\n ifMatch: etag,\n },\n );\n return utils.generatedDataSourceToPublicDataSource(result);\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 * Creates a new Skillset or modifies an existing one.\n * @param skillset - The information describing the index to be created.\n * @param options - Additional optional arguments.\n */\n public async createOrUpdateSkillset(\n skillset: SearchIndexerSkillset,\n options: CreateOrUpdateSkillsetOptions = {},\n ): Promise<SearchIndexerSkillset> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-createOrUpdateSkillset\",\n options,\n );\n try {\n const etag = options.onlyIfUnchanged ? skillset.etag : undefined;\n\n const result = await this.client.skillsets.createOrUpdate(\n skillset.name,\n utils.publicSkillsetToGeneratedSkillset(skillset),\n {\n ...updatedOptions,\n ifMatch: etag,\n },\n );\n\n return utils.generatedSkillsetToPublicSkillset(result);\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 an existing indexer.\n * @param indexer - Indexer/Name of the indexer to delete.\n * @param options - Additional optional arguments.\n */\n public async deleteIndexer(\n indexer: string | SearchIndexer,\n options: DeleteIndexerOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-deleteIndexer\", options);\n try {\n const indexerName: string = typeof indexer === \"string\" ? indexer : indexer.name;\n const etag =\n typeof indexer === \"string\"\n ? undefined\n : options.onlyIfUnchanged\n ? indexer.etag\n : undefined;\n\n await this.client.indexers.delete(indexerName, {\n ...updatedOptions,\n ifMatch: etag,\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 * Deletes an existing datasource.\n * @param dataSource - Datasource/Name of the datasource to delete.\n * @param options - Additional optional arguments.\n */\n public async deleteDataSourceConnection(\n dataSourceConnection: string | SearchIndexerDataSourceConnection,\n options: DeleteDataSourceConnectionOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\n \"SearchIndexerClient-deleteDataSourceConnection\",\n options,\n );\n try {\n const dataSourceConnectionName: string =\n typeof dataSourceConnection === \"string\" ? dataSourceConnection : dataSourceConnection.name;\n const etag =\n typeof dataSourceConnection === \"string\"\n ? undefined\n : options.onlyIfUnchanged\n ? dataSourceConnection.etag\n : undefined;\n\n await this.client.dataSources.delete(dataSourceConnectionName, {\n ...updatedOptions,\n ifMatch: etag,\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 * Deletes an existing Skillset.\n * @param skillset - Skillset/Name of the Skillset to delete.\n * @param options - Additional optional arguments.\n */\n public async deleteSkillset(\n skillset: string | SearchIndexerSkillset,\n options: DeleteSkillsetOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-deleteSkillset\", options);\n try {\n const skillsetName: string = typeof skillset === \"string\" ? skillset : skillset.name;\n const etag =\n typeof skillset === \"string\"\n ? undefined\n : options.onlyIfUnchanged\n ? skillset.etag\n : undefined;\n\n await this.client.skillsets.delete(skillsetName, {\n ...updatedOptions,\n ifMatch: etag,\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 * Returns the current status and execution history of an indexer.\n * @param indexerName - The name of the indexer.\n * @param options - Additional optional arguments.\n */\n public async getIndexerStatus(\n indexerName: string,\n options: GetIndexerStatusOptions = {},\n ): Promise<SearchIndexerStatus> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-getIndexerStatus\", options);\n try {\n const result = await this.client.indexers.getStatus(indexerName, updatedOptions);\n return result;\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 * Resets the change tracking state associated with an indexer.\n * @param indexerName - The name of the indexer to reset.\n * @param options - Additional optional arguments.\n */\n public async resetIndexer(indexerName: string, options: ResetIndexerOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-resetIndexer\", options);\n try {\n await this.client.indexers.reset(indexerName, 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 * Runs an indexer on-demand.\n * @param indexerName - The name of the indexer to run.\n * @param options - Additional optional arguments.\n */\n public async runIndexer(indexerName: string, options: RunIndexerOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-runIndexer\", options);\n try {\n await this.client.indexers.run(indexerName, 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 * Resets specific documents in the datasource to be selectively re-ingested by the indexer.\n * @param indexerName - The name of the indexer to reset documents for.\n * @param options - Additional optional arguments.\n */\n public async resetDocuments(\n indexerName: string,\n options: ResetDocumentsOptions = {},\n ): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-resetDocs\", options);\n try {\n await this.client.indexers.resetDocs(indexerName, {\n ...updatedOptions,\n keysOrIds: {\n documentKeys: updatedOptions.documentKeys,\n datasourceDocumentIds: updatedOptions.datasourceDocumentIds,\n },\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 * Reset an existing skillset in a search service.\n * @param skillsetName - The name of the skillset to reset.\n * @param skillNames - The names of skills to reset.\n * @param options - The options parameters.\n */\n public async resetSkills(skillsetName: string, options: ResetSkillsOptions = {}): Promise<void> {\n const { span, updatedOptions } = createSpan(\"SearchIndexerClient-resetSkills\", options);\n try {\n await this.client.skillsets.resetSkills(\n skillsetName,\n { skillNames: options.skillNames },\n 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"]}
@@ -1 +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\";\nimport { IndexDocumentsBatch } from \"./indexDocumentsBatch\";\nimport {\n IndexDocumentsAction,\n IndexDocumentsOptions,\n SearchIndexingBufferedSenderDeleteDocumentsOptions,\n SearchIndexingBufferedSenderFlushDocumentsOptions,\n SearchIndexingBufferedSenderMergeDocumentsOptions,\n SearchIndexingBufferedSenderMergeOrUploadDocumentsOptions,\n SearchIndexingBufferedSenderOptions,\n SearchIndexingBufferedSenderUploadDocumentsOptions,\n} from \"./indexModels\";\nimport { getRandomIntegerInclusive } from \"./serviceUtils\";\nimport { createSpan } from \"./tracing\";\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"]}
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 type { OperationOptions } from \"@azure/core-client\";\nimport type { RestError } from \"@azure/core-rest-pipeline\";\nimport { delay } from \"@azure/core-util\";\nimport EventEmitter from \"events\";\nimport type { IndexDocumentsResult } from \"./generated/data/models\";\nimport { IndexDocumentsBatch } from \"./indexDocumentsBatch\";\nimport type {\n IndexDocumentsAction,\n IndexDocumentsOptions,\n SearchIndexingBufferedSenderDeleteDocumentsOptions,\n SearchIndexingBufferedSenderFlushDocumentsOptions,\n SearchIndexingBufferedSenderMergeDocumentsOptions,\n SearchIndexingBufferedSenderMergeOrUploadDocumentsOptions,\n SearchIndexingBufferedSenderOptions,\n SearchIndexingBufferedSenderUploadDocumentsOptions,\n} from \"./indexModels\";\nimport { getRandomIntegerInclusive } from \"./serviceUtils\";\nimport { createSpan } from \"./tracing\";\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"]}