@theia/preferences 1.65.0-next.6 → 1.65.1

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 (160) hide show
  1. package/lib/browser/folder-preference-provider.d.ts +4 -2
  2. package/lib/browser/folder-preference-provider.d.ts.map +1 -1
  3. package/lib/browser/folder-preference-provider.js +9 -4
  4. package/lib/browser/folder-preference-provider.js.map +1 -1
  5. package/lib/browser/folders-preferences-provider.d.ts +2 -3
  6. package/lib/browser/folders-preferences-provider.d.ts.map +1 -1
  7. package/lib/browser/folders-preferences-provider.js +7 -8
  8. package/lib/browser/folders-preferences-provider.js.map +1 -1
  9. package/lib/browser/frontend-preference-storage.d.ts +20 -0
  10. package/lib/browser/frontend-preference-storage.d.ts.map +1 -0
  11. package/lib/browser/frontend-preference-storage.js +63 -0
  12. package/lib/browser/frontend-preference-storage.js.map +1 -0
  13. package/lib/browser/index.d.ts +0 -3
  14. package/lib/browser/index.d.ts.map +1 -1
  15. package/lib/browser/index.js +0 -3
  16. package/lib/browser/index.js.map +1 -1
  17. package/lib/browser/monaco-jsonc-editor.js +2 -2
  18. package/lib/browser/monaco-jsonc-editor.js.map +1 -1
  19. package/lib/browser/preference-bindings.d.ts +0 -1
  20. package/lib/browser/preference-bindings.d.ts.map +1 -1
  21. package/lib/browser/preference-bindings.js +13 -28
  22. package/lib/browser/preference-bindings.js.map +1 -1
  23. package/lib/browser/preference-frontend-contribution.d.ts +1 -1
  24. package/lib/browser/preference-frontend-contribution.d.ts.map +1 -1
  25. package/lib/browser/preference-frontend-contribution.js +3 -3
  26. package/lib/browser/preference-frontend-contribution.js.map +1 -1
  27. package/lib/browser/preference-frontend-module.d.ts.map +1 -1
  28. package/lib/browser/preference-frontend-module.js +4 -0
  29. package/lib/browser/preference-frontend-module.js.map +1 -1
  30. package/lib/browser/preference-transaction-manager.d.ts +4 -7
  31. package/lib/browser/preference-transaction-manager.d.ts.map +1 -1
  32. package/lib/browser/preference-transaction-manager.js +8 -11
  33. package/lib/browser/preference-transaction-manager.js.map +1 -1
  34. package/lib/browser/preference-tree-model.d.ts +4 -6
  35. package/lib/browser/preference-tree-model.d.ts.map +1 -1
  36. package/lib/browser/preference-tree-model.js +4 -4
  37. package/lib/browser/preference-tree-model.js.map +1 -1
  38. package/lib/browser/preferences-contribution.d.ts +2 -5
  39. package/lib/browser/preferences-contribution.d.ts.map +1 -1
  40. package/lib/browser/preferences-contribution.js +7 -17
  41. package/lib/browser/preferences-contribution.js.map +1 -1
  42. package/lib/browser/preferences-json-schema-contribution.d.ts +2 -6
  43. package/lib/browser/preferences-json-schema-contribution.d.ts.map +1 -1
  44. package/lib/browser/preferences-json-schema-contribution.js +30 -35
  45. package/lib/browser/preferences-json-schema-contribution.js.map +1 -1
  46. package/lib/browser/util/preference-scope-command-manager.d.ts.map +1 -1
  47. package/lib/browser/util/preference-scope-command-manager.js +1 -1
  48. package/lib/browser/util/preference-scope-command-manager.js.map +1 -1
  49. package/lib/browser/util/preference-tree-generator.d.ts +3 -4
  50. package/lib/browser/util/preference-tree-generator.d.ts.map +1 -1
  51. package/lib/browser/util/preference-tree-generator.js +10 -14
  52. package/lib/browser/util/preference-tree-generator.js.map +1 -1
  53. package/lib/browser/util/preference-types.d.ts +2 -2
  54. package/lib/browser/util/preference-types.d.ts.map +1 -1
  55. package/lib/browser/util/preference-types.js +4 -4
  56. package/lib/browser/util/preference-types.js.map +1 -1
  57. package/lib/browser/views/components/preference-node-renderer.d.ts +7 -2
  58. package/lib/browser/views/components/preference-node-renderer.d.ts.map +1 -1
  59. package/lib/browser/views/components/preference-node-renderer.js +19 -12
  60. package/lib/browser/views/components/preference-node-renderer.js.map +1 -1
  61. package/lib/browser/views/components/preference-select-input.d.ts.map +1 -1
  62. package/lib/browser/views/components/preference-select-input.js +6 -9
  63. package/lib/browser/views/components/preference-select-input.js.map +1 -1
  64. package/lib/browser/views/preference-editor-widget.d.ts +3 -2
  65. package/lib/browser/views/preference-editor-widget.d.ts.map +1 -1
  66. package/lib/browser/views/preference-editor-widget.js +3 -3
  67. package/lib/browser/views/preference-editor-widget.js.map +1 -1
  68. package/lib/browser/views/preference-scope-tabbar-widget.d.ts +2 -2
  69. package/lib/browser/views/preference-scope-tabbar-widget.d.ts.map +1 -1
  70. package/lib/browser/views/preference-scope-tabbar-widget.js +7 -7
  71. package/lib/browser/views/preference-scope-tabbar-widget.js.map +1 -1
  72. package/lib/browser/views/preference-widget.d.ts +2 -1
  73. package/lib/browser/views/preference-widget.d.ts.map +1 -1
  74. package/lib/browser/views/preference-widget.js.map +1 -1
  75. package/lib/browser/workspace-file-preference-provider.d.ts +2 -2
  76. package/lib/browser/workspace-file-preference-provider.d.ts.map +1 -1
  77. package/lib/browser/workspace-file-preference-provider.js +2 -2
  78. package/lib/browser/workspace-file-preference-provider.js.map +1 -1
  79. package/lib/browser/workspace-preference-provider.d.ts +13 -6
  80. package/lib/browser/workspace-preference-provider.d.ts.map +1 -1
  81. package/lib/browser/workspace-preference-provider.js +27 -17
  82. package/lib/browser/workspace-preference-provider.js.map +1 -1
  83. package/lib/common/abstract-resource-preference-provider.d.ts +69 -0
  84. package/lib/common/abstract-resource-preference-provider.d.ts.map +1 -0
  85. package/lib/{browser → common}/abstract-resource-preference-provider.js +36 -62
  86. package/lib/common/abstract-resource-preference-provider.js.map +1 -0
  87. package/lib/common/abstract-resource-preference-provider.spec.d.ts.map +1 -0
  88. package/lib/{browser → common}/abstract-resource-preference-provider.spec.js +17 -17
  89. package/lib/common/abstract-resource-preference-provider.spec.js.map +1 -0
  90. package/lib/common/jsonc-editor.d.ts +10 -0
  91. package/lib/common/jsonc-editor.d.ts.map +1 -0
  92. package/lib/common/jsonc-editor.js +68 -0
  93. package/lib/common/jsonc-editor.js.map +1 -0
  94. package/lib/{browser → common}/section-preference-provider.d.ts +1 -3
  95. package/lib/common/section-preference-provider.d.ts.map +1 -0
  96. package/lib/{browser → common}/section-preference-provider.js +3 -8
  97. package/lib/common/section-preference-provider.js.map +1 -0
  98. package/lib/{browser → common}/user-configs-preference-provider.d.ts +6 -5
  99. package/lib/common/user-configs-preference-provider.d.ts.map +1 -0
  100. package/lib/{browser → common}/user-configs-preference-provider.js +17 -13
  101. package/lib/common/user-configs-preference-provider.js.map +1 -0
  102. package/lib/{browser → common}/user-preference-provider.d.ts +1 -1
  103. package/lib/common/user-preference-provider.d.ts.map +1 -0
  104. package/lib/{browser → common}/user-preference-provider.js +2 -2
  105. package/lib/common/user-preference-provider.js.map +1 -0
  106. package/lib/node/backend-preference-storage.d.ts +34 -0
  107. package/lib/node/backend-preference-storage.d.ts.map +1 -0
  108. package/lib/node/backend-preference-storage.js +100 -0
  109. package/lib/node/backend-preference-storage.js.map +1 -0
  110. package/lib/node/preference-backend-module.d.ts.map +1 -1
  111. package/lib/node/preference-backend-module.js +9 -0
  112. package/lib/node/preference-backend-module.js.map +1 -1
  113. package/lib/node/preference-bindings.d.ts +3 -0
  114. package/lib/node/preference-bindings.d.ts.map +1 -0
  115. package/lib/node/preference-bindings.js +33 -0
  116. package/lib/node/preference-bindings.js.map +1 -0
  117. package/package.json +9 -9
  118. package/src/browser/folder-preference-provider.ts +5 -2
  119. package/src/browser/folders-preferences-provider.ts +4 -5
  120. package/src/browser/frontend-preference-storage.ts +72 -0
  121. package/src/browser/index.ts +0 -3
  122. package/src/browser/monaco-jsonc-editor.ts +2 -2
  123. package/src/browser/preference-bindings.ts +7 -26
  124. package/src/browser/preference-frontend-contribution.ts +1 -1
  125. package/src/browser/preference-frontend-module.ts +10 -0
  126. package/src/browser/preference-transaction-manager.ts +8 -13
  127. package/src/browser/preference-tree-model.ts +4 -7
  128. package/src/browser/preferences-contribution.ts +2 -9
  129. package/src/browser/preferences-json-schema-contribution.ts +20 -23
  130. package/src/browser/util/preference-scope-command-manager.ts +2 -2
  131. package/src/browser/util/preference-tree-generator.ts +8 -12
  132. package/src/browser/util/preference-types.ts +2 -5
  133. package/src/browser/views/components/preference-node-renderer.ts +15 -8
  134. package/src/browser/views/components/preference-select-input.ts +6 -9
  135. package/src/browser/views/preference-editor-widget.ts +2 -5
  136. package/src/browser/views/preference-scope-tabbar-widget.tsx +2 -2
  137. package/src/browser/views/preference-widget.tsx +2 -1
  138. package/src/browser/workspace-file-preference-provider.ts +2 -2
  139. package/src/browser/workspace-preference-provider.ts +37 -19
  140. package/src/{browser → common}/abstract-resource-preference-provider.spec.ts +19 -20
  141. package/src/{browser → common}/abstract-resource-preference-provider.ts +69 -57
  142. package/src/common/jsonc-editor.ts +65 -0
  143. package/src/{browser → common}/section-preference-provider.ts +1 -5
  144. package/src/{browser → common}/user-configs-preference-provider.ts +14 -10
  145. package/src/{browser → common}/user-preference-provider.ts +1 -1
  146. package/src/node/backend-preference-storage.ts +117 -0
  147. package/src/node/preference-backend-module.ts +16 -0
  148. package/src/node/preference-bindings.ts +31 -0
  149. package/lib/browser/abstract-resource-preference-provider.d.ts +0 -48
  150. package/lib/browser/abstract-resource-preference-provider.d.ts.map +0 -1
  151. package/lib/browser/abstract-resource-preference-provider.js.map +0 -1
  152. package/lib/browser/abstract-resource-preference-provider.spec.d.ts.map +0 -1
  153. package/lib/browser/abstract-resource-preference-provider.spec.js.map +0 -1
  154. package/lib/browser/section-preference-provider.d.ts.map +0 -1
  155. package/lib/browser/section-preference-provider.js.map +0 -1
  156. package/lib/browser/user-configs-preference-provider.d.ts.map +0 -1
  157. package/lib/browser/user-configs-preference-provider.js.map +0 -1
  158. package/lib/browser/user-preference-provider.d.ts.map +0 -1
  159. package/lib/browser/user-preference-provider.js.map +0 -1
  160. /package/lib/{browser → common}/abstract-resource-preference-provider.spec.d.ts +0 -0
