@adminide-stack/core 7.0.3-alpha.10 → 7.0.3-alpha.25

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 (83) hide show
  1. package/lib/constants/routes.js +2 -2
  2. package/lib/constants/routes.js.map +1 -1
  3. package/lib/constants/types.js +13 -13
  4. package/lib/constants/types.js.map +1 -1
  5. package/lib/constants/urls.d.ts +11 -0
  6. package/lib/constants/urls.js +13 -1
  7. package/lib/constants/urls.js.map +1 -1
  8. package/lib/core/configurations/configuration.js +444 -546
  9. package/lib/core/configurations/configuration.js.map +1 -1
  10. package/lib/core/configurations/events/ConfigurationChangeEvent.js +49 -52
  11. package/lib/core/configurations/events/ConfigurationChangeEvent.js.map +1 -1
  12. package/lib/core/configurations/helpers/configuration.js +149 -138
  13. package/lib/core/configurations/helpers/configuration.js.map +1 -1
  14. package/lib/core/configurations/models/ConfigurationModel.js +190 -186
  15. package/lib/core/configurations/models/ConfigurationModel.js.map +1 -1
  16. package/lib/core/disposable.js +67 -66
  17. package/lib/core/disposable.js.map +1 -1
  18. package/lib/core/event.js +235 -239
  19. package/lib/core/event.js.map +1 -1
  20. package/lib/core/organization/configuration.js +15 -15
  21. package/lib/core/organization/configuration.js.map +1 -1
  22. package/lib/core/organization/helpers/organization-helpers.js +14 -7
  23. package/lib/core/organization/helpers/organization-helpers.js.map +1 -1
  24. package/lib/core/organization/organization.js +113 -132
  25. package/lib/core/organization/organization.js.map +1 -1
  26. package/lib/core/path.js +158 -154
  27. package/lib/core/path.js.map +1 -1
  28. package/lib/enums/connection-status.js +4 -4
  29. package/lib/enums/connection-status.js.map +1 -1
  30. package/lib/enums/integration-configuration-status.js +3 -3
  31. package/lib/enums/integration-configuration-status.js.map +1 -1
  32. package/lib/enums/integrations-configuration-steps.js +6 -6
  33. package/lib/enums/integrations-configuration-steps.js.map +1 -1
  34. package/lib/enums/integrations-connection-names.js +10 -10
  35. package/lib/enums/integrations-connection-names.js.map +1 -1
  36. package/lib/enums/integrations.js +8 -8
  37. package/lib/enums/integrations.js.map +1 -1
  38. package/lib/enums/permissions.js +5 -5
  39. package/lib/enums/permissions.js.map +1 -1
  40. package/lib/enums/team-member-status.js +2 -2
  41. package/lib/enums/team-member-status.js.map +1 -1
  42. package/lib/errors/auth-error-messages.js +22 -22
  43. package/lib/errors/auth-error-messages.js.map +1 -1
  44. package/lib/errors/auth-error.js +5 -9
  45. package/lib/errors/auth-error.js.map +1 -1
  46. package/lib/index.js +1 -1
  47. package/lib/interfaces/configuration/configuration.js +30 -30
  48. package/lib/interfaces/configuration/configuration.js.map +1 -1
  49. package/lib/interfaces/generated/generated-models.js +919 -15741
  50. package/lib/interfaces/generated/generated-models.js.map +1 -1
  51. package/lib/interfaces/organization/organization-context.js +17 -12
  52. package/lib/interfaces/organization/organization-context.js.map +1 -1
  53. package/lib/modules/account-api/enums/index.js +64 -64
  54. package/lib/modules/account-api/enums/index.js.map +1 -1
  55. package/lib/modules/billing-api/enums/index.js +18 -18
  56. package/lib/modules/billing-api/enums/index.js.map +1 -1
  57. package/lib/modules/inbox/enums/index.js +23 -23
  58. package/lib/modules/inbox/enums/index.js.map +1 -1
  59. package/lib/services/abstract-configuration.js +116 -113
  60. package/lib/services/abstract-configuration.js.map +1 -1
  61. package/lib/services/abstract-organization-context-service.js +93 -97
  62. package/lib/services/abstract-organization-context-service.js.map +1 -1
  63. package/lib/utils/configuration-utils.js +8 -8
  64. package/lib/utils/configuration-utils.js.map +1 -1
  65. package/lib/utils/date-utils.js +2 -2
  66. package/lib/utils/date-utils.js.map +1 -1
  67. package/lib/utils/flatten-utils.js +39 -35
  68. package/lib/utils/flatten-utils.js.map +1 -1
  69. package/lib/utils/generate-uri.js +15 -25
  70. package/lib/utils/generate-uri.js.map +1 -1
  71. package/lib/utils/generated-settings-id.js +4 -4
  72. package/lib/utils/generated-settings-id.js.map +1 -1
  73. package/lib/utils/omit-deep.js +7 -7
  74. package/lib/utils/omit-deep.js.map +1 -1
  75. package/lib/utils/roles-utils.js +2 -6
  76. package/lib/utils/roles-utils.js.map +1 -1
  77. package/lib/utils/uri.js +12 -10
  78. package/lib/utils/uri.js.map +1 -1
  79. package/lib/utils/utils.js +14 -19
  80. package/lib/utils/utils.js.map +1 -1
  81. package/lib/utils/validations.js +2 -2
  82. package/lib/utils/validations.js.map +1 -1
  83. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {ResourceMap}from'@vscode-alt/monaco-editor/esm/vs/base/common/map.js';import*as types from'@vscode-alt/monaco-editor/esm/vs/base/common/types.js';import*as objects from'@vscode-alt/monaco-editor/esm/vs/base/common/objects.js';import*as arrays from'@vscode-alt/monaco-editor/esm/vs/base/common/arrays.js';import {ConfigurationModel}from'./models/ConfigurationModel.js';import {getConfigurationValue}from'./helpers/configuration.js';import {OVERRIDE_PROPERTY_PATTERN,OVERRIDE_IDENTIFIER_PATTERN}from'../../constants/configuration.js';import'../../constants/types.js';/**
1
+ import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri';import {ResourceMap}from'@vscode-alt/monaco-editor/esm/vs/base/common/map';import*as types from'@vscode-alt/monaco-editor/esm/vs/base/common/types';import*as objects from'@vscode-alt/monaco-editor/esm/vs/base/common/objects';import*as arrays from'@vscode-alt/monaco-editor/esm/vs/base/common/arrays';import {ConfigurationModel}from'./models/ConfigurationModel.js';import {getConfigurationValue}from'./helpers/configuration.js';import {OVERRIDE_PROPERTY_PATTERN,OVERRIDE_IDENTIFIER_PATTERN}from'../../constants/configuration.js';import'../../constants/types.js';import'../../constants/urls.js';import'../../constants/routes.js';/**
2
2
  * Configuration that merges all the hierarchial configuration model.
3
3
  *
4
4
  * We using `IOrganizationContext` rather than `OrganizationContext` for abstraction.
@@ -7,560 +7,458 @@ import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {Re
7
7
  * 09/18/2021: We converted `localUser` -> `application`; `remoteUser` => `machine`
8
8
  */
