UNPKG

10.6 kBTypeScriptView Raw
1import { JsonPrimitive, Nullable } from '@salesforce/ts-types';
2import { OrgConfigProperties } from '../org/orgConfigProperties';
3import { ConfigFile } from './configFile';
4import { ConfigContents, ConfigValue } from './configStore';
5/**
6 * Interface for meta information about config properties
7 */
8export 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 */
42export 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}
54export declare enum SfConfigProperties {
55 /**
56 * Disables telemetry reporting
57 */
58 DISABLE_TELEMETRY = "disable-telemetry"
59}
60export declare const SF_ALLOWED_PROPERTIES: {
61 key: SfConfigProperties;
62 description: string;
63 input: {
64 validator: (value: ConfigValue) => boolean;
65 failedMessage: string;
66 };
67}[];
68export 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}
128export 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})[];
181export declare const SfProperty: {
182 [index: string]: ConfigPropertyMeta;
183};
184export 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 */
200export 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** {@link 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}
291export 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}