1 | import { JsonPrimitive, Nullable } from '@salesforce/ts-types';
|
2 | import { OrgConfigProperties } from '../org/orgConfigProperties';
|
3 | import { ConfigFile } from './configFile';
|
4 | import { ConfigContents, ConfigValue } from './configStore';
|
5 | /**
|
6 | * Interface for meta information about config properties
|
7 | */
|
8 | export interface ConfigPropertyMeta {
|
9 | /**
|
10 | * The config property name.
|
11 | */
|
12 | key: string;
|
13 | /**
|
14 | * Description
|
15 | */
|
16 | description: string;
|
17 | /**
|
18 | * Reference to the config data input validation.
|
19 | */
|
20 | input?: ConfigPropertyMetaInput;
|
21 | /**
|
22 | * True if the property should be indirectly hidden from the user.
|
23 | */
|
24 | hidden?: boolean;
|
25 | /**
|
26 | * True if the property values should be stored encrypted.
|
27 | */
|
28 | encrypted?: boolean;
|
29 | /**
|
30 | * True if the property is deprecated
|
31 | */
|
32 | deprecated?: boolean;
|
33 | /**
|
34 | * Reference to config property name that will eventually replace this one.
|
35 | * Is only used if deprecated is set to true.
|
36 | */
|
37 | newKey?: string;
|
38 | }
|
39 | /**
|
40 | * Config property input validation
|
41 | */
|
42 | export interface ConfigPropertyMetaInput {
|
43 | /**
|
44 | * Tests if the input value is valid and returns true if the input data is valid.
|
45 | *
|
46 | * @param value The input value.
|
47 | */
|
48 | validator: (value: ConfigValue) => boolean;
|
49 | /**
|
50 | * The message to return in the error if the validation fails.
|
51 | */
|
52 | failedMessage: string | ((value: ConfigValue) => string);
|
53 | }
|
54 | export declare enum SfConfigProperties {
|
55 | /**
|
56 | * Disables telemetry reporting
|
57 | */
|
58 | DISABLE_TELEMETRY = "disable-telemetry"
|
59 | }
|
60 | export declare const SF_ALLOWED_PROPERTIES: {
|
61 | key: SfConfigProperties;
|
62 | description: string;
|
63 | input: {
|
64 | validator: (value: ConfigValue) => boolean;
|
65 | failedMessage: string;
|
66 | };
|
67 | }[];
|
68 | export declare enum SfdxPropertyKeys {
|
69 | /**
|
70 | * Username associated with the default dev hub org.
|
71 | *
|
72 | * @deprecated Replaced by OrgConfigProperties.TARGET_DEV_HUB in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
73 | * will remain in v3 for the foreseeable future so that `sfdx-core` can map between `sf` and `sfdx` config values
|
74 | */
|
75 | DEFAULT_DEV_HUB_USERNAME = "defaultdevhubusername",
|
76 | /**
|
77 | * Username associate with the default org.
|
78 | *
|
79 | * @deprecated Replaced by OrgConfigProperties.TARGET_ORG in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
80 | * will remain in v3 for the foreseeable future so that `sfdx-core` can map between `sf` and `sfdx` config values
|
81 | */
|
82 | DEFAULT_USERNAME = "defaultusername",
|
83 | /**
|
84 | * The sid for the debugger configuration.
|
85 | *
|
86 | * @deprecated Replaced by OrgConfigProperties.ORG_ISV_DEBUGGER_SID in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
87 | */
|
88 | ISV_DEBUGGER_SID = "isvDebuggerSid",
|
89 | /**
|
90 | * The url for the debugger configuration.
|
91 | *
|
92 | * @deprecated Replaced by OrgConfigProperties.ORG_ISV_DEBUGGER_URL in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
93 | */
|
94 | ISV_DEBUGGER_URL = "isvDebuggerUrl",
|
95 | /**
|
96 | * The api version
|
97 | *
|
98 | * @deprecated Replaced by OrgConfigProperties.ORG_API_VERSION in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
99 | */
|
100 | API_VERSION = "apiVersion",
|
101 | /**
|
102 | * Disables telemetry reporting
|
103 | *
|
104 | * @deprecated Replaced by SfPropertyKeys.DISABLE_TELEMETRY in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
105 | */
|
106 | DISABLE_TELEMETRY = "disableTelemetry",
|
107 | /**
|
108 | * Custom templates repo or local location.
|
109 | *
|
110 | * @deprecated Replaced by OrgConfigProperties.ORG_CUSTOM_METADATA_TEMPLATES in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
111 | */
|
112 | CUSTOM_ORG_METADATA_TEMPLATES = "customOrgMetadataTemplates",
|
113 | /**
|
114 | * allows users to override the 10,000 result query limit
|
115 | *
|
116 | * @deprecated Replaced by OrgConfigProperties.ORG_MAX_QUERY_LIMIT in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
117 | */
|
118 | MAX_QUERY_LIMIT = "maxQueryLimit",
|
119 | /**
|
120 | * @deprecated
|
121 | */
|
122 | REST_DEPLOY = "restDeploy",
|
123 | /**
|
124 | * @deprecated Replaced by OrgConfigProperties.ORG_INSTANCE_URL in v3 {@link https://github.com/forcedotcom/sfdx-core/blob/v3/MIGRATING_V2-V3.md#config}
|
125 | */
|
126 | INSTANCE_URL = "instanceUrl"
|
127 | }
|
128 | export declare const SFDX_ALLOWED_PROPERTIES: ({
|
129 | key: SfdxPropertyKeys;
|
130 | description: string;
|
131 | newKey: OrgConfigProperties;
|
132 | deprecated: boolean;
|
133 | input: {
|
134 | validator: (value: ConfigValue) => boolean;
|
135 | failedMessage: string;
|
136 | };
|
137 | encrypted?: undefined;
|
138 | hidden?: undefined;
|
139 | } | {
|
140 | key: SfdxPropertyKeys;
|
141 | newKey: OrgConfigProperties;
|
142 | deprecated: boolean;
|
143 | description: string;
|
144 | input?: undefined;
|
145 | encrypted?: undefined;
|
146 | hidden?: undefined;
|
147 | } | {
|
148 | key: SfdxPropertyKeys;
|
149 | newKey: OrgConfigProperties;
|
150 | deprecated: boolean;
|
151 | description: string;
|
152 | encrypted: boolean;
|
153 | input: {
|
154 | validator: (value: ConfigValue) => boolean;
|
155 | failedMessage: string;
|
156 | };
|
157 | hidden?: undefined;
|
158 | } | {
|
159 | key: SfdxPropertyKeys;
|
160 | newKey: SfConfigProperties;
|
161 | deprecated: boolean;
|
162 | description: string;
|
163 | input: {
|
164 | validator: (value: ConfigValue) => boolean;
|
165 | failedMessage: string;
|
166 | };
|
167 | encrypted?: undefined;
|
168 | hidden?: undefined;
|
169 | } | {
|
170 | key: SfdxPropertyKeys;
|
171 | description: string;
|
172 | hidden: boolean;
|
173 | newKey: string;
|
174 | deprecated: boolean;
|
175 | input: {
|
176 | validator: (value: ConfigValue) => boolean;
|
177 | failedMessage: string;
|
178 | };
|
179 | encrypted?: undefined;
|
180 | })[];
|
181 | export declare const SfProperty: {
|
182 | [index: string]: ConfigPropertyMeta;
|
183 | };
|
184 | export type ConfigProperties = {
|
185 | [index: string]: JsonPrimitive;
|
186 | };
|
187 | /**
|
188 | * The files where sfdx config values are stored for projects and the global space.
|
189 | *
|
190 | * *Note:* It is not recommended to instantiate this object directly when resolving
|
191 | * config values. Instead use {@link ConfigAggregator}
|
192 | *
|
193 | * ```
|
194 | * const localConfig = await Config.create();
|
195 | * localConfig.set('target-org', 'username@company.org');
|
196 | * await localConfig.write();
|
197 | * ```
|
198 | * https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_cli_config_values.htm
|
199 | */
|
200 | export declare class Config extends ConfigFile<ConfigFile.Options, ConfigProperties> {
|
201 | private static allowedProperties;
|
202 | private sfdxConfig;
|
203 | constructor(options?: ConfigFile.Options);
|
204 | /**
|
205 | * Returns the default file name for a config file.
|
206 | *
|
207 | * **See** { CONFIG_FILE_NAME}
|
208 | */
|
209 | static getFileName(): string;
|
210 | /**
|
211 | * Returns an array of objects representing the allowed config properties.
|
212 | */
|
213 | static getAllowedProperties(): ConfigPropertyMeta[];
|
214 | /**
|
215 | * Add an array of allowed config properties.
|
216 | *
|
217 | * @param metas Array of objects to set as the allowed config properties.
|
218 | */
|
219 | static addAllowedProperties(metas: ConfigPropertyMeta[]): void;
|
220 | /**
|
221 | * The value of a supported config property.
|
222 | *
|
223 | * @param isGlobal True for a global config. False for a local config.
|
224 | * @param propertyName The name of the property to set.
|
225 | * @param value The property value.
|
226 | */
|
227 | static update(isGlobal: boolean, propertyName: string, value?: ConfigValue): Promise<ConfigContents>;
|
228 | /**
|
229 | * Clear all the configured properties both local and global.
|
230 | */
|
231 | static clear(): Promise<void>;
|
232 | static getPropertyConfigMeta(propertyName: string): Nullable<ConfigPropertyMeta>;
|
233 | private static propertyConfigMap;
|
234 | /**
|
235 | * Read, assign, and return the config contents.
|
236 | */
|
237 | read(force?: boolean): Promise<ConfigProperties>;
|
238 | readSync(force?: boolean): ConfigProperties;
|
239 | /**
|
240 | * Writes Config properties taking into account encrypted properties.
|
241 | *
|
242 | * @param newContents The new Config value to persist.
|
243 | */
|
244 | write(newContents?: ConfigProperties): Promise<ConfigProperties>;
|
245 | /**
|
246 | * DO NOT CALL - The config file needs to encrypt values which can only be done asynchronously.
|
247 | * Call {@link SfdxConfig.write} instead.
|
248 | *
|
249 | * **Throws** *{@link SfError}{ name: 'InvalidWriteError' }* Always.
|
250 | *
|
251 | * @param newContents Contents to write
|
252 | */
|
253 | writeSync(newContents?: ConfigProperties): ConfigProperties;
|
254 | /**
|
255 | * Sets a value for a property.
|
256 | *
|
257 | * **Throws** *{@link SfError}{ name: 'UnknownConfigKeyError' }* An attempt to get a property that's not supported.
|
258 | * **Throws** *{@link SfError}{ name: 'InvalidConfigValueError' }* If the input validator fails.
|
259 | *
|
260 | * @param key The property to set.
|
261 | * @param value The value of the property.
|
262 | */
|
263 | set(key: string, value: JsonPrimitive): ConfigProperties;
|
264 | /**
|
265 | * Unsets a value for a property.
|
266 | *
|
267 | * **Throws** *{@link SfError}{ name: 'UnknownConfigKeyError' }* If the input validator fails.
|
268 | *
|
269 | * @param key The property to unset.
|
270 | */
|
271 | unset(key: string): boolean;
|
272 | /**
|
273 | * Get an individual property config.
|
274 | *
|
275 | * **Throws** *{@link SfError}{ name: 'UnknownConfigKeyError' }* An attempt to get a property that's not supported.
|
276 | *
|
277 | * @param propertyName The name of the property.
|
278 | */
|
279 | getPropertyConfig(propertyName: string): ConfigPropertyMeta;
|
280 | /**
|
281 | * Initializer for supported config types.
|
282 | */
|
283 | protected init(): Promise<void>;
|
284 | /**
|
285 | * Encrypts and content properties that have a encryption attribute.
|
286 | *
|
287 | * @param encrypt `true` to encrypt.
|
288 | */
|
289 | private cryptProperties;
|
290 | }
|
291 | export declare class SfdxConfig {
|
292 | private options;
|
293 | private config;
|
294 | private sfdxPath;
|
295 | constructor(options: ConfigFile.Options, config: Config);
|
296 | /**
|
297 | * If Global.SFDX_INTEROPERABILITY is enabled, merge the sfdx config into the sf config
|
298 | */
|
299 | merge(config: ConfigProperties): ConfigProperties | undefined;
|
300 | write(config?: import("@salesforce/ts-types").JsonMap): Promise<void>;
|
301 | private readSync;
|
302 | private getSfdxPath;
|
303 | /**
|
304 | * If toNew is specified: migrate all deprecated configs with a newKey to the newKey.
|
305 | * - For example, defaultusername will be renamed to target-org.
|
306 | *
|
307 | * If toOld is specified: migrate all deprecated configs back to their original key.
|
308 | * - For example, target-org will be renamed to defaultusername.
|
309 | */
|
310 | private translate;
|
311 | }
|