9
9
  class Configuration {
10
- _defaultConfiguration;
11
- _policyConfiguration;
12
- _applicationConfiguration;
13
- _userConfiguration;
14
- _machineConfiguration;
15
- _organizationConfiguration;
16
- _resourceConfigurations;
17
- _memoryConfiguration;
18
- _memoryConfigurationByResource;
19
- _freeze;
20
- _organizationConsolidatedConfiguration = null;
21
- _resourcesConsolidatedConfigurations = new ResourceMap();
22
- constructor(_defaultConfiguration, _policyConfiguration = new ConfigurationModel(), _applicationConfiguration = new ConfigurationModel(), _userConfiguration = new ConfigurationModel(), _machineConfiguration = new ConfigurationModel(), _organizationConfiguration = new ConfigurationModel(), _resourceConfigurations = new ResourceMap(), _memoryConfiguration = new ConfigurationModel(), _memoryConfigurationByResource = new ResourceMap(), _freeze = true) {
23
- this._defaultConfiguration = _defaultConfiguration;
24
- this._policyConfiguration = _policyConfiguration;
25
- this._applicationConfiguration = _applicationConfiguration;
26
- this._userConfiguration = _userConfiguration;
27
- this._machineConfiguration = _machineConfiguration;
28
- this._organizationConfiguration = _organizationConfiguration;
29
- this._resourceConfigurations = _resourceConfigurations;
30
- this._memoryConfiguration = _memoryConfiguration;
31
- this._memoryConfigurationByResource = _memoryConfigurationByResource;
32
- this._freeze = _freeze;
33
- }
34
- getValue(section, overrides, organization, externalConfiguration) {
35
- const consolidateConfigurationModel = this.getConsolidateConfigurationModel(section, overrides, organization);
36
- // if (externalConfiguration) {
37
- // const { contents, keys } = externalConfiguration;
38
- // const externalModel = new ConfigurationModel(contents, keys);
39
- // const withExternalModel = consolidateConfigurationModel.merge(externalModel);
40
- // return withExternalModel.getValue(section);
41
- // }
42
- return consolidateConfigurationModel.getValue(section);
43
- }
44
- updateValue(key, value, overrides = {}) {
45
- let memoryConfiguration;
46
- if (overrides.resource) {
47
- memoryConfiguration = this._memoryConfigurationByResource.get(overrides.resource);
48
- if (!memoryConfiguration) {
49
- memoryConfiguration = new ConfigurationModel();
50
- this._memoryConfigurationByResource.set(overrides.resource, memoryConfiguration);
51
- }
52
- } else {
53
- memoryConfiguration = this._memoryConfiguration;
54
- }
55
- if (value === undefined) {
56
- memoryConfiguration.removeValue(key);
57
- } else {
58
- memoryConfiguration.setValue(key, value);
59
- this._memoryConfigurationByResource.set(overrides.resource, memoryConfiguration);
60
- }
61
- if (!overrides.resource) {
62
- this._organizationConsolidatedConfiguration = null;
63
- }
64
- }
65
- inspect(key, overrides, organization) {
66
- const consolidateConfigurationModel = this.getConsolidateConfigurationModel(key, overrides, organization);
67
- const resourceConfigurationModel = this.getResourceConfigurationModelForResource(overrides.resource, organization);
68
- const memoryConfigurationModel = overrides.resource ? this._memoryConfigurationByResource.get(overrides.resource) || this._memoryConfiguration : this._memoryConfiguration;
69
- const defaultValue = overrides.overrideIdentifier ? this._defaultConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._defaultConfiguration.freeze().getValue(key);
70
- const policyValue = this._policyConfiguration.isEmpty() ? undefined : this._policyConfiguration.freeze().getValue(key);
71
- const applicationValue = this.applicationConfiguration.isEmpty() ? undefined : this.applicationConfiguration.freeze().getValue(key);
72
- const userValue = overrides.overrideIdentifier ? this.userConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this.userConfiguration.freeze().getValue(key);
73
- const machineValue = overrides.overrideIdentifier ? this.machineConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this.machineConfiguration.freeze().getValue(key);
74
- const organizationValue = organization ? overrides.overrideIdentifier ? this._organizationConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._organizationConfiguration.freeze().getValue(key) : undefined; //Check on organization exists or not because _organizationConfiguration is never null
75
- const organizationResourceValue = resourceConfigurationModel ? overrides.overrideIdentifier ? resourceConfigurationModel.freeze().override(overrides.overrideIdentifier).getValue(key) : resourceConfigurationModel.freeze().getValue(key) : undefined;
76
- const memoryValue = overrides.overrideIdentifier ? memoryConfigurationModel.override(overrides.overrideIdentifier).getValue(key) : memoryConfigurationModel.getValue(key);
77
- const value = consolidateConfigurationModel.getValue(key);
78
- const overrideIdentifiers = arrays.distinct(consolidateConfigurationModel.overrides.map(override => override.identifiers).flat()).filter(overrideIdentifier => consolidateConfigurationModel.getOverrideValue(key, overrideIdentifier) !== undefined);
79
- return {
80
- defaultValue,
81
- policyValue,
82
- applicationValue,
83
- userValue,
84
- machineValue,
85
- organizationValue,
86
- organizationResourceValue,
87
- memoryValue,
88
- value,
89
- default: defaultValue !== undefined ? {
90
- value: this._defaultConfiguration.freeze().getValue(key),
91
- override: overrides.overrideIdentifier ? this._defaultConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined
92
- } : undefined,
93
- policy: policyValue !== undefined ? {
94
- value: policyValue
95
- } : undefined,
96
- application: applicationValue !== undefined ? {
97
- value: applicationValue,
98
- override: overrides.overrideIdentifier ? this.applicationConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined
99
- } : undefined,
100
- user: userValue !== undefined ? {
101
- value: this.userConfiguration.freeze().getValue(key),
102
- override: overrides.overrideIdentifier ? this.userConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined
103
- } : undefined,
104
- machine: machineValue !== undefined ? {
105
- value: this.machineConfiguration.freeze().getValue(key),
106
- override: overrides.overrideIdentifier ? this.machineConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined
107
- } : undefined,
108
- organization: organizationValue !== undefined ? {
109
- value: this._organizationConfiguration.freeze().getValue(key),
110
- override: overrides.overrideIdentifier ? this._organizationConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined
111
- } : undefined,
112
- organizationResource: organizationResourceValue !== undefined ? {
113
- value: resourceConfigurationModel?.freeze().getValue(key),
114
- override: overrides.overrideIdentifier ? resourceConfigurationModel?.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined
115
- } : undefined,
116
- memory: memoryValue !== undefined ? {
117
- value: memoryConfigurationModel.getValue(key),
118
- override: overrides.overrideIdentifier ? memoryConfigurationModel.getOverrideValue(key, overrides.overrideIdentifier) : undefined
119
- } : undefined,
120
- overrideIdentifiers: overrideIdentifiers.length ? overrideIdentifiers : undefined
121
- };
122
- }
123
- keys(organization) {
124
- const resourceConfigurationModel = this.getResourceConfigurationModelForResource(undefined, organization);
125
- return {
126
- default: this._defaultConfiguration.freeze().keys,
127
- user: this.userConfiguration.freeze().keys,
128
- organization: this._organizationConfiguration.freeze().keys,
129
- organizationResource: resourceConfigurationModel ? resourceConfigurationModel.freeze().keys : []
130
- };
131
- }
132
- updateDefaultConfiguration(defaultConfiguration) {
133
- this._defaultConfiguration = defaultConfiguration;
134
- this._organizationConsolidatedConfiguration = null;
135
- this._resourcesConsolidatedConfigurations.clear();
136
- }
137
- updatePolicyConfiguration(_policyConfiguration) {
138
- this._policyConfiguration = _policyConfiguration;
139
- }
140
- updateApplicationConfiguration(applicationConfiguration) {
141
- this._applicationConfiguration = applicationConfiguration;
142
- //this._machineConfiguration = null;
143
- this._organizationConsolidatedConfiguration = null;
144
- this._resourcesConsolidatedConfigurations.clear();
145
- }
146
- updateUserConfiguration(userConfiguration) {
147
- //this._applicationConfiguration = null;
148
- this._userConfiguration = userConfiguration;
149
- //this._machineConfiguration = null;
150
- this._organizationConsolidatedConfiguration = null;
151
- this._resourcesConsolidatedConfigurations.clear();
152
- }
153
- updateMachineConfiguration(machineConfiguration) {
154
- //this._applicationConfiguration = null;
155
- //this._userConfiguration = null;
156
- this._machineConfiguration = machineConfiguration;
157
- this._organizationConsolidatedConfiguration = null;
158
- this._resourcesConsolidatedConfigurations.clear();
159
- }
160
- updateOrganizationConfiguration(organizationConfiguration) {
161
- this._organizationConfiguration = organizationConfiguration;
162
- this._organizationConsolidatedConfiguration = organizationConfiguration;
163
- this._resourcesConsolidatedConfigurations.clear();
164
- }
165
- updateResourceConfiguration(resource, configuration) {
166
- this._resourceConfigurations.set(resource, configuration);
167
- this._resourcesConsolidatedConfigurations.delete(resource);
168
- }
169
- addResourceConfiguration(resource, configuration) {
170
- if (this._resourceConfigurations.get(resource)) {
171
- console.log('resource already exist', resource);
172
- // this.updateResourceConfiguration(resource, configuration);
173
- }
174
- this._resourceConfigurations.set(resource, configuration);
175
- }
176
- deleteResourceConfiguration(resource) {
177
- this.resourceConfigurations.delete(resource);
178
- this._resourcesConsolidatedConfigurations.delete(resource);
179
- }
180
- compareAndUpdateDefaultConfiguration(defaults, keys) {
181
- const overrides = [];
182
- if (!keys) {
183
- const {
184
- added,
185
- updated,
186
- removed
187
- } = compare(this._defaultConfiguration, defaults);
188
- keys = [...added, ...updated, ...removed];
189
- }
190
- for (const key of keys) {
191
- for (const overrideIdentifier of overrideIdentifiersFromKey(key)) {
192
- const fromKeys = this._defaultConfiguration.getKeysForOverrideIdentifier(overrideIdentifier);
193
- const toKeys = defaults.getKeysForOverrideIdentifier(overrideIdentifier);
194
- const keys = [...toKeys.filter(key => fromKeys.indexOf(key) === -1), ...fromKeys.filter(key => toKeys.indexOf(key) === -1), ...fromKeys.filter(key => !objects.equals(this._defaultConfiguration.override(overrideIdentifier).getValue(key), defaults.override(overrideIdentifier).getValue(key)))];
195
- overrides.push([overrideIdentifier, keys]);
196
- }
197
- }
198
- this.updateDefaultConfiguration(defaults);
199
- return {
200
- keys,
201
- overrides
202
- };
203
- }
204
- compareAndUpdatePolicyConfiguration(policyConfiguration) {
205
- const {
206
- added,
207
- updated,
208
- removed
209
- } = compare(this._policyConfiguration, policyConfiguration);
210
- const keys = [...added, ...updated, ...removed];
211
- if (keys.length) {
212
- this.updatePolicyConfiguration(policyConfiguration);
213
- }
214
- return {
215
- keys,
216
- overrides: []
217
- };
218
- }
219
- compareAndUpdateApplicationConfiguration(application) {
220
- const {
221
- added,
222
- updated,
223
- removed,
224
- overrides
225
- } = compare(this.applicationConfiguration, application);
226
- const keys = [...added, ...updated, ...removed];
227
- if (keys.length) {
228
- this.updateApplicationConfiguration(application);
229
- }
230
- return {
231
- keys,
232
- overrides
233
- };
234
- }
235
- compareAndUpdateUserConfiguration(user) {
236
- const {
237
- added,
238
- updated,
239
- removed,
240
- overrides
241
- } = compare(this.userConfiguration, user);
242
- const keys = [...added, ...updated, ...removed];
243
- if (keys.length) {
244
- this.updateUserConfiguration(user);
245
- }
246
- return {
247
- keys,
248
- overrides
249
- };
250
- }
251
- compareAndUpdateMachineConfiguration(machine) {
252
- const {
253
- added,
254
- updated,
255
- removed,
256
- overrides
257
- } = compare(this.machineConfiguration, machine);
258
- let keys = [...added, ...updated, ...removed];
259
- if (keys.length) {
260
- this.updateMachineConfiguration(machine);
261
- }
262
- return {
263
- keys,
264
- overrides
265
- };
266
- }
267
- compareAndUpdateOrganizationConfiguration(organizationConfiguration) {
268
- const {
269
- added,
270
- updated,
271
- removed,
272
- overrides
273
- } = compare(this.organizationConfiguration, organizationConfiguration);
274
- let keys = [...added, ...updated, ...removed];
275
- if (overrides.length) {
276
- this.updateOrganizationConfiguration(organizationConfiguration);
277
- }
278
- return {
279
- keys,
280
- overrides
281
- };
282
- }
283
- compareAndUpdateResourceConfiguration(resource, resourceConfiguration) {
284
- const currentResourceConfiguration = this.resourceConfigurations.get(resource);
285
- const {
286
- added,
287
- updated,
288
- removed,
289
- overrides
290
- } = compare(currentResourceConfiguration, resourceConfiguration);
291
- let keys = [...added, ...updated, ...removed];
292
- if (keys.length || !currentResourceConfiguration) {
293
- this.updateResourceConfiguration(resource, resourceConfiguration);
294
- }
295
- return {
296
- keys,
297
- overrides
298
- };
299
- }
300
- compareAndDeleteResourceConfiguration(resource) {
301
- const resourceConfig = this.resourceConfigurations.get(resource);
302
- if (!resourceConfig) {
303
- throw new Error('Unknown resource ' + resource.fsPath);
304
- }
305
- this.deleteResourceConfiguration(resource);
306
- const {
307
- added,
308
- updated,
309
- removed,
310
- overrides
311
- } = compare(resourceConfig, undefined);
312
- return {
313
- keys: [...added, ...updated, ...removed],
314
- overrides
315
- };
316
- }
317
- get defaults() {
318
- return this._defaultConfiguration;
319
- }
320
- get userConfiguration() {
321
- return this._userConfiguration;
322
- }
323
- get applicationConfiguration() {
324
- return this._applicationConfiguration;
325
- }
326
- get machineConfiguration() {
327
- return this._machineConfiguration;
328
- }
329
- get organizationConfiguration() {
330
- return this._organizationConfiguration;
331
- }
332
- get resourceConfigurations() {
333
- return this._resourceConfigurations;
334
- }
335
- getConsolidateConfigurationModel(section, overrides, organization) {
336
- let configurationModel = this.getConsolidatedConfigurationModelForResource(overrides, organization);
337
- if (overrides.overrideIdentifier) {
338
- configurationModel = configurationModel.override(overrides.overrideIdentifier);
339
- }
340
- if (!this._policyConfiguration.isEmpty() && this._policyConfiguration.getValue(section) !== undefined) {
341
- configurationModel = configurationModel.merge(this._policyConfiguration);
342
- }
343
- return configurationModel;
344
- }
345
- getConsolidatedConfigurationModelForResource({
346
- resource
347
- }, organization) {
348
- let consolidateConfiguration = this.getOrganizationConsolidatedConfiguration();
349
- if (organization && resource) {
350
- const root = organization.getResource(resource);
351
- console.log('---root-', root);
352
- if (root) {
353
- //@sri instead of uri, we use resource.
354
- consolidateConfiguration = this.getResourceConsolidatedConfiguration(resource) || consolidateConfiguration;
355
- } else {
356
- // if not organization resource
357
- consolidateConfiguration = this.getResourceConsolidatedConfiguration(resource) || new ConfigurationModel();
358
- }
359
- const memoryConfigurationForResource = this._memoryConfigurationByResource.get(resource);
360
- if (memoryConfigurationForResource) {
361
- consolidateConfiguration = consolidateConfiguration.merge(memoryConfigurationForResource);
362
- }
363
- }
364
- return consolidateConfiguration;
365
- }
366
- getOrganizationConsolidatedConfiguration() {
367
- if (!this._organizationConsolidatedConfiguration) {
368
- this._organizationConsolidatedConfiguration = this._defaultConfiguration.merge(this._applicationConfiguration, this._userConfiguration, this._organizationConfiguration, this._memoryConfiguration);
369
- if (this._freeze) {
370
- this._organizationConfiguration = this._organizationConfiguration.freeze();
371
- }
372
- }
373
- return this._organizationConsolidatedConfiguration;
374
- }
375
- getResourceConsolidatedConfiguration(resource) {
376
- let resourceConsolidatedConfiguration = this._resourcesConsolidatedConfigurations.get(resource);
377
- if (!resourceConsolidatedConfiguration) {
378
- const organizationConsolidateConfiguration = this.getOrganizationConsolidatedConfiguration();
379
- const resourceConfiguration = this._resourceConfigurations.get(resource);
380
- if (resourceConfiguration) {
381
- resourceConsolidatedConfiguration = organizationConsolidateConfiguration.merge(resourceConfiguration);
382
- if (this._freeze) {
383
- resourceConsolidatedConfiguration = resourceConsolidatedConfiguration.freeze();
10
+ _defaultConfiguration;
11
+ _policyConfiguration;
12
+ _applicationConfiguration;
13
+ _userConfiguration;
14
+ _machineConfiguration;
15
+ _organizationConfiguration;
16
+ _resourceConfigurations;
17
+ _memoryConfiguration;
18
+ _memoryConfigurationByResource;
19
+ _freeze;
20
+ _organizationConsolidatedConfiguration = null;
21
+ _resourcesConsolidatedConfigurations = new ResourceMap();
22
+ constructor(_defaultConfiguration, _policyConfiguration = new ConfigurationModel(), _applicationConfiguration = new ConfigurationModel(), _userConfiguration = new ConfigurationModel(), _machineConfiguration = new ConfigurationModel(), _organizationConfiguration = new ConfigurationModel(), _resourceConfigurations = new ResourceMap(), _memoryConfiguration = new ConfigurationModel(), _memoryConfigurationByResource = new ResourceMap(), _freeze = true) {
23
+ this._defaultConfiguration = _defaultConfiguration;
24
+ this._policyConfiguration = _policyConfiguration;
25
+ this._applicationConfiguration = _applicationConfiguration;
26
+ this._userConfiguration = _userConfiguration;
27
+ this._machineConfiguration = _machineConfiguration;
28
+ this._organizationConfiguration = _organizationConfiguration;
29
+ this._resourceConfigurations = _resourceConfigurations;
30
+ this._memoryConfiguration = _memoryConfiguration;
31
+ this._memoryConfigurationByResource = _memoryConfigurationByResource;
32
+ this._freeze = _freeze;
33
+ }
34
+ getValue(section, overrides, organization, externalConfiguration) {
35
+ const consolidateConfigurationModel = this.getConsolidateConfigurationModel(section, overrides, organization);
36
+ // if (externalConfiguration) {
37
+ // const { contents, keys } = externalConfiguration;
38
+ // const externalModel = new ConfigurationModel(contents, keys);
39
+ // const withExternalModel = consolidateConfigurationModel.merge(externalModel);
40
+ // return withExternalModel.getValue(section);
41
+ // }
42
+ return consolidateConfigurationModel.getValue(section);
43
+ }
44
+ updateValue(key, value, overrides = {}) {
45
+ let memoryConfiguration;
46
+ if (overrides.resource) {
47
+ memoryConfiguration = this._memoryConfigurationByResource.get(overrides.resource);
48
+ if (!memoryConfiguration) {
49
+ memoryConfiguration = new ConfigurationModel();
50
+ this._memoryConfigurationByResource.set(overrides.resource, memoryConfiguration);
51
+ }
52
+ }
53
+ else {
54
+ memoryConfiguration = this._memoryConfiguration;
55
+ }
56
+ if (value === undefined) {
57
+ memoryConfiguration.removeValue(key);
58
+ }
59
+ else {
60
+ memoryConfiguration.setValue(key, value);
61
+ this._memoryConfigurationByResource.set(overrides.resource, memoryConfiguration);
62
+ }
63
+ if (!overrides.resource) {
64
+ this._organizationConsolidatedConfiguration = null;
65
+ }
66
+ }
67
+ inspect(key, overrides, organization) {
68
+ const consolidateConfigurationModel = this.getConsolidateConfigurationModel(key, overrides, organization);
69
+ const resourceConfigurationModel = this.getResourceConfigurationModelForResource(overrides.resource, organization);
70
+ const memoryConfigurationModel = overrides.resource ? this._memoryConfigurationByResource.get(overrides.resource) || this._memoryConfiguration : this._memoryConfiguration;
71
+ const defaultValue = overrides.overrideIdentifier ? this._defaultConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._defaultConfiguration.freeze().getValue(key);
72
+ const policyValue = this._policyConfiguration.isEmpty() ? undefined : this._policyConfiguration.freeze().getValue(key);
73
+ const applicationValue = this.applicationConfiguration.isEmpty() ? undefined : this.applicationConfiguration.freeze().getValue(key);
74
+ const userValue = overrides.overrideIdentifier ? this.userConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this.userConfiguration.freeze().getValue(key);
75
+ const machineValue = overrides.overrideIdentifier ? this.machineConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this.machineConfiguration.freeze().getValue(key);
76
+ const organizationValue = organization ? overrides.overrideIdentifier ? this._organizationConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._organizationConfiguration.freeze().getValue(key) : undefined; //Check on organization exists or not because _organizationConfiguration is never null
77
+ const organizationResourceValue = resourceConfigurationModel ? overrides.overrideIdentifier ? resourceConfigurationModel.freeze().override(overrides.overrideIdentifier).getValue(key) : resourceConfigurationModel.freeze().getValue(key) : undefined;
78
+ const memoryValue = overrides.overrideIdentifier ? memoryConfigurationModel.override(overrides.overrideIdentifier).getValue(key) : memoryConfigurationModel.getValue(key);
79
+ const value = consolidateConfigurationModel.getValue(key);
80
+ const overrideIdentifiers = arrays.distinct(consolidateConfigurationModel.overrides.map(override => override.identifiers).flat()).filter(overrideIdentifier => consolidateConfigurationModel.getOverrideValue(key, overrideIdentifier) !== undefined);
81
+ return {
82
+ defaultValue,
83
+ policyValue,
84
+ applicationValue,
85
+ userValue,
86
+ machineValue,
87
+ organizationValue,
88
+ organizationResourceValue,
89
+ memoryValue,
90
+ value,
91
+ default: defaultValue !== undefined ? { value: this._defaultConfiguration.freeze().getValue(key), override: overrides.overrideIdentifier ? this._defaultConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
92
+ policy: policyValue !== undefined ? { value: policyValue } : undefined,
93
+ application: applicationValue !== undefined ? { value: applicationValue, override: overrides.overrideIdentifier ? this.applicationConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
94
+ user: userValue !== undefined ? { value: this.userConfiguration.freeze().getValue(key), override: overrides.overrideIdentifier ? this.userConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
95
+ machine: machineValue !== undefined ? { value: this.machineConfiguration.freeze().getValue(key), override: overrides.overrideIdentifier ? this.machineConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
96
+ organization: organizationValue !== undefined ? { value: this._organizationConfiguration.freeze().getValue(key), override: overrides.overrideIdentifier ? this._organizationConfiguration.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
97
+ organizationResource: organizationResourceValue !== undefined ? { value: resourceConfigurationModel?.freeze().getValue(key), override: overrides.overrideIdentifier ? resourceConfigurationModel?.freeze().getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
98
+ memory: memoryValue !== undefined ? { value: memoryConfigurationModel.getValue(key), override: overrides.overrideIdentifier ? memoryConfigurationModel.getOverrideValue(key, overrides.overrideIdentifier) : undefined } : undefined,
99
+ overrideIdentifiers: overrideIdentifiers.length ? overrideIdentifiers : undefined
100
+ };
101
+ }
102
+ keys(organization) {
103
+ const resourceConfigurationModel = this.getResourceConfigurationModelForResource(undefined, organization);
104
+ return {
105
+ default: this._defaultConfiguration.freeze().keys,
106
+ user: this.userConfiguration.freeze().keys,
107
+ organization: this._organizationConfiguration.freeze().keys,
108
+ organizationResource: resourceConfigurationModel ? resourceConfigurationModel.freeze().keys : []
109
+ };
110
+ }
111
+ updateDefaultConfiguration(defaultConfiguration) {
112
+ this._defaultConfiguration = defaultConfiguration;
113
+ this._organizationConsolidatedConfiguration = null;
114
+ this._resourcesConsolidatedConfigurations.clear();
115
+ }
116
+ updatePolicyConfiguration(_policyConfiguration) {
117
+ this._policyConfiguration = _policyConfiguration;
118
+ }
119
+ updateApplicationConfiguration(applicationConfiguration) {
120
+ this._applicationConfiguration = applicationConfiguration;
121
+ //this._machineConfiguration = null;
122
+ this._organizationConsolidatedConfiguration = null;
123
+ this._resourcesConsolidatedConfigurations.clear();
124
+ }
125
+ updateUserConfiguration(userConfiguration) {
126
+ //this._applicationConfiguration = null;
127
+ this._userConfiguration = userConfiguration;
128
+ //this._machineConfiguration = null;
129
+ this._organizationConsolidatedConfiguration = null;
130
+ this._resourcesConsolidatedConfigurations.clear();
131
+ }
132
+ updateMachineConfiguration(machineConfiguration) {
133
+ //this._applicationConfiguration = null;
134
+ //this._userConfiguration = null;
135
+ this._machineConfiguration = machineConfiguration;
136
+ this._organizationConsolidatedConfiguration = null;
137
+ this._resourcesConsolidatedConfigurations.clear();
138
+ }
139
+ updateOrganizationConfiguration(organizationConfiguration) {
140
+ this._organizationConfiguration = organizationConfiguration;
141
+ this._organizationConsolidatedConfiguration = organizationConfiguration;
142
+ this._resourcesConsolidatedConfigurations.clear();
143
+ }
144
+ updateResourceConfiguration(resource, configuration) {
145
+ this._resourceConfigurations.set(resource, configuration);
146
+ this._resourcesConsolidatedConfigurations.delete(resource);
147
+ }
148
+ addResourceConfiguration(resource, configuration) {
149
+ if (this._resourceConfigurations.get(resource)) {
150
+ console.log('resource already exist', resource);
151
+ // this.updateResourceConfiguration(resource, configuration);
152
+ }
153
+ this._resourceConfigurations.set(resource, configuration);
154
+ }
155
+ deleteResourceConfiguration(resource) {
156
+ this.resourceConfigurations.delete(resource);
157
+ this._resourcesConsolidatedConfigurations.delete(resource);
158
+ }
159
+ compareAndUpdateDefaultConfiguration(defaults, keys) {
160
+ const overrides = [];
161
+ if (!keys) {
162
+ const { added, updated, removed } = compare(this._defaultConfiguration, defaults);
163
+ keys = [...added, ...updated, ...removed];
164
+ }
165
+ for (const key of keys) {
166
+ for (const overrideIdentifier of overrideIdentifiersFromKey(key)) {
167
+ const fromKeys = this._defaultConfiguration.getKeysForOverrideIdentifier(overrideIdentifier);
168
+ const toKeys = defaults.getKeysForOverrideIdentifier(overrideIdentifier);
169
+ const keys = [
170
+ ...toKeys.filter(key => fromKeys.indexOf(key) === -1),
171
+ ...fromKeys.filter(key => toKeys.indexOf(key) === -1),
172
+ ...fromKeys.filter(key => !objects.equals(this._defaultConfiguration.override(overrideIdentifier).getValue(key), defaults.override(overrideIdentifier).getValue(key)))
173
+ ];
174
+ overrides.push([overrideIdentifier, keys]);
175
+ }
176
+ }
177
+ this.updateDefaultConfiguration(defaults);
178
+ return { keys, overrides };
179
+ }
180
+ compareAndUpdatePolicyConfiguration(policyConfiguration) {
181
+ const { added, updated, removed } = compare(this._policyConfiguration, policyConfiguration);
182
+ const keys = [...added, ...updated, ...removed];
183
+ if (keys.length) {
184
+ this.updatePolicyConfiguration(policyConfiguration);
185
+ }
186
+ return { keys, overrides: [] };
187
+ }
188
+ compareAndUpdateApplicationConfiguration(application) {
189
+ const { added, updated, removed, overrides } = compare(this.applicationConfiguration, application);
190
+ const keys = [...added, ...updated, ...removed];
191
+ if (keys.length) {
192
+ this.updateApplicationConfiguration(application);
193
+ }
194
+ return { keys, overrides };
195
+ }
196
+ compareAndUpdateUserConfiguration(user) {
197
+ const { added, updated, removed, overrides } = compare(this.userConfiguration, user);
198
+ const keys = [...added, ...updated, ...removed];
199
+ if (keys.length) {
200
+ this.updateUserConfiguration(user);
201
+ }
202
+ return { keys, overrides };
203
+ }
204
+ compareAndUpdateMachineConfiguration(machine) {
205
+ const { added, updated, removed, overrides } = compare(this.machineConfiguration, machine);
206
+ let keys = [...added, ...updated, ...removed];
207
+ if (keys.length) {
208
+ this.updateMachineConfiguration(machine);
209
+ }
210
+ return { keys, overrides };
211
+ }
212
+ compareAndUpdateOrganizationConfiguration(organizationConfiguration) {
213
+ const { added, updated, removed, overrides } = compare(this.organizationConfiguration, organizationConfiguration);
214
+ let keys = [...added, ...updated, ...removed];
215
+ if (overrides.length) {
216
+ this.updateOrganizationConfiguration(organizationConfiguration);
217
+ }
218
+ return { keys, overrides };
219
+ }
220
+ compareAndUpdateResourceConfiguration(resource, resourceConfiguration) {
221
+ const currentResourceConfiguration = this.resourceConfigurations.get(resource);
222
+ const { added, updated, removed, overrides } = compare(currentResourceConfiguration, resourceConfiguration);
223
+ let keys = [...added, ...updated, ...removed];
224
+ if (keys.length || !currentResourceConfiguration) {
225
+ this.updateResourceConfiguration(resource, resourceConfiguration);
384
226
  }
385
- this._resourcesConsolidatedConfigurations.set(resource, resourceConsolidatedConfiguration);
386
- } else {
387
- resourceConsolidatedConfiguration = organizationConsolidateConfiguration;
388
- }
389
- }
390
- return resourceConsolidatedConfiguration;
391
- }
392
- getResourceConfigurationModelForResource(resource, organization) {
393
- if (organization && resource) {
394
- const root = organization.getResource(resource);
395
- if (root) {
396
- return types.withUndefinedAsNull(this._resourceConfigurations.get(root.uri));
397
- }
398
- }
399
- return null;
400
- }
401
- toData() {
402
- return {
403
- defaults: {
404
- contents: this._defaultConfiguration.contents,
405
- overrides: this._defaultConfiguration.overrides,
406
- keys: this._defaultConfiguration.keys
407
- },
408
- policy: {
409
- contents: this._policyConfiguration.contents,
410
- overrides: this._policyConfiguration.overrides,
411
- keys: this._policyConfiguration.keys
412
- },
413
- application: {
414
- contents: this._applicationConfiguration.contents,
415
- overrides: this._applicationConfiguration.overrides,
416
- keys: this._applicationConfiguration.keys
417
- },
418
- user: {
419
- contents: this._userConfiguration.contents,
420
- overrides: this._userConfiguration.overrides,
421
- keys: this._userConfiguration.keys
422
- },
423
- machine: {
424
- contents: this._machineConfiguration.contents,
425
- overrides: this._machineConfiguration.overrides,
426
- keys: this._machineConfiguration.keys
427
- },
428
- organization: {
429
- contents: this._organizationConfiguration.contents,
430
- overrides: this._organizationConfiguration.overrides,
431
- keys: this._organizationConfiguration.keys
432
- },
433
- resources: [...this._resourceConfigurations.keys()].reduce((result, resource) => {
434
- const {
435
- contents,
436
- overrides,
437
- keys
438
- } = this._resourceConfigurations.get(resource);
439
- result[resource.toString()] = {
440
- contents,
441
- overrides,
442
- keys
227
+ return { keys, overrides };
228
+ }
229
+ compareAndDeleteResourceConfiguration(resource) {
230
+ const resourceConfig = this.resourceConfigurations.get(resource);
231
+ if (!resourceConfig) {
232
+ throw new Error('Unknown resource ' + resource.fsPath);
233
+ }
234
+ this.deleteResourceConfiguration(resource);
235
+ const { added, updated, removed, overrides } = compare(resourceConfig, undefined);
236
+ return { keys: [...added, ...updated, ...removed], overrides };
237
+ }
238
+ get defaults() {
239
+ return this._defaultConfiguration;
240
+ }
241
+ get userConfiguration() {
242
+ return this._userConfiguration;
243
+ }
244
+ get applicationConfiguration() {
245
+ return this._applicationConfiguration;
246
+ }
247
+ get machineConfiguration() {
248
+ return this._machineConfiguration;
249
+ }
250
+ get organizationConfiguration() {
251
+ return this._organizationConfiguration;
252
+ }
253
+ get resourceConfigurations() {
254
+ return this._resourceConfigurations;
255
+ }
256
+ getConsolidateConfigurationModel(section, overrides, organization) {
257
+ let configurationModel = this.getConsolidatedConfigurationModelForResource(overrides, organization);
258
+ if (overrides.overrideIdentifier) {
259
+ configurationModel = configurationModel.override(overrides.overrideIdentifier);
260
+ }
261
+ if (!this._policyConfiguration.isEmpty() && this._policyConfiguration.getValue(section) !== undefined) {
262
+ configurationModel = configurationModel.merge(this._policyConfiguration);
263
+ }
264
+ return configurationModel;
265
+ }
266
+ getConsolidatedConfigurationModelForResource({ resource }, organization) {
267
+ let consolidateConfiguration = this.getOrganizationConsolidatedConfiguration();
268
+ if (organization && resource) {
269
+ const root = organization.getResource(resource);
270
+ console.log('---root-', root);
271
+ if (root) {
272
+ //@sri instead of uri, we use resource.
273
+ consolidateConfiguration = this.getResourceConsolidatedConfiguration(resource) || consolidateConfiguration;
274
+ }
275
+ else {
276
+ // if not organization resource
277
+ consolidateConfiguration = this.getResourceConsolidatedConfiguration(resource) || new ConfigurationModel();
278
+ }
279
+ const memoryConfigurationForResource = this._memoryConfigurationByResource.get(resource);
280
+ if (memoryConfigurationForResource) {
281
+ consolidateConfiguration = consolidateConfiguration.merge(memoryConfigurationForResource);
282
+ }
283
+ }
284
+ return consolidateConfiguration;
285
+ }
286
+ getOrganizationConsolidatedConfiguration() {
287
+ if (!this._organizationConsolidatedConfiguration) {
288
+ this._organizationConsolidatedConfiguration = this._defaultConfiguration.merge(this._applicationConfiguration, this._userConfiguration, this._organizationConfiguration, this._memoryConfiguration);
289
+ if (this._freeze) {
290
+ this._organizationConfiguration = this._organizationConfiguration.freeze();
291
+ }
292
+ }
293
+ return this._organizationConsolidatedConfiguration;
294
+ }
295
+ getResourceConsolidatedConfiguration(resource) {
296
+ let resourceConsolidatedConfiguration = this._resourcesConsolidatedConfigurations.get(resource);
297
+ if (!resourceConsolidatedConfiguration) {
298
+ const organizationConsolidateConfiguration = this.getOrganizationConsolidatedConfiguration();
299
+ const resourceConfiguration = this._resourceConfigurations.get(resource);
300
+ if (resourceConfiguration) {
301
+ resourceConsolidatedConfiguration = organizationConsolidateConfiguration.merge(resourceConfiguration);
302
+ if (this._freeze) {
303
+ resourceConsolidatedConfiguration = resourceConsolidatedConfiguration.freeze();
304
+ }
305
+ this._resourcesConsolidatedConfigurations.set(resource, resourceConsolidatedConfiguration);
306
+ }
307
+ else {
308
+ resourceConsolidatedConfiguration = organizationConsolidateConfiguration;
309
+ }
310
+ }
311
+ return resourceConsolidatedConfiguration;
312
+ }
313
+ getResourceConfigurationModelForResource(resource, organization) {
314
+ if (organization && resource) {
315
+ const root = organization.getResource(resource);
316
+ if (root) {
317
+ return types.withUndefinedAsNull(this._resourceConfigurations.get(root.uri));
318
+ }
319
+ }
320
+ return null;
321
+ }
322
+ toData() {
323
+ return {
324
+ defaults: {
325
+ contents: this._defaultConfiguration.contents,
326
+ overrides: this._defaultConfiguration.overrides,
327
+ keys: this._defaultConfiguration.keys
328
+ },
329
+ policy: {
330
+ contents: this._policyConfiguration.contents,
331
+ overrides: this._policyConfiguration.overrides,
332
+ keys: this._policyConfiguration.keys,
333
+ },
334
+ application: {
335
+ contents: this._applicationConfiguration.contents,
336
+ overrides: this._applicationConfiguration.overrides,
337
+ keys: this._applicationConfiguration.keys,
338
+ },
339
+ user: {
340
+ contents: this._userConfiguration.contents,
341
+ overrides: this._userConfiguration.overrides,
342
+ keys: this._userConfiguration.keys
343
+ },
344
+ machine: {
345
+ contents: this._machineConfiguration.contents,
346
+ overrides: this._machineConfiguration.overrides,
347
+ keys: this._machineConfiguration.keys
348
+ },
349
+ organization: {
350
+ contents: this._organizationConfiguration.contents,
351
+ overrides: this._organizationConfiguration.overrides,
352
+ keys: this._organizationConfiguration.keys
353
+ },
354
+ resources: [...this._resourceConfigurations.keys()].reduce((result, resource) => {
355
+ const { contents, overrides, keys } = this._resourceConfigurations.get(resource);
356
+ result[resource.toString()] = { contents, overrides, keys };
357
+ return result;
358
+ }, Object.create({}))
443
359
  };
444
- return result;
445
- }, Object.create({}))
446
- };
447
- }
448
- allKeys() {
449
- const keys = new Set();
450
- this._defaultConfiguration.freeze().keys.forEach(key => keys.add(key));
451
- this.userConfiguration.freeze().keys.forEach(key => keys.add(key));
452
- this._organizationConfiguration.freeze().keys.forEach(key => keys.add(key));
453
- this._resourceConfigurations.forEach(resourceConfiguraiton => resourceConfiguraiton.freeze().keys.forEach(key => keys.add(key)));
454
- return [...keys.values()];
455
- }
456
- allOverrideIdentifiers() {
457
- const keys = new Set();
458
- this._defaultConfiguration.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key));
459
- this.userConfiguration.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key));
460
- this._organizationConfiguration.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key));
461
- this._resourceConfigurations.forEach(resourceConfiguraiton => resourceConfiguraiton.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key)));
462
- return [...keys.values()];
463
- }
464
- getAllKeysForOverrideIdentifier(overrideIdentifier) {
465
- const keys = new Set();
466
- this._defaultConfiguration.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key));
467
- this.userConfiguration.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key));
468
- this._organizationConfiguration.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key));
469
- this._resourceConfigurations.forEach(resourceConfiguraiton => resourceConfiguraiton.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key)));
470
- return [...keys.values()];
471
- }
472
- static parse(data) {
473
- const defaultConfiguration = this.parseConfigurationModel(data.defaults);
474
- const policyConfiguration = this.parseConfigurationModel(data.policy);
475
- const applicationConfiguration = this.parseConfigurationModel(data.application);
476
- const userConfiguration = this.parseConfigurationModel(data.user);
477
- const organizationConfiguration = this.parseConfigurationModel(data.organization);
478
- const resources = data.resources.reduce((result, value) => {
479
- result.set(URI.revive(value[0]), this.parseConfigurationModel(value[1]));
480
- return result;
481
- }, new ResourceMap());
482
- return new Configuration(defaultConfiguration, policyConfiguration, applicationConfiguration, userConfiguration, new ConfigurationModel(), organizationConfiguration, resources, new ConfigurationModel(), new ResourceMap(), false);
483
- }
484
- static parseConfigurationModel(model) {
485
- return new ConfigurationModel(model.contents, model.keys, model.overrides).freeze();
486
- }
360
+ }
361
+ allKeys() {
362
+ const keys = new Set();
363
+ this._defaultConfiguration.freeze().keys.forEach(key => keys.add(key));
364
+ this.userConfiguration.freeze().keys.forEach(key => keys.add(key));
365
+ this._organizationConfiguration.freeze().keys.forEach(key => keys.add(key));
366
+ this._resourceConfigurations.forEach(resourceConfiguraiton => resourceConfiguraiton.freeze().keys.forEach(key => keys.add(key)));
367
+ return [...keys.values()];
368
+ }
369
+ allOverrideIdentifiers() {
370
+ const keys = new Set();
371
+ this._defaultConfiguration.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key));
372
+ this.userConfiguration.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key));
373
+ this._organizationConfiguration.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key));
374
+ this._resourceConfigurations.forEach(resourceConfiguraiton => resourceConfiguraiton.freeze().getAllOverrideIdentifiers().forEach(key => keys.add(key)));
375
+ return [...keys.values()];
376
+ }
377
+ getAllKeysForOverrideIdentifier(overrideIdentifier) {
378
+ const keys = new Set();
379
+ this._defaultConfiguration.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key));
380
+ this.userConfiguration.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key));
381
+ this._organizationConfiguration.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key));
382
+ this._resourceConfigurations.forEach(resourceConfiguraiton => resourceConfiguraiton.getKeysForOverrideIdentifier(overrideIdentifier).forEach(key => keys.add(key)));
383
+ return [...keys.values()];
384
+ }
385
+ static parse(data) {
386
+ const defaultConfiguration = this.parseConfigurationModel(data.defaults);
387
+ const policyConfiguration = this.parseConfigurationModel(data.policy);
388
+ const applicationConfiguration = this.parseConfigurationModel(data.application);
389
+ const userConfiguration = this.parseConfigurationModel(data.user);
390
+ const organizationConfiguration = this.parseConfigurationModel(data.organization);
391
+ const resources = data.resources.reduce((result, value) => {
392
+ result.set(URI.revive(value[0]), this.parseConfigurationModel(value[1]));
393
+ return result;
394
+ }, new ResourceMap());
395
+ return new Configuration(defaultConfiguration, policyConfiguration, applicationConfiguration, userConfiguration, new ConfigurationModel(), organizationConfiguration, resources, new ConfigurationModel(), new ResourceMap(), false);
396
+ }
397
+ static parseConfigurationModel(model) {
398
+ return new ConfigurationModel(model.contents, model.keys, model.overrides).freeze();
399
+ }
487
400
  }
