@azure/app-configuration-importer 2.0.0-preview → 3.0.0-preview

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.
@@ -8,7 +8,7 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
8
8
  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
9
9
  };
10
10
  import { ConfigurationChangesSource } from "./settingsImport/configurationChangesSource";
11
- import { ImportMode } from "./enums";
11
+ import { ImportMode, ChangeType } from "./enums";
12
12
  import { OperationTimeoutError, ArgumentError } from "./errors";
13
13
  import { AdaptiveTaskManager } from "./internal/adaptiveTaskManager";
14
14
  import { isConfigSettingEqual } from "./internal/utils";
@@ -56,7 +56,13 @@ export class AppConfigurationImporter {
56
56
  }
57
57
  };
58
58
  const configurationChanges = await this.GetConfigurationChanges(configurationSettingsSource, options === null || options === void 0 ? void 0 : options.strict, options === null || options === void 0 ? void 0 : options.importMode, customHeadersOption);
59
- return await this.applyUpdatesToServer([...configurationChanges.ToAdd, ...configurationChanges.ToModify, ...configurationChanges.ToRefresh], configurationChanges.ToDelete, options.timeout, customHeadersOption, options.progressCallback);
59
+ const settingsToWrite = configurationChanges
60
+ .filter(c => (c.changeType === ChangeType.Create || c.changeType === ChangeType.Update || c.changeType === ChangeType.None) && c.newValue)
61
+ .map(c => c.newValue);
62
+ const settingsToDelete = configurationChanges
63
+ .filter(c => c.changeType === ChangeType.Delete && c.currentValue)
64
+ .map(c => c.currentValue);
65
+ return await this.applyUpdatesToServer(settingsToWrite, settingsToDelete, options.timeout, customHeadersOption, options.progressCallback);
60
66
  }
61
67
  /**
62
68
  * Get configuration changes between source settings and existing settings in Azure App Configuration service without applying any changes
@@ -77,7 +83,7 @@ export class AppConfigurationImporter {
77
83
  * 'All' will include all key-values.
78
84
  * 'Ignore-Match' will exclude settings that have matching key-values in App Configuration.
79
85
  * @param customHeadersOption - Custom headers for the operation.
80
- * @returns ConfigurationChanges object containing Added, Modified, and Deleted settings
86
+ * @returns Array of ConfigurationSettingChange objects representing the changes
81
87
  */
