@salesforce/core 3.30.14 → 3.31.7

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 (153) hide show
  1. package/LICENSE.txt +11 -11
  2. package/README.md +222 -227
  3. package/lib/config/aliasesConfig.d.ts +12 -12
  4. package/lib/config/aliasesConfig.js +27 -27
  5. package/lib/config/authInfoConfig.d.ts +19 -19
  6. package/lib/config/authInfoConfig.js +34 -34
  7. package/lib/config/config.d.ts +311 -311
  8. package/lib/config/config.js +574 -574
  9. package/lib/config/configAggregator.d.ts +232 -232
  10. package/lib/config/configAggregator.js +379 -379
  11. package/lib/config/configFile.d.ts +199 -199
  12. package/lib/config/configFile.js +340 -340
  13. package/lib/config/configGroup.d.ts +141 -141
  14. package/lib/config/configGroup.js +224 -224
  15. package/lib/config/configStore.d.ts +241 -241
  16. package/lib/config/configStore.js +352 -352
  17. package/lib/config/envVars.d.ts +101 -101
  18. package/lib/config/envVars.js +456 -456
  19. package/lib/config/orgUsersConfig.d.ts +31 -31
  20. package/lib/config/orgUsersConfig.js +41 -41
  21. package/lib/config/sandboxOrgConfig.d.ts +37 -37
  22. package/lib/config/sandboxOrgConfig.js +50 -50
  23. package/lib/config/sandboxProcessCache.d.ts +16 -16
  24. package/lib/config/sandboxProcessCache.js +37 -37
  25. package/lib/config/tokensConfig.d.ts +10 -10
  26. package/lib/config/tokensConfig.js +28 -28
  27. package/lib/config/ttlConfig.d.ts +34 -34
  28. package/lib/config/ttlConfig.js +54 -54
  29. package/lib/crypto/crypto.d.ts +54 -54
  30. package/lib/crypto/crypto.js +220 -220
  31. package/lib/crypto/keyChain.d.ts +8 -8
  32. package/lib/crypto/keyChain.js +61 -61
  33. package/lib/crypto/keyChainImpl.d.ts +116 -116
  34. package/lib/crypto/keyChainImpl.js +486 -486
  35. package/lib/crypto/secureBuffer.d.ts +46 -46
  36. package/lib/crypto/secureBuffer.js +82 -82
  37. package/lib/deviceOauthService.d.ts +71 -71
  38. package/lib/deviceOauthService.js +191 -191
  39. package/lib/exported.d.ts +38 -38
  40. package/lib/exported.js +118 -118
  41. package/lib/global.d.ts +70 -70
  42. package/lib/global.js +109 -109
  43. package/lib/lifecycleEvents.d.ts +93 -93
  44. package/lib/lifecycleEvents.js +188 -188
  45. package/lib/logger.d.ts +381 -381
  46. package/lib/logger.js +734 -734
  47. package/lib/messages.d.ts +291 -291
  48. package/lib/messages.js +543 -543
  49. package/lib/org/authInfo.d.ts +344 -344
  50. package/lib/org/authInfo.js +892 -892
  51. package/lib/org/authRemover.d.ts +88 -88
  52. package/lib/org/authRemover.js +182 -182
  53. package/lib/org/connection.d.ts +197 -197
  54. package/lib/org/connection.js +395 -395
  55. package/lib/org/index.d.ts +6 -6
  56. package/lib/org/index.js +28 -28
  57. package/lib/org/org.d.ts +558 -558
  58. package/lib/org/org.js +1267 -1267
  59. package/lib/org/orgConfigProperties.d.ts +69 -69
  60. package/lib/org/orgConfigProperties.js +136 -136
  61. package/lib/org/permissionSetAssignment.d.ts +35 -35
  62. package/lib/org/permissionSetAssignment.js +125 -125
  63. package/lib/org/scratchOrgCache.d.ts +20 -20
  64. package/lib/org/scratchOrgCache.js +32 -32
  65. package/lib/org/scratchOrgCreate.d.ts +54 -54
  66. package/lib/org/scratchOrgCreate.js +216 -216
  67. package/lib/org/scratchOrgErrorCodes.d.ts +10 -10
  68. package/lib/org/scratchOrgErrorCodes.js +88 -88
  69. package/lib/org/scratchOrgFeatureDeprecation.d.ts +26 -26
  70. package/lib/org/scratchOrgFeatureDeprecation.js +109 -109
  71. package/lib/org/scratchOrgInfoApi.d.ts +68 -68
  72. package/lib/org/scratchOrgInfoApi.js +413 -413
  73. package/lib/org/scratchOrgInfoGenerator.d.ts +64 -64
  74. package/lib/org/scratchOrgInfoGenerator.js +241 -241
  75. package/lib/org/scratchOrgLifecycleEvents.d.ts +10 -10
  76. package/lib/org/scratchOrgLifecycleEvents.js +40 -40
  77. package/lib/org/scratchOrgSettingsGenerator.d.ts +78 -78
  78. package/lib/org/scratchOrgSettingsGenerator.js +276 -276
  79. package/lib/org/scratchOrgTypes.d.ts +43 -43
  80. package/lib/org/scratchOrgTypes.js +8 -8
  81. package/lib/org/user.d.ts +187 -187
  82. package/lib/org/user.js +448 -448
  83. package/lib/schema/printer.d.ts +79 -79
  84. package/lib/schema/printer.js +260 -260
  85. package/lib/schema/validator.d.ts +70 -70
  86. package/lib/schema/validator.js +169 -169
  87. package/lib/sfError.d.ts +73 -73
  88. package/lib/sfError.js +136 -136
  89. package/lib/sfProject.d.ts +357 -357
  90. package/lib/sfProject.js +671 -671
  91. package/lib/stateAggregator/accessors/aliasAccessor.d.ts +98 -98
  92. package/lib/stateAggregator/accessors/aliasAccessor.js +145 -145
  93. package/lib/stateAggregator/accessors/orgAccessor.d.ts +101 -101
  94. package/lib/stateAggregator/accessors/orgAccessor.js +240 -240
  95. package/lib/stateAggregator/accessors/sandboxAccessor.d.ts +8 -8
  96. package/lib/stateAggregator/accessors/sandboxAccessor.js +27 -27
  97. package/lib/stateAggregator/accessors/tokenAccessor.d.ts +63 -63
  98. package/lib/stateAggregator/accessors/tokenAccessor.js +79 -79
  99. package/lib/stateAggregator/index.d.ts +4 -4
  100. package/lib/stateAggregator/index.js +26 -26
  101. package/lib/stateAggregator/stateAggregator.d.ts +25 -25
  102. package/lib/stateAggregator/stateAggregator.js +45 -45
  103. package/lib/status/myDomainResolver.d.ts +66 -66
  104. package/lib/status/myDomainResolver.js +124 -124
  105. package/lib/status/pollingClient.d.ts +85 -85
  106. package/lib/status/pollingClient.js +115 -115
  107. package/lib/status/streamingClient.d.ts +244 -244
  108. package/lib/status/streamingClient.js +436 -436
  109. package/lib/status/types.d.ts +89 -89
  110. package/lib/status/types.js +17 -17
  111. package/lib/testSetup.d.ts +553 -530
  112. package/lib/testSetup.js +871 -727
  113. package/lib/util/cache.d.ts +11 -11
  114. package/lib/util/cache.js +69 -69
  115. package/lib/util/checkLightningDomain.d.ts +1 -1
  116. package/lib/util/checkLightningDomain.js +28 -28
  117. package/lib/util/directoryWriter.d.ts +12 -12
  118. package/lib/util/directoryWriter.js +53 -53
  119. package/lib/util/getJwtAudienceUrl.d.ts +4 -4
  120. package/lib/util/getJwtAudienceUrl.js +18 -18
  121. package/lib/util/internal.d.ts +58 -58
  122. package/lib/util/internal.js +118 -118
  123. package/lib/util/jsonXmlTools.d.ts +14 -14
  124. package/lib/util/jsonXmlTools.js +38 -38
  125. package/lib/util/mapKeys.d.ts +14 -14
  126. package/lib/util/mapKeys.js +51 -51
  127. package/lib/util/sfdc.d.ts +52 -52
  128. package/lib/util/sfdc.js +85 -85
  129. package/lib/util/sfdcUrl.d.ts +72 -72
  130. package/lib/util/sfdcUrl.js +215 -215
  131. package/lib/util/structuredWriter.d.ts +9 -9
  132. package/lib/util/structuredWriter.js +2 -2
  133. package/lib/util/zipWriter.d.ts +16 -16
  134. package/lib/util/zipWriter.js +67 -67
  135. package/lib/webOAuthServer.d.ts +156 -156
  136. package/lib/webOAuthServer.js +388 -388
  137. package/messages/auth.md +37 -37
  138. package/messages/config.md +156 -156
  139. package/messages/connection.md +30 -30
  140. package/messages/core.json +20 -20
  141. package/messages/core.md +67 -67
  142. package/messages/encryption.md +85 -85
  143. package/messages/envVars.md +303 -303
  144. package/messages/org.md +63 -63
  145. package/messages/permissionSetAssignment.md +31 -31
  146. package/messages/scratchOrgCreate.md +23 -23
  147. package/messages/scratchOrgErrorCodes.md +115 -115
  148. package/messages/scratchOrgFeatureDeprecation.md +11 -11
  149. package/messages/scratchOrgInfoApi.md +15 -15
  150. package/messages/scratchOrgInfoGenerator.md +23 -23
  151. package/messages/streaming.md +23 -23
  152. package/messages/user.md +35 -35
  153. package/package.json +97 -97