@@ -20,21 +20,52 @@
20
20
  import * as jsoncparser from 'jsonc-parser';
21
21
  import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
22
22
  import { Disposable } from '@theia/core/lib/common/disposable';
23
- import { PreferenceProvider, PreferenceSchemaProvider, PreferenceScope, PreferenceProviderDataChange } from '@theia/core/lib/browser';
23
+ import {
24
+ PreferenceProviderImpl, PreferenceScope, PreferenceProviderDataChange, PreferenceSchemaService,
25
+ PreferenceConfigurations, PreferenceUtils, PreferenceLanguageOverrideService,
26
+ Listener
27
+ } from '@theia/core/lib/common';
24
28
  import URI from '@theia/core/lib/common/uri';
25
- import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
26
29
  import { Deferred } from '@theia/core/lib/common/promise-util';
27
- import { FileService } from '@theia/filesystem/lib/browser/file-service';
28
- import { PreferenceContext, PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
29
30
  import { Emitter, Event } from '@theia/core';
31
+ import { JSONValue } from '@theia/core/shared/@lumino/coreutils';
32
+ export interface FileContentStatus {
33
+ content: string;
34
+ fileOK: boolean
35
+ }
36
+ /**
37
+ * Abtracts the way to read and write preferences to a given resource
38
+ */
39
+ export interface PreferenceStorage extends Disposable {
40
+ /**
41
+ * Write a value to the underlying preference store
42
+ * @param key the preference key
43
+ * @param path the path to the JSON object to change
44
+ * @param value the new preference value
45
+ * @returns a promise that will resolve when all "onStored" listeners have finished
46
+ */
47
+ writeValue(key: string, path: string[], value: JSONValue): Promise<boolean>;
48
+ /**
49
+ * List of listeners that will get a string with the newly stored resource content and should return a promise that resolves when
50
+ * they are done with their processing
51
+ */
52
+ onDidChangeFileContent: Listener.Registration<FileContentStatus, Promise<boolean>>;
53
+ /**
54
+ * Reds the content of the underlying resource
55
+ */
56
+ read(): Promise<string>;
57
+ };
58
+
59
+ export const PreferenceStorageFactory = Symbol('PreferenceStorageFactory');
60
+ export type PreferenceStorageFactory = (uri: URI, scope: PreferenceScope) => PreferenceStorage;
30
61
 
31
62
  @injectable()
32
- export abstract class AbstractResourcePreferenceProvider extends PreferenceProvider {
63
+ export abstract class AbstractResourcePreferenceProvider extends PreferenceProviderImpl {
64
+ protected preferenceStorage: PreferenceStorage;
33
65
 
34
66
  protected preferences: Record<string, any> = {};
35
67
  protected _fileExists = false;
36
68
  protected readonly loading = new Deferred();
37
- protected transaction: PreferenceTransaction | undefined;
38
69
  protected readonly onDidChangeValidityEmitter = new Emitter<boolean>();
39
70
 
40
71
  set fileExists(exists: boolean) {
@@ -48,10 +79,14 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
48
79
  return this.onDidChangeValidityEmitter.event;
49
80
  }
50
81
 
51
- @inject(PreferenceTransactionFactory) protected readonly transactionFactory: PreferenceTransactionFactory;
52
- @inject(PreferenceSchemaProvider) protected readonly schemaProvider: PreferenceSchemaProvider;
53
- @inject(FileService) protected readonly fileService: FileService;
54
- @inject(PreferenceConfigurations) protected readonly configurations: PreferenceConfigurations;
82
+ @inject(PreferenceSchemaService)
83
+ protected readonly schemaProvider: PreferenceSchemaService;
84
+ @inject(PreferenceConfigurations)
85
+ protected readonly configurations: PreferenceConfigurations;
86
+ @inject(PreferenceLanguageOverrideService)
87
+ protected readonly preferenceOverrideService: PreferenceLanguageOverrideService;
88
+ @inject(PreferenceStorageFactory)
89
+ protected readonly preferenceStorageFactory: PreferenceStorageFactory;
55
90
 
56
91
  @postConstruct()
57
92
  protected init(): void {
@@ -61,17 +96,19 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
61
96
  protected async doInit(): Promise<void> {
62
97
  const uri = this.getUri();
63
98
  this.toDispose.push(Disposable.create(() => this.loading.reject(new Error(`Preference provider for '${uri}' was disposed.`))));
99
+
100
+ this.preferenceStorage = this.preferenceStorageFactory(uri, this.getScope());
101
+ this.preferenceStorage.onDidChangeFileContent(async ({ content, fileOK }) => {
102
+ this.fileExists = fileOK;
103
+ this.readPreferencesFromContent(content);
104
+ await this.fireDidPreferencesChanged(); // Ensure all consumers of the event have received it.¨
105
+ return true;
106
+ });
64
107
  await this.readPreferencesFromFile();
65
108
  this._ready.resolve();
66
109
  this.loading.resolve();
67
- const storageUri = this.toFileManager().getConfigUri();
110
+
68
111
  this.toDispose.pushAll([
69
- this.fileService.watch(storageUri),
70
- this.fileService.onDidFilesChange(e => {
71
- if (e.contains(storageUri)) {
72
- this.readPreferencesFromFile();
73
- }
74
- }),
75
112
  Disposable.create(() => this.reset()),
76
113
  ]);
77
114
  }
@@ -116,30 +153,8 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
116
153
  return this.doSetPreference(key, path, value);
117
154
  }
118
155
 
119
- protected async doSetPreference(key: string, path: string[], value: unknown): Promise<boolean> {
120
- if (!this.transaction?.open) {
121
- const current = this.transaction;
122
- this.transaction = this.transactionFactory(this.toFileManager(), current?.result);
123
- this.transaction.onWillConclude(({ status, waitUntil }) => {
124
- if (status) {
125
- waitUntil((async () => {
126
- await this.readPreferencesFromFile();
127
- await this.fireDidPreferencesChanged(); // Ensure all consumers of the event have received it.
128
- })());
129
- }
130
- });
131
- this.toDispose.push(this.transaction);
132
- }
133
- return this.transaction.enqueueAction(key, path, value);
134
- }
135
-
136
- /**
137
- * Use this method as intermediary for interactions with actual files.
138
- * Allows individual providers to modify where they store their files without disrupting the preference system's
139
- * conventions about scope and file location.
140
- */
141
- protected toFileManager(): PreferenceContext {
142
- return this;
156
+ protected doSetPreference(key: string, path: string[], value: JSONValue): Promise<boolean> {
157
+ return this.preferenceStorage.writeValue(key, path, value);
143
158
  }
144
159
 
145
160
  protected getPath(preferenceName: string): string[] | undefined {
@@ -150,19 +165,16 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
150
165
  return [preferenceName];
151
166
  }
152
167
 
153
- protected async readPreferencesFromFile(): Promise<void> {
154
- const content = await this.fileService.read(this.toFileManager().getConfigUri())
155
- .then(value => {
156
- this.fileExists = true;
157
- return value;
158
- })
159
- .catch(() => {
160
- this.fileExists = false;
161
- return { value: '' };
162
- });
163
- this.readPreferencesFromContent(content.value);
164
- }
168
+ protected readPreferencesFromFile(): Promise<void> {
169
+ return this.preferenceStorage.read().then(value => {
170
+ this.fileExists = true;
171
+ this.readPreferencesFromContent(value);
172
+ }).catch(() => {
173
+ this.fileExists = false;
174
+ this.readPreferencesFromContent('');
175
+ });
165
176
 
177
+ }
166
178
  protected readPreferencesFromContent(content: string): void {
167
179
  let preferencesInJson;
168
180
  try {
@@ -192,16 +204,16 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
192
204
  for (const prefName of prefNames.values()) {
193
205
  const oldValue = oldPrefs[prefName];
194
206
  const newValue = newPrefs[prefName];
195
- const schemaProperties = this.schemaProvider.getCombinedSchema().properties[prefName];
196
- if (schemaProperties) {
197
- const scope = schemaProperties.scope;
207
+ const schemaProperty = this.schemaProvider.getSchemaProperty(prefName);
208
+ if (schemaProperty) {
209
+ const scope = schemaProperty.scope;
198
210
  // do not emit the change event if the change is made out of the defined preference scope
199
211
  if (!this.schemaProvider.isValidInScope(prefName, this.getScope())) {
200
212
  console.warn(`Preference ${prefName} in ${uri} can only be defined in scopes: ${PreferenceScope.getScopeNames(scope).join(', ')}.`);
201
213
  continue;
202
214
  }
203
215
  }
204
- if (!PreferenceProvider.deepEqual(newValue, oldValue)) {
216
+ if (!PreferenceUtils.deepEqual(newValue, oldValue)) {
205
217
  prefChanges.push({
206
218
  preferenceName: prefName, newValue, oldValue, scope: this.getScope(), domain: this.getDomain()
207
219
  });
@@ -0,0 +1,65 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2021 Ericsson and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import * as jsoncparser from 'jsonc-parser';
18
+ import { inject, injectable } from '@theia/core/shared/inversify';
19
+ import { JSONValue } from '@theia/core/shared/@lumino/coreutils';
20
+ import { isWindows, PreferenceService } from '@theia/core';
21
+
22
+ @injectable()
23
+ export class JSONCEditor {
24
+ @inject(PreferenceService)
25
+ protected readonly preferenceService: PreferenceService;
26
+
27
+ setValue(model: string, path: jsoncparser.JSONPath, value: JSONValue): string {
28
+ const edits = this.getEditOperations(model, path, value);
29
+ return jsoncparser.applyEdits(model, edits);
30
+ }
31
+
32
+ protected getEditOperations(content: string, path: jsoncparser.JSONPath, value: JSONValue): jsoncparser.Edit[] {
33
+ // Everything is already undefined - no need for changes.
34
+ if (!content && value === undefined) {
35
+ return [];
36
+ }
37
+ // Delete the entire document.
38
+ if (!path.length && value === undefined) {
39
+ return [{
40
+ offset: 0,
41
+ length: content.length,
42
+ content: ''
43
+ }];
44
+ }
45
+ const tabSize = this.preferenceService.get('[json].editor.tabSize', 4);
46
+ const insertSpaces = this.preferenceService.get('[json].editor.insertSpaces', true);
47
+
48
+ const jsonCOptions = {
49
+ formattingOptions: {
50
+ insertSpaces,
51
+ tabSize,
52
+ eol: this.getEOL()
53
+ }
54
+ };
55
+ return jsoncparser.modify(content, path, value, jsonCOptions);
56
+ }
57
+
58
+ getEOL(): string {
59
+ const eol = this.preferenceService.get('[json].files.eol');
60
+ if (eol && typeof eol === 'string' && eol !== 'auto') {
61
+ return eol;
62
+ }
63
+ return isWindows ? '\r\n' : '\n';
64
+ }
65
+ }
@@ -17,8 +17,7 @@
17
17
  import { inject, injectable } from '@theia/core/shared/inversify';
18
18
  import URI from '@theia/core/lib/common/uri';
19
19
  import { AbstractResourcePreferenceProvider } from './abstract-resource-preference-provider';
20
- import { WorkspaceService } from '@theia/workspace/lib/browser/workspace-service';
21
- import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
20
+ import { PreferenceConfigurations } from '@theia/core';
22
21
 
23
22
  export const SectionPreferenceProviderUri = Symbol('SectionPreferenceProviderUri');
24
23
  export const SectionPreferenceProviderSection = Symbol('SectionPreferenceProviderSection');
@@ -29,9 +28,6 @@ export const SectionPreferenceProviderSection = Symbol('SectionPreferenceProvide
29
28
  */
30
29
  @injectable()
31
30
  export abstract class SectionPreferenceProvider extends AbstractResourcePreferenceProvider {
32
-
33
- @inject(WorkspaceService)
34
- protected readonly workspaceService: WorkspaceService;
35
31
  @inject(SectionPreferenceProviderUri)
36
32
  protected readonly uri: URI;
37
33
  @inject(SectionPreferenceProviderSection)
@@ -18,20 +18,23 @@
18
18
 
19
19
  import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
20
20
  import URI from '@theia/core/lib/common/uri';
21
- import { PreferenceProvider, PreferenceResolveResult } from '@theia/core/lib/browser/preferences/preference-provider';
22
- import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
23
- import { UserStorageUri } from '@theia/userstorage/lib/browser';
24
- import { UserPreferenceProvider, UserPreferenceProviderFactory } from './user-preference-provider';
21
+ import { UserPreferenceProvider, UserPreferenceProviderFactory } from '../common/user-preference-provider';
22
+ import { PreferenceProviderImpl, PreferenceConfigurations, PreferenceResolveResult, PreferenceUtils } from '@theia/core';
23
+
24
+ export const UserStorageLocationProvider = Symbol('UserStorageLocationProvider');
25
25
 
26
26
  /**
27
27
  * Binds together preference section prefs providers for user-level preferences.
28
28
  */
29
29
  @injectable()
30
- export class UserConfigsPreferenceProvider extends PreferenceProvider {
30
+ export class UserConfigsPreferenceProvider extends PreferenceProviderImpl {
31
31
 
32
32
  @inject(UserPreferenceProviderFactory)
33
33
  protected readonly providerFactory: UserPreferenceProviderFactory;
34
34
 
35
+ @inject(UserStorageLocationProvider)
36
+ private userStorageLocationProvider: () => Promise<URI>;
37
+
35
38
  @inject(PreferenceConfigurations)
36
39
  protected readonly configurations: PreferenceConfigurations;
37
40
 
@@ -43,7 +46,8 @@ export class UserConfigsPreferenceProvider extends PreferenceProvider {
43
46
  }
44
47
 
45
48
  protected async doInit(): Promise<void> {
46
- this.createProviders();
49
+ const userStorageUri = await this.userStorageLocationProvider();
50
+ this.createProviders(userStorageUri);
47
51
 
48
52
  const readyPromises: Promise<void>[] = [];
49
53
  for (const provider of this.providers.values()) {
@@ -52,9 +56,9 @@ export class UserConfigsPreferenceProvider extends PreferenceProvider {
52
56
  Promise.all(readyPromises).then(() => this._ready.resolve());
53
57
  }
54
58
 
55
- protected createProviders(): void {
59
+ protected createProviders(userStorageLocation: URI): void {
56
60
  for (const configName of [...this.configurations.getSectionNames(), this.configurations.getConfigName()]) {
57
- const sectionUri = UserStorageUri.resolve(configName + '.json');
61
+ const sectionUri = userStorageLocation.resolve(configName + '.json');
58
62
  const sectionKey = sectionUri.toString();
59
63
  if (!this.providers.has(sectionKey)) {
60
64
  const provider = this.createProvider(sectionUri, configName);
@@ -79,7 +83,7 @@ export class UserConfigsPreferenceProvider extends PreferenceProvider {
79
83
  const { value, configUri } = provider.resolve<T>(preferenceName, resourceUri);
80
84
  if (configUri && value !== undefined) {
81
85
  result.configUri = configUri;
82
- result.value = PreferenceProvider.merge(result.value as any, value as any) as any;
86
+ result.value = PreferenceUtils.merge(result.value as any, value as any) as any;
83
87
  }
84
88
  }
85
89
  return result;
@@ -89,7 +93,7 @@ export class UserConfigsPreferenceProvider extends PreferenceProvider {
89
93
  let result = {};
90
94
  for (const provider of this.providers.values()) {
91
95
  const preferences = provider.getPreferences();
92
- result = PreferenceProvider.merge(result, preferences) as any;
96
+ result = PreferenceUtils.merge(result, preferences) as any;
93
97
  }
94
98
  return result;
95
99
  }
@@ -16,8 +16,8 @@
16
16
 
17
17
  import { injectable } from '@theia/core/shared/inversify';
18
18
  import URI from '@theia/core/lib/common/uri';
19
- import { PreferenceScope } from '@theia/core/lib/browser';
20
19
  import { SectionPreferenceProvider } from './section-preference-provider';
20
+ import { PreferenceScope } from '@theia/core';
21
21
 
22
22
  export const UserPreferenceProviderFactory = Symbol('UserPreferenceProviderFactory');
23
23
  export interface UserPreferenceProviderFactory {
@@ -0,0 +1,117 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 STMicroelectronics and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { Listener, ListenerList, URI } from '@theia/core';
18
+ import { JSONValue } from '@theia/core/shared/@lumino/coreutils';
19
+ import { FileContentStatus, PreferenceStorage } from '../common/abstract-resource-preference-provider';
20
+ import { EncodingService } from '@theia/core/lib/common/encoding-service';
21
+ import { BinaryBuffer } from '@theia/core/lib/common/buffer';
22
+ import { Deferred } from '@theia/core/lib/common/promise-util';
23
+ import debounce = require('@theia/core/shared/lodash.debounce');
24
+ import { JSONCEditor } from '../common/jsonc-editor';
25
+ import { DiskFileSystemProvider } from '@theia/filesystem/lib/node/disk-file-system-provider';
26
+ import { UTF8 } from '@theia/core/lib/common/encodings';
27
+
28
+ interface WriteOperation {
29
+ key: string,
30
+ path: string[],
31
+ value: JSONValue
32
+ }
33
+
34
+ export class BackendPreferenceStorage implements PreferenceStorage {
35
+
36
+ protected pendingWrites: WriteOperation[] = [];
37
+ protected writeDeferred = new Deferred<boolean>();
38
+ protected writeFile = debounce(() => {
39
+ this.doWrite();
40
+ }, 10);
41
+
42
+ protected currentContent: string | undefined = undefined;
43
+ protected encoding: string = UTF8;
44
+
45
+ constructor(
46
+ protected readonly fileSystem: DiskFileSystemProvider,
47
+ protected readonly uri: URI,
48
+ protected readonly encodingService: EncodingService,
49
+ protected readonly jsonEditor: JSONCEditor) {
50
+
51
+ this.fileSystem.watch(uri, { excludes: [], recursive: false });
52
+ this.fileSystem.onDidChangeFile(events => {
53
+ for (const e of events) {
54
+ if (e.resource.isEqual(uri)) {
55
+ this.read().then(content => this.onDidChangeFileContentListeners.invoke({ content, fileOK: true }, () => { }))
56
+ .catch(() => this.onDidChangeFileContentListeners.invoke({ content: '', fileOK: false }, () => { }));
57
+ }
58
+ }
59
+ });
60
+ }
61
+
62
+ writeValue(key: string, path: string[], value: JSONValue): Promise<boolean> {
63
+ this.pendingWrites.push({
64
+ key, path, value
65
+ });
66
+ return this.waitForWrite();
67
+ }
68
+
69
+ waitForWrite(): Promise<boolean> {
70
+ const result = this.writeDeferred.promise;
71
+ this.writeFile();
72
+ return result;
73
+ }
74
+
75
+ async doWrite(): Promise<void> {
76
+ try {
77
+ if (this.currentContent === undefined) {
78
+ await this.read();
79
+ }
80
+ let newContent = this.currentContent || '';
81
+ for (const op of this.pendingWrites) {
82
+ newContent = this.jsonEditor.setValue(newContent, op.path, op.value);
83
+ }
84
+ await this.fileSystem.writeFile(this.uri, this.encodingService.encode(newContent, {
85
+ encoding: this.encoding,
86
+ hasBOM: false
87
+ }).buffer, {
88
+ create: true,
89
+ overwrite: true
90
+ });
91
+ this.currentContent = newContent;
92
+ this.pendingWrites = [];
93
+ await Listener.await({ content: newContent, fileOK: true }, this.onDidChangeFileContentListeners);
94
+ this.writeDeferred.resolve(true);
95
+ } catch (e) {
96
+ this.currentContent = undefined;
97
+ console.error(e);
98
+ this.writeDeferred.resolve(false);
99
+ } finally {
100
+ this.writeDeferred = new Deferred();
101
+ }
102
+ }
103
+
104
+ protected readonly onDidChangeFileContentListeners = new ListenerList<FileContentStatus, Promise<boolean>>();
105
+ onDidChangeFileContent: Listener.Registration<FileContentStatus, Promise<boolean>> = this.onDidChangeFileContentListeners.registration;
106
+
107
+ async read(): Promise<string> {
108
+ const contents = BinaryBuffer.wrap(await this.fileSystem.readFile(this.uri));
109
+ this.encoding = (await this.encodingService.detectEncoding(contents)).encoding || this.encoding;
110
+ this.currentContent = this.encodingService.decode(contents, this.encoding);
111
+ return this.currentContent;
112
+ }
113
+
114
+ dispose(): void {
115
+ }
116
+
117
+ }
@@ -19,6 +19,13 @@ import { CliContribution } from '@theia/core/lib/node/cli';
19
19
  import { PreferenceCliContribution } from './preference-cli-contribution';
20
20
  import { ConnectionContainerModule } from '@theia/core/lib/node/messaging/connection-container-module';
21
21
  import { CliPreferences, CliPreferencesPath } from '../common/cli-preferences';
22
+ import { bindPreferenceProviders } from './preference-bindings';
23
+ import { PreferenceStorageFactory } from '../common/abstract-resource-preference-provider';
24
+ import { PreferenceScope, URI } from '@theia/core';
25
+ import { BackendPreferenceStorage } from './backend-preference-storage';
26
+ import { JSONCEditor } from '../common/jsonc-editor';
27
+ import { EncodingService } from '@theia/core/lib/common/encoding-service';
28
+ import { DiskFileSystemProvider } from '@theia/filesystem/lib/node/disk-file-system-provider';
22
29
 
23
30
  const preferencesConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService }) => {
24
31
  bindBackendService(CliPreferencesPath, CliPreferences);
@@ -28,6 +35,15 @@ export default new ContainerModule(bind => {
28
35
  bind(PreferenceCliContribution).toSelf().inSingletonScope();
29
36
  bind(CliPreferences).toService(PreferenceCliContribution);
30
37
  bind(CliContribution).toService(PreferenceCliContribution);
38
+ bind(JSONCEditor).toSelf().inSingletonScope();
39
+
40
+ bind(PreferenceStorageFactory).toFactory(({ container }) => (uri: URI, scope: PreferenceScope) => new BackendPreferenceStorage(
41
+ container.get(DiskFileSystemProvider),
42
+ uri,
43
+ container.get(EncodingService),
44
+ container.get(JSONCEditor)
45
+ ));
31
46
 
32
47
  bind(ConnectionContainerModule).toConstantValue(preferencesConnectionModule);
48
+ bindPreferenceProviders(bind);
33
49
  });
@@ -0,0 +1,31 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 STMicroelectronics and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { interfaces } from '@theia/core/shared/inversify';
18
+ import { UserPreferenceProvider, UserPreferenceProviderFactory } from '../common/user-preference-provider';
19
+ import { SectionPreferenceProviderUri, SectionPreferenceProviderSection } from '../common/section-preference-provider';
20
+ import { bindFactory, PreferenceProvider, PreferenceScope, URI } from '@theia/core';
21
+ import { UserConfigsPreferenceProvider, UserStorageLocationProvider } from '../common/user-configs-preference-provider';
22
+ import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
23
+
24
+ export function bindPreferenceProviders(bind: interfaces.Bind): void {
25
+ bind(UserStorageLocationProvider).toDynamicValue(context => async () => {
26
+ const env: EnvVariablesServer = context.container.get(EnvVariablesServer);
27
+ return new URI(await env.getConfigDirUri());
28
+ });
29
+ bind(PreferenceProvider).to(UserConfigsPreferenceProvider).inSingletonScope().whenTargetNamed(PreferenceScope.User);
30
+ bindFactory(bind, UserPreferenceProviderFactory, UserPreferenceProvider, SectionPreferenceProviderUri, SectionPreferenceProviderSection);
31
+ }
@@ -1,48 +0,0 @@
1
- import { PreferenceProvider, PreferenceSchemaProvider, PreferenceScope } from '@theia/core/lib/browser';
2
- import URI from '@theia/core/lib/common/uri';
3
- import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
4
- import { Deferred } from '@theia/core/lib/common/promise-util';
5
- import { FileService } from '@theia/filesystem/lib/browser/file-service';
6
- import { PreferenceContext, PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
7
- import { Emitter, Event } from '@theia/core';
8
- export declare abstract class AbstractResourcePreferenceProvider extends PreferenceProvider {
9
- protected preferences: Record<string, any>;
10
- protected _fileExists: boolean;
11
- protected readonly loading: Deferred<void>;
12
- protected transaction: PreferenceTransaction | undefined;
13
- protected readonly onDidChangeValidityEmitter: Emitter<boolean>;
14
- set fileExists(exists: boolean);
15
- get onDidChangeValidity(): Event<boolean>;
16
- protected readonly transactionFactory: PreferenceTransactionFactory;
17
- protected readonly schemaProvider: PreferenceSchemaProvider;
18
- protected readonly fileService: FileService;
19
- protected readonly configurations: PreferenceConfigurations;
20
- protected init(): void;
21
- protected doInit(): Promise<void>;
22
- protected abstract getUri(): URI;
23
- abstract getScope(): PreferenceScope;
24
- get valid(): boolean;
25
- getConfigUri(): URI;
26
- getConfigUri(resourceUri: string | undefined): URI | undefined;
27
- contains(resourceUri: string | undefined): boolean;
28
- getPreferences(resourceUri?: string): {
29
- [key: string]: any;
30
- };
31
- setPreference(key: string, value: any, resourceUri?: string): Promise<boolean>;
32
- protected doSetPreference(key: string, path: string[], value: unknown): Promise<boolean>;
33
- /**
34
- * Use this method as intermediary for interactions with actual files.
35
- * Allows individual providers to modify where they store their files without disrupting the preference system's
36
- * conventions about scope and file location.
37
- */
38
- protected toFileManager(): PreferenceContext;
39
- protected getPath(preferenceName: string): string[] | undefined;
40
- protected readPreferencesFromFile(): Promise<void>;
41
- protected readPreferencesFromContent(content: string): void;
42
- protected parse(content: string): any;
43
- protected handlePreferenceChanges(newPrefs: {
44
- [key: string]: any;
45
- }): void;
46
- protected reset(): void;
47
- }
48
- //# sourceMappingURL=abstract-resource-preference-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-resource-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAAgC,MAAM,yBAAyB,CAAC;AACtI,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,8BACsB,kCAAmC,SAAQ,kBAAkB;IAE/E,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAChD,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,iBAAkB;IAC5C,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,mBAA0B;IAEvE,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,EAK7B;IAED,IAAI,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,CAExC;IAEqC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IACzE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAG9F,SAAS,CAAC,IAAI,IAAI,IAAI;cAIN,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBvC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG;IAChC,QAAQ,CAAC,QAAQ,IAAI,eAAe;IAEpC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAEQ,YAAY,IAAI,GAAG;IACnB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS;IAQvE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAYlD,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAItD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAQpE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9F;;;;OAIG;IACH,SAAS,CAAC,aAAa,IAAI,iBAAiB;IAI5C,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;cAQ/C,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW3D,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IASrC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI;IA8BzE,SAAS,CAAC,KAAK,IAAI,IAAI;CAgB1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-resource-preference-provider.js","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-resource-preference-provider.spec.d.ts","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.spec.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-resource-preference-provider.spec.js","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/section-preference-provider.ts"],"names":[],"mappings":"AAiBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AAEzG,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AACnF,eAAO,MAAM,gCAAgC,eAA6C,CAAC;AAE3F;;;GAGG;AACH,8BACsB,yBAA0B,SAAQ,kCAAkC;IAGtF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAE5B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAEtE,OAAO,CAAC,UAAU,CAAC,CAAU;IAE7B,OAAO,KAAK,SAAS,GAKpB;IAED,SAAS,CAAC,MAAM,IAAI,GAAG;cAIJ,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;cAgB3B,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;CAY3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-preference-provider.js","sourceRoot":"","sources":["../../src/browser/section-preference-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAkE;AAClE,oDAA6C;AAC7C,mGAA6F;AAC7F,sFAAkF;AAClF,6GAAyG;AAE5F,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACtE,QAAA,gCAAgC,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAE3F;;;GAGG;AAEI,IAAe,yBAAyB,GAAxC,MAAe,yBAA0B,SAAQ,0EAAkC;IAatF,IAAY,SAAS;QACjB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAES,MAAM;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACD,8DAA8D;IAC3C,KAAK,CAAC,OAAe;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,MAAM,GAA6B,EAExC,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEkB,OAAO,CAAC,cAAsB;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ,CAAA;AApDqB,8DAAyB;AAGxB;IADlB,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCACY,oCAAgB;mEAAC;AAEnC;IADlB,IAAA,kBAAM,EAAC,oCAA4B,CAAC;sCACb,aAAG;sDAAC;AAET;IADlB,IAAA,kBAAM,EAAC,wCAAgC,CAAC;;0DACN;AAEhB;IADlB,IAAA,kBAAM,EAAC,oDAAwB,CAAC;sCACY,oDAAwB;2EAAC;oCATpD,yBAAyB;IAD9C,IAAA,sBAAU,GAAE;GACS,yBAAyB,CAoD9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-configs-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/user-configs-preference-provider.ts"],"names":[],"mappings":"AAmBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACtH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AAEzG,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEnG;;GAEG;AACH,qBACa,6BAA8B,SAAQ,kBAAkB;IAGjE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,6BAA6B,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAE5D,SAAS,CAAC,QAAQ,CAAC,SAAS,sCAA6C;IAGzE,SAAS,CAAC,IAAI,IAAI,IAAI;cAIN,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvC,SAAS,CAAC,eAAe,IAAI,IAAI;IAWxB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAA4C,GAAG,GAAG,GAAG,SAAS;IAU9G,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC;IAY7F,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IASpD,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB/F,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,sBAAsB;CAMlF"}