@azure/search-documents 12.1.0 → 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 (85) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +2710 -454
  3. package/dist/index.js.map +1 -1
  4. package/dist-esm/src/base64.browser.js +1 -1
  5. package/dist-esm/src/base64.browser.js.map +1 -1
  6. package/dist-esm/src/base64.js +1 -1
  7. package/dist-esm/src/base64.js.map +1 -1
  8. package/dist-esm/src/errorModels.js +1 -1
  9. package/dist-esm/src/errorModels.js.map +1 -1
  10. package/dist-esm/src/generated/data/models/index.js +220 -6
  11. package/dist-esm/src/generated/data/models/index.js.map +1 -1
  12. package/dist-esm/src/generated/data/models/mappers.js +481 -0
  13. package/dist-esm/src/generated/data/models/mappers.js.map +1 -1
  14. package/dist-esm/src/generated/data/models/parameters.js +51 -0
  15. package/dist-esm/src/generated/data/models/parameters.js.map +1 -1
  16. package/dist-esm/src/generated/data/operations/documents.js +5 -0
  17. package/dist-esm/src/generated/data/operations/documents.js.map +1 -1
  18. package/dist-esm/src/generated/data/searchClient.js +1 -1
  19. package/dist-esm/src/generated/data/searchClient.js.map +1 -1
  20. package/dist-esm/src/generated/service/models/index.js +210 -84
  21. package/dist-esm/src/generated/service/models/index.js.map +1 -1
  22. package/dist-esm/src/generated/service/models/mappers.js +815 -77
  23. package/dist-esm/src/generated/service/models/mappers.js.map +1 -1
  24. package/dist-esm/src/generated/service/models/parameters.js +51 -1
  25. package/dist-esm/src/generated/service/models/parameters.js.map +1 -1
  26. package/dist-esm/src/generated/service/operations/aliases.js +160 -0
  27. package/dist-esm/src/generated/service/operations/aliases.js.map +1 -0
  28. package/dist-esm/src/generated/service/operations/dataSources.js +4 -1
  29. package/dist-esm/src/generated/service/operations/dataSources.js.map +1 -1
  30. package/dist-esm/src/generated/service/operations/index.js +1 -0
  31. package/dist-esm/src/generated/service/operations/index.js.map +1 -1
  32. package/dist-esm/src/generated/service/operations/indexers.js +29 -1
  33. package/dist-esm/src/generated/service/operations/indexers.js.map +1 -1
  34. package/dist-esm/src/generated/service/operations/skillsets.js +30 -1
  35. package/dist-esm/src/generated/service/operations/skillsets.js.map +1 -1
  36. package/dist-esm/src/generated/service/operationsInterfaces/aliases.js +9 -0
  37. package/dist-esm/src/generated/service/operationsInterfaces/aliases.js.map +1 -0
  38. package/dist-esm/src/generated/service/operationsInterfaces/index.js +1 -0
  39. package/dist-esm/src/generated/service/operationsInterfaces/index.js.map +1 -1
  40. package/dist-esm/src/generated/service/operationsInterfaces/indexers.js.map +1 -1
  41. package/dist-esm/src/generated/service/operationsInterfaces/skillsets.js.map +1 -1
  42. package/dist-esm/src/generated/service/searchServiceClient.js +3 -2
  43. package/dist-esm/src/generated/service/searchServiceClient.js.map +1 -1
  44. package/dist-esm/src/geographyPoint.js +1 -1
  45. package/dist-esm/src/geographyPoint.js.map +1 -1
  46. package/dist-esm/src/index.js +4 -4
  47. package/dist-esm/src/index.js.map +1 -1
  48. package/dist-esm/src/indexDocumentsBatch.js +1 -1
  49. package/dist-esm/src/indexDocumentsBatch.js.map +1 -1
  50. package/dist-esm/src/indexModels.js +1 -1
  51. package/dist-esm/src/indexModels.js.map +1 -1
  52. package/dist-esm/src/logger.js +1 -1
  53. package/dist-esm/src/logger.js.map +1 -1
  54. package/dist-esm/src/odata.js +1 -1
  55. package/dist-esm/src/odata.js.map +1 -1
  56. package/dist-esm/src/odataMetadataPolicy.js +1 -1
  57. package/dist-esm/src/odataMetadataPolicy.js.map +1 -1
  58. package/dist-esm/src/searchApiKeyCredentialPolicy.js +1 -1
  59. package/dist-esm/src/searchApiKeyCredentialPolicy.js.map +1 -1
  60. package/dist-esm/src/searchAudience.js +1 -1
  61. package/dist-esm/src/searchAudience.js.map +1 -1
  62. package/dist-esm/src/searchClient.js +52 -8
  63. package/dist-esm/src/searchClient.js.map +1 -1
  64. package/dist-esm/src/searchIndexClient.js +158 -6
  65. package/dist-esm/src/searchIndexClient.js.map +1 -1
  66. package/dist-esm/src/searchIndexerClient.js +53 -2
  67. package/dist-esm/src/searchIndexerClient.js.map +1 -1
  68. package/dist-esm/src/searchIndexingBufferedSender.js +1 -1
  69. package/dist-esm/src/searchIndexingBufferedSender.js.map +1 -1
  70. package/dist-esm/src/serialization.js +1 -1
  71. package/dist-esm/src/serialization.js.map +1 -1
  72. package/dist-esm/src/serviceModels.js +1 -1
  73. package/dist-esm/src/serviceModels.js.map +1 -1
  74. package/dist-esm/src/serviceUtils.js +112 -26
  75. package/dist-esm/src/serviceUtils.js.map +1 -1
  76. package/dist-esm/src/synonymMapHelper.browser.js +1 -1
  77. package/dist-esm/src/synonymMapHelper.browser.js.map +1 -1
  78. package/dist-esm/src/synonymMapHelper.js +1 -1
  79. package/dist-esm/src/synonymMapHelper.js.map +1 -1
  80. package/dist-esm/src/tracing.js +1 -1
  81. package/dist-esm/src/tracing.js.map +1 -1
  82. package/dist-esm/src/walk.js +1 -1
  83. package/dist-esm/src/walk.js.map +1 -1
  84. package/package.json +13 -16
  85. package/types/search-documents.d.ts +1774 -108
@@ -1,9 +1,9 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { __rest } from "tslib";
4
4
  import { logger } from "./logger";