82
88
  async GetConfigurationChanges(configSettingsSource, strict = false, importMode = ImportMode.IgnoreMatch, customHeadersOption) {
83
89
  var _a, e_1, _b, _c;
@@ -100,10 +106,8 @@ export class AppConfigurationImporter {
100
106
  return configSettingsResult;
101
107
  }
102
108
  const configSettings = configSettingsResult;
103
- const configurationSettingToDelete = [];
104
- const configurationSettingToModify = [];
109
+ const configurationChanges = [];
105
110
  const configurationSettingToAdd = [];
106
- const configurationSettingToRefresh = [];
107
111
  const srcKeyLabelLookUp = {};
108
112
  configSettings.forEach((config) => {
109
113
  if (!srcKeyLabelLookUp[config.key]) {
@@ -120,19 +124,29 @@ export class AppConfigurationImporter {
120
124
  const existing = _c;
121
125
  const isKeyLabelPresent = srcKeyLabelLookUp[existing.key] && srcKeyLabelLookUp[existing.key][existing.label || ""];
122
126
  if (strict && !isKeyLabelPresent) {
123
- configurationSettingToDelete.push(existing);
127
+ configurationChanges.push({
128
+ changeType: ChangeType.Delete,
129
+ currentValue: existing,
130
+ newValue: null
131
+ });
124
132
  }
125
133
  const incoming = configSettings.find(configSetting => configSetting.key == existing.key && configSetting.label === existing.label);
126
134
  if (incoming) {
127
135
  // Remove from add list since it already exists
128
136
  configurationSettingToAdd.splice(configurationSettingToAdd.indexOf(incoming), 1);
129
137
  if (!isConfigSettingEqual(incoming, existing)) {
130
- // Key-value has changed, add to ToModify
131
- configurationSettingToModify.push(incoming);
138
+ configurationChanges.push({
139
+ changeType: ChangeType.Update,
140
+ currentValue: existing,
141
+ newValue: incoming
142
+ });
132
143
  }
133
144
  else if (importMode === ImportMode.All) {
134
- // Key-value is unchanged and importMode is All, add to ToRefresh
135
- configurationSettingToRefresh.push(incoming);
145
+ configurationChanges.push({
146
+ changeType: ChangeType.None,
147
+ currentValue: existing,
148
+ newValue: incoming
149
+ });
136
150
  }
137
151
  }
138
152
  }
@@ -148,12 +162,14 @@ export class AppConfigurationImporter {
148
162
  }
149
163
  finally { if (e_1) throw e_1.error; }
150
164
  }
151
- return {
152
- ToAdd: configurationSettingToAdd,
153
- ToModify: configurationSettingToModify,
154
- ToDelete: configurationSettingToDelete,
155
- ToRefresh: configurationSettingToRefresh
156
- };
165
+ for (const setting of configurationSettingToAdd) {
166
+ configurationChanges.push({
167
+ changeType: ChangeType.Create,
168
+ currentValue: null,
169
+ newValue: setting
170
+ });
171
+ }
172
+ return configurationChanges;
157
173
  }
158
174
  async applyUpdatesToServer(settingsToPut, settingsToDelete, timeout, options, progressCallback) {
159
175
  const deleteTaskManager = this.newAdaptiveTaskManager((setting) => this.configurationClient.deleteConfigurationSetting(setting, options), settingsToDelete);
@@ -198,14 +214,16 @@ export class AppConfigurationImporter {
198
214
  * @internal
199
215
  */
200
216
  isConfigurationChanges(obj) {
201
- if (obj === null || typeof obj !== "object") {
217
+ if (!Array.isArray(obj)) {
202
218
  return false;
203
219
  }
204
- const configChanges = obj;
205
- return Array.isArray(configChanges.ToAdd) &&
206
- Array.isArray(configChanges.ToModify) &&
207
- Array.isArray(configChanges.ToDelete) &&
208
- Array.isArray(configChanges.ToRefresh);
220
+ // Validate it's an array of ConfigurationSettingChange objects
221
+ return obj.every(item => item &&
222
+ typeof item === "object" &&
223
+ "changeType" in item &&
224
+ "currentValue" in item &&
225
+ "newValue" in item &&
226
+ Object.values(ChangeType).includes(item.changeType));
209
227
  }
210
228
  }
211
229
  //# sourceMappingURL=appConfigurationImporter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appConfigurationImporter.js","sourceRoot":"","sources":["../../src/appConfigurationImporter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { \n AppConfigurationClient, \n ConfigurationSetting, \n SetConfigurationSettingParam, \n FeatureFlagValue, \n SecretReferenceValue } from \"@azure/app-configuration\";\nimport { ConfigurationSettingsSource } from \"./settingsImport/configurationSettingsSource\";\nimport { ConfigurationChangesSource } from \"./settingsImport/configurationChangesSource\";\nimport { ImportMode } from \"./enums\";\nimport { OperationTimeoutError, ArgumentError } from \"./errors\";\nimport { AdaptiveTaskManager } from \"./internal/adaptiveTaskManager\";\nimport { ImportProgress, KeyLabelLookup, ConfigurationChanges } from \"./models\";\nimport { isConfigSettingEqual } from \"./internal/utils\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Constants } from \"./internal/constants\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { ImportOptions } from \"./options\";\n\n/**\n * Entrypoint class for sync configuration\n */\nexport class AppConfigurationImporter {\n private configurationClient: AppConfigurationClient;\n /**\n * Initializes a new instance of the AppConfigurationSync class.\n * @param configurationClient - App configuration client for manipulate the target App Configuration.\n */\n constructor(configurationClient: AppConfigurationClient) {\n this.configurationClient = configurationClient;\n }\n\n /**\n * Import settings into the Azure App Configuration service.\n * \n * Example usage:\n * ```ts\n * const fileData = fs.readFileSync(\"mylocalPath\").toString();\n * const source = new StringConfigurationSettingsSource({data:fileData, format: ConfigurationFormat.Json});\n * await importer.Import(source, { timeout: 60 });\n * ```\n * \n * @param configurationSettingsSource - A ConfigurationSettingsSource instance.\n * @param options - Import options including timeout, progress callback, strict mode, and import mode.\n * @returns Promise<void>\n */\n public async Import(\n configurationSettingsSource: ConfigurationSettingsSource,\n options: ImportOptions\n ): Promise<void> {\n if (configurationSettingsSource instanceof ConfigurationChangesSource) {\n // When using ConfigurationChanges, strict and importMode parameters are not applicable\n if (options?.strict || options?.importMode) {\n throw new ArgumentError(\"Parameters 'strict' and 'importMode' are not applicable when importing pre-calculated changes.\");\n }\n }\n\n // Generate correlationRequestId for operations in the same activity\n const customCorrelationRequestId: string = uuidv4();\n const customHeadersOption: OperationOptions = {\n requestOptions: {\n customHeaders: {\n [Constants.CorrelationRequestIdHeader]: customCorrelationRequestId\n }\n }\n };\n\n const configurationChanges = await this.GetConfigurationChanges(configurationSettingsSource, options?.strict, options?.importMode, customHeadersOption);\n\n return await this.applyUpdatesToServer([...configurationChanges.ToAdd, ...configurationChanges.ToModify, ...configurationChanges.ToRefresh], configurationChanges.ToDelete, options.timeout, customHeadersOption, options.progressCallback);\n }\n\n /**\n * Get configuration changes between source settings and existing settings in Azure App Configuration service without applying any changes\n *\n * Example usage:\n * ```ts\n * const fileData = fs.readFileSync(\"mylocalPath\").toString();\n * const configurationChanges = await client.GetConfigurationChanges(\n * new StringConfigurationSettingsSource({data:fileData, format: ConfigurationFormat.Json}),\n * false,\n * ImportMode.All,\n * options\n * );\n * ```\n * @param configSettingsSource - A ConfigurationSettingsSource instance.\n * @param strict - Use strict mode to delete settings not in source.\n * @param importMode - Determines the behavior when analyzing key-values.\n * 'All' will include all key-values. \n * 'Ignore-Match' will exclude settings that have matching key-values in App Configuration.\n * @param customHeadersOption - Custom headers for the operation.\n * @returns ConfigurationChanges object containing Added, Modified, and Deleted settings\n */\n public async GetConfigurationChanges(\n configSettingsSource: ConfigurationSettingsSource,\n strict = false,\n importMode = ImportMode.IgnoreMatch,\n customHeadersOption?: OperationOptions\n ): Promise<ConfigurationChanges> {\n this.validateImportMode(importMode);\n\n // Generate correlationRequestId for operations in the same activity\n if (!customHeadersOption) {\n const customCorrelationRequestId: string = uuidv4();\n customHeadersOption = {\n requestOptions: {\n customHeaders: {\n [Constants.CorrelationRequestIdHeader]: customCorrelationRequestId\n }\n }\n };\n }\n\n const configSettingsResult = await configSettingsSource.GetConfigurationSettings();\n\n // If the source returns ConfigurationChanges (e.g., ConfigurationChangesSource), \n // return them directly without further processing since changes are already calculated\n if (this.isConfigurationChanges(configSettingsResult)) {\n return configSettingsResult as ConfigurationChanges;\n }\n \n const configSettings = configSettingsResult as Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>>;\n const configurationSettingToDelete: ConfigurationSetting<string>[] = [];\n const configurationSettingToModify: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[] = [];\n const configurationSettingToAdd: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[] = [];\n const configurationSettingToRefresh: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[] = [];\n const srcKeyLabelLookUp: KeyLabelLookup = {};\n \n configSettings.forEach((config: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>) => {\n if (!srcKeyLabelLookUp[config.key]) {\n srcKeyLabelLookUp[config.key] = {};\n }\n srcKeyLabelLookUp[config.key][config.label || \"\"] = true;\n });\n\n configurationSettingToAdd.push(...configSettings);\n\n for await (const existing of this.configurationClient.listConfigurationSettings({...configSettingsSource.FilterOptions, ...customHeadersOption})) {\n const isKeyLabelPresent: boolean = srcKeyLabelLookUp[existing.key] && srcKeyLabelLookUp[existing.key][existing.label || \"\"];\n if (strict && !isKeyLabelPresent) {\n configurationSettingToDelete.push(existing);\n }\n\n const incoming = configSettings.find(configSetting => configSetting.key == existing.key && configSetting.label === existing.label);\n\n if (incoming) {\n // Remove from add list since it already exists\n configurationSettingToAdd.splice(configurationSettingToAdd.indexOf(incoming), 1);\n\n if (!isConfigSettingEqual(incoming, existing)) {\n // Key-value has changed, add to ToModify\n configurationSettingToModify.push(incoming);\n } \n else if (importMode === ImportMode.All) {\n // Key-value is unchanged and importMode is All, add to ToRefresh\n configurationSettingToRefresh.push(incoming);\n }\n }\n }\n\n return {\n ToAdd: configurationSettingToAdd,\n ToModify: configurationSettingToModify,\n ToDelete: configurationSettingToDelete,\n ToRefresh: configurationSettingToRefresh\n };\n }\n\n private async applyUpdatesToServer(\n settingsToPut: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[], \n settingsToDelete: ConfigurationSetting<string>[],\n timeout: number,\n options: OperationOptions,\n progressCallback?: (progress: ImportProgress) => unknown | undefined\n ): Promise<void> {\n const deleteTaskManager = this.newAdaptiveTaskManager((setting) => this.configurationClient.deleteConfigurationSetting(setting, options), settingsToDelete);\n const startTime = Date.now();\n await this.executeTasksWithTimeout(deleteTaskManager, timeout);\n const endTime = Date.now();\n const deleteTimeConsumed = (endTime - startTime) / 1000;\n timeout -= deleteTimeConsumed;\n\n const importTaskManager = this.newAdaptiveTaskManager((setting) => this.configurationClient.setConfigurationSetting(setting, options), settingsToPut);\n await this.executeTasksWithTimeout(importTaskManager, timeout, progressCallback);\n }\n\n private newAdaptiveTaskManager<T>(task: (setting: T) => Promise<any>, configurationSettings: Array<T>) {\n let index = 0;\n return new AdaptiveTaskManager(() => {\n if (index == configurationSettings.length) {\n return undefined;\n }\n const configSet = configurationSettings[index++];\n\n return async () => {\n return task(configSet);\n };\n }, configurationSettings.length);\n }\n\n private async executeTasksWithTimeout<T>(taskManager: AdaptiveTaskManager<T>, timeInSeconds: number, callback?: (progress: ImportProgress) => unknown) {\n let timer: NodeJS.Timeout;\n const taskPromise = taskManager.Start(callback);\n const timeoutPromise = new Promise((_, reject) => {\n timer = setTimeout(() => reject(new OperationTimeoutError()), timeInSeconds * 1000);\n });\n await Promise.race([taskPromise, timeoutPromise]).finally(() => {\n clearTimeout(timer); // clear timeout when importPromise successfully resolve or faultily reject.\n });\n }\n\n private validateImportMode(importMode: ImportMode): void {\n if (importMode && !(importMode == ImportMode.IgnoreMatch || \n importMode == ImportMode.All)) {\n throw new ArgumentError(\"Only options supported for Import Mode are 'All' and 'Ignore-Match'.\");\n }\n }\n\n /**\n * Type guard to detect a ConfigurationChanges object.\n * @internal\n */\n private isConfigurationChanges(obj: unknown): obj is ConfigurationChanges {\n if (obj === null || typeof obj !== \"object\") {\n return false;\n }\n const configChanges = obj as Partial<ConfigurationChanges>;\n return Array.isArray(configChanges.ToAdd) && \n Array.isArray(configChanges.ToModify) && \n Array.isArray(configChanges.ToDelete) && \n Array.isArray(configChanges.ToRefresh);\n }\n}\n"]}
1
+ {"version":3,"file":"appConfigurationImporter.js","sourceRoot":"","sources":["../../src/appConfigurationImporter.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { \n AppConfigurationClient, \n ConfigurationSetting, \n SetConfigurationSettingParam, \n FeatureFlagValue, \n SecretReferenceValue } from \"@azure/app-configuration\";\nimport { ConfigurationSettingsSource } from \"./settingsImport/configurationSettingsSource\";\nimport { ConfigurationChangesSource } from \"./settingsImport/configurationChangesSource\";\nimport { ImportMode, ChangeType } from \"./enums\";\nimport { OperationTimeoutError, ArgumentError } from \"./errors\";\nimport { AdaptiveTaskManager } from \"./internal/adaptiveTaskManager\";\nimport { ImportProgress, KeyLabelLookup, ConfigurationSettingChange } from \"./models\";\nimport { isConfigSettingEqual } from \"./internal/utils\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Constants } from \"./internal/constants\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { ImportOptions } from \"./options\";\n\n/**\n * Entrypoint class for sync configuration\n */\nexport class AppConfigurationImporter {\n private configurationClient: AppConfigurationClient;\n /**\n * Initializes a new instance of the AppConfigurationSync class.\n * @param configurationClient - App configuration client for manipulate the target App Configuration.\n */\n constructor(configurationClient: AppConfigurationClient) {\n this.configurationClient = configurationClient;\n }\n\n /**\n * Import settings into the Azure App Configuration service.\n * \n * Example usage:\n * ```ts\n * const fileData = fs.readFileSync(\"mylocalPath\").toString();\n * const source = new StringConfigurationSettingsSource({data:fileData, format: ConfigurationFormat.Json});\n * await importer.Import(source, { timeout: 60 });\n * ```\n * \n * @param configurationSettingsSource - A ConfigurationSettingsSource instance.\n * @param options - Import options including timeout, progress callback, strict mode, and import mode.\n * @returns Promise<void>\n */\n public async Import(\n configurationSettingsSource: ConfigurationSettingsSource,\n options: ImportOptions\n ): Promise<void> {\n if (configurationSettingsSource instanceof ConfigurationChangesSource) {\n // When using ConfigurationChanges, strict and importMode parameters are not applicable\n if (options?.strict || options?.importMode) {\n throw new ArgumentError(\"Parameters 'strict' and 'importMode' are not applicable when importing pre-calculated changes.\");\n }\n }\n\n // Generate correlationRequestId for operations in the same activity\n const customCorrelationRequestId: string = uuidv4();\n const customHeadersOption: OperationOptions = {\n requestOptions: {\n customHeaders: {\n [Constants.CorrelationRequestIdHeader]: customCorrelationRequestId\n }\n }\n };\n\n const configurationChanges = await this.GetConfigurationChanges(configurationSettingsSource, options?.strict, options?.importMode, customHeadersOption);\n \n const settingsToWrite: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[] = configurationChanges\n .filter(c => (c.changeType === ChangeType.Create || c.changeType === ChangeType.Update || c.changeType === ChangeType.None) && c.newValue)\n .map(c => c.newValue!);\n\n const settingsToDelete: ConfigurationSetting[] = configurationChanges\n .filter(c => c.changeType === ChangeType.Delete && c.currentValue)\n .map(c => c.currentValue!);\n\n return await this.applyUpdatesToServer(settingsToWrite, settingsToDelete, options.timeout, customHeadersOption, options.progressCallback);\n }\n\n /**\n * Get configuration changes between source settings and existing settings in Azure App Configuration service without applying any changes\n *\n * Example usage:\n * ```ts\n * const fileData = fs.readFileSync(\"mylocalPath\").toString();\n * const configurationChanges = await client.GetConfigurationChanges(\n * new StringConfigurationSettingsSource({data:fileData, format: ConfigurationFormat.Json}),\n * false,\n * ImportMode.All,\n * options\n * );\n * ```\n * @param configSettingsSource - A ConfigurationSettingsSource instance.\n * @param strict - Use strict mode to delete settings not in source.\n * @param importMode - Determines the behavior when analyzing key-values.\n * 'All' will include all key-values. \n * 'Ignore-Match' will exclude settings that have matching key-values in App Configuration.\n * @param customHeadersOption - Custom headers for the operation.\n * @returns Array of ConfigurationSettingChange objects representing the changes\n */\n public async GetConfigurationChanges(\n configSettingsSource: ConfigurationSettingsSource,\n strict = false,\n importMode = ImportMode.IgnoreMatch,\n customHeadersOption?: OperationOptions\n ): Promise<Array<ConfigurationSettingChange>> {\n this.validateImportMode(importMode);\n\n // Generate correlationRequestId for operations in the same activity\n if (!customHeadersOption) {\n const customCorrelationRequestId: string = uuidv4();\n customHeadersOption = {\n requestOptions: {\n customHeaders: {\n [Constants.CorrelationRequestIdHeader]: customCorrelationRequestId\n }\n }\n };\n }\n\n const configSettingsResult = await configSettingsSource.GetConfigurationSettings();\n\n // If the source returns ConfigurationChanges (e.g., ConfigurationChangesSource), \n // return them directly without further processing since changes are already calculated\n if (this.isConfigurationChanges(configSettingsResult)) {\n return configSettingsResult as Array<ConfigurationSettingChange>;\n }\n \n const configSettings = configSettingsResult as Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>>;\n const configurationChanges: Array<ConfigurationSettingChange> = [];\n const configurationSettingToAdd: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[] = [];\n const srcKeyLabelLookUp: KeyLabelLookup = {};\n \n configSettings.forEach((config: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>) => {\n if (!srcKeyLabelLookUp[config.key]) {\n srcKeyLabelLookUp[config.key] = {};\n }\n srcKeyLabelLookUp[config.key][config.label || \"\"] = true;\n });\n\n configurationSettingToAdd.push(...configSettings);\n\n for await (const existing of this.configurationClient.listConfigurationSettings({...configSettingsSource.FilterOptions, ...customHeadersOption})) {\n const isKeyLabelPresent: boolean = srcKeyLabelLookUp[existing.key] && srcKeyLabelLookUp[existing.key][existing.label || \"\"];\n \n if (strict && !isKeyLabelPresent) {\n configurationChanges.push({\n changeType: ChangeType.Delete,\n currentValue: existing,\n newValue: null\n });\n }\n\n const incoming = configSettings.find(configSetting => configSetting.key == existing.key && configSetting.label === existing.label);\n\n if (incoming) {\n // Remove from add list since it already exists\n configurationSettingToAdd.splice(configurationSettingToAdd.indexOf(incoming), 1);\n\n if (!isConfigSettingEqual(incoming, existing)) {\n configurationChanges.push({\n changeType: ChangeType.Update,\n currentValue: existing,\n newValue: incoming\n });\n } \n else if (importMode === ImportMode.All) {\n configurationChanges.push({\n changeType: ChangeType.None,\n currentValue: existing,\n newValue: incoming\n });\n }\n }\n }\n\n for (const setting of configurationSettingToAdd) {\n configurationChanges.push({\n changeType: ChangeType.Create,\n currentValue: null,\n newValue: setting\n });\n }\n\n return configurationChanges;\n }\n\n private async applyUpdatesToServer(\n settingsToPut: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[], \n settingsToDelete: ConfigurationSetting<string>[],\n timeout: number,\n options: OperationOptions,\n progressCallback?: (progress: ImportProgress) => unknown | undefined\n ): Promise<void> {\n const deleteTaskManager = this.newAdaptiveTaskManager((setting) => this.configurationClient.deleteConfigurationSetting(setting, options), settingsToDelete);\n const startTime = Date.now();\n await this.executeTasksWithTimeout(deleteTaskManager, timeout);\n const endTime = Date.now();\n const deleteTimeConsumed = (endTime - startTime) / 1000;\n timeout -= deleteTimeConsumed;\n\n const importTaskManager = this.newAdaptiveTaskManager((setting) => this.configurationClient.setConfigurationSetting(setting, options), settingsToPut);\n await this.executeTasksWithTimeout(importTaskManager, timeout, progressCallback);\n }\n\n private newAdaptiveTaskManager<T>(task: (setting: T) => Promise<any>, configurationSettings: Array<T>) {\n let index = 0;\n return new AdaptiveTaskManager(() => {\n if (index == configurationSettings.length) {\n return undefined;\n }\n const configSet = configurationSettings[index++];\n\n return async () => {\n return task(configSet);\n };\n }, configurationSettings.length);\n }\n\n private async executeTasksWithTimeout<T>(taskManager: AdaptiveTaskManager<T>, timeInSeconds: number, callback?: (progress: ImportProgress) => unknown) {\n let timer: NodeJS.Timeout;\n const taskPromise = taskManager.Start(callback);\n const timeoutPromise = new Promise((_, reject) => {\n timer = setTimeout(() => reject(new OperationTimeoutError()), timeInSeconds * 1000);\n });\n await Promise.race([taskPromise, timeoutPromise]).finally(() => {\n clearTimeout(timer); // clear timeout when importPromise successfully resolve or faultily reject.\n });\n }\n\n private validateImportMode(importMode: ImportMode): void {\n if (importMode && !(importMode == ImportMode.IgnoreMatch || \n importMode == ImportMode.All)) {\n throw new ArgumentError(\"Only options supported for Import Mode are 'All' and 'Ignore-Match'.\");\n }\n }\n\n /**\n * Type guard to detect a ConfigurationChanges object.\n * @internal\n */\n private isConfigurationChanges(obj: unknown): obj is Array<ConfigurationSettingChange> {\n if (!Array.isArray(obj)) {\n return false;\n }\n \n // Validate it's an array of ConfigurationSettingChange objects\n return obj.every(item => \n item && \n typeof item === \"object\" &&\n \"changeType\" in item &&\n \"currentValue\" in item &&\n \"newValue\" in item &&\n Object.values(ChangeType).includes(item.changeType)\n );\n }\n}\n"]}
@@ -25,4 +25,14 @@ export var ImportMode;
25
25
  ImportMode[ImportMode["All"] = 0] = "All";
26
26
  ImportMode[ImportMode["IgnoreMatch"] = 1] = "IgnoreMatch";
27
27
  })(ImportMode || (ImportMode = {}));
28
+ /**
29
+ * Enums of change type for configuration settings changes
30
+ */
31
+ export var ChangeType;
32
+ (function (ChangeType) {
33
+ ChangeType[ChangeType["None"] = 0] = "None";
34
+ ChangeType[ChangeType["Create"] = 1] = "Create";
35
+ ChangeType[ChangeType["Delete"] = 2] = "Delete";
36
+ ChangeType[ChangeType["Update"] = 3] = "Update";
37
+ })(ChangeType || (ChangeType = {}));
28
38
  //# sourceMappingURL=enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAI,CAAA;IACJ,yEAAU,CAAA;IACV,6DAAI,CAAA;AACN,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qEAAO,CAAA;IACP,iEAAK,CAAA;AACP,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yCAAG,CAAA;IACH,yDAAW,CAAA;AACb,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Enums of configuration Format.\n */\nexport enum ConfigurationFormat {\n Json,\n Properties,\n Yaml,\n}\n\n/**\n * Enums of configuration Profile.\n */\nexport enum ConfigurationProfile {\n Default,\n KvSet,\n}\n\n/**\n * Enums of import mode.\n */\nexport enum ImportMode {\n All,\n IgnoreMatch\n}"]}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAI,CAAA;IACJ,yEAAU,CAAA;IACV,6DAAI,CAAA;AACN,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qEAAO,CAAA;IACP,iEAAK,CAAA;AACP,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yCAAG,CAAA;IACH,yDAAW,CAAA;AACb,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2CAAI,CAAA;IACJ,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,+CAAM,CAAA;AACR,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Enums of configuration Format.\n */\nexport enum ConfigurationFormat {\n Json,\n Properties,\n Yaml,\n}\n\n/**\n * Enums of configuration Profile.\n */\nexport enum ConfigurationProfile {\n Default,\n KvSet,\n}\n\n/**\n * Enums of import mode.\n */\nexport enum ImportMode {\n All,\n IgnoreMatch\n}\n\n/**\n * Enums of change type for configuration settings changes\n */\nexport enum ChangeType {\n None,\n Create,\n Delete,\n Update\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAOtE,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAC;AAEvG,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,yCAAyC,EAAE,MAAM,4DAA4D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { AppConfigurationImporter } from \"./appConfigurationImporter\";\nexport {\n StringSourceOptions,\n IterableSourceOptions,\n ReadableStreamSourceOptions,\n ImportOptions\n} from \"./options\";\nexport * from \"./enums\";\nexport * from \"./errors\";\nexport { ImportProgress as ImportResult, ConfigurationChanges } from \"./models\";\nexport { StringConfigurationSettingsSource } from \"./settingsImport/stringConfigurationSettingsSource\";\nexport { ConfigurationSettingsSource } from \"./settingsImport/configurationSettingsSource\";\nexport { ConfigurationChangesSource } from \"./settingsImport/configurationChangesSource\";\nexport { IterableConfigurationSettingsSource } from \"./settingsImport/iterableConfigurationSettingsSource\";\nexport { ReadableStreamConfigurationSettingsSource } from \"./settingsImport/readableStreamConfigurationSettingsSource\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAOtE,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAC;AAEvG,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,yCAAyC,EAAE,MAAM,4DAA4D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { AppConfigurationImporter } from \"./appConfigurationImporter\";\nexport {\n StringSourceOptions,\n IterableSourceOptions,\n ReadableStreamSourceOptions,\n ImportOptions\n} from \"./options\";\nexport * from \"./enums\";\nexport * from \"./errors\";\nexport { ImportProgress as ImportResult, ConfigurationSettingChange } from \"./models\";\nexport { StringConfigurationSettingsSource } from \"./settingsImport/stringConfigurationSettingsSource\";\nexport { ConfigurationSettingsSource } from \"./settingsImport/configurationSettingsSource\";\nexport { ConfigurationChangesSource } from \"./settingsImport/configurationChangesSource\";\nexport { IterableConfigurationSettingsSource } from \"./settingsImport/iterableConfigurationSettingsSource\";\nexport { ReadableStreamConfigurationSettingsSource } from \"./settingsImport/readableStreamConfigurationSettingsSource\";"]}
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { \n SecretReferenceValue,\n ConfigurationSetting,\n SetConfigurationSettingParam,\n FeatureFlagValue\n} from \"@azure/app-configuration\";\n\n/**\n * @internal\n */\nexport type ClientFilter = { name: string; parameters?: Record<string, unknown> };\n\n/**\n * @internal\n */\nexport interface JsonSecretReferenceValue {\n uri: string;\n}\n\n/**\n * @internal\n */\nexport type KvSetConfigurationItem = {\n key: string;\n value?: string;\n label?: string;\n content_type?: string;\n tags?: { [propertyName: string]: string };\n}\n\nexport interface ImportProgress {\n successCount: number;\n importCount: number;\n}\n\nexport interface Tags {\n [propertyName: string]: string;\n}\n\nexport interface FeatureFlagClientFilters {\n name: string;\n parameters?: Record<string, unknown> | undefined;\n}\n\nexport interface KeyLabelLookup {\n [key: string]: {\n [label: string] : boolean\n }\n}\n\nexport interface ConfigurationChanges {\n ToDelete: ConfigurationSetting<string>[];\n ToModify: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];\n ToAdd: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];\n ToRefresh: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];\n}"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { \n SecretReferenceValue,\n ConfigurationSetting,\n SetConfigurationSettingParam,\n FeatureFlagValue\n} from \"@azure/app-configuration\";\nimport { ChangeType } from \"./enums\";\n\n/**\n * @internal\n */\nexport type ClientFilter = { name: string; parameters?: Record<string, unknown> };\n\n/**\n * @internal\n */\nexport interface JsonSecretReferenceValue {\n uri: string;\n}\n\n/**\n * @internal\n */\nexport type KvSetConfigurationItem = {\n key: string;\n value?: string;\n label?: string;\n content_type?: string;\n tags?: { [propertyName: string]: string };\n}\n\nexport interface ImportProgress {\n successCount: number;\n importCount: number;\n}\n\nexport interface Tags {\n [propertyName: string]: string;\n}\n\nexport interface FeatureFlagClientFilters {\n name: string;\n parameters?: Record<string, unknown> | undefined;\n}\n\nexport interface KeyLabelLookup {\n [key: string]: {\n [label: string] : boolean\n }\n}\n\nexport interface ConfigurationSettingChange {\n changeType: ChangeType;\n /** The current value of the configuration setting */\n currentValue: ConfigurationSetting<string> | null;\n /** The new value of the configuration setting */\n newValue: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue> | null;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"configurationChangesSource.js","sourceRoot":"","sources":["../../../src/settingsImport/configurationChangesSource.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,0BAA0B;IAGrC,YAAY,oBAA0C,EAAE,aAAgD;QACtG,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1D,MAAM,IAAI,aAAa,CAAC,iEAAiE,CAAC,CAAC;SAC5F;QACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAED;;SAEK;IACE,KAAK,CAAC,wBAAwB;QACnC,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ConfigurationSettingsSource } from \"./configurationSettingsSource\";\nimport { ConfigurationChanges } from \"../models\";\nimport { ListConfigurationSettingsOptions } from \"@azure/app-configuration\";\nimport { ArgumentError } from \"../errors\";\n\n/**\n * A ConfigurationSettingsSource that wraps pre-calculated configuration changes.\n * \n * Use this class to import changes that were previously obtained via GetConfigurationChanges().\n * \n * Example usage:\n * ```ts\n * // First, get the configuration changes\n * const changes = await importer.GetConfigurationChanges(source);\n * \n * // Import the pre-calculated changes\n * const changesSource = new ConfigurationChangesSource(changes);\n * await importer.Import(changesSource, { timeout: 60 });\n * ```\n */\nexport class ConfigurationChangesSource implements ConfigurationSettingsSource {\n private readonly configurationChanges: ConfigurationChanges;\n\n constructor(configurationChanges: ConfigurationChanges, filterOptions?: ListConfigurationSettingsOptions) {\n if (filterOptions && Object.keys(filterOptions).length > 0) {\n throw new ArgumentError(\"FilterOptions are not supported for ConfigurationChangesSource.\");\n }\n this.configurationChanges = configurationChanges;\n }\n\n /**\n * @inheritdoc\n */\n public async GetConfigurationSettings(): Promise<ConfigurationChanges> {\n return this.configurationChanges;\n }\n}"]}
1
+ {"version":3,"file":"configurationChangesSource.js","sourceRoot":"","sources":["../../../src/settingsImport/configurationChangesSource.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,0BAA0B;IAGrC,YAAY,oBAAuD,EAAE,aAAgD;QACnH,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1D,MAAM,IAAI,aAAa,CAAC,iEAAiE,CAAC,CAAC;SAC5F;QACD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAED;;SAEK;IACE,KAAK,CAAC,wBAAwB;QACnC,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ConfigurationSettingsSource } from \"./configurationSettingsSource\";\nimport { ConfigurationSettingChange } from \"../models\";\nimport { ListConfigurationSettingsOptions } from \"@azure/app-configuration\";\nimport { ArgumentError } from \"../errors\";\n\n/**\n * A ConfigurationSettingsSource that wraps pre-calculated configuration changes.\n * \n * Use this class to import changes that were previously obtained via GetConfigurationChanges().\n * \n * Example usage:\n * ```ts\n * // First, get the configuration changes\n * const changes = await importer.GetConfigurationChanges(source);\n * \n * // Import the pre-calculated changes\n * const changesSource = new ConfigurationChangesSource(changes);\n * await importer.Import(changesSource, { timeout: 60 });\n * ```\n */\nexport class ConfigurationChangesSource implements ConfigurationSettingsSource {\n private readonly configurationChanges: Array<ConfigurationSettingChange>;\n\n constructor(configurationChanges: Array<ConfigurationSettingChange>, filterOptions?: ListConfigurationSettingsOptions) {\n if (filterOptions && Object.keys(filterOptions).length > 0) {\n throw new ArgumentError(\"FilterOptions are not supported for ConfigurationChangesSource.\");\n }\n this.configurationChanges = configurationChanges;\n }\n\n /**\n * @inheritdoc\n */\n public async GetConfigurationSettings(): Promise<Array<ConfigurationSettingChange>> {\n return this.configurationChanges;\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"configurationSettingsSource.js","sourceRoot":"","sources":["../../../src/settingsImport/configurationSettingsSource.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FeatureFlagValue,\n ListConfigurationSettingsOptions,\n SecretReferenceValue,\n SetConfigurationSettingParam\n} from \"@azure/app-configuration\";\nimport { ConfigurationChanges } from \"../models\";\n\n/**\n * Interface of all ConfigurationSettingsSource\n */\nexport interface ConfigurationSettingsSource {\n /**\n * Get ConfigurationSettings collection from source.\n *\n * @returns Collection of ConfigurationSettings or ConfigurationChanges\n */\n GetConfigurationSettings(): Promise<Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>> | ConfigurationChanges>;\n\n /**\n * Get label and prefix filter\n *\n * @returns label and prefix\n */\n FilterOptions?: ListConfigurationSettingsOptions;\n}\n"]}
1
+ {"version":3,"file":"configurationSettingsSource.js","sourceRoot":"","sources":["../../../src/settingsImport/configurationSettingsSource.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FeatureFlagValue,\n ListConfigurationSettingsOptions,\n SecretReferenceValue,\n SetConfigurationSettingParam\n} from \"@azure/app-configuration\";\nimport { ConfigurationSettingChange } from \"../models\";\n\n/**\n * Interface of all ConfigurationSettingsSource\n */\nexport interface ConfigurationSettingsSource {\n /**\n * Get ConfigurationSettings collection from source.\n *\n * @returns Collection of ConfigurationSettings or ConfigurationSettingChanges\n */\n GetConfigurationSettings(): Promise<Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>> | Array<ConfigurationSettingChange>>;\n\n /**\n * Get label and prefix filter\n *\n * @returns label and prefix\n */\n FilterOptions?: ListConfigurationSettingsOptions;\n}\n"]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@azure/app-configuration-importer",
3
3
  "author": "Microsoft Corporation",
4
4
  "description": "A client library for importing/exporting key-values between configuration sources and Azure App Configuration service",
5
- "version": "2.0.0-preview",
5
+ "version": "3.0.0-preview",
6
6
  "sdk-type": "client",
7
7
  "keywords": [
8
8
  "node",
@@ -68,9 +68,9 @@ export declare class AppConfigurationImporter {
68
68
  * 'All' will include all key-values.
69
69
  * 'Ignore-Match' will exclude settings that have matching key-values in App Configuration.
70
70
  * @param customHeadersOption - Custom headers for the operation.
71
- * @returns ConfigurationChanges object containing Added, Modified, and Deleted settings
71
+ * @returns Array of ConfigurationSettingChange objects representing the changes
72
72
  */
73
- GetConfigurationChanges(configSettingsSource: ConfigurationSettingsSource, strict?: boolean, importMode?: ImportMode, customHeadersOption?: OperationOptions): Promise<ConfigurationChanges>;
73
+ GetConfigurationChanges(configSettingsSource: ConfigurationSettingsSource, strict?: boolean, importMode?: ImportMode, customHeadersOption?: OperationOptions): Promise<Array<ConfigurationSettingChange>>;
74
74
  private applyUpdatesToServer;
75
75
  private newAdaptiveTaskManager;
76
76
  private executeTasksWithTimeout;
@@ -95,11 +95,14 @@ export declare class ArgumentError extends Error {
95
95
  export declare class ArgumentNullError extends Error {
96
96
  }
97
97
 
98
- export declare interface ConfigurationChanges {
99
- ToDelete: ConfigurationSetting<string>[];
100
- ToModify: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];
101
- ToAdd: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];
102
- ToRefresh: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];
98
+ /**
99
+ * Enums of change type for configuration settings changes
100
+ */
101
+ export declare enum ChangeType {
102
+ None = 0,
103
+ Create = 1,
104
+ Delete = 2,
105
+ Update = 3
103
106
  }
104
107
 
105
108
  /**
@@ -119,11 +122,11 @@ export declare interface ConfigurationChanges {
119
122
  */
120
123
  export declare class ConfigurationChangesSource implements ConfigurationSettingsSource {
121
124
  private readonly configurationChanges;
122
- constructor(configurationChanges: ConfigurationChanges, filterOptions?: ListConfigurationSettingsOptions);
125
+ constructor(configurationChanges: Array<ConfigurationSettingChange>, filterOptions?: ListConfigurationSettingsOptions);
123
126
  /**
124
127
  * @inheritdoc
125
128
  */
126
- GetConfigurationSettings(): Promise<ConfigurationChanges>;
129
+ GetConfigurationSettings(): Promise<Array<ConfigurationSettingChange>>;
127
130
  }
128
131
 
129
132
  /**
@@ -143,6 +146,14 @@ export declare enum ConfigurationProfile {
143
146
  KvSet = 1
144
147
  }
145
148
 
149
+ export declare interface ConfigurationSettingChange {
150
+ changeType: ChangeType;
151
+ /** The current value of the configuration setting */
152
+ currentValue: ConfigurationSetting<string> | null;
153
+ /** The new value of the configuration setting */
154
+ newValue: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue> | null;
155
+ }
156
+
146
157
  /**
147
158
  * Interface of all ConfigurationSettingsSource
148
159
  */
@@ -150,9 +161,9 @@ export declare interface ConfigurationSettingsSource {
150
161
  /**
151
162
  * Get ConfigurationSettings collection from source.
152
163
  *
153
- * @returns Collection of ConfigurationSettings or ConfigurationChanges
164
+ * @returns Collection of ConfigurationSettings or ConfigurationSettingChanges
154
165
  */
155
- GetConfigurationSettings(): Promise<Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>> | ConfigurationChanges>;
166
+ GetConfigurationSettings(): Promise<Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>> | Array<ConfigurationSettingChange>>;
156
167
  /**
157
168
  * Get label and prefix filter
158
169
  *
@@ -1,7 +1,7 @@
1
1
  import { AppConfigurationClient } from "@azure/app-configuration";
2
2
  import { ConfigurationSettingsSource } from "./settingsImport/configurationSettingsSource";
3
3
  import { ImportMode } from "./enums";
4
- import { ConfigurationChanges } from "./models";
4
+ import { ConfigurationSettingChange } from "./models";
5
5
  import { OperationOptions } from "@azure/core-client";
6
6
  import { ImportOptions } from "./options";
7
7
  /**
@@ -48,9 +48,9 @@ export declare class AppConfigurationImporter {
48
48
  * 'All' will include all key-values.
49
49
  * 'Ignore-Match' will exclude settings that have matching key-values in App Configuration.
50
50
  * @param customHeadersOption - Custom headers for the operation.
51
- * @returns ConfigurationChanges object containing Added, Modified, and Deleted settings
51
+ * @returns Array of ConfigurationSettingChange objects representing the changes
52
52
  */
53
- GetConfigurationChanges(configSettingsSource: ConfigurationSettingsSource, strict?: boolean, importMode?: ImportMode, customHeadersOption?: OperationOptions): Promise<ConfigurationChanges>;
53
+ GetConfigurationChanges(configSettingsSource: ConfigurationSettingsSource, strict?: boolean, importMode?: ImportMode, customHeadersOption?: OperationOptions): Promise<Array<ConfigurationSettingChange>>;
54
54
  private applyUpdatesToServer;
55
55
  private newAdaptiveTaskManager;
56
56
  private executeTasksWithTimeout;
@@ -1 +1 @@
1
- {"version":3,"file":"appConfigurationImporter.d.ts","sourceRoot":"","sources":["../../src/appConfigurationImporter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EAIA,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAkC,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,mBAAmB,CAAyB;IACpD;;;OAGG;gBACS,mBAAmB,EAAE,sBAAsB;IAIvD;;;;;;;;;;;;;OAaG;IACU,MAAM,CACjB,2BAA2B,EAAE,2BAA2B,EACxD,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,uBAAuB,CAClC,oBAAoB,EAAE,2BAA2B,EACjD,MAAM,UAAQ,EACd,UAAU,aAAyB,EACnC,mBAAmB,CAAC,EAAE,gBAAgB,GACrC,OAAO,CAAC,oBAAoB,CAAC;YAsElB,oBAAoB;IAkBlC,OAAO,CAAC,sBAAsB;YAchB,uBAAuB;IAWrC,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAU/B"}
1
+ {"version":3,"file":"appConfigurationImporter.d.ts","sourceRoot":"","sources":["../../src/appConfigurationImporter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EAIA,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AAGjD,OAAO,EAAkC,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAItF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,mBAAmB,CAAyB;IACpD;;;OAGG;gBACS,mBAAmB,EAAE,sBAAsB;IAIvD;;;;;;;;;;;;;OAaG;IACU,MAAM,CACjB,2BAA2B,EAAE,2BAA2B,EACxD,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,uBAAuB,CAClC,oBAAoB,EAAE,2BAA2B,EACjD,MAAM,UAAQ,EACd,UAAU,aAAyB,EACnC,mBAAmB,CAAC,EAAE,gBAAgB,GACrC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAkF/B,oBAAoB;IAkBlC,OAAO,CAAC,sBAAsB;YAchB,uBAAuB;IAWrC,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAe/B"}
@@ -20,4 +20,13 @@ export declare enum ImportMode {
20
20
  All = 0,
21
21
  IgnoreMatch = 1
22
22
  }
23
+ /**
24
+ * Enums of change type for configuration settings changes
25
+ */
26
+ export declare enum ChangeType {
27
+ None = 0,
28
+ Create = 1,
29
+ Delete = 2,
30
+ Update = 3
31
+ }
23
32
  //# sourceMappingURL=enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,IAAI,IAAA;IACJ,UAAU,IAAA;IACV,IAAI,IAAA;CACL;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,IAAA;IACH,WAAW,IAAA;CACZ"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/enums.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,IAAI,IAAA;IACJ,UAAU,IAAA;IACV,IAAI,IAAA;CACL;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,GAAG,IAAA;IACH,WAAW,IAAA;CACZ;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;CACP"}
@@ -2,7 +2,7 @@ export { AppConfigurationImporter } from "./appConfigurationImporter";
2
2
  export { StringSourceOptions, IterableSourceOptions, ReadableStreamSourceOptions, ImportOptions } from "./options";
3
3
  export * from "./enums";
4
4
  export * from "./errors";
5
- export { ImportProgress as ImportResult, ConfigurationChanges } from "./models";
5
+ export { ImportProgress as ImportResult, ConfigurationSettingChange } from "./models";
6
6
  export { StringConfigurationSettingsSource } from "./settingsImport/stringConfigurationSettingsSource";
7
7
  export { ConfigurationSettingsSource } from "./settingsImport/configurationSettingsSource";
8
8
  export { ConfigurationChangesSource } from "./settingsImport/configurationChangesSource";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACd,MAAM,WAAW,CAAC;AACnB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAC;AACvG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,yCAAyC,EAAE,MAAM,4DAA4D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACd,MAAM,WAAW,CAAC;AACnB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,iCAAiC,EAAE,MAAM,oDAAoD,CAAC;AACvG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,yCAAyC,EAAE,MAAM,4DAA4D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { SecretReferenceValue, ConfigurationSetting, SetConfigurationSettingParam, FeatureFlagValue } from "@azure/app-configuration";
2
+ import { ChangeType } from "./enums";
2
3
  /**
3
4
  * @internal
4
5
  */
@@ -40,10 +41,11 @@ export interface KeyLabelLookup {
40
41
  [label: string]: boolean;
41
42
  };
42
43
  }
43
- export interface ConfigurationChanges {
44
- ToDelete: ConfigurationSetting<string>[];
45
- ToModify: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];
46
- ToAdd: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];
47
- ToRefresh: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>[];
44
+ export interface ConfigurationSettingChange {
45
+ changeType: ChangeType;
46
+ /** The current value of the configuration setting */
47
+ currentValue: ConfigurationSetting<string> | null;
48
+ /** The new value of the configuration setting */
49
+ newValue: SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue> | null;
48
50
  }
49
51
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,KAAK,EAAE,MAAM,GAAI,OAAO,CAAA;KAC1B,CAAA;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACzC,QAAQ,EAAE,4BAA4B,CAAC,MAAM,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAC3F,KAAK,EAAE,4BAA4B,CAAC,MAAM,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,EAAE,CAAC;IACxF,SAAS,EAAE,4BAA4B,CAAC,MAAM,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,EAAE,CAAC;CAC7F"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,KAAK,EAAE,MAAM,GAAI,OAAO,CAAA;KAC1B,CAAA;CACF;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,qDAAqD;IACrD,YAAY,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAClD,iDAAiD;IACjD,QAAQ,EAAE,4BAA4B,CAAC,MAAM,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC;CACjG"}
@@ -1,5 +1,5 @@
1
1
  import { ConfigurationSettingsSource } from "./configurationSettingsSource";
2
- import { ConfigurationChanges } from "../models";
2
+ import { ConfigurationSettingChange } from "../models";
3
3
  import { ListConfigurationSettingsOptions } from "@azure/app-configuration";
4
4
  /**
5
5
  * A ConfigurationSettingsSource that wraps pre-calculated configuration changes.
@@ -18,10 +18,10 @@ import { ListConfigurationSettingsOptions } from "@azure/app-configuration";
18
18
  */
19
19
  export declare class ConfigurationChangesSource implements ConfigurationSettingsSource {
20
20
  private readonly configurationChanges;
21
- constructor(configurationChanges: ConfigurationChanges, filterOptions?: ListConfigurationSettingsOptions);
21
+ constructor(configurationChanges: Array<ConfigurationSettingChange>, filterOptions?: ListConfigurationSettingsOptions);
22
22
  /**
23
23
  * @inheritdoc
24
24
  */
25
- GetConfigurationSettings(): Promise<ConfigurationChanges>;
25
+ GetConfigurationSettings(): Promise<Array<ConfigurationSettingChange>>;
26
26
  }
27
27
  //# sourceMappingURL=configurationChangesSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configurationChangesSource.d.ts","sourceRoot":"","sources":["../../../src/settingsImport/configurationChangesSource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAG5E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,0BAA2B,YAAW,2BAA2B;IAC5E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;gBAEhD,oBAAoB,EAAE,oBAAoB,EAAE,aAAa,CAAC,EAAE,gCAAgC;IAOxG;;SAEK;IACQ,wBAAwB,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAGvE"}
1
+ {"version":3,"file":"configurationChangesSource.d.ts","sourceRoot":"","sources":["../../../src/settingsImport/configurationChangesSource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAG5E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,0BAA2B,YAAW,2BAA2B;IAC5E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAoC;gBAE7D,oBAAoB,EAAE,KAAK,CAAC,0BAA0B,CAAC,EAAE,aAAa,CAAC,EAAE,gCAAgC;IAOrH;;SAEK;IACQ,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;CAGpF"}
@@ -1,5 +1,5 @@
1
1
  import { FeatureFlagValue, ListConfigurationSettingsOptions, SecretReferenceValue, SetConfigurationSettingParam } from "@azure/app-configuration";
2
- import { ConfigurationChanges } from "../models";
2
+ import { ConfigurationSettingChange } from "../models";
3
3
  /**
4
4
  * Interface of all ConfigurationSettingsSource
5
5
  */
@@ -7,9 +7,9 @@ export interface ConfigurationSettingsSource {
7
7
  /**
8
8
  * Get ConfigurationSettings collection from source.
9
9
  *
10
- * @returns Collection of ConfigurationSettings or ConfigurationChanges
10
+ * @returns Collection of ConfigurationSettings or ConfigurationSettingChanges
11
11
  */
12
- GetConfigurationSettings(): Promise<Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>> | ConfigurationChanges>;
12
+ GetConfigurationSettings(): Promise<Array<SetConfigurationSettingParam<string | FeatureFlagValue | SecretReferenceValue>> | Array<ConfigurationSettingChange>>;
13
13
  /**
14
14
  * Get label and prefix filter
15
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"configurationSettingsSource.d.ts","sourceRoot":"","sources":["../../../src/settingsImport/configurationSettingsSource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAM,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElJ;;;;OAIG;IACF,aAAa,CAAC,EAAE,gCAAgC,CAAC;CACnD"}
1
+ {"version":3,"file":"configurationSettingsSource.d.ts","sourceRoot":"","sources":["../../../src/settingsImport/configurationSettingsSource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAM,GAAG,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,GAAG,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAE/J;;;;OAIG;IACF,aAAa,CAAC,EAAE,gCAAgC,CAAC;CACnD"}