UNPKG

9.81 kBTypeScriptView Raw
1import { Nullable } from '@salesforce/ts-types';
2import { OrgConfigProperties } from '../org/orgConfigProperties';
3import { ConfigFile } from './configFile';
4import { ConfigContents, ConfigValue, Key } from './configStackTypes';
5/**
6 * Interface for meta information about config properties
7 */
8export type 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 type 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 = ConfigContents;
185/**
186 * The files where sfdx config values are stored for projects and the global space.
187 *
188 * *Note:* It is not recommended to instantiate this object directly when resolving
189 * config values. Instead use {@link ConfigAggregator}
190 *
191 * ```
192 * const localConfig = await Config.create();
193 * localConfig.set('target-org', 'username@company.org');
194 * await localConfig.write();
195 * ```
196 * https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_cli_config_values.htm
197 */
198export declare class Config extends ConfigFile<ConfigFile.Options, ConfigProperties> {
199 private static allowedProperties;
200 private sfdxPath?;
201 constructor(options?: ConfigFile.Options);
202 /**
203 * Returns the default file name for a config file.
204 *
205 * **See** {@link CONFIG_FILE_NAME}
206 */
207 static getFileName(): string;
208 /**
209 * Returns an array of objects representing the allowed config properties.
210 */
211 static getAllowedProperties(): ConfigPropertyMeta[];
212 /**
213 * Add an array of allowed config properties.
214 *
215 * @param metas Array of objects to set as the allowed config properties.
216 */
217 static addAllowedProperties(metas: ConfigPropertyMeta[]): void;
218 /**
219 * The value of a supported config property.
220 *
221 * @param isGlobal True for a global config. False for a local config.
222 * @param propertyName The name of the property to set.
223 * @param value The property value.
224 */
225 static update<K extends Key<ConfigProperties>>(isGlobal: boolean, propertyName: K, value?: ConfigProperties[K]): Promise<ConfigContents>;
226 /**
227 * Clear all the configured properties both local and global.
228 */
229 static clear(): Promise<void>;
230 static getPropertyConfigMeta(propertyName: string): Nullable<ConfigPropertyMeta>;
231 private static propertyConfigMap;
232 /**
233 * Read, assign, and return the config contents.
234 */
235 read(force?: boolean): Promise<ConfigProperties>;
236 readSync(force?: boolean): ConfigProperties;
237 /**
238 * Writes Config properties taking into account encrypted properties.
239 *
240 * @param newContents The new Config value to persist.
241 */
242 write(): Promise<ConfigProperties>;
243 /**
244 * DO NOT CALL - The config file needs to encrypt values which can only be done asynchronously.
245 * Call {@link SfdxConfig.write} instead.
246 *
247 * **Throws** *{@link SfError}{ name: 'InvalidWriteError' }* Always.
248 *
249 * @param newContents Contents to write
250 */
251 writeSync(newContents?: ConfigProperties): ConfigProperties;
252 /**
253 * Sets a value for a property.
254 *
255 * **Throws** *{@link SfError}{ name: 'UnknownConfigKeyError' }* An attempt to get a property that's not supported.
256 * **Throws** *{@link SfError}{ name: 'InvalidConfigValueError' }* If the input validator fails.
257 *
258 * @param key The property to set.
259 * @param value The value of the property.
260 */
261 set<K extends Key<ConfigProperties>>(key: K, value: ConfigProperties[K]): ConfigProperties;
262 /**
263 * Unsets a value for a property.
264 *
265 * **Throws** *{@link SfError}{ name: 'UnknownConfigKeyError' }* If the input validator fails.
266 *
267 * @param key The property to unset.
268 */
269 unset(key: string): boolean;
270 /**
271 * Get an individual property config.
272 *
273 * **Throws** *{@link SfError}{ name: 'UnknownConfigKeyError' }* An attempt to get a property that's not supported.
274 *
275 * @param propertyName The name of the property.
276 */
277 getPropertyConfig(propertyName: string): ConfigPropertyMeta;
278 /**
279 * Initializer for supported config types.
280 */
281 protected init(): Promise<void>;
282 /**
283 * Encrypts and content properties that have a encryption attribute.
284 *
285 * @param encrypt `true` to encrypt.
286 */
287 private cryptProperties;
288}