5
- import { isComplexField, } from "./serviceModels";
6
- export const defaultServiceVersion = "2024-07-01";
5
+ import { isComplexField } from "./serviceModels";
6
+ export const defaultServiceVersion = "2024-09-01-Preview";
7
7
  const knownSkills = {
8
8
  "#Microsoft.Skills.Custom.WebApiSkill": true,
9
9
  "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill": true,
@@ -24,6 +24,9 @@ const knownSkills = {
24
24
  "#Microsoft.Skills.Util.ShaperSkill": true,
25
25
  "#Microsoft.Skills.Vision.ImageAnalysisSkill": true,
26
26
  "#Microsoft.Skills.Vision.OcrSkill": true,
27
+ "#Microsoft.Skills.Custom.AmlSkill": true,
28
+ "#Microsoft.Skills.Vision.VectorizeSkill": true,
29
+ "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill": true,
27
30
  };
28
31
  export function convertSkillsToPublic(skills) {
29
32
  if (!skills) {
@@ -36,18 +39,43 @@ export function convertCognitiveServicesAccountToGenerated(cognitiveServicesAcco
36
39
  if (!cognitiveServicesAccount) {
37
40
  return cognitiveServicesAccount;
38
41
  }
39
- return cognitiveServicesAccount;
42
+ switch (cognitiveServicesAccount.odatatype) {
43
+ case "#Microsoft.Azure.Search.AIServicesByIdentity":
44
+ case "#Microsoft.Azure.Search.DefaultCognitiveServices":
45
+ case "#Microsoft.Azure.Search.CognitiveServicesByKey":
46
+ case "#Microsoft.Azure.Search.AIServicesByKey":
47
+ return cognitiveServicesAccount;
48
+ default: {
49
+ logger.warning(`Unsupported Cognitive Services account odatatype: ${cognitiveServicesAccount.odatatype}`);
50
+ return cognitiveServicesAccount;
51
+ }
52
+ }
40
53
  }
41
54
  export function convertCognitiveServicesAccountToPublic(cognitiveServicesAccount) {
55
+ var _a;
42
56
  if (!cognitiveServicesAccount) {
43
57
  return cognitiveServicesAccount;
44
58
  }
45
- if (cognitiveServicesAccount.odatatype === "#Microsoft.Azure.Search.DefaultCognitiveServices") {
46
- return cognitiveServicesAccount;
47
- }
48
- else {
59
+ const deserializers = {
60
+ "#Microsoft.Azure.Search.DefaultCognitiveServices": () => {
61
+ return cognitiveServicesAccount;
62
+ },
63
+ "#Microsoft.Azure.Search.CognitiveServicesByKey": () => {
64
+ return cognitiveServicesAccount;
65
+ },
66
+ "#Microsoft.Azure.Search.AIServicesByKey": () => {
67
+ return cognitiveServicesAccount;
68
+ },
69
+ "#Microsoft.Azure.Search.AIServicesByIdentity": () => {
70
+ const _a = cognitiveServicesAccount, { identity } = _a, restParams = __rest(_a, ["identity"]);
71
+ return Object.assign(Object.assign({}, restParams), { identity: convertSearchIndexerDataIdentityToPublic(identity !== null && identity !== void 0 ? identity : undefined) });
72
+ },
73
+ };
74
+ const defaultDeserializer = () => {
75
+ logger.warning(`Unsupported Cognitive Services account odatatype: ${cognitiveServicesAccount.odatatype}`);
49
76
  return cognitiveServicesAccount;
50
- }
77
+ };
78
+ return ((_a = deserializers[cognitiveServicesAccount.odatatype]) !== null && _a !== void 0 ? _a : defaultDeserializer)();
51
79
  }
52
80
  export function convertTokenFiltersToGenerated(tokenFilters) {
53
81
  if (!tokenFilters) {
@@ -121,22 +149,22 @@ export function convertFieldsToPublic(fields) {
121
149
  else {
122
150
  const type = field.type;
123
151
  const synonymMapNames = field.synonymMaps;
124
- const { retrievable, analyzer, searchAnalyzer, indexAnalyzer } = field, restField = __rest(field, ["retrievable", "analyzer", "searchAnalyzer", "indexAnalyzer"]);
152
+ const { retrievable, analyzer, searchAnalyzer, indexAnalyzer, normalizer } = field, restField = __rest(field, ["retrievable", "analyzer", "searchAnalyzer", "indexAnalyzer", "normalizer"]);
125
153
  const hidden = typeof retrievable === "boolean" ? !retrievable : retrievable;
126
154
  const result = Object.assign(Object.assign({}, restField), { type,
127
- hidden, analyzerName: analyzer, searchAnalyzerName: searchAnalyzer, indexAnalyzerName: indexAnalyzer, synonymMapNames });
155
+ hidden, analyzerName: analyzer, searchAnalyzerName: searchAnalyzer, indexAnalyzerName: indexAnalyzer, normalizerName: normalizer, synonymMapNames });
128
156
  return result;
129
157
  }
130
158
  });
131
159
  }
132
160
  export function convertFieldsToGenerated(fields) {
133
- return fields.map((field) => {
161
+ return fields === null || fields === void 0 ? void 0 : fields.map((field) => {
134
162
  var _a, _b, _c, _d;
135
163
  if (isComplexField(field)) {
136
164
  return {
137
165
  name: field.name,
138
166
  type: field.type,
139
- fields: field.fields ? convertFieldsToGenerated(field.fields) : field.fields,
167
+ fields: convertFieldsToGenerated(field.fields),
140
168
  };
141
169
  }
142
170
  else {
@@ -144,7 +172,7 @@ export function convertFieldsToGenerated(fields) {
144
172
  const retrievable = typeof hidden === "boolean" ? !hidden : hidden;
145
173
  return Object.assign(Object.assign({}, restField), { retrievable,
146
174
  // modify API defaults to use less storage for simple types
147
- searchable: (_a = field.searchable) !== null && _a !== void 0 ? _a : false, filterable: (_b = field.filterable) !== null && _b !== void 0 ? _b : false, facetable: (_c = field.facetable) !== null && _c !== void 0 ? _c : false, sortable: (_d = field.sortable) !== null && _d !== void 0 ? _d : false, analyzer: field.analyzerName, searchAnalyzer: field.searchAnalyzerName, indexAnalyzer: field.indexAnalyzerName, synonymMaps: field.synonymMapNames });
175
+ searchable: (_a = field.searchable) !== null && _a !== void 0 ? _a : false, filterable: (_b = field.filterable) !== null && _b !== void 0 ? _b : false, facetable: (_c = field.facetable) !== null && _c !== void 0 ? _c : false, sortable: (_d = field.sortable) !== null && _d !== void 0 ? _d : false, analyzer: field.analyzerName, searchAnalyzer: field.searchAnalyzerName, indexAnalyzer: field.indexAnalyzerName, synonymMaps: field.synonymMapNames, normalizer: field.normalizerName });
148
176
  }
149
177
  });
150
178
  }
@@ -206,6 +234,7 @@ function convertEncryptionKeyToPublic(encryptionKey) {
206
234
  keyName: encryptionKey.keyName,
207
235
  keyVersion: encryptionKey.keyVersion,
208
236
  vaultUrl: encryptionKey.vaultUri,
237
+ identity: convertSearchIndexerDataIdentityToPublic(encryptionKey.identity),
209
238
  };
210
239
  if (encryptionKey.accessCredentials) {
211
240
  result.applicationId = encryptionKey.accessCredentials.applicationId;
@@ -221,6 +250,7 @@ function convertEncryptionKeyToGenerated(encryptionKey) {
221
250
  keyName: encryptionKey.keyName,
222
251
  keyVersion: encryptionKey.keyVersion,
223
252
  vaultUri: encryptionKey.vaultUrl,
253
+ identity: encryptionKey.identity,
224
254
  };
225
255
  if (encryptionKey.applicationId) {
226
256
  result.accessCredentials = {
@@ -242,6 +272,7 @@ export function generatedIndexToPublicIndex(generatedIndex) {
242
272
  tokenizers: convertTokenizersToPublic(generatedIndex.tokenizers),
243
273
  tokenFilters: generatedIndex.tokenFilters,
244
274
  charFilters: generatedIndex.charFilters,
275
+ normalizers: generatedIndex.normalizers,
245
276
  scoringProfiles: generatedIndex.scoringProfiles,
246
277
  fields: convertFieldsToPublic(generatedIndex.fields),
247
278
  similarity: convertSimilarityToPublic(generatedIndex.similarity),
@@ -250,25 +281,63 @@ export function generatedIndexToPublicIndex(generatedIndex) {
250
281
  };
251
282
  }
252
283
  export function generatedVectorSearchVectorizerToPublicVectorizer(generatedVectorizer) {
284
+ var _a;
253
285
  if (!generatedVectorizer) {
254
286
  return generatedVectorizer;
255
287
  }
256
- switch (generatedVectorizer.kind) {
257
- case "azureOpenAI": {
288
+ const knownVectorizerDeserializers = {
289
+ azureOpenAI: () => {
258
290
  const { parameters } = generatedVectorizer;
259
291
  const authIdentity = convertSearchIndexerDataIdentityToPublic(parameters === null || parameters === void 0 ? void 0 : parameters.authIdentity);
260
292
  const vectorizer = Object.assign(Object.assign({}, generatedVectorizer), { parameters: Object.assign(Object.assign({}, parameters), { authIdentity }) });
261
293
  return vectorizer;
262
- }
263
- case "customWebApi": {
294
+ },
295
+ customWebApi: () => {
264
296
  const { parameters } = generatedVectorizer;
265
297
  const authIdentity = convertSearchIndexerDataIdentityToPublic(parameters === null || parameters === void 0 ? void 0 : parameters.authIdentity);
266
298
  const vectorizer = Object.assign(Object.assign({}, generatedVectorizer), { parameters: Object.assign(Object.assign({}, parameters), { authIdentity }) });
267
299
  return vectorizer;
300
+ },
301
+ aiServicesVision: () => {
302
+ var _a;
303
+ const generatedVisionVectorizer = generatedVectorizer;
304
+ const { aIServicesVisionParameters: generatedParameters } = generatedVisionVectorizer;
305
+ const parameters = generatedParameters
306
+ ? Object.assign(Object.assign({}, generatedParameters), { modelVersion: (_a = generatedParameters.modelVersion) !== null && _a !== void 0 ? _a : undefined, resourceUri: generatedParameters.resourceUri, authIdentity: convertSearchIndexerDataIdentityToPublic(generatedParameters.authIdentity) }) : undefined;
307
+ const vectorizer = Object.assign(Object.assign({}, generatedVisionVectorizer), { parameters });
308
+ return vectorizer;
309
+ },
310
+ aml: () => {
311
+ const generatedAMLVectorizer = generatedVectorizer;
312
+ const vectorizer = Object.assign(Object.assign({}, generatedAMLVectorizer), { amlParameters: generatedAzureMachineLearningVectorizerParametersToPublicAzureMachineLearningVectorizerParameters(generatedAMLVectorizer.aMLParameters) });
313
+ return vectorizer;
314
+ },
315
+ };
316
+ const defaultDeserializer = () => {
317
+ logger.warning(`Unsupported vectorizer kind: ${generatedVectorizer.kind}`);
318
+ return generatedVectorizer;
319
+ };
320
+ return ((_a = knownVectorizerDeserializers[generatedVectorizer.kind]) !== null && _a !== void 0 ? _a : defaultDeserializer)();
321
+ }
322
+ function generatedAzureMachineLearningVectorizerParametersToPublicAzureMachineLearningVectorizerParameters(aMLParameters) {
323
+ if (!aMLParameters) {
324
+ return aMLParameters;
325
+ }
326
+ const { resourceId, authenticationKey, scoringUri } = aMLParameters;
327
+ // Sensitive to case order
328
+ switch (true) {
329
+ case resourceId !== undefined && resourceId !== null: {
330
+ return Object.assign(Object.assign({}, aMLParameters), { authKind: "token" });
331
+ }
332
+ case authenticationKey !== undefined && authenticationKey !== null: {
333
+ return Object.assign(Object.assign({}, aMLParameters), { authKind: "key" });
334
+ }
335
+ case scoringUri !== undefined && scoringUri !== null: {
336
+ return Object.assign(Object.assign({}, aMLParameters), { authKind: "none" });
268
337
  }
269
338
  }
270
- logger.warning(`Unsupported vectorizer kind: ${generatedVectorizer.kind}`);
271
- return generatedVectorizer;
339
+ logger.warning("Unknown AML parameter kind");
340
+ return aMLParameters;
272
341
  }
273
342
  export function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(generatedAlgorithmConfiguration) {
274
343
  var _a;
@@ -291,12 +360,13 @@ export function generatedVectorSearchToPublicVectorSearch(vectorSearch) {
291
360
  }
292
361
  export function generatedSearchResultToPublicSearchResult(results) {
293
362
  const returnValues = results.map((result) => {
294
- const { _score: score, _highlights: highlights, _rerankerScore: rerankerScore, _captions: captions } = result, restProps = __rest(result, ["_score", "_highlights", "_rerankerScore", "_captions"]);
363
+ const { _score: score, _highlights: highlights, _rerankerScore: rerankerScore, _captions: captions, documentDebugInfo: documentDebugInfo } = result, restProps = __rest(result, ["_score", "_highlights", "_rerankerScore", "_captions", "documentDebugInfo"]);
295
364
  const obj = {
296
365
  score,
297
366
  highlights,
298
367
  rerankerScore,
299
368
  captions,
369
+ documentDebugInfo,
300
370
  document: restProps,
301
371
  };
302
372
  return obj;
@@ -319,15 +389,17 @@ export function generatedSuggestDocumentsResultToPublicSuggestDocumentsResult(se
319
389
  return result;
320
390
  }
321
391
  export function publicIndexToGeneratedIndex(index) {
392
+ var _a;
322
393
  const { encryptionKey, tokenFilters, analyzers, tokenizers, fields, similarity } = index;
323
- return Object.assign(Object.assign({}, index), { encryptionKey: convertEncryptionKeyToGenerated(encryptionKey), tokenFilters: convertTokenFiltersToGenerated(tokenFilters), analyzers: convertAnalyzersToGenerated(analyzers), tokenizers: convertTokenizersToGenerated(tokenizers), fields: convertFieldsToGenerated(fields), similarity: convertSimilarityToGenerated(similarity) });
394
+ return Object.assign(Object.assign({}, index), { encryptionKey: convertEncryptionKeyToGenerated(encryptionKey), tokenFilters: convertTokenFiltersToGenerated(tokenFilters), analyzers: convertAnalyzersToGenerated(analyzers), tokenizers: convertTokenizersToGenerated(tokenizers), fields: (_a = convertFieldsToGenerated(fields)) !== null && _a !== void 0 ? _a : [], similarity: convertSimilarityToGenerated(similarity) });
324
395
  }
325
396
  export function generatedSkillsetToPublicSkillset(generatedSkillset) {
326
- const { skills, cognitiveServicesAccount, encryptionKey, indexProjection } = generatedSkillset, props = __rest(generatedSkillset, ["skills", "cognitiveServicesAccount", "encryptionKey", "indexProjection"]);
327
- return Object.assign(Object.assign({}, props), { skills: convertSkillsToPublic(skills), cognitiveServicesAccount: convertCognitiveServicesAccountToPublic(cognitiveServicesAccount), encryptionKey: convertEncryptionKeyToPublic(encryptionKey), indexProjection: indexProjection });
397
+ const { skills, cognitiveServicesAccount, knowledgeStore, encryptionKey, indexProjection } = generatedSkillset, props = __rest(generatedSkillset, ["skills", "cognitiveServicesAccount", "knowledgeStore", "encryptionKey", "indexProjection"]);
398
+ return Object.assign(Object.assign({}, props), { skills: convertSkillsToPublic(skills), cognitiveServicesAccount: convertCognitiveServicesAccountToPublic(cognitiveServicesAccount), knowledgeStore: convertKnowledgeStoreToPublic(knowledgeStore), encryptionKey: convertEncryptionKeyToPublic(encryptionKey), indexProjection: indexProjection });
328
399
  }
329
400
  export function publicSkillsetToGeneratedSkillset(skillset) {
330
- return Object.assign(Object.assign({}, skillset), { name: skillset.name, description: skillset.description, etag: skillset.etag, skills: skillset.skills, cognitiveServicesAccount: convertCognitiveServicesAccountToGenerated(skillset.cognitiveServicesAccount), knowledgeStore: skillset.knowledgeStore, encryptionKey: convertEncryptionKeyToGenerated(skillset.encryptionKey) });
401
+ const { cognitiveServicesAccount, encryptionKey } = skillset;
402
+ return Object.assign(Object.assign({}, skillset), { cognitiveServicesAccount: convertCognitiveServicesAccountToGenerated(cognitiveServicesAccount), encryptionKey: convertEncryptionKeyToGenerated(encryptionKey) });
331
403
  }
332
404
  export function generatedSynonymMapToPublicSynonymMap(synonymMap) {
333
405
  const result = {
@@ -360,7 +432,7 @@ export function generatedSearchIndexerToPublicSearchIndexer(indexer) {
360
432
  const { parsingMode, dataToExtract, imageAction, pdfTextRotationAlgorithm, executionEnvironment, } = (_b = (_a = indexer.parameters) === null || _a === void 0 ? void 0 : _a.configuration) !== null && _b !== void 0 ? _b : {};
361
433
  const configuration = ((_c = indexer.parameters) === null || _c === void 0 ? void 0 : _c.configuration) && Object.assign(Object.assign({}, (_d = indexer.parameters) === null || _d === void 0 ? void 0 : _d.configuration), { parsingMode: parsingMode, dataToExtract: dataToExtract, imageAction: imageAction, pdfTextRotationAlgorithm: pdfTextRotationAlgorithm, executionEnvironment: executionEnvironment });
362
434
  const parameters = Object.assign(Object.assign({}, indexer.parameters), { configuration });
363
- return Object.assign(Object.assign({}, indexer), { parameters, encryptionKey: convertEncryptionKeyToPublic(indexer.encryptionKey) });
435
+ return Object.assign(Object.assign({}, indexer), { parameters, encryptionKey: convertEncryptionKeyToPublic(indexer.encryptionKey), cache: convertSearchIndexerCacheToPublic(indexer.cache) });
364
436
  }
365
437
  export function publicDataSourceToGeneratedDataSource(dataSource) {
366
438
  return {
@@ -371,6 +443,7 @@ export function publicDataSourceToGeneratedDataSource(dataSource) {
371
443
  connectionString: dataSource.connectionString,
372
444
  },
373
445
  container: dataSource.container,
446
+ identity: dataSource.identity,
374
447
  etag: dataSource.etag,
375
448
  dataChangeDetectionPolicy: dataSource.dataChangeDetectionPolicy,
376
449
  dataDeletionDetectionPolicy: dataSource.dataDeletionDetectionPolicy,
@@ -384,6 +457,7 @@ export function generatedDataSourceToPublicDataSource(dataSource) {
384
457
  type: dataSource.type,
385
458
  connectionString: dataSource.credentials.connectionString,
386
459
  container: dataSource.container,
460
+ identity: convertSearchIndexerDataIdentityToPublic(dataSource.identity),
387
461
  etag: dataSource.etag,
388
462
  dataChangeDetectionPolicy: convertDataChangeDetectionPolicyToPublic(dataSource.dataChangeDetectionPolicy),
389
463
  dataDeletionDetectionPolicy: convertDataDeletionDetectionPolicyToPublic(dataSource.dataDeletionDetectionPolicy),
@@ -429,4 +503,16 @@ export function getRandomIntegerInclusive(min, max) {
429
503
  const offset = Math.floor(Math.random() * (max - min + 1));
430
504
  return offset + min;
431
505
  }
506
+ function convertKnowledgeStoreToPublic(knowledgeStore) {
507
+ if (!knowledgeStore) {
508
+ return knowledgeStore;
509
+ }
510
+ return Object.assign(Object.assign({}, knowledgeStore), { identity: convertSearchIndexerDataIdentityToPublic(knowledgeStore.identity) });
511
+ }
512
+ export function convertSearchIndexerCacheToPublic(cache) {
513
+ if (!cache) {
514
+ return cache;
515
+ }
516
+ return Object.assign(Object.assign({}, cache), { identity: convertSearchIndexerDataIdentityToPublic(cache.identity) });
517
+ }
432
518
  //# sourceMappingURL=serviceUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serviceUtils.js","sourceRoot":"","sources":["../../src/serviceUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n SearchResult as GeneratedSearchResult,\n SuggestDocumentsResult as GeneratedSuggestDocumentsResult,\n} from \"./generated/data/models\";\nimport {\n AzureOpenAIVectorizer as GeneratedAzureOpenAIVectorizer,\n BM25Similarity,\n ClassicSimilarity,\n CognitiveServicesAccountKey,\n CognitiveServicesAccountUnion,\n CustomAnalyzer as BaseCustomAnalyzer,\n DataChangeDetectionPolicyUnion,\n DataDeletionDetectionPolicyUnion,\n DefaultCognitiveServicesAccount,\n ExhaustiveKnnAlgorithmConfiguration as GeneratedExhaustiveKnnAlgorithmConfiguration,\n HighWaterMarkChangeDetectionPolicy,\n HnswAlgorithmConfiguration as GeneratedHnswAlgorithmConfiguration,\n LexicalAnalyzerUnion,\n LexicalTokenizerUnion,\n LuceneStandardAnalyzer,\n PatternAnalyzer as GeneratedPatternAnalyzer,\n PatternTokenizer,\n SearchField as GeneratedSearchField,\n SearchIndex as GeneratedSearchIndex,\n SearchIndexer as GeneratedSearchIndexer,\n SearchIndexerDataIdentityUnion,\n SearchIndexerDataNoneIdentity,\n SearchIndexerDataSource as GeneratedSearchIndexerDataSourceConnection,\n SearchIndexerDataUserAssignedIdentity,\n SearchIndexerSkillset as GeneratedSearchIndexerSkillset,\n SearchIndexerSkillUnion,\n SearchResourceEncryptionKey as GeneratedSearchResourceEncryptionKey,\n SimilarityUnion,\n SoftDeleteColumnDeletionDetectionPolicy,\n SqlIntegratedChangeTrackingPolicy,\n StopAnalyzer,\n SynonymMap as GeneratedSynonymMap,\n TokenFilterUnion,\n VectorSearch as GeneratedVectorSearch,\n VectorSearchAlgorithmConfigurationUnion as GeneratedVectorSearchAlgorithmConfiguration,\n VectorSearchVectorizerUnion as GeneratedVectorSearchVectorizer,\n WebApiVectorizer as GeneratedWebAPIVectorizer,\n} from \"./generated/service/models\";\nimport { SearchResult, SelectFields, SuggestDocumentsResult, SuggestResult } from \"./indexModels\";\nimport { logger } from \"./logger\";\nimport {\n AzureOpenAIVectorizer,\n BlobIndexerDataToExtract,\n BlobIndexerImageAction,\n BlobIndexerParsingMode,\n BlobIndexerPDFTextRotationAlgorithm,\n CharFilter,\n CognitiveServicesAccount,\n ComplexField,\n DataChangeDetectionPolicy,\n DataDeletionDetectionPolicy,\n IndexerExecutionEnvironment,\n IndexingParameters,\n IndexingParametersConfiguration,\n isComplexField,\n LexicalAnalyzer,\n LexicalTokenizer,\n PatternAnalyzer,\n RegexFlags,\n ScoringProfile,\n SearchField,\n SearchFieldDataType,\n SearchIndex,\n SearchIndexer,\n SearchIndexerDataIdentity,\n SearchIndexerDataSourceConnection,\n SearchIndexerDataSourceType,\n SearchIndexerIndexProjection,\n SearchIndexerSkill,\n SearchIndexerSkillset,\n SearchResourceEncryptionKey,\n SimilarityAlgorithm,\n SimpleField,\n SynonymMap,\n TokenFilter,\n VectorSearch,\n VectorSearchAlgorithmConfiguration,\n VectorSearchAlgorithmMetric,\n VectorSearchVectorizer,\n WebApiVectorizer,\n} from \"./serviceModels\";\n\nexport const defaultServiceVersion = \"2024-07-01\";\n\nconst knownSkills: Record<`${SearchIndexerSkillUnion[\"odatatype\"]}`, true> = {\n \"#Microsoft.Skills.Custom.WebApiSkill\": true,\n \"#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill\": true,\n \"#Microsoft.Skills.Text.CustomEntityLookupSkill\": true,\n \"#Microsoft.Skills.Text.EntityRecognitionSkill\": true,\n \"#Microsoft.Skills.Text.KeyPhraseExtractionSkill\": true,\n \"#Microsoft.Skills.Text.LanguageDetectionSkill\": true,\n \"#Microsoft.Skills.Text.MergeSkill\": true,\n \"#Microsoft.Skills.Text.PIIDetectionSkill\": true,\n \"#Microsoft.Skills.Text.SentimentSkill\": true,\n \"#Microsoft.Skills.Text.SplitSkill\": true,\n \"#Microsoft.Skills.Text.TranslationSkill\": true,\n \"#Microsoft.Skills.Text.V3.EntityLinkingSkill\": true,\n \"#Microsoft.Skills.Text.V3.EntityRecognitionSkill\": true,\n \"#Microsoft.Skills.Text.V3.SentimentSkill\": true,\n \"#Microsoft.Skills.Util.ConditionalSkill\": true,\n \"#Microsoft.Skills.Util.DocumentExtractionSkill\": true,\n \"#Microsoft.Skills.Util.ShaperSkill\": true,\n \"#Microsoft.Skills.Vision.ImageAnalysisSkill\": true,\n \"#Microsoft.Skills.Vision.OcrSkill\": true,\n};\n\nexport function convertSkillsToPublic(skills: SearchIndexerSkillUnion[]): SearchIndexerSkill[] {\n if (!skills) {\n return skills;\n }\n\n // This validation has already GAed\n return skills.filter((skill): skill is SearchIndexerSkill => knownSkills[skill.odatatype]);\n}\n\nexport function convertCognitiveServicesAccountToGenerated(\n cognitiveServicesAccount?: CognitiveServicesAccount,\n): CognitiveServicesAccountUnion | undefined {\n if (!cognitiveServicesAccount) {\n return cognitiveServicesAccount;\n }\n\n return cognitiveServicesAccount as CognitiveServicesAccountUnion;\n}\n\nexport function convertCognitiveServicesAccountToPublic(\n cognitiveServicesAccount?: CognitiveServicesAccountUnion,\n): CognitiveServicesAccount | undefined {\n if (!cognitiveServicesAccount) {\n return cognitiveServicesAccount;\n }\n\n if (cognitiveServicesAccount.odatatype === \"#Microsoft.Azure.Search.DefaultCognitiveServices\") {\n return cognitiveServicesAccount as DefaultCognitiveServicesAccount;\n } else {\n return cognitiveServicesAccount as CognitiveServicesAccountKey;\n }\n}\n\nexport function convertTokenFiltersToGenerated(\n tokenFilters?: TokenFilter[],\n): TokenFilterUnion[] | undefined {\n if (!tokenFilters) {\n return tokenFilters;\n }\n\n const result: TokenFilterUnion[] = [];\n for (const filter of tokenFilters) {\n result.push(filter);\n }\n\n return result;\n}\n\nfunction convertAnalyzersToGenerated(\n analyzers?: LexicalAnalyzer[],\n): LexicalAnalyzerUnion[] | undefined {\n if (!analyzers) {\n return analyzers;\n }\n\n const result: LexicalAnalyzerUnion[] = [];\n for (const analyzer of analyzers) {\n switch (analyzer.odatatype) {\n case \"#Microsoft.Azure.Search.StandardAnalyzer\":\n case \"#Microsoft.Azure.Search.StopAnalyzer\":\n result.push(analyzer);\n break;\n case \"#Microsoft.Azure.Search.PatternAnalyzer\":\n result.push({\n ...analyzer,\n flags: analyzer.flags ? analyzer.flags.join(\"|\") : undefined,\n });\n break;\n case \"#Microsoft.Azure.Search.CustomAnalyzer\":\n result.push({\n ...analyzer,\n tokenizerName: analyzer.tokenizerName,\n });\n break;\n }\n }\n return result;\n}\n\nfunction convertAnalyzersToPublic(\n analyzers?: LexicalAnalyzerUnion[],\n): LexicalAnalyzer[] | undefined {\n if (!analyzers) {\n return analyzers;\n }\n\n const result: LexicalAnalyzer[] = [];\n for (const analyzer of analyzers) {\n switch (analyzer.odatatype) {\n case \"#Microsoft.Azure.Search.StandardAnalyzer\":\n result.push(analyzer as LuceneStandardAnalyzer);\n break;\n case \"#Microsoft.Azure.Search.StopAnalyzer\":\n result.push(analyzer as StopAnalyzer);\n break;\n case \"#Microsoft.Azure.Search.PatternAnalyzer\":\n result.push({\n ...analyzer,\n flags: (analyzer as GeneratedPatternAnalyzer).flags\n ? ((analyzer as GeneratedPatternAnalyzer).flags!.split(\"|\") as RegexFlags[])\n : undefined,\n } as PatternAnalyzer);\n break;\n case \"#Microsoft.Azure.Search.CustomAnalyzer\":\n result.push(analyzer as BaseCustomAnalyzer);\n break;\n }\n }\n return result;\n}\n\nexport function convertFieldsToPublic(fields: GeneratedSearchField[]): SearchField[] {\n if (!fields) {\n return fields;\n }\n\n return fields.map<SearchField>((field): SearchField => {\n if (field.type === \"Collection(Edm.ComplexType)\" || field.type === \"Edm.ComplexType\") {\n const result: ComplexField = {\n name: field.name,\n type: field.type,\n fields: convertFieldsToPublic(field.fields!),\n };\n return result;\n } else {\n const type: SearchFieldDataType = field.type as SearchFieldDataType;\n const synonymMapNames: string[] | undefined = field.synonymMaps;\n\n const { retrievable, analyzer, searchAnalyzer, indexAnalyzer, ...restField } = field;\n const hidden = typeof retrievable === \"boolean\" ? !retrievable : retrievable;\n\n const result: SimpleField = {\n ...restField,\n type,\n hidden,\n analyzerName: analyzer,\n searchAnalyzerName: searchAnalyzer,\n indexAnalyzerName: indexAnalyzer,\n synonymMapNames,\n };\n return result;\n }\n });\n}\n\nexport function convertFieldsToGenerated(fields: SearchField[]): GeneratedSearchField[] {\n return fields.map<GeneratedSearchField>((field) => {\n if (isComplexField(field)) {\n return {\n name: field.name,\n type: field.type,\n fields: field.fields ? convertFieldsToGenerated(field.fields) : field.fields,\n };\n } else {\n const { hidden, ...restField } = field;\n const retrievable = typeof hidden === \"boolean\" ? !hidden : hidden;\n return {\n ...restField,\n retrievable,\n // modify API defaults to use less storage for simple types\n searchable: field.searchable ?? false,\n filterable: field.filterable ?? false,\n facetable: field.facetable ?? false,\n sortable: field.sortable ?? false,\n analyzer: field.analyzerName,\n searchAnalyzer: field.searchAnalyzerName,\n indexAnalyzer: field.indexAnalyzerName,\n synonymMaps: field.synonymMapNames,\n };\n }\n });\n}\n\nfunction convertTokenizersToGenerated(\n tokenizers?: LexicalTokenizer[],\n): LexicalTokenizerUnion[] | undefined {\n if (!tokenizers) {\n return tokenizers;\n }\n\n const result: LexicalTokenizerUnion[] = [];\n for (const tokenizer of tokenizers) {\n if (tokenizer.odatatype === \"#Microsoft.Azure.Search.PatternTokenizer\") {\n result.push({\n ...tokenizer,\n flags: tokenizer.flags ? tokenizer.flags.join(\"|\") : undefined,\n });\n } else {\n result.push(tokenizer);\n }\n }\n return result;\n}\n\nfunction convertTokenizersToPublic(\n tokenizers?: LexicalTokenizerUnion[],\n): LexicalTokenizer[] | undefined {\n if (!tokenizers) {\n return tokenizers;\n }\n\n const result: LexicalTokenizer[] = [];\n for (const tokenizer of tokenizers) {\n if (tokenizer.odatatype === \"#Microsoft.Azure.Search.PatternTokenizer\") {\n const patternTokenizer = tokenizer as PatternTokenizer;\n const flags = patternTokenizer.flags?.split(\"|\") as RegexFlags[] | undefined;\n result.push({\n ...tokenizer,\n flags,\n });\n } else {\n result.push(tokenizer);\n }\n }\n return result;\n}\n\nexport function convertSimilarityToGenerated(\n similarity?: SimilarityAlgorithm,\n): SimilarityUnion | undefined {\n if (!similarity) {\n return similarity;\n }\n\n return similarity as SimilarityUnion;\n}\n\nexport function convertSimilarityToPublic(\n similarity?: SimilarityUnion,\n): SimilarityAlgorithm | undefined {\n if (!similarity) {\n return similarity;\n }\n\n if (similarity.odatatype === \"#Microsoft.Azure.Search.ClassicSimilarity\") {\n return similarity as ClassicSimilarity;\n } else {\n return similarity as BM25Similarity;\n }\n}\n\nfunction convertEncryptionKeyToPublic(\n encryptionKey?: GeneratedSearchResourceEncryptionKey,\n): SearchResourceEncryptionKey | undefined {\n if (!encryptionKey) {\n return encryptionKey;\n }\n\n const result: SearchResourceEncryptionKey = {\n keyName: encryptionKey.keyName,\n keyVersion: encryptionKey.keyVersion,\n vaultUrl: encryptionKey.vaultUri,\n };\n\n if (encryptionKey.accessCredentials) {\n result.applicationId = encryptionKey.accessCredentials.applicationId;\n result.applicationSecret = encryptionKey.accessCredentials.applicationSecret;\n }\n\n return result;\n}\n\nfunction convertEncryptionKeyToGenerated(\n encryptionKey?: SearchResourceEncryptionKey,\n): GeneratedSearchResourceEncryptionKey | undefined {\n if (!encryptionKey) {\n return encryptionKey;\n }\n\n const result: GeneratedSearchResourceEncryptionKey = {\n keyName: encryptionKey.keyName,\n keyVersion: encryptionKey.keyVersion,\n vaultUri: encryptionKey.vaultUrl,\n };\n\n if (encryptionKey.applicationId) {\n result.accessCredentials = {\n applicationId: encryptionKey.applicationId,\n applicationSecret: encryptionKey.applicationSecret,\n };\n }\n\n return result;\n}\n\nexport function generatedIndexToPublicIndex(generatedIndex: GeneratedSearchIndex): SearchIndex {\n return {\n name: generatedIndex.name,\n defaultScoringProfile: generatedIndex.defaultScoringProfile,\n corsOptions: generatedIndex.corsOptions,\n suggesters: generatedIndex.suggesters,\n encryptionKey: convertEncryptionKeyToPublic(generatedIndex.encryptionKey),\n etag: generatedIndex.etag,\n analyzers: convertAnalyzersToPublic(generatedIndex.analyzers),\n tokenizers: convertTokenizersToPublic(generatedIndex.tokenizers),\n tokenFilters: generatedIndex.tokenFilters as TokenFilter[],\n charFilters: generatedIndex.charFilters as CharFilter[],\n scoringProfiles: generatedIndex.scoringProfiles as ScoringProfile[],\n fields: convertFieldsToPublic(generatedIndex.fields),\n similarity: convertSimilarityToPublic(generatedIndex.similarity),\n semanticSearch: generatedIndex.semanticSearch,\n vectorSearch: generatedVectorSearchToPublicVectorSearch(generatedIndex.vectorSearch),\n };\n}\n\nexport function generatedVectorSearchVectorizerToPublicVectorizer(): undefined;\nexport function generatedVectorSearchVectorizerToPublicVectorizer(\n generatedVectorizer: GeneratedVectorSearchVectorizer,\n): VectorSearchVectorizer;\nexport function generatedVectorSearchVectorizerToPublicVectorizer(\n generatedVectorizer?: GeneratedVectorSearchVectorizer,\n): VectorSearchVectorizer | undefined {\n if (!generatedVectorizer) {\n return generatedVectorizer;\n }\n\n switch (generatedVectorizer.kind) {\n case \"azureOpenAI\": {\n const { parameters } = generatedVectorizer as GeneratedAzureOpenAIVectorizer;\n const authIdentity = convertSearchIndexerDataIdentityToPublic(parameters?.authIdentity);\n const vectorizer: AzureOpenAIVectorizer = {\n ...(generatedVectorizer as GeneratedAzureOpenAIVectorizer),\n parameters: { ...parameters, authIdentity },\n };\n return vectorizer;\n }\n case \"customWebApi\": {\n const { parameters } = generatedVectorizer as GeneratedWebAPIVectorizer;\n const authIdentity = convertSearchIndexerDataIdentityToPublic(parameters?.authIdentity);\n const vectorizer: WebApiVectorizer = {\n ...(generatedVectorizer as GeneratedWebAPIVectorizer),\n parameters: { ...parameters, authIdentity },\n };\n return vectorizer;\n }\n }\n logger.warning(`Unsupported vectorizer kind: ${(generatedVectorizer as any).kind}`);\n return generatedVectorizer as any;\n}\n\nexport function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(): undefined;\nexport function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(\n generatedAlgorithmConfiguration: GeneratedVectorSearchAlgorithmConfiguration,\n): VectorSearchAlgorithmConfiguration;\nexport function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(\n generatedAlgorithmConfiguration?: GeneratedVectorSearchAlgorithmConfiguration,\n): VectorSearchAlgorithmConfiguration | undefined {\n if (!generatedAlgorithmConfiguration) {\n return generatedAlgorithmConfiguration;\n }\n\n if ([\"hnsw\", \"exhaustiveKnn\"].includes(generatedAlgorithmConfiguration.kind)) {\n const algorithmConfiguration = generatedAlgorithmConfiguration as\n | GeneratedHnswAlgorithmConfiguration\n | GeneratedExhaustiveKnnAlgorithmConfiguration;\n const metric = algorithmConfiguration.parameters?.metric as VectorSearchAlgorithmMetric;\n return {\n ...algorithmConfiguration,\n parameters: { ...algorithmConfiguration.parameters, metric },\n };\n }\n\n throw Error(\"Unsupported algorithm configuration\");\n}\n\nexport function generatedVectorSearchToPublicVectorSearch(\n vectorSearch?: GeneratedVectorSearch,\n): VectorSearch | undefined {\n if (!vectorSearch) {\n return vectorSearch;\n }\n\n return {\n ...vectorSearch,\n algorithms: vectorSearch.algorithms?.map(\n generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration,\n ),\n vectorizers: vectorSearch.vectorizers?.map(generatedVectorSearchVectorizerToPublicVectorizer),\n };\n}\n\nexport function generatedSearchResultToPublicSearchResult<\n TModel extends object,\n TFields extends SelectFields<TModel>,\n>(results: GeneratedSearchResult[]): SearchResult<TModel, TFields>[] {\n const returnValues: SearchResult<TModel, TFields>[] = results.map<SearchResult<TModel, TFields>>(\n (result) => {\n const {\n _score: score,\n _highlights: highlights,\n _rerankerScore: rerankerScore,\n _captions: captions,\n ...restProps\n } = result;\n const obj = {\n score,\n highlights,\n rerankerScore,\n captions,\n document: restProps,\n };\n return obj as SearchResult<TModel, TFields>;\n },\n );\n return returnValues;\n}\n\nexport function generatedSuggestDocumentsResultToPublicSuggestDocumentsResult<\n TModel extends object,\n TFields extends SelectFields<TModel>,\n>(searchDocumentsResult: GeneratedSuggestDocumentsResult): SuggestDocumentsResult<TModel, TFields> {\n const results = searchDocumentsResult.results.map<SuggestResult<TModel, TFields>>((element) => {\n const { _text, ...restProps } = element;\n\n const obj = {\n text: _text,\n document: restProps,\n };\n\n return obj as SuggestResult<TModel, TFields>;\n });\n\n const result: SuggestDocumentsResult<TModel, TFields> = {\n results: results,\n coverage: searchDocumentsResult.coverage,\n };\n\n return result;\n}\n\nexport function publicIndexToGeneratedIndex(index: SearchIndex): GeneratedSearchIndex {\n const { encryptionKey, tokenFilters, analyzers, tokenizers, fields, similarity } = index;\n\n return {\n ...index,\n encryptionKey: convertEncryptionKeyToGenerated(encryptionKey),\n tokenFilters: convertTokenFiltersToGenerated(tokenFilters),\n analyzers: convertAnalyzersToGenerated(analyzers),\n tokenizers: convertTokenizersToGenerated(tokenizers),\n fields: convertFieldsToGenerated(fields),\n similarity: convertSimilarityToGenerated(similarity),\n };\n}\n\nexport function generatedSkillsetToPublicSkillset(\n generatedSkillset: GeneratedSearchIndexerSkillset,\n): SearchIndexerSkillset {\n const { skills, cognitiveServicesAccount, encryptionKey, indexProjection, ...props } =\n generatedSkillset;\n return {\n ...props,\n skills: convertSkillsToPublic(skills),\n cognitiveServicesAccount: convertCognitiveServicesAccountToPublic(cognitiveServicesAccount),\n encryptionKey: convertEncryptionKeyToPublic(encryptionKey),\n indexProjection: indexProjection as SearchIndexerIndexProjection,\n };\n}\n\nexport function publicSkillsetToGeneratedSkillset(\n skillset: SearchIndexerSkillset,\n): GeneratedSearchIndexerSkillset {\n return {\n ...skillset,\n name: skillset.name,\n description: skillset.description,\n etag: skillset.etag,\n skills: skillset.skills,\n cognitiveServicesAccount: convertCognitiveServicesAccountToGenerated(\n skillset.cognitiveServicesAccount,\n ),\n knowledgeStore: skillset.knowledgeStore,\n encryptionKey: convertEncryptionKeyToGenerated(skillset.encryptionKey),\n };\n}\n\nexport function generatedSynonymMapToPublicSynonymMap(synonymMap: GeneratedSynonymMap): SynonymMap {\n const result: SynonymMap = {\n name: synonymMap.name,\n encryptionKey: convertEncryptionKeyToPublic(synonymMap.encryptionKey),\n etag: synonymMap.etag,\n synonyms: [],\n };\n\n if (synonymMap.synonyms) {\n result.synonyms = synonymMap.synonyms.split(\"\\n\");\n }\n\n return result;\n}\n\nexport function publicSynonymMapToGeneratedSynonymMap(synonymMap: SynonymMap): GeneratedSynonymMap {\n const result: GeneratedSynonymMap = {\n name: synonymMap.name,\n format: \"solr\",\n encryptionKey: convertEncryptionKeyToGenerated(synonymMap.encryptionKey),\n etag: synonymMap.etag,\n synonyms: synonymMap.synonyms.join(\"\\n\"),\n };\n\n result.encryptionKey = convertEncryptionKeyToGenerated(synonymMap.encryptionKey);\n\n return result;\n}\n\nexport function publicSearchIndexerToGeneratedSearchIndexer(\n indexer: SearchIndexer,\n): GeneratedSearchIndexer {\n return {\n ...indexer,\n encryptionKey: convertEncryptionKeyToGenerated(indexer.encryptionKey),\n };\n}\n\nexport function generatedSearchIndexerToPublicSearchIndexer(\n indexer: GeneratedSearchIndexer,\n): SearchIndexer {\n const {\n parsingMode,\n dataToExtract,\n imageAction,\n pdfTextRotationAlgorithm,\n executionEnvironment,\n } = indexer.parameters?.configuration ?? {};\n\n const configuration: IndexingParametersConfiguration | undefined = indexer.parameters\n ?.configuration && {\n ...indexer.parameters?.configuration,\n parsingMode: parsingMode as BlobIndexerParsingMode | undefined,\n dataToExtract: dataToExtract as BlobIndexerDataToExtract | undefined,\n imageAction: imageAction as BlobIndexerImageAction | undefined,\n pdfTextRotationAlgorithm: pdfTextRotationAlgorithm as\n | BlobIndexerPDFTextRotationAlgorithm\n | undefined,\n executionEnvironment: executionEnvironment as IndexerExecutionEnvironment | undefined,\n };\n const parameters: IndexingParameters = {\n ...indexer.parameters,\n configuration,\n };\n\n return {\n ...indexer,\n parameters,\n encryptionKey: convertEncryptionKeyToPublic(indexer.encryptionKey),\n };\n}\n\nexport function publicDataSourceToGeneratedDataSource(\n dataSource: SearchIndexerDataSourceConnection,\n): GeneratedSearchIndexerDataSourceConnection {\n return {\n name: dataSource.name,\n description: dataSource.description,\n type: dataSource.type,\n credentials: {\n connectionString: dataSource.connectionString,\n },\n container: dataSource.container,\n etag: dataSource.etag,\n dataChangeDetectionPolicy: dataSource.dataChangeDetectionPolicy,\n dataDeletionDetectionPolicy: dataSource.dataDeletionDetectionPolicy,\n encryptionKey: convertEncryptionKeyToGenerated(dataSource.encryptionKey),\n };\n}\n\nexport function generatedDataSourceToPublicDataSource(\n dataSource: GeneratedSearchIndexerDataSourceConnection,\n): SearchIndexerDataSourceConnection {\n return {\n name: dataSource.name,\n description: dataSource.name,\n type: dataSource.type as SearchIndexerDataSourceType,\n connectionString: dataSource.credentials.connectionString,\n container: dataSource.container,\n etag: dataSource.etag,\n dataChangeDetectionPolicy: convertDataChangeDetectionPolicyToPublic(\n dataSource.dataChangeDetectionPolicy,\n ),\n dataDeletionDetectionPolicy: convertDataDeletionDetectionPolicyToPublic(\n dataSource.dataDeletionDetectionPolicy,\n ),\n encryptionKey: convertEncryptionKeyToPublic(dataSource.encryptionKey),\n };\n}\n\nexport function convertSearchIndexerDataIdentityToPublic(\n searchIndexerDataIdentity?: SearchIndexerDataIdentityUnion,\n): SearchIndexerDataIdentity | undefined {\n if (!searchIndexerDataIdentity) {\n return searchIndexerDataIdentity;\n }\n\n if (searchIndexerDataIdentity.odatatype === \"#Microsoft.Azure.Search.DataNoneIdentity\") {\n return searchIndexerDataIdentity as SearchIndexerDataNoneIdentity;\n } else {\n return searchIndexerDataIdentity as SearchIndexerDataUserAssignedIdentity;\n }\n}\n\nexport function convertDataChangeDetectionPolicyToPublic(\n dataChangeDetectionPolicy?: DataChangeDetectionPolicyUnion,\n): DataChangeDetectionPolicy | undefined {\n if (!dataChangeDetectionPolicy) {\n return dataChangeDetectionPolicy;\n }\n\n if (\n dataChangeDetectionPolicy.odatatype ===\n \"#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy\"\n ) {\n return dataChangeDetectionPolicy as HighWaterMarkChangeDetectionPolicy;\n } else {\n return dataChangeDetectionPolicy as SqlIntegratedChangeTrackingPolicy;\n }\n}\n\nexport function convertDataDeletionDetectionPolicyToPublic(\n dataDeletionDetectionPolicy?: DataDeletionDetectionPolicyUnion,\n): DataDeletionDetectionPolicy | undefined {\n if (!dataDeletionDetectionPolicy) {\n return dataDeletionDetectionPolicy;\n }\n\n return dataDeletionDetectionPolicy as SoftDeleteColumnDeletionDetectionPolicy;\n}\n\nexport function getRandomIntegerInclusive(min: number, max: number): number {\n // Make sure inputs are integers.\n min = Math.ceil(min);\n max = Math.floor(max);\n // Pick a random offset from zero to the size of the range.\n // Since Math.random() can never return 1, we have to make the range one larger\n // in order to be inclusive of the maximum value after we take the floor.\n const offset = Math.floor(Math.random() * (max - min + 1));\n return offset + min;\n}\n"]}
1
+ {"version":3,"file":"serviceUtils.js","sourceRoot":"","sources":["../../src/serviceUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n SearchResult as GeneratedSearchResult,\n SuggestDocumentsResult as GeneratedSuggestDocumentsResult,\n} from \"./generated/data/models\";\nimport type {\n AIServicesAccountIdentity as GeneratedAIServicesAccountIdentity,\n AIServicesAccountKey as GeneratedAIServicesAccountKey,\n AIServicesVisionVectorizer as GeneratedAIServicesVisionVectorizer,\n AMLParameters as GeneratedAMLParameters,\n AMLVectorizer as GeneratedAMLVectorizer,\n AzureOpenAIVectorizer as GeneratedAzureOpenAIVectorizer,\n BM25Similarity,\n ClassicSimilarity,\n CognitiveServicesAccountKey as GeneratedCognitiveServicesAccountKey,\n CognitiveServicesAccountUnion,\n CustomAnalyzer as BaseCustomAnalyzer,\n DataChangeDetectionPolicyUnion,\n DataDeletionDetectionPolicyUnion,\n DefaultCognitiveServicesAccount as GeneratedDefaultCognitiveServicesAccount,\n ExhaustiveKnnAlgorithmConfiguration as GeneratedExhaustiveKnnAlgorithmConfiguration,\n HighWaterMarkChangeDetectionPolicy,\n HnswAlgorithmConfiguration as GeneratedHnswAlgorithmConfiguration,\n LexicalAnalyzerUnion,\n LexicalTokenizerUnion,\n LuceneStandardAnalyzer,\n PatternAnalyzer as GeneratedPatternAnalyzer,\n PatternTokenizer,\n SearchField as GeneratedSearchField,\n SearchIndex as GeneratedSearchIndex,\n SearchIndexer as GeneratedSearchIndexer,\n SearchIndexerCache as GeneratedSearchIndexerCache,\n SearchIndexerDataIdentityUnion,\n SearchIndexerDataNoneIdentity,\n SearchIndexerDataSource as GeneratedSearchIndexerDataSourceConnection,\n SearchIndexerDataUserAssignedIdentity,\n SearchIndexerKnowledgeStore as BaseSearchIndexerKnowledgeStore,\n SearchIndexerSkillset as GeneratedSearchIndexerSkillset,\n SearchIndexerSkillUnion,\n SearchResourceEncryptionKey as GeneratedSearchResourceEncryptionKey,\n SimilarityUnion,\n SoftDeleteColumnDeletionDetectionPolicy,\n SqlIntegratedChangeTrackingPolicy,\n StopAnalyzer,\n SynonymMap as GeneratedSynonymMap,\n TokenFilterUnion,\n VectorSearch as GeneratedVectorSearch,\n VectorSearchAlgorithmConfigurationUnion as GeneratedVectorSearchAlgorithmConfiguration,\n VectorSearchVectorizerUnion as GeneratedVectorSearchVectorizer,\n WebApiVectorizer as GeneratedWebApiVectorizer,\n} from \"./generated/service/models\";\nimport type {\n SearchResult,\n SelectFields,\n SuggestDocumentsResult,\n SuggestResult,\n} from \"./indexModels\";\nimport { logger } from \"./logger\";\nimport type {\n AIServicesVisionVectorizer,\n AzureMachineLearningVectorizer,\n AzureMachineLearningVectorizerParameters,\n AzureOpenAIVectorizer,\n BlobIndexerDataToExtract,\n BlobIndexerImageAction,\n BlobIndexerParsingMode,\n BlobIndexerPDFTextRotationAlgorithm,\n CharFilter,\n CognitiveServicesAccount,\n ComplexField,\n DataChangeDetectionPolicy,\n DataDeletionDetectionPolicy,\n IndexerExecutionEnvironment,\n IndexingParameters,\n IndexingParametersConfiguration,\n KeyAuthAzureMachineLearningVectorizerParameters,\n LexicalAnalyzer,\n LexicalNormalizer,\n LexicalTokenizer,\n NoAuthAzureMachineLearningVectorizerParameters,\n PatternAnalyzer,\n RegexFlags,\n ScoringProfile,\n SearchField,\n SearchFieldDataType,\n SearchIndex,\n SearchIndexer,\n SearchIndexerCache,\n SearchIndexerDataIdentity,\n SearchIndexerDataSourceConnection,\n SearchIndexerDataSourceType,\n SearchIndexerIndexProjection,\n SearchIndexerKnowledgeStore,\n SearchIndexerSkill,\n SearchIndexerSkillset,\n SearchResourceEncryptionKey,\n SimilarityAlgorithm,\n SimpleField,\n SynonymMap,\n TokenAuthAzureMachineLearningVectorizerParameters,\n TokenFilter,\n VectorSearch,\n VectorSearchAlgorithmConfiguration,\n VectorSearchAlgorithmMetric,\n VectorSearchVectorizer,\n WebApiVectorizer,\n} from \"./serviceModels\";\nimport { isComplexField } from \"./serviceModels\";\n\nexport const defaultServiceVersion = \"2024-09-01-Preview\";\n\nconst knownSkills: Record<`${SearchIndexerSkillUnion[\"odatatype\"]}`, true> = {\n \"#Microsoft.Skills.Custom.WebApiSkill\": true,\n \"#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill\": true,\n \"#Microsoft.Skills.Text.CustomEntityLookupSkill\": true,\n \"#Microsoft.Skills.Text.EntityRecognitionSkill\": true,\n \"#Microsoft.Skills.Text.KeyPhraseExtractionSkill\": true,\n \"#Microsoft.Skills.Text.LanguageDetectionSkill\": true,\n \"#Microsoft.Skills.Text.MergeSkill\": true,\n \"#Microsoft.Skills.Text.PIIDetectionSkill\": true,\n \"#Microsoft.Skills.Text.SentimentSkill\": true,\n \"#Microsoft.Skills.Text.SplitSkill\": true,\n \"#Microsoft.Skills.Text.TranslationSkill\": true,\n \"#Microsoft.Skills.Text.V3.EntityLinkingSkill\": true,\n \"#Microsoft.Skills.Text.V3.EntityRecognitionSkill\": true,\n \"#Microsoft.Skills.Text.V3.SentimentSkill\": true,\n \"#Microsoft.Skills.Util.ConditionalSkill\": true,\n \"#Microsoft.Skills.Util.DocumentExtractionSkill\": true,\n \"#Microsoft.Skills.Util.ShaperSkill\": true,\n \"#Microsoft.Skills.Vision.ImageAnalysisSkill\": true,\n \"#Microsoft.Skills.Vision.OcrSkill\": true,\n \"#Microsoft.Skills.Custom.AmlSkill\": true,\n \"#Microsoft.Skills.Vision.VectorizeSkill\": true,\n \"#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill\": true,\n};\n\nexport function convertSkillsToPublic(skills: SearchIndexerSkillUnion[]): SearchIndexerSkill[] {\n if (!skills) {\n return skills;\n }\n\n // This validation has already GAed\n return skills.filter((skill): skill is SearchIndexerSkill => knownSkills[skill.odatatype]);\n}\n\nexport function convertCognitiveServicesAccountToGenerated(\n cognitiveServicesAccount?: CognitiveServicesAccount,\n): CognitiveServicesAccountUnion | undefined {\n if (!cognitiveServicesAccount) {\n return cognitiveServicesAccount;\n }\n\n switch (cognitiveServicesAccount.odatatype) {\n case \"#Microsoft.Azure.Search.AIServicesByIdentity\":\n case \"#Microsoft.Azure.Search.DefaultCognitiveServices\":\n case \"#Microsoft.Azure.Search.CognitiveServicesByKey\":\n case \"#Microsoft.Azure.Search.AIServicesByKey\":\n return cognitiveServicesAccount;\n default: {\n logger.warning(\n `Unsupported Cognitive Services account odatatype: ${(cognitiveServicesAccount as any).odatatype}`,\n );\n return cognitiveServicesAccount as any;\n }\n }\n}\n\nexport function convertCognitiveServicesAccountToPublic(\n cognitiveServicesAccount?: CognitiveServicesAccountUnion,\n): CognitiveServicesAccount | undefined {\n if (!cognitiveServicesAccount) {\n return cognitiveServicesAccount;\n }\n\n const deserializers: Record<\n CognitiveServicesAccountUnion[\"odatatype\"],\n () => CognitiveServicesAccount\n > = {\n \"#Microsoft.Azure.Search.DefaultCognitiveServices\": () => {\n return cognitiveServicesAccount as GeneratedDefaultCognitiveServicesAccount;\n },\n \"#Microsoft.Azure.Search.CognitiveServicesByKey\": () => {\n return cognitiveServicesAccount as GeneratedCognitiveServicesAccountKey;\n },\n \"#Microsoft.Azure.Search.AIServicesByKey\": () => {\n return cognitiveServicesAccount as GeneratedAIServicesAccountKey;\n },\n \"#Microsoft.Azure.Search.AIServicesByIdentity\": () => {\n const { identity, ...restParams } =\n cognitiveServicesAccount as GeneratedAIServicesAccountIdentity;\n return {\n ...restParams,\n identity: convertSearchIndexerDataIdentityToPublic(identity ?? undefined),\n };\n },\n };\n\n const defaultDeserializer: () => CognitiveServicesAccount = () => {\n logger.warning(\n `Unsupported Cognitive Services account odatatype: ${(cognitiveServicesAccount as CognitiveServicesAccount).odatatype}`,\n );\n return cognitiveServicesAccount as CognitiveServicesAccount;\n };\n\n return (deserializers[cognitiveServicesAccount.odatatype] ?? defaultDeserializer)();\n}\n\nexport function convertTokenFiltersToGenerated(\n tokenFilters?: TokenFilter[],\n): TokenFilterUnion[] | undefined {\n if (!tokenFilters) {\n return tokenFilters;\n }\n\n const result: TokenFilterUnion[] = [];\n for (const filter of tokenFilters) {\n result.push(filter);\n }\n\n return result;\n}\n\nfunction convertAnalyzersToGenerated(\n analyzers?: LexicalAnalyzer[],\n): LexicalAnalyzerUnion[] | undefined {\n if (!analyzers) {\n return analyzers;\n }\n\n const result: LexicalAnalyzerUnion[] = [];\n for (const analyzer of analyzers) {\n switch (analyzer.odatatype) {\n case \"#Microsoft.Azure.Search.StandardAnalyzer\":\n case \"#Microsoft.Azure.Search.StopAnalyzer\":\n result.push(analyzer);\n break;\n case \"#Microsoft.Azure.Search.PatternAnalyzer\":\n result.push({\n ...analyzer,\n flags: analyzer.flags ? analyzer.flags.join(\"|\") : undefined,\n });\n break;\n case \"#Microsoft.Azure.Search.CustomAnalyzer\":\n result.push({\n ...analyzer,\n tokenizerName: analyzer.tokenizerName,\n });\n break;\n }\n }\n return result;\n}\n\nfunction convertAnalyzersToPublic(\n analyzers?: LexicalAnalyzerUnion[],\n): LexicalAnalyzer[] | undefined {\n if (!analyzers) {\n return analyzers;\n }\n\n const result: LexicalAnalyzer[] = [];\n for (const analyzer of analyzers) {\n switch (analyzer.odatatype) {\n case \"#Microsoft.Azure.Search.StandardAnalyzer\":\n result.push(analyzer as LuceneStandardAnalyzer);\n break;\n case \"#Microsoft.Azure.Search.StopAnalyzer\":\n result.push(analyzer as StopAnalyzer);\n break;\n case \"#Microsoft.Azure.Search.PatternAnalyzer\":\n result.push({\n ...analyzer,\n flags: (analyzer as GeneratedPatternAnalyzer).flags\n ? ((analyzer as GeneratedPatternAnalyzer).flags!.split(\"|\") as RegexFlags[])\n : undefined,\n } as PatternAnalyzer);\n break;\n case \"#Microsoft.Azure.Search.CustomAnalyzer\":\n result.push(analyzer as BaseCustomAnalyzer);\n break;\n }\n }\n return result;\n}\n\nexport function convertFieldsToPublic(fields: GeneratedSearchField[]): SearchField[] {\n if (!fields) {\n return fields;\n }\n\n return fields.map<SearchField>((field): SearchField => {\n if (field.type === \"Collection(Edm.ComplexType)\" || field.type === \"Edm.ComplexType\") {\n const result: ComplexField = {\n name: field.name,\n type: field.type,\n fields: convertFieldsToPublic(field.fields!),\n };\n return result;\n } else {\n const type: SearchFieldDataType = field.type as SearchFieldDataType;\n const synonymMapNames: string[] | undefined = field.synonymMaps;\n\n const { retrievable, analyzer, searchAnalyzer, indexAnalyzer, normalizer, ...restField } =\n field;\n const hidden = typeof retrievable === \"boolean\" ? !retrievable : retrievable;\n\n const result: SimpleField = {\n ...restField,\n type,\n hidden,\n analyzerName: analyzer,\n searchAnalyzerName: searchAnalyzer,\n indexAnalyzerName: indexAnalyzer,\n normalizerName: normalizer,\n synonymMapNames,\n };\n return result;\n }\n });\n}\n\nexport function convertFieldsToGenerated(\n fields: SearchField[] | undefined,\n): GeneratedSearchField[] | undefined {\n return fields?.map<GeneratedSearchField>((field) => {\n if (isComplexField(field)) {\n return {\n name: field.name,\n type: field.type,\n fields: convertFieldsToGenerated(field.fields),\n };\n } else {\n const { hidden, ...restField } = field;\n const retrievable = typeof hidden === \"boolean\" ? !hidden : hidden;\n return {\n ...restField,\n retrievable,\n // modify API defaults to use less storage for simple types\n searchable: field.searchable ?? false,\n filterable: field.filterable ?? false,\n facetable: field.facetable ?? false,\n sortable: field.sortable ?? false,\n analyzer: field.analyzerName,\n searchAnalyzer: field.searchAnalyzerName,\n indexAnalyzer: field.indexAnalyzerName,\n synonymMaps: field.synonymMapNames,\n normalizer: field.normalizerName,\n };\n }\n });\n}\n\nfunction convertTokenizersToGenerated(\n tokenizers?: LexicalTokenizer[],\n): LexicalTokenizerUnion[] | undefined {\n if (!tokenizers) {\n return tokenizers;\n }\n\n const result: LexicalTokenizerUnion[] = [];\n for (const tokenizer of tokenizers) {\n if (tokenizer.odatatype === \"#Microsoft.Azure.Search.PatternTokenizer\") {\n result.push({\n ...tokenizer,\n flags: tokenizer.flags ? tokenizer.flags.join(\"|\") : undefined,\n });\n } else {\n result.push(tokenizer);\n }\n }\n return result;\n}\n\nfunction convertTokenizersToPublic(\n tokenizers?: LexicalTokenizerUnion[],\n): LexicalTokenizer[] | undefined {\n if (!tokenizers) {\n return tokenizers;\n }\n\n const result: LexicalTokenizer[] = [];\n for (const tokenizer of tokenizers) {\n if (tokenizer.odatatype === \"#Microsoft.Azure.Search.PatternTokenizer\") {\n const patternTokenizer = tokenizer as PatternTokenizer;\n const flags = patternTokenizer.flags?.split(\"|\") as RegexFlags[] | undefined;\n result.push({\n ...tokenizer,\n flags,\n });\n } else {\n result.push(tokenizer);\n }\n }\n return result;\n}\n\nexport function convertSimilarityToGenerated(\n similarity?: SimilarityAlgorithm,\n): SimilarityUnion | undefined {\n if (!similarity) {\n return similarity;\n }\n\n return similarity as SimilarityUnion;\n}\n\nexport function convertSimilarityToPublic(\n similarity?: SimilarityUnion,\n): SimilarityAlgorithm | undefined {\n if (!similarity) {\n return similarity;\n }\n\n if (similarity.odatatype === \"#Microsoft.Azure.Search.ClassicSimilarity\") {\n return similarity as ClassicSimilarity;\n } else {\n return similarity as BM25Similarity;\n }\n}\n\nfunction convertEncryptionKeyToPublic(\n encryptionKey?: GeneratedSearchResourceEncryptionKey,\n): SearchResourceEncryptionKey | undefined {\n if (!encryptionKey) {\n return encryptionKey;\n }\n\n const result: SearchResourceEncryptionKey = {\n keyName: encryptionKey.keyName,\n keyVersion: encryptionKey.keyVersion,\n vaultUrl: encryptionKey.vaultUri,\n identity: convertSearchIndexerDataIdentityToPublic(encryptionKey.identity),\n };\n\n if (encryptionKey.accessCredentials) {\n result.applicationId = encryptionKey.accessCredentials.applicationId;\n result.applicationSecret = encryptionKey.accessCredentials.applicationSecret;\n }\n\n return result;\n}\n\nfunction convertEncryptionKeyToGenerated(\n encryptionKey?: SearchResourceEncryptionKey,\n): GeneratedSearchResourceEncryptionKey | undefined {\n if (!encryptionKey) {\n return encryptionKey;\n }\n\n const result: GeneratedSearchResourceEncryptionKey = {\n keyName: encryptionKey.keyName,\n keyVersion: encryptionKey.keyVersion,\n vaultUri: encryptionKey.vaultUrl,\n identity: encryptionKey.identity,\n };\n\n if (encryptionKey.applicationId) {\n result.accessCredentials = {\n applicationId: encryptionKey.applicationId,\n applicationSecret: encryptionKey.applicationSecret,\n };\n }\n\n return result;\n}\n\nexport function generatedIndexToPublicIndex(generatedIndex: GeneratedSearchIndex): SearchIndex {\n return {\n name: generatedIndex.name,\n defaultScoringProfile: generatedIndex.defaultScoringProfile,\n corsOptions: generatedIndex.corsOptions,\n suggesters: generatedIndex.suggesters,\n encryptionKey: convertEncryptionKeyToPublic(generatedIndex.encryptionKey),\n etag: generatedIndex.etag,\n analyzers: convertAnalyzersToPublic(generatedIndex.analyzers),\n tokenizers: convertTokenizersToPublic(generatedIndex.tokenizers),\n tokenFilters: generatedIndex.tokenFilters as TokenFilter[],\n charFilters: generatedIndex.charFilters as CharFilter[],\n normalizers: generatedIndex.normalizers as LexicalNormalizer[],\n scoringProfiles: generatedIndex.scoringProfiles as ScoringProfile[],\n fields: convertFieldsToPublic(generatedIndex.fields),\n similarity: convertSimilarityToPublic(generatedIndex.similarity),\n semanticSearch: generatedIndex.semanticSearch,\n vectorSearch: generatedVectorSearchToPublicVectorSearch(generatedIndex.vectorSearch),\n };\n}\n\nexport function generatedVectorSearchVectorizerToPublicVectorizer(): undefined;\nexport function generatedVectorSearchVectorizerToPublicVectorizer(\n generatedVectorizer: GeneratedVectorSearchVectorizer,\n): VectorSearchVectorizer;\nexport function generatedVectorSearchVectorizerToPublicVectorizer(\n generatedVectorizer?: GeneratedVectorSearchVectorizer,\n): VectorSearchVectorizer | undefined {\n if (!generatedVectorizer) {\n return generatedVectorizer;\n }\n\n const knownVectorizerDeserializers: Record<\n VectorSearchVectorizer[\"kind\"],\n () => VectorSearchVectorizer\n > = {\n azureOpenAI: () => {\n const { parameters } = generatedVectorizer as GeneratedAzureOpenAIVectorizer;\n const authIdentity = convertSearchIndexerDataIdentityToPublic(parameters?.authIdentity);\n const vectorizer: AzureOpenAIVectorizer = {\n ...(generatedVectorizer as GeneratedAzureOpenAIVectorizer),\n parameters: { ...parameters, authIdentity },\n };\n return vectorizer;\n },\n\n customWebApi: () => {\n const { parameters } = generatedVectorizer as GeneratedWebApiVectorizer;\n const authIdentity = convertSearchIndexerDataIdentityToPublic(parameters?.authIdentity);\n const vectorizer: WebApiVectorizer = {\n ...(generatedVectorizer as GeneratedWebApiVectorizer),\n parameters: { ...parameters, authIdentity },\n };\n return vectorizer;\n },\n\n aiServicesVision: () => {\n const generatedVisionVectorizer = generatedVectorizer as GeneratedAIServicesVisionVectorizer;\n const { aIServicesVisionParameters: generatedParameters } = generatedVisionVectorizer;\n const parameters = generatedParameters\n ? {\n ...generatedParameters,\n modelVersion: generatedParameters.modelVersion ?? undefined,\n resourceUri: generatedParameters.resourceUri,\n authIdentity: convertSearchIndexerDataIdentityToPublic(\n generatedParameters.authIdentity,\n ),\n }\n : undefined;\n const vectorizer: AIServicesVisionVectorizer = {\n ...generatedVisionVectorizer,\n parameters,\n };\n return vectorizer;\n },\n aml: () => {\n const generatedAMLVectorizer = generatedVectorizer as GeneratedAMLVectorizer;\n\n const vectorizer: AzureMachineLearningVectorizer = {\n ...generatedAMLVectorizer,\n amlParameters:\n generatedAzureMachineLearningVectorizerParametersToPublicAzureMachineLearningVectorizerParameters(\n generatedAMLVectorizer.aMLParameters,\n ),\n };\n\n return vectorizer;\n },\n };\n const defaultDeserializer = () => {\n logger.warning(`Unsupported vectorizer kind: ${(generatedVectorizer as any).kind}`);\n return generatedVectorizer as any;\n };\n\n return (knownVectorizerDeserializers[generatedVectorizer.kind] ?? defaultDeserializer)();\n}\n\nfunction generatedAzureMachineLearningVectorizerParametersToPublicAzureMachineLearningVectorizerParameters(\n aMLParameters?: GeneratedAMLParameters,\n): AzureMachineLearningVectorizerParameters | undefined {\n if (!aMLParameters) {\n return aMLParameters;\n }\n\n const { resourceId, authenticationKey, scoringUri } = aMLParameters;\n // Sensitive to case order\n switch (true) {\n case resourceId !== undefined && resourceId !== null: {\n return {\n ...aMLParameters,\n authKind: \"token\",\n } as TokenAuthAzureMachineLearningVectorizerParameters;\n }\n case authenticationKey !== undefined && authenticationKey !== null: {\n return {\n ...aMLParameters,\n authKind: \"key\",\n } as KeyAuthAzureMachineLearningVectorizerParameters;\n }\n case scoringUri !== undefined && scoringUri !== null: {\n return {\n ...aMLParameters,\n authKind: \"none\",\n } as NoAuthAzureMachineLearningVectorizerParameters;\n }\n }\n logger.warning(\"Unknown AML parameter kind\");\n return aMLParameters as any;\n}\n\nexport function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(): undefined;\nexport function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(\n generatedAlgorithmConfiguration: GeneratedVectorSearchAlgorithmConfiguration,\n): VectorSearchAlgorithmConfiguration;\nexport function generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration(\n generatedAlgorithmConfiguration?: GeneratedVectorSearchAlgorithmConfiguration,\n): VectorSearchAlgorithmConfiguration | undefined {\n if (!generatedAlgorithmConfiguration) {\n return generatedAlgorithmConfiguration;\n }\n\n if ([\"hnsw\", \"exhaustiveKnn\"].includes(generatedAlgorithmConfiguration.kind)) {\n const algorithmConfiguration = generatedAlgorithmConfiguration as\n | GeneratedHnswAlgorithmConfiguration\n | GeneratedExhaustiveKnnAlgorithmConfiguration;\n const metric = algorithmConfiguration.parameters?.metric as VectorSearchAlgorithmMetric;\n return {\n ...algorithmConfiguration,\n parameters: { ...algorithmConfiguration.parameters, metric },\n };\n }\n\n throw Error(\"Unsupported algorithm configuration\");\n}\n\nexport function generatedVectorSearchToPublicVectorSearch(\n vectorSearch?: GeneratedVectorSearch,\n): VectorSearch | undefined {\n if (!vectorSearch) {\n return vectorSearch;\n }\n\n return {\n ...vectorSearch,\n algorithms: vectorSearch.algorithms?.map(\n generatedVectorSearchAlgorithmConfigurationToPublicVectorSearchAlgorithmConfiguration,\n ),\n vectorizers: vectorSearch.vectorizers?.map(generatedVectorSearchVectorizerToPublicVectorizer),\n };\n}\n\nexport function generatedSearchResultToPublicSearchResult<\n TModel extends object,\n TFields extends SelectFields<TModel>,\n>(results: GeneratedSearchResult[]): SearchResult<TModel, TFields>[] {\n const returnValues: SearchResult<TModel, TFields>[] = results.map<SearchResult<TModel, TFields>>(\n (result) => {\n const {\n _score: score,\n _highlights: highlights,\n _rerankerScore: rerankerScore,\n _captions: captions,\n documentDebugInfo: documentDebugInfo,\n ...restProps\n } = result;\n const obj = {\n score,\n highlights,\n rerankerScore,\n captions,\n documentDebugInfo,\n document: restProps,\n };\n return obj as SearchResult<TModel, TFields>;\n },\n );\n return returnValues;\n}\n\nexport function generatedSuggestDocumentsResultToPublicSuggestDocumentsResult<\n TModel extends object,\n TFields extends SelectFields<TModel>,\n>(searchDocumentsResult: GeneratedSuggestDocumentsResult): SuggestDocumentsResult<TModel, TFields> {\n const results = searchDocumentsResult.results.map<SuggestResult<TModel, TFields>>((element) => {\n const { _text, ...restProps } = element;\n\n const obj = {\n text: _text,\n document: restProps,\n };\n\n return obj as SuggestResult<TModel, TFields>;\n });\n\n const result: SuggestDocumentsResult<TModel, TFields> = {\n results: results,\n coverage: searchDocumentsResult.coverage,\n };\n\n return result;\n}\n\nexport function publicIndexToGeneratedIndex(index: SearchIndex): GeneratedSearchIndex {\n const { encryptionKey, tokenFilters, analyzers, tokenizers, fields, similarity } = index;\n\n return {\n ...index,\n encryptionKey: convertEncryptionKeyToGenerated(encryptionKey),\n tokenFilters: convertTokenFiltersToGenerated(tokenFilters),\n analyzers: convertAnalyzersToGenerated(analyzers),\n tokenizers: convertTokenizersToGenerated(tokenizers),\n fields: convertFieldsToGenerated(fields) ?? [],\n similarity: convertSimilarityToGenerated(similarity),\n };\n}\n\nexport function generatedSkillsetToPublicSkillset(\n generatedSkillset: GeneratedSearchIndexerSkillset,\n): SearchIndexerSkillset {\n const {\n skills,\n cognitiveServicesAccount,\n knowledgeStore,\n encryptionKey,\n indexProjection,\n ...props\n } = generatedSkillset;\n return {\n ...props,\n skills: convertSkillsToPublic(skills),\n cognitiveServicesAccount: convertCognitiveServicesAccountToPublic(cognitiveServicesAccount),\n knowledgeStore: convertKnowledgeStoreToPublic(knowledgeStore),\n encryptionKey: convertEncryptionKeyToPublic(encryptionKey),\n indexProjection: indexProjection as SearchIndexerIndexProjection,\n };\n}\n\nexport function publicSkillsetToGeneratedSkillset(\n skillset: SearchIndexerSkillset,\n): GeneratedSearchIndexerSkillset {\n const { cognitiveServicesAccount, encryptionKey } = skillset;\n\n return {\n ...skillset,\n cognitiveServicesAccount: convertCognitiveServicesAccountToGenerated(cognitiveServicesAccount),\n encryptionKey: convertEncryptionKeyToGenerated(encryptionKey),\n };\n}\n\nexport function generatedSynonymMapToPublicSynonymMap(synonymMap: GeneratedSynonymMap): SynonymMap {\n const result: SynonymMap = {\n name: synonymMap.name,\n encryptionKey: convertEncryptionKeyToPublic(synonymMap.encryptionKey),\n etag: synonymMap.etag,\n synonyms: [],\n };\n\n if (synonymMap.synonyms) {\n result.synonyms = synonymMap.synonyms.split(\"\\n\");\n }\n\n return result;\n}\n\nexport function publicSynonymMapToGeneratedSynonymMap(synonymMap: SynonymMap): GeneratedSynonymMap {\n const result: GeneratedSynonymMap = {\n name: synonymMap.name,\n format: \"solr\",\n encryptionKey: convertEncryptionKeyToGenerated(synonymMap.encryptionKey),\n etag: synonymMap.etag,\n synonyms: synonymMap.synonyms.join(\"\\n\"),\n };\n\n result.encryptionKey = convertEncryptionKeyToGenerated(synonymMap.encryptionKey);\n\n return result;\n}\n\nexport function publicSearchIndexerToGeneratedSearchIndexer(\n indexer: SearchIndexer,\n): GeneratedSearchIndexer {\n return {\n ...indexer,\n encryptionKey: convertEncryptionKeyToGenerated(indexer.encryptionKey),\n };\n}\n\nexport function generatedSearchIndexerToPublicSearchIndexer(\n indexer: GeneratedSearchIndexer,\n): SearchIndexer {\n const {\n parsingMode,\n dataToExtract,\n imageAction,\n pdfTextRotationAlgorithm,\n executionEnvironment,\n } = indexer.parameters?.configuration ?? {};\n\n const configuration: IndexingParametersConfiguration | undefined = indexer.parameters\n ?.configuration && {\n ...indexer.parameters?.configuration,\n parsingMode: parsingMode as BlobIndexerParsingMode | undefined,\n dataToExtract: dataToExtract as BlobIndexerDataToExtract | undefined,\n imageAction: imageAction as BlobIndexerImageAction | undefined,\n pdfTextRotationAlgorithm: pdfTextRotationAlgorithm as\n | BlobIndexerPDFTextRotationAlgorithm\n | undefined,\n executionEnvironment: executionEnvironment as IndexerExecutionEnvironment | undefined,\n };\n const parameters: IndexingParameters = {\n ...indexer.parameters,\n configuration,\n };\n\n return {\n ...indexer,\n parameters,\n encryptionKey: convertEncryptionKeyToPublic(indexer.encryptionKey),\n cache: convertSearchIndexerCacheToPublic(indexer.cache),\n };\n}\n\nexport function publicDataSourceToGeneratedDataSource(\n dataSource: SearchIndexerDataSourceConnection,\n): GeneratedSearchIndexerDataSourceConnection {\n return {\n name: dataSource.name,\n description: dataSource.description,\n type: dataSource.type,\n credentials: {\n connectionString: dataSource.connectionString,\n },\n container: dataSource.container,\n identity: dataSource.identity,\n etag: dataSource.etag,\n dataChangeDetectionPolicy: dataSource.dataChangeDetectionPolicy,\n dataDeletionDetectionPolicy: dataSource.dataDeletionDetectionPolicy,\n encryptionKey: convertEncryptionKeyToGenerated(dataSource.encryptionKey),\n };\n}\n\nexport function generatedDataSourceToPublicDataSource(\n dataSource: GeneratedSearchIndexerDataSourceConnection,\n): SearchIndexerDataSourceConnection {\n return {\n name: dataSource.name,\n description: dataSource.name,\n type: dataSource.type as SearchIndexerDataSourceType,\n connectionString: dataSource.credentials.connectionString,\n container: dataSource.container,\n identity: convertSearchIndexerDataIdentityToPublic(dataSource.identity),\n etag: dataSource.etag,\n dataChangeDetectionPolicy: convertDataChangeDetectionPolicyToPublic(\n dataSource.dataChangeDetectionPolicy,\n ),\n dataDeletionDetectionPolicy: convertDataDeletionDetectionPolicyToPublic(\n dataSource.dataDeletionDetectionPolicy,\n ),\n encryptionKey: convertEncryptionKeyToPublic(dataSource.encryptionKey),\n };\n}\n\nexport function convertSearchIndexerDataIdentityToPublic(\n searchIndexerDataIdentity?: SearchIndexerDataIdentityUnion,\n): SearchIndexerDataIdentity | undefined {\n if (!searchIndexerDataIdentity) {\n return searchIndexerDataIdentity;\n }\n\n if (searchIndexerDataIdentity.odatatype === \"#Microsoft.Azure.Search.DataNoneIdentity\") {\n return searchIndexerDataIdentity as SearchIndexerDataNoneIdentity;\n } else {\n return searchIndexerDataIdentity as SearchIndexerDataUserAssignedIdentity;\n }\n}\n\nexport function convertDataChangeDetectionPolicyToPublic(\n dataChangeDetectionPolicy?: DataChangeDetectionPolicyUnion,\n): DataChangeDetectionPolicy | undefined {\n if (!dataChangeDetectionPolicy) {\n return dataChangeDetectionPolicy;\n }\n\n if (\n dataChangeDetectionPolicy.odatatype ===\n \"#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy\"\n ) {\n return dataChangeDetectionPolicy as HighWaterMarkChangeDetectionPolicy;\n } else {\n return dataChangeDetectionPolicy as SqlIntegratedChangeTrackingPolicy;\n }\n}\n\nexport function convertDataDeletionDetectionPolicyToPublic(\n dataDeletionDetectionPolicy?: DataDeletionDetectionPolicyUnion,\n): DataDeletionDetectionPolicy | undefined {\n if (!dataDeletionDetectionPolicy) {\n return dataDeletionDetectionPolicy;\n }\n\n return dataDeletionDetectionPolicy as SoftDeleteColumnDeletionDetectionPolicy;\n}\n\nexport function getRandomIntegerInclusive(min: number, max: number): number {\n // Make sure inputs are integers.\n min = Math.ceil(min);\n max = Math.floor(max);\n // Pick a random offset from zero to the size of the range.\n // Since Math.random() can never return 1, we have to make the range one larger\n // in order to be inclusive of the maximum value after we take the floor.\n const offset = Math.floor(Math.random() * (max - min + 1));\n return offset + min;\n}\n\nfunction convertKnowledgeStoreToPublic(\n knowledgeStore: BaseSearchIndexerKnowledgeStore | undefined,\n): SearchIndexerKnowledgeStore | undefined {\n if (!knowledgeStore) {\n return knowledgeStore;\n }\n\n return {\n ...knowledgeStore,\n identity: convertSearchIndexerDataIdentityToPublic(knowledgeStore.identity),\n };\n}\n\nexport function convertSearchIndexerCacheToPublic(\n cache?: GeneratedSearchIndexerCache,\n): SearchIndexerCache | undefined {\n if (!cache) {\n return cache;\n }\n\n return {\n ...cache,\n identity: convertSearchIndexerDataIdentityToPublic(cache.identity),\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  /**
4
4
  * Helper method to create a SynonymMap object. This is a NodeJS only method.
5
5
  * Will throw an error for browser.
@@ -1 +1 @@
1
- {"version":3,"file":"synonymMapHelper.browser.js","sourceRoot":"","sources":["../../src/synonymMapHelper.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SynonymMap } from \"./serviceModels\";\n\n/**\n * Helper method to create a SynonymMap object. This is a NodeJS only method.\n * Will throw an error for browser.\n *\n * @param _name - Name of the SynonymMap.\n * @param _filePath - Path of the file that contains the Synonyms (seperated by new lines)\n * @returns SynonymMap object\n */\nexport async function createSynonymMapFromFile(\n _name: string,\n _filePath: string,\n): Promise<SynonymMap> {\n throw new Error(\"Not implemented for browser.\");\n}\n"]}
1
+ {"version":3,"file":"synonymMapHelper.browser.js","sourceRoot":"","sources":["../../src/synonymMapHelper.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { SynonymMap } from \"./serviceModels\";\n\n/**\n * Helper method to create a SynonymMap object. This is a NodeJS only method.\n * Will throw an error for browser.\n *\n * @param _name - Name of the SynonymMap.\n * @param _filePath - Path of the file that contains the Synonyms (seperated by new lines)\n * @returns SynonymMap object\n */\nexport async function createSynonymMapFromFile(\n _name: string,\n _filePath: string,\n): Promise<SynonymMap> {\n throw new Error(\"Not implemented for browser.\");\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import * as fs from "fs";
4
4
  import { promisify } from "util";
5
5
  const readFileAsync = promisify(fs.readFile);
@@ -1 +1 @@
1
- {"version":3,"file":"synonymMapHelper.js","sourceRoot":"","sources":["../../src/synonymMapHelper.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,QAAgB;IAEhB,MAAM,QAAQ,GAAa,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAChE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,OAAO;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as fs from \"fs\";\nimport { promisify } from \"util\";\nimport { SynonymMap } from \"./serviceModels\";\nconst readFileAsync = promisify(fs.readFile);\n\n/**\n * Helper method to create a SynonymMap object. This is a NodeJS only method.\n *\n * @param name - Name of the SynonymMap.\n * @param filePath - Path of the file that contains the Synonyms (seperated by new lines)\n * @returns SynonymMap object\n */\nexport async function createSynonymMapFromFile(\n name: string,\n filePath: string,\n): Promise<SynonymMap> {\n const synonyms: string[] = (await readFileAsync(filePath, \"utf-8\"))\n .replace(/\\r/g, \"\")\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter(Boolean);\n\n return {\n name,\n synonyms,\n };\n}\n"]}
1
+ {"version":3,"file":"synonymMapHelper.js","sourceRoot":"","sources":["../../src/synonymMapHelper.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,QAAgB;IAEhB,MAAM,QAAQ,GAAa,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAChE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,OAAO;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport * as fs from \"fs\";\nimport { promisify } from \"util\";\nimport type { SynonymMap } from \"./serviceModels\";\nconst readFileAsync = promisify(fs.readFile);\n\n/**\n * Helper method to create a SynonymMap object. This is a NodeJS only method.\n *\n * @param name - Name of the SynonymMap.\n * @param filePath - Path of the file that contains the Synonyms (seperated by new lines)\n * @returns SynonymMap object\n */\nexport async function createSynonymMapFromFile(\n name: string,\n filePath: string,\n): Promise<SynonymMap> {\n const synonyms: string[] = (await readFileAsync(filePath, \"utf-8\"))\n .replace(/\\r/g, \"\")\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter(Boolean);\n\n return {\n name,\n synonyms,\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { createTracingClient } from "@azure/core-tracing";
4
4
  /**
5
5
  * Creates a tracing client using the global tracer.
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/tracing.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACxC,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/**\n * Creates a tracing client using the global tracer.\n * @internal\n */\nconst tracingClient = createTracingClient({\n namespace: \"Microsoft.Search\",\n packageName: \"Azure.Search\",\n});\n\nexport const createSpan = tracingClient.startSpan;\n"]}
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/tracing.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACxC,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/**\n * Creates a tracing client using the global tracer.\n * @internal\n */\nconst tracingClient = createTracingClient({\n namespace: \"Microsoft.Search\",\n packageName: \"Azure.Search\",\n});\n\nexport const createSpan = tracingClient.startSpan;\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { isDefined } from "@azure/core-util";
4
4
  export function walk(v, fn) {
5
5
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/walk.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { isDefined } from \"@azure/core-util\";\n\nexport function walk(v: unknown, fn: <T>(val: T) => unknown): unknown {\n const seen = new Set();\n const mutated = new Map();\n deepLazyApply(v);\n for (const value of mutated.values()) {\n replaceChildren(value);\n }\n return mutated.get(v) ?? v;\n\n function deepLazyApply(value: unknown): void {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n\n const children = getChildren(cachedApply(value) ?? value);\n children?.forEach(deepLazyApply);\n if (children?.some((node) => mutated.has(node))) {\n mutated.set(value, mutated.get(value) ?? shallowCopy(value));\n }\n }\n\n function cachedApply(value: unknown): unknown | undefined {\n const cached = mutated.get(value);\n if (isDefined(cached)) {\n return cached;\n }\n const applied = fn(value);\n if (value !== applied) {\n mutated.set(value, applied);\n }\n return mutated.get(value);\n }\n\n function replaceChildren(applied: unknown): void {\n if (!isComplex(applied)) {\n return;\n } else if (Array.isArray(applied)) {\n applied.forEach((e, i) => {\n applied[i] = mutated.get(e) ?? e;\n });\n } else if (typeof applied === \"object\" && applied !== null) {\n Object.keys(applied).forEach((key) => {\n (applied as any)[key] = mutated.get((applied as any)[key]) ?? (applied as any)[key];\n });\n }\n }\n}\n\n/**\n * Array inputs SHOULD not have both complex and non-complex elements. This function determines\n * whether an array is complex based solely on the first element.\n */\nfunction isComplex(v: unknown): v is object {\n return Array.isArray(v) ? isComplex(v[0]) : typeof v === \"object\" && v !== null;\n}\n\nfunction getChildren(v: unknown): unknown[] | undefined {\n if (!isComplex(v)) {\n return;\n }\n\n if (Array.isArray(v)) {\n return v;\n }\n\n return Object.values(v);\n}\n\nfunction shallowCopy(value: unknown): unknown {\n const maybeCopy = Array.isArray(value)\n ? value.map((v) => v)\n : typeof value === \"object\" && value !== null\n ? { ...value }\n : value;\n\n return value === maybeCopy\n ? value\n : Object.setPrototypeOf(maybeCopy, Object.getPrototypeOf(value));\n}\n"]}
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/walk.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isDefined } from \"@azure/core-util\";\n\nexport function walk(v: unknown, fn: <T>(val: T) => unknown): unknown {\n const seen = new Set();\n const mutated = new Map();\n deepLazyApply(v);\n for (const value of mutated.values()) {\n replaceChildren(value);\n }\n return mutated.get(v) ?? v;\n\n function deepLazyApply(value: unknown): void {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n\n const children = getChildren(cachedApply(value) ?? value);\n children?.forEach(deepLazyApply);\n if (children?.some((node) => mutated.has(node))) {\n mutated.set(value, mutated.get(value) ?? shallowCopy(value));\n }\n }\n\n function cachedApply(value: unknown): unknown | undefined {\n const cached = mutated.get(value);\n if (isDefined(cached)) {\n return cached;\n }\n const applied = fn(value);\n if (value !== applied) {\n mutated.set(value, applied);\n }\n return mutated.get(value);\n }\n\n function replaceChildren(applied: unknown): void {\n if (!isComplex(applied)) {\n return;\n } else if (Array.isArray(applied)) {\n applied.forEach((e, i) => {\n applied[i] = mutated.get(e) ?? e;\n });\n } else if (typeof applied === \"object\" && applied !== null) {\n Object.keys(applied).forEach((key) => {\n (applied as any)[key] = mutated.get((applied as any)[key]) ?? (applied as any)[key];\n });\n }\n }\n}\n\n/**\n * Array inputs SHOULD not have both complex and non-complex elements. This function determines\n * whether an array is complex based solely on the first element.\n */\nfunction isComplex(v: unknown): v is object {\n return Array.isArray(v) ? isComplex(v[0]) : typeof v === \"object\" && v !== null;\n}\n\nfunction getChildren(v: unknown): unknown[] | undefined {\n if (!isComplex(v)) {\n return;\n }\n\n if (Array.isArray(v)) {\n return v;\n }\n\n return Object.values(v);\n}\n\nfunction shallowCopy(value: unknown): unknown {\n const maybeCopy = Array.isArray(value)\n ? value.map((v) => v)\n : typeof value === \"object\" && value !== null\n ? { ...value }\n : value;\n\n return value === maybeCopy\n ? value\n : Object.setPrototypeOf(maybeCopy, Object.getPrototypeOf(value));\n}\n"]}