@@ -1,241 +1,241 @@
1
- import { AsyncOptionalCreatable } from '@salesforce/kit';
2
- import { AnyJson, Dictionary, JsonMap, Optional } from '@salesforce/ts-types';
3
- import { Crypto } from '../crypto/crypto';
4
- /**
5
- * The allowed types stored in a config store.
6
- */
7
- export declare type ConfigValue = AnyJson;
8
- /**
9
- * The type of entries in a config store defined by the key and value type of {@link ConfigContents}.
10
- */
11
- export declare type ConfigEntry = [string, ConfigValue];
12
- /**
13
- * The type of content a config stores.
14
- */
15
- export declare type ConfigContents<T = ConfigValue> = Dictionary<T>;
16
- export declare type Key<P extends ConfigContents> = Extract<keyof P, string>;
17
- /**
18
- * An interface for a config object with a persistent store.
19
- */
20
- export interface ConfigStore<P extends ConfigContents = ConfigContents> {
21
- entries(): ConfigEntry[];
22
- get<K extends Key<P>>(key: K, decrypt: boolean): P[K];
23
- get<T extends ConfigValue>(key: string, decrypt: boolean): T;
24
- getKeysByValue(value: ConfigValue): Array<Key<P>>;
25
- has(key: string): boolean;
26
- keys(): Array<Key<P>>;
27
- set<K extends Key<P>>(key: K, value: P[K]): void;
28
- set<T extends ConfigValue>(key: string, value: T): void;
29
- update<K extends Key<P>>(key: K, value: Partial<P[K]>): void;
30
- update<T extends ConfigValue>(key: string, value: Partial<T>): void;
31
- unset(key: string): boolean;
32
- unsetAll(keys: string[]): boolean;
33
- clear(): void;
34
- values(): ConfigValue[];
35
- forEach(actionFn: (key: string, value: ConfigValue) => void): void;
36
- awaitEach(actionFn: (key: string, value: ConfigValue) => Promise<void>): Promise<void>;
37
- getContents(): P;
38
- setContents(contents?: P): void;
39
- }
40
- /**
41
- * An abstract class that implements all the config management functions but
42
- * none of the storage functions.
43
- *
44
- * **Note:** To see the interface, look in typescripts autocomplete help or the npm package's ConfigStore.d.ts file.
45
- */
46
- export declare abstract class BaseConfigStore<T extends BaseConfigStore.Options = BaseConfigStore.Options, P extends ConfigContents = ConfigContents> extends AsyncOptionalCreatable<T> implements ConfigStore<P> {
47
- protected static encryptedKeys: Array<string | RegExp>;
48
- protected options: T;
49
- protected crypto?: Crypto;
50
- private contents;
51
- private statics;
52
- /**
53
- * Constructor.
54
- *
55
- * @param options The options for the class instance.
56
- * @ignore
57
- */
58
- constructor(options?: T);
59
- /**
60
- * Returns an array of {@link ConfigEntry} for each element in the config.
61
- */
62
- entries(): ConfigEntry[];
63
- /**
64
- * Returns the value associated to the key, or undefined if there is none.
65
- *
66
- * @param key The key. Supports query key like `a.b[0]`.
67
- * @param decrypt If it is an encrypted key, decrypt the value.
68
- * If the value is an object, a clone will be returned.
69
- */
70
- get<K extends Key<P>>(key: K, decrypt?: boolean): P[K];
71
- get<V = ConfigValue>(key: string, decrypt?: boolean): V;
72
- /**
73
- * Returns the list of keys that contain a value.
74
- *
75
- * @param value The value to filter keys on.
76
- */
77
- getKeysByValue(value: ConfigValue): Array<Key<P>>;
78
- /**
79
- * Returns a boolean asserting whether a value has been associated to the key in the config object or not.
80
- *
81
- * @param key The key. Supports query key like `a.b[0]`.
82
- */
83
- has(key: string): boolean;
84
- /**
85
- * Returns an array that contains the keys for each element in the config object.
86
- */
87
- keys(): Array<Key<P>>;
88
- /**
89
- * Sets the value for the key in the config object. This will override the existing value.
90
- * To do a partial update, use {@link BaseConfigStore.update}.
91
- *
92
- * @param key The key. Supports query key like `a.b[0]`.
93
- * @param value The value.
94
- */
95
- set<K extends Key<P>>(key: K, value: P[K]): void;
96
- set<V = ConfigValue>(key: string, value: V): void;
97
- /**
98
- * Updates the value for the key in the config object. If the value is an object, it
99
- * will be merged with the existing object.
100
- *
101
- * @param key The key. Supports query key like `a.b[0]`.
102
- * @param value The value.
103
- */
104
- update<K extends Key<P>>(key: K, value: Partial<P[K]>): void;
105
- update<V = ConfigValue>(key: string, value: Partial<V>): void;
106
- /**
107
- * Returns `true` if an element in the config object existed and has been removed, or `false` if the element does not
108
- * exist. {@link BaseConfigStore.has} will return false afterwards.
109
- *
110
- * @param key The key. Supports query key like `a.b[0]`.
111
- */
112
- unset(key: string): boolean;
113
- /**
114
- * Returns `true` if all elements in the config object existed and have been removed, or `false` if all the elements
115
- * do not exist (some may have been removed). {@link BaseConfigStore.has(key)} will return false afterwards.
116
- *
117
- * @param keys The keys. Supports query keys like `a.b[0]`.
118
- */
119
- unsetAll(keys: string[]): boolean;
120
- /**
121
- * Removes all key/value pairs from the config object.
122
- */
123
- clear(): void;
124
- /**
125
- * Returns an array that contains the values for each element in the config object.
126
- */
127
- values(): ConfigValue[];
128
- /**
129
- * Returns the entire config contents.
130
- *
131
- * *NOTE:* Data will still be encrypted unless decrypt is passed in. A clone of
132
- * the data will be returned to prevent storing un-encrypted data in memory and
133
- * potentially saving to the file system.
134
- *
135
- * @param decrypt: decrypt all data in the config. A clone of the data will be returned.
136
- *
137
- */
138
- getContents(decrypt?: boolean): P;
139
- /**
140
- * Sets the entire config contents.
141
- *
142
- * @param contents The contents.
143
- */
144
- setContents(contents?: P): void;
145
- /**
146
- * Invokes `actionFn` once for each key-value pair present in the config object.
147
- *
148
- * @param {function} actionFn The function `(key: string, value: ConfigValue) => void` to be called for each element.
149
- */
150
- forEach(actionFn: (key: string, value: ConfigValue) => void): void;
151
- /**
152
- * Asynchronously invokes `actionFn` once for each key-value pair present in the config object.
153
- *
154
- * @param {function} actionFn The function `(key: string, value: ConfigValue) => Promise<void>` to be called for
155
- * each element.
156
- * @returns {Promise<void>}
157
- */
158
- awaitEach(actionFn: (key: string, value: ConfigValue) => Promise<void>): Promise<void>;
159
- /**
160
- * Convert the config object to a JSON object. Returns the config contents.
161
- * Same as calling {@link ConfigStore.getContents}
162
- */
163
- toObject(): JsonMap;
164
- /**
165
- * Convert an object to a {@link ConfigContents} and set it as the config contents.
166
- *
167
- * @param obj The object.
168
- */
169
- setContentsFromObject<U extends JsonMap>(obj: U): void;
170
- protected getEncryptedKeys(): Array<string | RegExp>;
171
- /**
172
- * This config file has encrypted keys and it should attempt to encrypt them.
173
- *
174
- * @returns Has encrypted keys
175
- */
176
- protected hasEncryption(): boolean;
177
- protected setMethod(contents: ConfigContents, key: string, value?: ConfigValue): void;
178
- protected getMethod(contents: ConfigContents, key: string): Optional<ConfigValue>;
179
- protected initialContents(): P;
180
- /**
181
- * Used to initialize asynchronous components.
182
- */
183
- protected init(): Promise<void>;
184
- /**
185
- * Initialize the crypto dependency.
186
- */
187
- protected initCrypto(): Promise<void>;
188
- /**
189
- * Closes the crypto dependency. Crypto should be close after it's used and no longer needed.
190
- */
191
- protected clearCrypto(): Promise<void>;
192
- /**
193
- * Should the given key be encrypted on set methods and decrypted on get methods.
194
- *
195
- * @param key The key. Supports query key like `a.b[0]`.
196
- * @returns Should encrypt/decrypt
197
- */
198
- protected isCryptoKey(key: string): string | RegExp | undefined;
199
- protected encrypt(value: unknown): Optional<string>;
200
- protected decrypt(value: unknown): Optional<string>;
201
- /**
202
- * Encrypt all values in a nested JsonMap.
203
- *
204
- * @param keyPaths: The complete path of the (nested) data
205
- * @param data: The current (nested) data being worked on.
206
- */
207
- protected recursiveEncrypt<J extends JsonMap>(data: J, parentKey?: string): J;
208
- /**
209
- * Decrypt all values in a nested JsonMap.
210
- *
211
- * @param keyPaths: The complete path of the (nested) data
212
- * @param data: The current (nested) data being worked on.
213
- */
214
- protected recursiveDecrypt(data: JsonMap, parentKey?: string): JsonMap;
215
- /**
216
- * Encrypt/Decrypt all values in a nested JsonMap.
217
- *
218
- * @param keyPaths: The complete path of the (nested) data
219
- * @param data: The current (nested) data being worked on.
220
- */
221
- private recursiveCrypto;
222
- }
223
- /**
224
- * @ignore
225
- */
226
- export declare namespace BaseConfigStore {
227
- /**
228
- * Options for the config store.
229
- */
230
- interface Options {
231
- /**
232
- * Keys to encrypt.
233
- *
234
- * The preferred way to set encrypted keys is to use {@link BaseConfigStore.encryptedKeys}
235
- * so they are constant for all instances of a Config class. However, this is useful for
236
- * instantiating subclasses of ConfigStore on the fly (like {@link ConfigFile}) without
237
- * defining a new class.
238
- */
239
- encryptedKeys?: Array<string | RegExp>;
240
- }
241
- }
1
+ import { AsyncOptionalCreatable } from '@salesforce/kit';
2
+ import { AnyJson, Dictionary, JsonMap, Optional } from '@salesforce/ts-types';
3
+ import { Crypto } from '../crypto/crypto';
4
+ /**
5
+ * The allowed types stored in a config store.
6
+ */
7
+ export declare type ConfigValue = AnyJson;
8
+ /**
9
+ * The type of entries in a config store defined by the key and value type of {@link ConfigContents}.
10
+ */
11
+ export declare type ConfigEntry = [string, ConfigValue];
12
+ /**
13
+ * The type of content a config stores.
14
+ */
15
+ export declare type ConfigContents<T = ConfigValue> = Dictionary<T>;
16
+ export declare type Key<P extends ConfigContents> = Extract<keyof P, string>;
17
+ /**
18
+ * An interface for a config object with a persistent store.
19
+ */
20
+ export interface ConfigStore<P extends ConfigContents = ConfigContents> {
21
+ entries(): ConfigEntry[];
22
+ get<K extends Key<P>>(key: K, decrypt: boolean): P[K];
23
+ get<T extends ConfigValue>(key: string, decrypt: boolean): T;
24
+ getKeysByValue(value: ConfigValue): Array<Key<P>>;
25
+ has(key: string): boolean;
26
+ keys(): Array<Key<P>>;
27
+ set<K extends Key<P>>(key: K, value: P[K]): void;
28
+ set<T extends ConfigValue>(key: string, value: T): void;
29
+ update<K extends Key<P>>(key: K, value: Partial<P[K]>): void;
30
+ update<T extends ConfigValue>(key: string, value: Partial<T>): void;
31
+ unset(key: string): boolean;
32
+ unsetAll(keys: string[]): boolean;
33
+ clear(): void;
34
+ values(): ConfigValue[];
35
+ forEach(actionFn: (key: string, value: ConfigValue) => void): void;
36
+ awaitEach(actionFn: (key: string, value: ConfigValue) => Promise<void>): Promise<void>;
37
+ getContents(): P;
38
+ setContents(contents?: P): void;
39
+ }
40
+ /**
41
+ * An abstract class that implements all the config management functions but
42
+ * none of the storage functions.
43
+ *
44
+ * **Note:** To see the interface, look in typescripts autocomplete help or the npm package's ConfigStore.d.ts file.
45
+ */
46
+ export declare abstract class BaseConfigStore<T extends BaseConfigStore.Options = BaseConfigStore.Options, P extends ConfigContents = ConfigContents> extends AsyncOptionalCreatable<T> implements ConfigStore<P> {
47
+ protected static encryptedKeys: Array<string | RegExp>;
48
+ protected options: T;
49
+ protected crypto?: Crypto;
50
+ private contents;
51
+ private statics;
52
+ /**
53
+ * Constructor.
54
+ *
55
+ * @param options The options for the class instance.
56
+ * @ignore
57
+ */
58
+ constructor(options?: T);
59
+ /**
60
+ * Returns an array of {@link ConfigEntry} for each element in the config.
61
+ */
62
+ entries(): ConfigEntry[];
63
+ /**
64
+ * Returns the value associated to the key, or undefined if there is none.
65
+ *
66
+ * @param key The key. Supports query key like `a.b[0]`.
67
+ * @param decrypt If it is an encrypted key, decrypt the value.
68
+ * If the value is an object, a clone will be returned.
69
+ */
70
+ get<K extends Key<P>>(key: K, decrypt?: boolean): P[K];
71
+ get<V = ConfigValue>(key: string, decrypt?: boolean): V;
72
+ /**
73
+ * Returns the list of keys that contain a value.
74
+ *
75
+ * @param value The value to filter keys on.
76
+ */
77
+ getKeysByValue(value: ConfigValue): Array<Key<P>>;
78
+ /**
79
+ * Returns a boolean asserting whether a value has been associated to the key in the config object or not.
80
+ *
81
+ * @param key The key. Supports query key like `a.b[0]`.
82
+ */
83
+ has(key: string): boolean;
84
+ /**
85
+ * Returns an array that contains the keys for each element in the config object.
86
+ */
87
+ keys(): Array<Key<P>>;
88
+ /**
89
+ * Sets the value for the key in the config object. This will override the existing value.
90
+ * To do a partial update, use {@link BaseConfigStore.update}.
91
+ *
92
+ * @param key The key. Supports query key like `a.b[0]`.
93
+ * @param value The value.
94
+ */
95
+ set<K extends Key<P>>(key: K, value: P[K]): void;
96
+ set<V = ConfigValue>(key: string, value: V): void;
97
+ /**
98
+ * Updates the value for the key in the config object. If the value is an object, it
99
+ * will be merged with the existing object.
100
+ *
101
+ * @param key The key. Supports query key like `a.b[0]`.
102
+ * @param value The value.
103
+ */
104
+ update<K extends Key<P>>(key: K, value: Partial<P[K]>): void;
105
+ update<V = ConfigValue>(key: string, value: Partial<V>): void;
106
+ /**
107
+ * Returns `true` if an element in the config object existed and has been removed, or `false` if the element does not
108
+ * exist. {@link BaseConfigStore.has} will return false afterwards.
109
+ *
110
+ * @param key The key. Supports query key like `a.b[0]`.
111
+ */
112
+ unset(key: string): boolean;
113
+ /**
114
+ * Returns `true` if all elements in the config object existed and have been removed, or `false` if all the elements
115
+ * do not exist (some may have been removed). {@link BaseConfigStore.has(key)} will return false afterwards.
116
+ *
117
+ * @param keys The keys. Supports query keys like `a.b[0]`.
118
+ */
119
+ unsetAll(keys: string[]): boolean;
120
+ /**
121
+ * Removes all key/value pairs from the config object.
122
+ */
123
+ clear(): void;
124
+ /**
125
+ * Returns an array that contains the values for each element in the config object.
126
+ */
127
+ values(): ConfigValue[];
128
+ /**
129
+ * Returns the entire config contents.
130
+ *
131
+ * *NOTE:* Data will still be encrypted unless decrypt is passed in. A clone of
132
+ * the data will be returned to prevent storing un-encrypted data in memory and
133
+ * potentially saving to the file system.
134
+ *
135
+ * @param decrypt: decrypt all data in the config. A clone of the data will be returned.
136
+ *
137
+ */
138
+ getContents(decrypt?: boolean): P;
139
+ /**
140
+ * Sets the entire config contents.
141
+ *
142
+ * @param contents The contents.
143
+ */
144
+ setContents(contents?: P): void;
145
+ /**
146
+ * Invokes `actionFn` once for each key-value pair present in the config object.
147
+ *
148
+ * @param {function} actionFn The function `(key: string, value: ConfigValue) => void` to be called for each element.
149
+ */
150
+ forEach(actionFn: (key: string, value: ConfigValue) => void): void;
151
+ /**
152
+ * Asynchronously invokes `actionFn` once for each key-value pair present in the config object.
153
+ *
154
+ * @param {function} actionFn The function `(key: string, value: ConfigValue) => Promise<void>` to be called for
155
+ * each element.
156
+ * @returns {Promise<void>}
157
+ */
158
+ awaitEach(actionFn: (key: string, value: ConfigValue) => Promise<void>): Promise<void>;
159
+ /**
160
+ * Convert the config object to a JSON object. Returns the config contents.
161
+ * Same as calling {@link ConfigStore.getContents}
162
+ */
163
+ toObject(): JsonMap;
164
+ /**
165
+ * Convert an object to a {@link ConfigContents} and set it as the config contents.
166
+ *
167
+ * @param obj The object.
168
+ */
169
+ setContentsFromObject<U extends JsonMap>(obj: U): void;
170
+ protected getEncryptedKeys(): Array<string | RegExp>;
171
+ /**
172
+ * This config file has encrypted keys and it should attempt to encrypt them.
173
+ *
174
+ * @returns Has encrypted keys
175
+ */
176
+ protected hasEncryption(): boolean;
177
+ protected setMethod(contents: ConfigContents, key: string, value?: ConfigValue): void;
178
+ protected getMethod(contents: ConfigContents, key: string): Optional<ConfigValue>;
179
+ protected initialContents(): P;
180
+ /**
181
+ * Used to initialize asynchronous components.
182
+ */
183
+ protected init(): Promise<void>;
184
+ /**
185
+ * Initialize the crypto dependency.
186
+ */
187
+ protected initCrypto(): Promise<void>;
188
+ /**
189
+ * Closes the crypto dependency. Crypto should be close after it's used and no longer needed.
190
+ */
191
+ protected clearCrypto(): Promise<void>;
192
+ /**
193
+ * Should the given key be encrypted on set methods and decrypted on get methods.
194
+ *
195
+ * @param key The key. Supports query key like `a.b[0]`.
196
+ * @returns Should encrypt/decrypt
197
+ */
198
+ protected isCryptoKey(key: string): string | RegExp | undefined;
199
+ protected encrypt(value: unknown): Optional<string>;
200
+ protected decrypt(value: unknown): Optional<string>;
201
+ /**
202
+ * Encrypt all values in a nested JsonMap.
203
+ *
204
+ * @param keyPaths: The complete path of the (nested) data
205
+ * @param data: The current (nested) data being worked on.
206
+ */
207
+ protected recursiveEncrypt<J extends JsonMap>(data: J, parentKey?: string): J;
208
+ /**
209
+ * Decrypt all values in a nested JsonMap.
210
+ *
211
+ * @param keyPaths: The complete path of the (nested) data
212
+ * @param data: The current (nested) data being worked on.
213
+ */
214
+ protected recursiveDecrypt(data: JsonMap, parentKey?: string): JsonMap;
215
+ /**
216
+ * Encrypt/Decrypt all values in a nested JsonMap.
217
+ *
218
+ * @param keyPaths: The complete path of the (nested) data
219
+ * @param data: The current (nested) data being worked on.
220
+ */
221
+ private recursiveCrypto;
222
+ }
223
+ /**
224
+ * @ignore
225
+ */
226
+ export declare namespace BaseConfigStore {
227
+ /**
228
+ * Options for the config store.
229
+ */
230
+ interface Options {
231
+ /**
232
+ * Keys to encrypt.
233
+ *
234
+ * The preferred way to set encrypted keys is to use {@link BaseConfigStore.encryptedKeys}
235
+ * so they are constant for all instances of a Config class. However, this is useful for
236
+ * instantiating subclasses of ConfigStore on the fly (like {@link ConfigFile}) without
237
+ * defining a new class.
238
+ */
239
+ encryptedKeys?: Array<string | RegExp>;
240
+ }
241
+ }