@salesforce/core 3.22.0 → 3.23.1

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [3.23.1](https://github.com/forcedotcom/sfdx-core/compare/v3.23.0...v3.23.1) (2022-06-30)
6
+
7
+ ### Bug Fixes
8
+
9
+ - isScratch should be boolean ([ebda782](https://github.com/forcedotcom/sfdx-core/commit/ebda782bfd4f3927bc12ce4e6402673361ac47d6))
10
+ - update AuthFields type ([766efec](https://github.com/forcedotcom/sfdx-core/commit/766efec26f404cc1f0e4d380d82f4f05aa455e95))
11
+
12
+ ## [3.23.0](https://github.com/forcedotcom/sfdx-core/compare/v3.22.1...v3.23.0) (2022-06-30)
13
+
14
+ ### Features
15
+
16
+ - support more enhanced domains, wider test cases ([f1bac94](https://github.com/forcedotcom/sfdx-core/commit/f1bac945d9b135a9a8165260b95f7de5568ccca6))
17
+
18
+ ### [3.22.1](https://github.com/forcedotcom/sfdx-core/compare/v3.22.0...v3.22.1) (2022-06-28)
19
+
20
+ ### Bug Fixes
21
+
22
+ - encrypted key regex tests will no longer be stateful ([06b7fa2](https://github.com/forcedotcom/sfdx-core/commit/06b7fa2f41401155b472c84f13cbf5608150a43e))
23
+ - update dev-scripts so yarn build won't change line endings for LICENSE.txt on Windows ([ec5e48e](https://github.com/forcedotcom/sfdx-core/commit/ec5e48ee1dab2b3999f630aa56c53d353baa717e))
24
+
5
25
  ## [3.22.0](https://github.com/forcedotcom/sfdx-core/compare/v3.21.6...v3.22.0) (2022-06-23)
6
26
 
7
27
  ### Features
@@ -346,5 +346,6 @@ class BaseConfigStore extends kit_1.AsyncOptionalCreatable {
346
346
  }
347
347
  }
348
348
  exports.BaseConfigStore = BaseConfigStore;
349
+ // If encryptedKeys is an array of RegExps, they should not contain the /g (global) or /y (sticky) flags to avoid stateful issues.
349
350
  BaseConfigStore.encryptedKeys = [];
350
351
  //# sourceMappingURL=configStore.js.map
@@ -24,5 +24,5 @@ class TokensConfig extends configFile_1.ConfigFile {
24
24
  }
25
25
  }
26
26
  exports.TokensConfig = TokensConfig;
27
- TokensConfig.encryptedKeys = [/token/gi, /password/gi, /secret/gi];
27
+ TokensConfig.encryptedKeys = [/token/i, /password/i, /secret/i];
28
28
  //# sourceMappingURL=tokensConfig.js.map
@@ -2,6 +2,7 @@ import { AsyncOptionalCreatable } from '@salesforce/kit';
2
2
  import { Nullable } from '@salesforce/ts-types';
3
3
  import { OAuth2, OAuth2Config as JsforceOAuth2Config } from 'jsforce';
4
4
  import { Connection } from './connection';
5
+ import { Org } from './org';
5
6
  export declare type OAuth2Config = JsforceOAuth2Config & {
6
7
  privateKey?: string;
7
8
  privateKeyFile?: string;
@@ -39,6 +40,12 @@ export declare type AuthFields = {
39
40
  userProfileName?: string;
40
41
  expirationDate?: string;
41
42
  tracksSource?: boolean;
43
+ [Org.Fields.NAME]?: string;
44
+ [Org.Fields.INSTANCE_NAME]?: string;
45
+ [Org.Fields.NAMESPACE_PREFIX]?: Nullable<string>;
46
+ [Org.Fields.IS_SANDBOX]?: boolean;
47
+ [Org.Fields.IS_SCRATCH]?: boolean;
48
+ [Org.Fields.TRIAL_EXPIRATION_DATE]?: Nullable<string>;
42
49
  };
43
50
  export declare type OrgAuthorization = {
44
51
  orgId: string;
package/lib/org/org.js CHANGED
@@ -90,7 +90,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
90
90
  constructor(options) {
91
91
  super(options);
92
92
  this.status = Org.Status.UNKNOWN;
93
- this.options = options || {};
93
+ this.options = options !== null && options !== void 0 ? options : {};
94
94
  }
95
95
  /**
96
96
  * create a sandbox from a production org
@@ -499,7 +499,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
499
499
  const username = this.getUsername();
500
500
  if (username) {
501
501
  const organization = await this.retrieveOrganizationInformation();
502
- const isScratch = organization.IsSandbox && organization.TrialExpirationDate;
502
+ const isScratch = organization.IsSandbox && Boolean(organization.TrialExpirationDate);
503
503
  const isSandbox = organization.IsSandbox && !organization.TrialExpirationDate;
504
504
  const stateAggregator = await stateAggregator_1.StateAggregator.getInstance();
505
505
  stateAggregator.orgs.update(username, {
@@ -529,10 +529,11 @@ class Org extends kit_1.AsyncOptionalCreatable {
529
529
  * Reads and returns the content of all user auth files for this org as an array.
530
530
  */
531
531
  async readUserAuthFiles() {
532
+ var _a;
532
533
  const config = await this.retrieveOrgUsersConfig();
533
534
  const contents = await config.read();
534
535
  const thisUsername = (0, ts_types_1.ensure)(this.getUsername());
535
- const usernames = (0, ts_types_1.ensureJsonArray)(contents.usernames || [thisUsername]);
536
+ const usernames = (0, ts_types_1.ensureJsonArray)((_a = contents.usernames) !== null && _a !== void 0 ? _a : [thisUsername]);
536
537
  return Promise.all(usernames.map((username) => {
537
538
  if (username === thisUsername) {
538
539
  return authInfo_1.AuthInfo.create({
@@ -562,6 +563,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
562
563
  * @param {AuthInfo | string} auth The AuthInfo for the username to add.
563
564
  */
564
565
  async addUsername(auth) {
566
+ var _a;
565
567
  if (!auth) {
566
568
  throw new sfError_1.SfError('Missing auth info', 'MissingAuthInfo');
567
569
  }
@@ -571,7 +573,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
571
573
  const contents = await orgConfig.read();
572
574
  // TODO: This is kind of screwy because contents values can be `AnyJson | object`...
573
575
  // needs config refactoring to improve
574
- const usernames = contents.usernames || [];
576
+ const usernames = (_a = contents.usernames) !== null && _a !== void 0 ? _a : [];
575
577
  if (!(0, ts_types_1.isArray)(usernames)) {
576
578
  throw new sfError_1.SfError('Usernames is not an array', 'UnexpectedDataFormat');
577
579
  }
@@ -600,6 +602,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
600
602
  * @param {AuthInfo | string} auth The AuthInfo containing the username to remove.
601
603
  */
602
604
  async removeUsername(auth) {
605
+ var _a;
603
606
  if (!auth) {
604
607
  throw new sfError_1.SfError('Missing auth info', 'MissingAuthInfoError');
605
608
  }
@@ -608,7 +611,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
608
611
  const orgConfig = await this.retrieveOrgUsersConfig();
609
612
  const contents = await orgConfig.read();
610
613
  const targetUser = authInfo.getFields().username;
611
- const usernames = (contents.usernames || []);
614
+ const usernames = ((_a = contents.usernames) !== null && _a !== void 0 ? _a : []);
612
615
  contents.usernames = usernames.filter((username) => username !== targetUser);
613
616
  await orgConfig.write();
614
617
  return this;
@@ -649,7 +652,8 @@ class Org extends kit_1.AsyncOptionalCreatable {
649
652
  * Returns the orgId for this org.
650
653
  */
651
654
  getOrgId() {
652
- return this.orgId || this.getField(Org.Fields.ORG_ID);
655
+ var _a;
656
+ return (_a = this.orgId) !== null && _a !== void 0 ? _a : this.getField(Org.Fields.ORG_ID);
653
657
  }
654
658
  /**
655
659
  * Returns for the config aggregator.
@@ -835,6 +839,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
835
839
  * @private
836
840
  */
837
841
  async deleteSandbox(prodOrg) {
842
+ var _a, _b;
838
843
  const sandbox = await this.getSandboxConfig(this.getOrgId());
839
844
  prodOrg !== null && prodOrg !== void 0 ? prodOrg : (prodOrg = await Org.create({
840
845
  aggregator: this.configAggregator,
@@ -845,7 +850,7 @@ class Org extends kit_1.AsyncOptionalCreatable {
845
850
  let result;
846
851
  try {
847
852
  // grab sandboxName from config or try to calculate from the sandbox username
848
- const sandboxName = (sandbox === null || sandbox === void 0 ? void 0 : sandbox.sandboxName) || (this.getUsername() || '').split(`${prodOrg.getUsername()}.`)[1];
853
+ const sandboxName = (_a = sandbox === null || sandbox === void 0 ? void 0 : sandbox.sandboxName) !== null && _a !== void 0 ? _a : ((_b = this.getUsername()) !== null && _b !== void 0 ? _b : '').split(`${prodOrg.getUsername()}.`)[1];
849
854
  if (!sandboxName) {
850
855
  this.logger.debug('Sandbox name is not available');
851
856
  // jump to query by orgId
@@ -975,7 +980,8 @@ class Org extends kit_1.AsyncOptionalCreatable {
975
980
  await Promise.all(authInfos
976
981
  .map((auth) => auth.getFields().username)
977
982
  .map(async (username) => {
978
- const aliasKeys = (username && stateAggregator.aliases.getAll(username)) || [];
983
+ var _a;
984
+ const aliasKeys = (_a = (username && stateAggregator.aliases.getAll(username))) !== null && _a !== void 0 ? _a : [];
979
985
  stateAggregator.aliases.unsetAll(username);
980
986
  const orgForUser = username === this.getUsername()
981
987
  ? this
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import * as fs from 'fs';
3
- import { JsonMap, Nullable, Optional } from '@salesforce/ts-types';
3
+ import { Nullable, Optional } from '@salesforce/ts-types';
4
4
  import { AsyncOptionalCreatable } from '@salesforce/kit';
5
5
  import { AuthInfoConfig } from '../../config/authInfoConfig';
6
6
  import { GlobalInfo } from '../globalInfoConfig';
@@ -94,7 +94,7 @@ export declare abstract class BaseOrgAccessor<T extends ConfigFile, P extends Co
94
94
  * @param username
95
95
  * @param org
96
96
  */
97
- update(username: string, org: Partial<P> & JsonMap): void;
97
+ update(username: string, org: Partial<P>): void;
98
98
  /**
99
99
  * Delete the auth file for a given username.
100
100
  *
@@ -103,7 +103,7 @@ class GlobalInfo extends configFile_1.ConfigFile {
103
103
  }
104
104
  }
105
105
  exports.GlobalInfo = GlobalInfo;
106
- GlobalInfo.encryptedKeys = [/token/gi, /password/gi, /secret/gi];
106
+ GlobalInfo.encryptedKeys = [/token/i, /password/i, /secret/i];
107
107
  GlobalInfo.EMPTY_DATA_MODEL = {
108
108
  [types_1.SfInfoKeys.ORGS]: {},
109
109
  [types_1.SfInfoKeys.TOKENS]: {},
@@ -128,8 +128,13 @@ class SfdcUrl extends url_1.URL {
128
128
  return this.origin.replace('.my.salesforce.mil', '.lightning.crmforce.mil');
129
129
  }
130
130
  // enhanced domains
131
- if (this.origin.endsWith('sandbox.my.salesforce.com')) {
132
- return this.origin.replace('sandbox.my.salesforce.com', 'sandbox.lightning.force.com');
131
+ // ex: sandbox.my.salesforce.com, scratch.my.salesforce.com, etc
132
+ if (this.origin.endsWith('.my.salesforce.com')) {
133
+ return this.origin.replace('.my.salesforce.com', '.lightning.force.com');
134
+ }
135
+ // alternative domains
136
+ if (this.origin.endsWith('.my-salesforce.com')) {
137
+ return this.origin.replace('.my-salesforce.com', '.my-lightning.com');
133
138
  }
134
139
  // all non-mil domains
135
140
  return `https://${(0, ts_types_1.ensureArray)(/https?:\/\/([^.]*)/.exec(this.origin))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/core",
3
- "version": "3.22.0",
3
+ "version": "3.23.1",
4
4
  "description": "Core libraries to interact with SFDX projects, orgs, and APIs.",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",
@@ -56,7 +56,7 @@
56
56
  },
57
57
  "devDependencies": {
58
58
  "@salesforce/dev-config": "^3.0.1",
59
- "@salesforce/dev-scripts": "^2.0.1",
59
+ "@salesforce/dev-scripts": "^2.0.3",
60
60
  "@salesforce/prettier-config": "^0.0.2",
61
61
  "@salesforce/ts-sinon": "^1.3.21",
62
62
  "@types/archiver": "^5.3.1",