488
401
  function compare(from, to) {
489
- const {
490
- added,
491
- removed,
492
- updated
493
- } = compareConfigurationContents(to, from);
494
- const overrides = [];
495
- const fromOverrideIdentifiers = from?.getAllOverrideIdentifiers() || [];
496
- const toOverrideIdentifiers = to?.getAllOverrideIdentifiers() || [];
497
- if (to) {
498
- const addedOverrideIdentifiers = toOverrideIdentifiers.filter(key => !fromOverrideIdentifiers.includes(key));
499
- for (const identifier of addedOverrideIdentifiers) {
500
- overrides.push([identifier, to.getKeysForOverrideIdentifier(identifier)]);
501
- }
502
- }
503
- if (from) {
504
- const removedOverrideIdentifiers = fromOverrideIdentifiers.filter(key => !toOverrideIdentifiers.includes(key));
505
- for (const identifier of removedOverrideIdentifiers) {
506
- overrides.push([identifier, from.getKeysForOverrideIdentifier(identifier)]);
507
- }
508
- }
509
- if (to && from) {
510
- for (const identifier of fromOverrideIdentifiers) {
511
- if (toOverrideIdentifiers.includes(identifier)) {
512
- const result = compareConfigurationContents({
513
- contents: from.getOverrideValue(undefined, identifier) || {},
514
- keys: from.getKeysForOverrideIdentifier(identifier)
515
- }, {
516
- contents: to.getOverrideValue(undefined, identifier) || {},
517
- keys: to.getKeysForOverrideIdentifier(identifier)
518
- });
519
- overrides.push([identifier, [...result.added, ...result.removed, ...result.updated]]);
520
- }
521
- }
522
- }
523
- return {
524
- added,
525
- removed,
526
- updated,
527
- overrides
528
- };
402
+ const { added, removed, updated } = compareConfigurationContents(to, from);
403
+ const overrides = [];
404
+ const fromOverrideIdentifiers = from?.getAllOverrideIdentifiers() || [];
405
+ const toOverrideIdentifiers = to?.getAllOverrideIdentifiers() || [];
406
+ if (to) {
407
+ const addedOverrideIdentifiers = toOverrideIdentifiers.filter(key => !fromOverrideIdentifiers.includes(key));
408
+ for (const identifier of addedOverrideIdentifiers) {
409
+ overrides.push([identifier, to.getKeysForOverrideIdentifier(identifier)]);
410
+ }
411
+ }
412
+ if (from) {
413
+ const removedOverrideIdentifiers = fromOverrideIdentifiers.filter(key => !toOverrideIdentifiers.includes(key));
414
+ for (const identifier of removedOverrideIdentifiers) {
415
+ overrides.push([identifier, from.getKeysForOverrideIdentifier(identifier)]);
416
+ }
417
+ }
418
+ if (to && from) {
419
+ for (const identifier of fromOverrideIdentifiers) {
420
+ if (toOverrideIdentifiers.includes(identifier)) {
421
+ const result = compareConfigurationContents({ contents: from.getOverrideValue(undefined, identifier) || {}, keys: from.getKeysForOverrideIdentifier(identifier) }, { contents: to.getOverrideValue(undefined, identifier) || {}, keys: to.getKeysForOverrideIdentifier(identifier) });
422
+ overrides.push([identifier, [...result.added, ...result.removed, ...result.updated]]);
423
+ }
424
+ }
425
+ }
426
+ return { added, removed, updated, overrides };
529
427
  }
