@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,357 +1,357 @@
1
- import { Dictionary, JsonMap, Nullable, Optional } from '@salesforce/ts-types';
2
- import { ConfigFile } from './config/configFile';
3
- import { ConfigContents } from './config/configStore';
4
- export declare type PackageDirDependency = {
5
- [k: string]: unknown;
6
- package: string;
7
- versionNumber?: string;
8
- };
9
- export declare type PackageDir = {
10
- ancestorId?: string;
11
- ancestorVersion?: string;
12
- default?: boolean;
13
- definitionFile?: string;
14
- dependencies?: PackageDirDependency[];
15
- includeProfileUserLicenses?: boolean;
16
- package?: string;
17
- path: string;
18
- postInstallScript?: string;
19
- postInstallUrl?: string;
20
- releaseNotesUrl?: string;
21
- uninstallScript?: string;
22
- versionDescription?: string;
23
- versionName?: string;
24
- versionNumber?: string;
25
- };
26
- export declare type NamedPackageDir = PackageDir & {
27
- /**
28
- * The [normalized](https://nodejs.org/api/path.html#path_path_normalize_path) path used as the package name.
29
- */
30
- name: string;
31
- /**
32
- * The absolute path of the package.
33
- */
34
- fullPath: string;
35
- };
36
- export declare type ProjectJson = ConfigContents & {
37
- packageDirectories: PackageDir[];
38
- namespace?: string;
39
- sourceApiVersion?: string;
40
- sfdcLoginUrl?: string;
41
- signupTargetLoginUrl?: string;
42
- oauthLocalPort?: number;
43
- plugins?: {
44
- [k: string]: unknown;
45
- };
46
- packageAliases?: {
47
- [k: string]: string;
48
- };
49
- };
50
- /**
51
- * The sfdx-project.json config object. This file determines if a folder is a valid sfdx project.
52
- *
53
- * *Note:* Any non-standard (not owned by Salesforce) properties stored in sfdx-project.json should
54
- * be in a top level property that represents your project or plugin.
55
- *
56
- * ```
57
- * const project = await SfProject.resolve();
58
- * const projectJson = await project.resolveProjectConfig();
59
- * const myPluginProperties = projectJson.get('myplugin') || {};
60
- * myPluginProperties.myprop = 'someValue';
61
- * projectJson.set('myplugin', myPluginProperties);
62
- * await projectJson.write();
63
- * ```
64
- *
65
- * **See** [force:project:create](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_create_new.htm)
66
- */
67
- export declare class SfProjectJson extends ConfigFile {
68
- static BLOCKLIST: string[];
69
- static getFileName(): string;
70
- static getDefaultOptions(isGlobal?: boolean): ConfigFile.Options;
71
- read(): Promise<ConfigContents>;
72
- readSync(): ConfigContents;
73
- write(newContents?: ConfigContents): Promise<ConfigContents>;
74
- writeSync(newContents?: ConfigContents): ConfigContents;
75
- getContents(): ProjectJson;
76
- getDefaultOptions(options?: ConfigFile.Options): ConfigFile.Options;
77
- /**
78
- * Validates sfdx-project.json against the schema.
79
- *
80
- * Set the `SFDX_PROJECT_JSON_VALIDATION` environment variable to `true` to throw an error when schema validation fails.
81
- * A warning is logged by default when the file is invalid.
82
- *
83
- * ***See*** [sfdx-project.schema.json] ((https://github.com/forcedotcom/schemas/blob/main/sfdx-project.schema.json)
84
- */
85
- schemaValidate(): Promise<void>;
86
- /**
87
- * Returns the `packageDirectories` within sfdx-project.json, first reading
88
- * and validating the file if necessary.
89
- */
90
- getPackageDirectories(): Promise<PackageDir[]>;
91
- /**
92
- * Validates sfdx-project.json against the schema.
93
- *
94
- * Set the `SFDX_PROJECT_JSON_VALIDATION` environment variable to `true` to throw an error when schema validation fails.
95
- * A warning is logged by default when the file is invalid.
96
- *
97
- * ***See*** [sfdx-project.schema.json] ((https://github.com/forcedotcom/schemas/blob/main/sfdx-project.schema.json)
98
- */
99
- schemaValidateSync(): void;
100
- /**
101
- * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
102
- * and validating the file if necessary. i.e. modifying this array will not affect the
103
- * sfdx-project.json file.
104
- */
105
- getPackageDirectoriesSync(): NamedPackageDir[];
106
- /**
107
- * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
108
- * and validating the file if necessary. i.e. modifying this array will not affect the
109
- * sfdx-project.json file.
110
- *
111
- * There can be multiple packages in packageDirectories that point to the same directory.
112
- * This method only returns one packageDirectory entry per unique directory path. This is
113
- * useful when doing source operations based on directories but probably not as useful
114
- * for packaging operations that want to do something for each package entry.
115
- */
116
- getUniquePackageDirectories(): NamedPackageDir[];
117
- /**
118
- * Get a list of the unique package names from within sfdx-project.json. Use {@link SfProject.getUniquePackageDirectories}
119
- * for data other than the names.
120
- */
121
- getUniquePackageNames(): string[];
122
- /**
123
- * Has package directories defined in the project.
124
- */
125
- hasPackages(): boolean;
126
- /**
127
- * Has multiple package directories (MPD) defined in the project.
128
- */
129
- hasMultiplePackages(): boolean;
130
- /**
131
- * Has at least one package alias defined in the project.
132
- */
133
- hasPackageAliases(): Promise<boolean>;
134
- /**
135
- * Get package aliases defined in the project.
136
- */
137
- getPackageAliases(): Nullable<Dictionary<string>>;
138
- /**
139
- * Add a package alias to the project.
140
- * If the alias already exists, it will be overwritten.
141
- *
142
- * @param alias
143
- * @param id
144
- */
145
- addPackageAlias(alias: string, id: string): void;
146
- /**
147
- * Add a package directory to the project.
148
- * If the package directory already exists, the new directory
149
- * properties will be merged with the existing properties.
150
- *
151
- * @param packageDir
152
- */
153
- addPackageDirectory(packageDir: NamedPackageDir): void;
154
- private doesPackageExist;
155
- private validateKeys;
156
- }
157
- /**
158
- * Represents an SFDX project directory. This directory contains a {@link SfProjectJson} config file as well as
159
- * a hidden .sfdx folder that contains all the other local project config files.
160
- *
161
- * ```
162
- * const project = await SfProject.resolve();
163
- * const projectJson = await project.resolveProjectConfig();
164
- * console.log(projectJson.sfdcLoginUrl);
165
- * ```
166
- */
167
- export declare class SfProject {
168
- private path;
169
- private static instances;
170
- private projectConfig;
171
- private sfProjectJson;
172
- private sfProjectJsonGlobal;
173
- private packageDirectories?;
174
- private activePackage;
175
- private packageAliases;
176
- /**
177
- * Do not directly construct instances of this class -- use {@link SfProject.resolve} instead.
178
- *
179
- * @ignore
180
- */
181
- protected constructor(path: string);
182
- /**
183
- * Get a Project from a given path or from the working directory.
184
- *
185
- * @param path The path of the project.
186
- *
187
- * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
188
- */
189
- static resolve(path?: string): Promise<SfProject>;
190
- /**
191
- * Get a Project from a given path or from the working directory.
192
- *
193
- * @param path The path of the project.
194
- *
195
- * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
196
- */
197
- static getInstance(path?: string): SfProject;
198
- /**
199
- * Performs an upward directory search for an sfdx project file. Returns the absolute path to the project.
200
- *
201
- * @param dir The directory path to start traversing from.
202
- *
203
- * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
204
- *
205
- * **See** {@link traverseForFile}
206
- *
207
- * **See** [process.cwd()](https://nodejs.org/api/process.html#process_process_cwd)
208
- */
209
- static resolveProjectPath(dir?: string): Promise<string>;
210
- /**
211
- * Performs a synchronous upward directory search for an sfdx project file. Returns the absolute path to the project.
212
- *
213
- * @param dir The directory path to start traversing from.
214
- *
215
- * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
216
- *
217
- * **See** {@link traverseForFileSync}
218
- *
219
- * **See** [process.cwd()](https://nodejs.org/api/process.html#process_process_cwd)
220
- */
221
- static resolveProjectPathSync(dir?: string): string;
222
- /**
223
- * Returns the project path.
224
- */
225
- getPath(): string;
226
- /**
227
- * Get the sfdx-project.json config. The global sfdx-project.json is used for user defaults
228
- * that are not checked in to the project specific file.
229
- *
230
- * *Note:* When reading values from {@link SfProjectJson}, it is recommended to use
231
- * {@link SfProject.resolveProjectConfig} instead.
232
- *
233
- * @param isGlobal True to get the global project file, otherwise the local project config.
234
- */
235
- retrieveSfProjectJson(isGlobal?: boolean): Promise<SfProjectJson>;
236
- /**
237
- * Get the sfdx-project.json config. The global sfdx-project.json is used for user defaults
238
- * that are not checked in to the project specific file.
239
- *
240
- * *Note:* When reading values from {@link SfProjectJson}, it is recommended to use
241
- * {@link SfProject.resolveProjectConfig} instead.
242
- *
243
- * This is the sync method of {@link SfProject.resolveSfProjectJson}
244
- *
245
- * @param isGlobal True to get the global project file, otherwise the local project config.
246
- */
247
- getSfProjectJson(isGlobal?: boolean): SfProjectJson;
248
- /**
249
- * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
250
- * and validating the file if necessary. i.e. modifying this array will not affect the
251
- * sfdx-project.json file.
252
- */
253
- getPackageDirectories(): NamedPackageDir[];
254
- /**
255
- * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
256
- * and validating the file if necessary. i.e. modifying this array will not affect the
257
- * sfdx-project.json file.
258
- *
259
- * There can be multiple packages in packageDirectories that point to the same directory.
260
- * This method only returns one packageDirectory entry per unique directory path. This is
261
- * useful when doing source operations based on directories but probably not as useful
262
- * for packaging operations that want to do something for each package entry.
263
- */
264
- getUniquePackageDirectories(): NamedPackageDir[];
265
- /**
266
- * Get a list of the unique package names from within sfdx-project.json. Use {@link SfProject.getUniquePackageDirectories}
267
- * for data other than the names.
268
- */
269
- getUniquePackageNames(): string[];
270
- /**
271
- * Returns the package from a file path.
272
- *
273
- * @param path A file path. E.g. /Users/jsmith/projects/ebikes-lwc/force-app/apex/my-cls.cls
274
- */
275
- getPackageFromPath(path: string): Optional<NamedPackageDir>;
276
- /**
277
- * Returns the package name, E.g. 'force-app', from a file path.
278
- *
279
- * @param path A file path. E.g. /Users/jsmith/projects/ebikes-lwc/force-app/apex/my-cls.cls
280
- */
281
- getPackageNameFromPath(path: string): Optional<string>;
282
- /**
283
- * Returns the package directory.
284
- *
285
- * @param packageName Name of the package directory. E.g., 'force-app'
286
- */
287
- getPackage(packageName: string): Optional<NamedPackageDir>;
288
- /**
289
- * Returns the package directory.
290
- *
291
- * @param packageName Name of the package directory. E.g., 'force-app'
292
- */
293
- findPackage(predicate: (packageDir: NamedPackageDir) => boolean): Optional<NamedPackageDir>;
294
- /**
295
- * Returns the absolute path of the package directory ending with the path separator.
296
- * E.g., /Users/jsmith/projects/ebikes-lwc/force-app/
297
- *
298
- * @param packageName Name of the package directory. E.g., 'force-app'
299
- */
300
- getPackagePath(packageName: string): Optional<string>;
301
- /**
302
- * Has package directories defined in the project.
303
- */
304
- hasPackages(): boolean;
305
- /**
306
- * Has multiple package directories (MPD) defined in the project.
307
- */
308
- hasMultiplePackages(): boolean;
309
- /**
310
- * Get the currently activated package on the project. This has no implication on sfdx-project.json
311
- * but is useful for keeping track of package and source specific options in a process.
312
- */
313
- getActivePackage(): Nullable<NamedPackageDir>;
314
- /**
315
- * Set the currently activated package on the project. This has no implication on sfdx-project.json
316
- * but is useful for keeping track of package and source specific options in a process.
317
- *
318
- * @param packageName The package name to activate. E.g. 'force-app'
319
- */
320
- setActivePackage(packageName: Nullable<string>): void;
321
- /**
322
- * Get the project's default package directory defined in sfdx-project.json using first 'default: true'
323
- * found. The first entry is returned if no default is specified.
324
- */
325
- getDefaultPackage(): NamedPackageDir;
326
- /**
327
- * The project config is resolved from local and global {@link SfProjectJson},
328
- * {@link ConfigAggregator}, and a set of defaults. It is recommended to use
329
- * this when reading values from SfProjectJson.
330
- *
331
- * The global {@link SfProjectJson} is used to allow the user to provide default values they
332
- * may not want checked into their project's source.
333
- *
334
- * @returns A resolved config object that contains a bunch of different
335
- * properties, including some 3rd party custom properties.
336
- */
337
- resolveProjectConfig(): Promise<JsonMap>;
338
- hasPackageAliases(): Promise<boolean>;
339
- /**
340
- * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
341
- * and validating the file if necessary. i.e. modifying this array will not affect the
342
- * sfdx-project.json file.
343
- */
344
- getPackageAliases(): Nullable<Dictionary<string>>;
345
- getPackageIdFromAlias(alias: string): Optional<string>;
346
- getAliasesFromPackageId(id: string): string[];
347
- }
348
- /**
349
- * @deprecated use SfProject instead
350
- */
351
- export declare class SfdxProject extends SfProject {
352
- }
353
- /**
354
- * @deprecated use SfProjectJson instead
355
- */
356
- export declare class SfdxProjectJson extends SfProjectJson {
357
- }
1
+ import { Dictionary, JsonMap, Nullable, Optional } from '@salesforce/ts-types';
2
+ import { ConfigFile } from './config/configFile';
3
+ import { ConfigContents } from './config/configStore';
4
+ export declare type PackageDirDependency = {
5
+ [k: string]: unknown;
6
+ package: string;
7
+ versionNumber?: string;
8
+ };
9
+ export declare type PackageDir = {
10
+ ancestorId?: string;
11
+ ancestorVersion?: string;
12
+ default?: boolean;
13
+ definitionFile?: string;
14
+ dependencies?: PackageDirDependency[];
15
+ includeProfileUserLicenses?: boolean;
16
+ package?: string;
17
+ path: string;
18
+ postInstallScript?: string;
19
+ postInstallUrl?: string;
20
+ releaseNotesUrl?: string;
21
+ uninstallScript?: string;
22
+ versionDescription?: string;
23
+ versionName?: string;
24
+ versionNumber?: string;
25
+ };
26
+ export declare type NamedPackageDir = PackageDir & {
27
+ /**
28
+ * The [normalized](https://nodejs.org/api/path.html#path_path_normalize_path) path used as the package name.
29
+ */
30
+ name: string;
31
+ /**
32
+ * The absolute path of the package.
33
+ */
34
+ fullPath: string;
35
+ };
36
+ export declare type ProjectJson = ConfigContents & {
37
+ packageDirectories: PackageDir[];
38
+ namespace?: string;
39
+ sourceApiVersion?: string;
40
+ sfdcLoginUrl?: string;
41
+ signupTargetLoginUrl?: string;
42
+ oauthLocalPort?: number;
43
+ plugins?: {
44
+ [k: string]: unknown;
45
+ };
46
+ packageAliases?: {
47
+ [k: string]: string;
48
+ };
49
+ };
50
+ /**
51
+ * The sfdx-project.json config object. This file determines if a folder is a valid sfdx project.
52
+ *
53
+ * *Note:* Any non-standard (not owned by Salesforce) properties stored in sfdx-project.json should
54
+ * be in a top level property that represents your project or plugin.
55
+ *
56
+ * ```
57
+ * const project = await SfProject.resolve();
58
+ * const projectJson = await project.resolveProjectConfig();
59
+ * const myPluginProperties = projectJson.get('myplugin') || {};
60
+ * myPluginProperties.myprop = 'someValue';
61
+ * projectJson.set('myplugin', myPluginProperties);
62
+ * await projectJson.write();
63
+ * ```
64
+ *
65
+ * **See** [force:project:create](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_create_new.htm)
66
+ */
67
+ export declare class SfProjectJson extends ConfigFile {
68
+ static BLOCKLIST: string[];
69
+ static getFileName(): string;
70
+ static getDefaultOptions(isGlobal?: boolean): ConfigFile.Options;
71
+ read(): Promise<ConfigContents>;
72
+ readSync(): ConfigContents;
73
+ write(newContents?: ConfigContents): Promise<ConfigContents>;
74
+ writeSync(newContents?: ConfigContents): ConfigContents;
75
+ getContents(): ProjectJson;
76
+ getDefaultOptions(options?: ConfigFile.Options): ConfigFile.Options;
77
+ /**
78
+ * Validates sfdx-project.json against the schema.
79
+ *
80
+ * Set the `SFDX_PROJECT_JSON_VALIDATION` environment variable to `true` to throw an error when schema validation fails.
81
+ * A warning is logged by default when the file is invalid.
82
+ *
83
+ * ***See*** [sfdx-project.schema.json] ((https://github.com/forcedotcom/schemas/blob/main/sfdx-project.schema.json)
84
+ */
85
+ schemaValidate(): Promise<void>;
86
+ /**
87
+ * Returns the `packageDirectories` within sfdx-project.json, first reading
88
+ * and validating the file if necessary.
89
+ */
90
+ getPackageDirectories(): Promise<PackageDir[]>;
91
+ /**
92
+ * Validates sfdx-project.json against the schema.
93
+ *
94
+ * Set the `SFDX_PROJECT_JSON_VALIDATION` environment variable to `true` to throw an error when schema validation fails.
95
+ * A warning is logged by default when the file is invalid.
96
+ *
97
+ * ***See*** [sfdx-project.schema.json] ((https://github.com/forcedotcom/schemas/blob/main/sfdx-project.schema.json)
98
+ */
99
+ schemaValidateSync(): void;
100
+ /**
101
+ * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
102
+ * and validating the file if necessary. i.e. modifying this array will not affect the
103
+ * sfdx-project.json file.
104
+ */
105
+ getPackageDirectoriesSync(): NamedPackageDir[];
106
+ /**
107
+ * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
108
+ * and validating the file if necessary. i.e. modifying this array will not affect the
109
+ * sfdx-project.json file.
110
+ *
111
+ * There can be multiple packages in packageDirectories that point to the same directory.
112
+ * This method only returns one packageDirectory entry per unique directory path. This is
113
+ * useful when doing source operations based on directories but probably not as useful
114
+ * for packaging operations that want to do something for each package entry.
115
+ */
116
+ getUniquePackageDirectories(): NamedPackageDir[];
117
+ /**
118
+ * Get a list of the unique package names from within sfdx-project.json. Use {@link SfProject.getUniquePackageDirectories}
119
+ * for data other than the names.
120
+ */
121
+ getUniquePackageNames(): string[];
122
+ /**
123
+ * Has package directories defined in the project.
124
+ */
125
+ hasPackages(): boolean;
126
+ /**
127
+ * Has multiple package directories (MPD) defined in the project.
128
+ */
129
+ hasMultiplePackages(): boolean;
130
+ /**
131
+ * Has at least one package alias defined in the project.
132
+ */
133
+ hasPackageAliases(): Promise<boolean>;
134
+ /**
135
+ * Get package aliases defined in the project.
136
+ */
137
+ getPackageAliases(): Nullable<Dictionary<string>>;
138
+ /**
139
+ * Add a package alias to the project.
140
+ * If the alias already exists, it will be overwritten.
141
+ *
142
+ * @param alias
143
+ * @param id
144
+ */
145
+ addPackageAlias(alias: string, id: string): void;
146
+ /**
147
+ * Add a package directory to the project.
148
+ * If the package directory already exists, the new directory
149
+ * properties will be merged with the existing properties.
150
+ *
151
+ * @param packageDir
152
+ */
153
+ addPackageDirectory(packageDir: NamedPackageDir): void;
154
+ private doesPackageExist;
155
+ private validateKeys;
156
+ }
157
+ /**
158
+ * Represents an SFDX project directory. This directory contains a {@link SfProjectJson} config file as well as
159
+ * a hidden .sfdx folder that contains all the other local project config files.
160
+ *
161
+ * ```
162
+ * const project = await SfProject.resolve();
163
+ * const projectJson = await project.resolveProjectConfig();
164
+ * console.log(projectJson.sfdcLoginUrl);
165
+ * ```
166
+ */
167
+ export declare class SfProject {
168
+ private path;
169
+ private static instances;
170
+ private projectConfig;
171
+ private sfProjectJson;
172
+ private sfProjectJsonGlobal;
173
+ private packageDirectories?;
174
+ private activePackage;
175
+ private packageAliases;
176
+ /**
177
+ * Do not directly construct instances of this class -- use {@link SfProject.resolve} instead.
178
+ *
179
+ * @ignore
180
+ */
181
+ protected constructor(path: string);
182
+ /**
183
+ * Get a Project from a given path or from the working directory.
184
+ *
185
+ * @param path The path of the project.
186
+ *
187
+ * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
188
+ */
189
+ static resolve(path?: string): Promise<SfProject>;
190
+ /**
191
+ * Get a Project from a given path or from the working directory.
192
+ *
193
+ * @param path The path of the project.
194
+ *
195
+ * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
196
+ */
197
+ static getInstance(path?: string): SfProject;
198
+ /**
199
+ * Performs an upward directory search for an sfdx project file. Returns the absolute path to the project.
200
+ *
201
+ * @param dir The directory path to start traversing from.
202
+ *
203
+ * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
204
+ *
205
+ * **See** {@link traverseForFile}
206
+ *
207
+ * **See** [process.cwd()](https://nodejs.org/api/process.html#process_process_cwd)
208
+ */
209
+ static resolveProjectPath(dir?: string): Promise<string>;
210
+ /**
211
+ * Performs a synchronous upward directory search for an sfdx project file. Returns the absolute path to the project.
212
+ *
213
+ * @param dir The directory path to start traversing from.
214
+ *
215
+ * **Throws** *{@link SfError}{ name: 'InvalidProjectWorkspaceError' }* If the current folder is not located in a workspace.
216
+ *
217
+ * **See** {@link traverseForFileSync}
218
+ *
219
+ * **See** [process.cwd()](https://nodejs.org/api/process.html#process_process_cwd)
220
+ */
221
+ static resolveProjectPathSync(dir?: string): string;
222
+ /**
223
+ * Returns the project path.
224
+ */
225
+ getPath(): string;
226
+ /**
227
+ * Get the sfdx-project.json config. The global sfdx-project.json is used for user defaults
228
+ * that are not checked in to the project specific file.
229
+ *
230
+ * *Note:* When reading values from {@link SfProjectJson}, it is recommended to use
231
+ * {@link SfProject.resolveProjectConfig} instead.
232
+ *
233
+ * @param isGlobal True to get the global project file, otherwise the local project config.
234
+ */
235
+ retrieveSfProjectJson(isGlobal?: boolean): Promise<SfProjectJson>;
236
+ /**
237
+ * Get the sfdx-project.json config. The global sfdx-project.json is used for user defaults
238
+ * that are not checked in to the project specific file.
239
+ *
240
+ * *Note:* When reading values from {@link SfProjectJson}, it is recommended to use
241
+ * {@link SfProject.resolveProjectConfig} instead.
242
+ *
243
+ * This is the sync method of {@link SfProject.resolveSfProjectJson}
244
+ *
245
+ * @param isGlobal True to get the global project file, otherwise the local project config.
246
+ */
247
+ getSfProjectJson(isGlobal?: boolean): SfProjectJson;
248
+ /**
249
+ * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
250
+ * and validating the file if necessary. i.e. modifying this array will not affect the
251
+ * sfdx-project.json file.
252
+ */
253
+ getPackageDirectories(): NamedPackageDir[];
254
+ /**
255
+ * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
256
+ * and validating the file if necessary. i.e. modifying this array will not affect the
257
+ * sfdx-project.json file.
258
+ *
259
+ * There can be multiple packages in packageDirectories that point to the same directory.
260
+ * This method only returns one packageDirectory entry per unique directory path. This is
261
+ * useful when doing source operations based on directories but probably not as useful
262
+ * for packaging operations that want to do something for each package entry.
263
+ */
264
+ getUniquePackageDirectories(): NamedPackageDir[];
265
+ /**
266
+ * Get a list of the unique package names from within sfdx-project.json. Use {@link SfProject.getUniquePackageDirectories}
267
+ * for data other than the names.
268
+ */
269
+ getUniquePackageNames(): string[];
270
+ /**
271
+ * Returns the package from a file path.
272
+ *
273
+ * @param path A file path. E.g. /Users/jsmith/projects/ebikes-lwc/force-app/apex/my-cls.cls
274
+ */
275
+ getPackageFromPath(path: string): Optional<NamedPackageDir>;
276
+ /**
277
+ * Returns the package name, E.g. 'force-app', from a file path.
278
+ *
279
+ * @param path A file path. E.g. /Users/jsmith/projects/ebikes-lwc/force-app/apex/my-cls.cls
280
+ */
281
+ getPackageNameFromPath(path: string): Optional<string>;
282
+ /**
283
+ * Returns the package directory.
284
+ *
285
+ * @param packageName Name of the package directory. E.g., 'force-app'
286
+ */
287
+ getPackage(packageName: string): Optional<NamedPackageDir>;
288
+ /**
289
+ * Returns the package directory.
290
+ *
291
+ * @param packageName Name of the package directory. E.g., 'force-app'
292
+ */
293
+ findPackage(predicate: (packageDir: NamedPackageDir) => boolean): Optional<NamedPackageDir>;
294
+ /**
295
+ * Returns the absolute path of the package directory ending with the path separator.
296
+ * E.g., /Users/jsmith/projects/ebikes-lwc/force-app/
297
+ *
298
+ * @param packageName Name of the package directory. E.g., 'force-app'
299
+ */
300
+ getPackagePath(packageName: string): Optional<string>;
301
+ /**
302
+ * Has package directories defined in the project.
303
+ */
304
+ hasPackages(): boolean;
305
+ /**
306
+ * Has multiple package directories (MPD) defined in the project.
307
+ */
308
+ hasMultiplePackages(): boolean;
309
+ /**
310
+ * Get the currently activated package on the project. This has no implication on sfdx-project.json
311
+ * but is useful for keeping track of package and source specific options in a process.
312
+ */
313
+ getActivePackage(): Nullable<NamedPackageDir>;
314
+ /**
315
+ * Set the currently activated package on the project. This has no implication on sfdx-project.json
316
+ * but is useful for keeping track of package and source specific options in a process.
317
+ *
318
+ * @param packageName The package name to activate. E.g. 'force-app'
319
+ */
320
+ setActivePackage(packageName: Nullable<string>): void;
321
+ /**
322
+ * Get the project's default package directory defined in sfdx-project.json using first 'default: true'
323
+ * found. The first entry is returned if no default is specified.
324
+ */
325
+ getDefaultPackage(): NamedPackageDir;
326
+ /**
327
+ * The project config is resolved from local and global {@link SfProjectJson},
328
+ * {@link ConfigAggregator}, and a set of defaults. It is recommended to use
329
+ * this when reading values from SfProjectJson.
330
+ *
331
+ * The global {@link SfProjectJson} is used to allow the user to provide default values they
332
+ * may not want checked into their project's source.
333
+ *
334
+ * @returns A resolved config object that contains a bunch of different
335
+ * properties, including some 3rd party custom properties.
336
+ */
337
+ resolveProjectConfig(): Promise<JsonMap>;
338
+ hasPackageAliases(): Promise<boolean>;
339
+ /**
340
+ * Returns a read-only list of `packageDirectories` within sfdx-project.json, first reading
341
+ * and validating the file if necessary. i.e. modifying this array will not affect the
342
+ * sfdx-project.json file.
343
+ */
344
+ getPackageAliases(): Nullable<Dictionary<string>>;
345
+ getPackageIdFromAlias(alias: string): Optional<string>;
346
+ getAliasesFromPackageId(id: string): string[];
347
+ }
348
+ /**
349
+ * @deprecated use SfProject instead
350
+ */
351
+ export declare class SfdxProject extends SfProject {
352
+ }
353
+ /**
354
+ * @deprecated use SfProjectJson instead
355
+ */
356
+ export declare class SfdxProjectJson extends SfProjectJson {
357
+ }