530
428
  function compareConfigurationContents(to, from) {
531
- const added = to ? from ? to.keys.filter(key => from.keys.indexOf(key) === -1) : [...to.keys] : [];
532
- const removed = from ? to ? from.keys.filter(key => to.keys.indexOf(key) === -1) : [...from.keys] : [];
533
- const updated = [];
534
- if (to && from) {
535
- for (const key of from.keys) {
536
- if (to.keys.indexOf(key) !== -1) {
537
- const value1 = getConfigurationValue(from.contents, key);
538
- const value2 = getConfigurationValue(to.contents, key);
539
- if (!objects.equals(value1, value2)) {
540
- updated.push(key);
429
+ const added = to
430
+ ? from ? to.keys.filter(key => from.keys.indexOf(key) === -1) : [...to.keys]
431
+ : [];
432
+ const removed = from
433
+ ? to ? from.keys.filter(key => to.keys.indexOf(key) === -1) : [...from.keys]
434
+ : [];
435
+ const updated = [];
436
+ if (to && from) {
437
+ for (const key of from.keys) {
438
+ if (to.keys.indexOf(key) !== -1) {
439
+ const value1 = getConfigurationValue(from.contents, key);
440
+ const value2 = getConfigurationValue(to.contents, key);
441
+ if (!objects.equals(value1, value2)) {
442
+ updated.push(key);
443
+ }
444
+ }
541
445
  }
542
- }
543
- }
544
- }
545
- return {
546
- added,
547
- removed,
548
- updated
549
- };
446
+ }
447
+ return { added, removed, updated };
550
448
  }
551
449
  const OVERRIDE_IDENTIFIER_REGEX = new RegExp(OVERRIDE_IDENTIFIER_PATTERN, 'g');
552
450
  const OVERRIDE_PROPERTY_REGEX = new RegExp(OVERRIDE_PROPERTY_PATTERN);
553
451
  function overrideIdentifiersFromKey(key) {
554
- const identifiers = [];
555
- if (OVERRIDE_PROPERTY_REGEX.test(key)) {
556
- let matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);
557
- while (matches?.length) {
558
- const identifier = matches[1].trim();
559
- if (identifier) {
560
- identifiers.push(identifier);
561
- }
562
- matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);
563
- }
564
- }
565
- return arrays.distinct(identifiers);
452
+ const identifiers = [];
453
+ if (OVERRIDE_PROPERTY_REGEX.test(key)) {
454
+ let matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);
455
+ while (matches?.length) {
456
+ const identifier = matches[1].trim();
457
+ if (identifier) {
458
+ identifiers.push(identifier);
459
+ }
460
+ matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);
461
+ }
462
+ }
463
+ return arrays.distinct(identifiers);
566
464
  }export{Configuration,OVERRIDE_PROPERTY_REGEX,compare,overrideIdentifiersFromKey};//# sourceMappingURL=configuration.js.map