sfdx-browserforce-plugin 2.11.2 → 3.0.0
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/README.md +10 -10
- package/lib/browserforce-command.js +25 -19
- package/lib/browserforce-command.js.map +1 -1
- package/lib/browserforce.js +11 -28
- package/lib/browserforce.js.map +1 -1
- package/lib/commands/browserforce/apply.js +14 -14
- package/lib/commands/browserforce/apply.js.map +1 -1
- package/lib/commands/browserforce/plan.js +16 -15
- package/lib/commands/browserforce/plan.js.map +1 -1
- package/lib/config-parser.js +1 -1
- package/lib/config-parser.js.map +1 -1
- package/lib/jsforce-utils.js.map +1 -1
- package/lib/plugin.js +11 -30
- package/lib/plugin.js.map +1 -1
- package/lib/plugins/activity-settings/index.e2e-spec.js +41 -0
- package/lib/plugins/activity-settings/index.e2e-spec.js.map +1 -0
- package/lib/plugins/activity-settings/index.js +1 -4
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/communities/index.e2e-spec.js +39 -0
- package/lib/plugins/communities/index.e2e-spec.js.map +1 -0
- package/lib/plugins/communities/index.js +2 -7
- package/lib/plugins/communities/index.js.map +1 -1
- package/lib/plugins/company-information/index.e2e-spec.js +42 -0
- package/lib/plugins/company-information/index.e2e-spec.js.map +1 -0
- package/lib/plugins/company-information/index.js +8 -12
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +20 -48
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.test.js +44 -0
- package/lib/plugins/customer-portal/available-custom-objects/index.test.js.map +1 -0
- package/lib/plugins/customer-portal/enabled/index.js +3 -11
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.test.js +39 -0
- package/lib/plugins/customer-portal/enabled/index.test.js.map +1 -0
- package/lib/plugins/customer-portal/index.e2e-spec.js +222 -0
- package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -0
- package/lib/plugins/customer-portal/index.js +17 -13
- package/lib/plugins/customer-portal/index.js.map +1 -1
- package/lib/plugins/customer-portal/index.test.js +89 -0
- package/lib/plugins/customer-portal/index.test.js.map +1 -0
- package/lib/plugins/customer-portal/portals/index.js +17 -25
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.test.js +145 -0
- package/lib/plugins/customer-portal/portals/index.test.js.map +1 -0
- package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js +96 -0
- package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js.map +1 -0
- package/lib/plugins/defer-sharing-calculation/index.js +2 -7
- package/lib/plugins/defer-sharing-calculation/index.js.map +1 -1
- package/lib/plugins/density-settings/index.e2e-spec.js +44 -0
- package/lib/plugins/density-settings/index.e2e-spec.js.map +1 -0
- package/lib/plugins/density-settings/index.js +8 -6
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.e2e-spec.js +60 -0
- package/lib/plugins/email-deliverability/index.e2e-spec.js.map +1 -0
- package/lib/plugins/email-deliverability/index.js +7 -10
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js +34 -0
- package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js.map +1 -0
- package/lib/plugins/high-velocity-sales-settings/index.js +1 -2
- package/lib/plugins/high-velocity-sales-settings/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +13 -4
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.e2e-spec.js +52 -0
- package/lib/plugins/home-page-layouts/index.e2e-spec.js.map +1 -0
- package/lib/plugins/home-page-layouts/index.js +14 -32
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.test.js +109 -0
- package/lib/plugins/home-page-layouts/index.test.js.map +1 -0
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +44 -0
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -0
- package/lib/plugins/lightning-experience-settings/index.js +11 -9
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.e2e-spec.js +70 -0
- package/lib/plugins/opportunity-splits/index.e2e-spec.js.map +1 -0
- package/lib/plugins/opportunity-splits/pages/layout-selection.js +1 -4
- package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.js +1 -4
- package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.js +1 -4
- package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.js +15 -10
- package/lib/plugins/picklists/field-dependencies/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.test.js +69 -0
- package/lib/plugins/picklists/field-dependencies/index.test.js.map +1 -0
- package/lib/plugins/picklists/field-dependencies/pages.js +3 -12
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/index.e2e-spec.js +118 -0
- package/lib/plugins/picklists/index.e2e-spec.js.map +1 -0
- package/lib/plugins/picklists/index.js +36 -27
- package/lib/plugins/picklists/index.js.map +1 -1
- package/lib/plugins/picklists/pages.js +7 -28
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/picklists/standard-value-set.js +1 -1
- package/lib/plugins/picklists/standard-value-set.js.map +1 -1
- package/lib/plugins/record-types/index.e2e-spec.js +99 -0
- package/lib/plugins/record-types/index.e2e-spec.js.map +1 -0
- package/lib/plugins/record-types/index.js +1 -2
- package/lib/plugins/record-types/index.js.map +1 -1
- package/lib/plugins/record-types/pages.js +4 -10
- package/lib/plugins/record-types/pages.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +34 -0
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js.map +1 -0
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js +3 -12
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.js +3 -0
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.js.map +1 -0
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +1 -4
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/index.e2e-spec.js +3 -0
- package/lib/plugins/reports-and-dashboards/index.e2e-spec.js.map +1 -0
- package/lib/plugins/reports-and-dashboards/index.js +6 -6
- package/lib/plugins/reports-and-dashboards/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +39 -0
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -0
- package/lib/plugins/salesforce-to-salesforce/index.js +1 -4
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.js +25 -36
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.test.js +66 -0
- package/lib/plugins/security/certificate-and-key-management/index.test.js.map +1 -0
- package/lib/plugins/security/identity-provider/index.js +13 -24
- package/lib/plugins/security/identity-provider/index.js.map +1 -1
- package/lib/plugins/security/index.e2e-spec.js +86 -0
- package/lib/plugins/security/index.e2e-spec.js.map +1 -0
- package/lib/plugins/security/index.js +24 -15
- package/lib/plugins/security/index.js.map +1 -1
- package/lib/plugins/security/login-access-policies/index.e2e-spec.js +32 -0
- package/lib/plugins/security/login-access-policies/index.e2e-spec.js.map +1 -0
- package/lib/plugins/security/login-access-policies/index.js +2 -5
- package/lib/plugins/security/login-access-policies/index.js.map +1 -1
- package/lib/plugins/security/sharing/index.e2e-spec.js +34 -0
- package/lib/plugins/security/sharing/index.e2e-spec.js.map +1 -0
- package/lib/plugins/security/sharing/index.js +5 -11
- package/lib/plugins/security/sharing/index.js.map +1 -1
- package/lib/plugins/utils.js +38 -41
- package/lib/plugins/utils.js.map +1 -1
- package/oclif.manifest.json +104 -112
- package/package.json +12 -10
- package/lib/browserforce-command.d.ts +0 -15
- package/lib/browserforce.d.ts +0 -26
- package/lib/commands/browserforce/apply.d.ts +0 -6
- package/lib/commands/browserforce/plan.d.ts +0 -6
- package/lib/config-parser.d.ts +0 -16
- package/lib/index.d.ts +0 -1
- package/lib/jsforce-utils.d.ts +0 -5
- package/lib/plugin.d.ts +0 -11
- package/lib/plugins/activity-settings/index.d.ts +0 -9
- package/lib/plugins/communities/index.d.ts +0 -10
- package/lib/plugins/company-information/index.d.ts +0 -9
- package/lib/plugins/customer-portal/available-custom-objects/index.d.ts +0 -14
- package/lib/plugins/customer-portal/enabled/index.d.ts +0 -7
- package/lib/plugins/customer-portal/index.d.ts +0 -15
- package/lib/plugins/customer-portal/portals/index.d.ts +0 -25
- package/lib/plugins/defer-sharing-calculation/index.d.ts +0 -9
- package/lib/plugins/density-settings/index.d.ts +0 -17
- package/lib/plugins/email-deliverability/index.d.ts +0 -9
- package/lib/plugins/high-velocity-sales-settings/index.d.ts +0 -11
- package/lib/plugins/high-velocity-sales-settings/page.d.ts +0 -7
- package/lib/plugins/home-page-layouts/index.d.ts +0 -14
- package/lib/plugins/index.d.ts +0 -18
- package/lib/plugins/lightning-experience-settings/index.d.ts +0 -17
- package/lib/plugins/opportunity-splits/index.d.ts +0 -9
- package/lib/plugins/opportunity-splits/pages/layout-selection.d.ts +0 -8
- package/lib/plugins/opportunity-splits/pages/overview.d.ts +0 -10
- package/lib/plugins/opportunity-splits/pages/setup.d.ts +0 -8
- package/lib/plugins/picklists/field-dependencies/index.d.ts +0 -11
- package/lib/plugins/picklists/field-dependencies/pages.d.ts +0 -14
- package/lib/plugins/picklists/index.d.ts +0 -23
- package/lib/plugins/picklists/pages.d.ts +0 -40
- package/lib/plugins/picklists/standard-value-set.d.ts +0 -1
- package/lib/plugins/record-types/index.d.ts +0 -13
- package/lib/plugins/record-types/pages.d.ts +0 -15
- package/lib/plugins/relate-contact-to-multiple-accounts/index.d.ts +0 -9
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.d.ts +0 -8
- package/lib/plugins/reports-and-dashboards/index.d.ts +0 -11
- package/lib/plugins/salesforce-to-salesforce/index.d.ts +0 -9
- package/lib/plugins/security/certificate-and-key-management/index.d.ts +0 -23
- package/lib/plugins/security/identity-provider/index.d.ts +0 -10
- package/lib/plugins/security/index.d.ts +0 -17
- package/lib/plugins/security/login-access-policies/index.d.ts +0 -8
- package/lib/plugins/security/sharing/index.d.ts +0 -8
- package/lib/plugins/utils.d.ts +0 -4
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/amtrack/sfdx-browserforce-plugin/actions)
|
|
6
6
|
|
|
7
7
|
Unlike the [Scratch Org Definition Configuration](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs_def_file.htm) which can only be used **on the creation of a scratch org** (`sfdx force:org:create -f config/scratch-def.json`),
|
|
8
|
-
the _Browserforce Configuration_ allows to "shape" **any org**, (e.g. scratch org, sandbox or production org) with **similar preferences and unofficial preferences** that are not (yet) available in the _Scratch Org Definition Configuration_ or as _Metadata_ (`
|
|
8
|
+
the _Browserforce Configuration_ allows to "shape" **any org**, (e.g. scratch org, sandbox or production org) with **similar preferences and unofficial preferences** that are not (yet) available in the _Scratch Org Definition Configuration_ or as _Metadata_ (`sf browserforce apply -f config/setup-admin-login-as-any.json -u myOrg@example.com`).
|
|
9
9
|
|
|
10
10
|
Further benefits:
|
|
11
11
|
|
|
@@ -19,8 +19,8 @@ Further benefits:
|
|
|
19
19
|
There are several different methods to install `sfdx-browserforce-plugin`:
|
|
20
20
|
|
|
21
21
|
```console
|
|
22
|
-
# as an
|
|
23
|
-
|
|
22
|
+
# as an sf plugin globally
|
|
23
|
+
sf plugins install sfdx-browserforce-plugin
|
|
24
24
|
|
|
25
25
|
# or standalone globally
|
|
26
26
|
npm install --global sfdx-browserforce-plugin
|
|
@@ -34,8 +34,8 @@ npm install --save-dev sfdx-browserforce-plugin
|
|
|
34
34
|
Depending on your choice of installation, you can find the `browserforce` namespace:
|
|
35
35
|
|
|
36
36
|
```console
|
|
37
|
-
# globally in the
|
|
38
|
-
|
|
37
|
+
# globally in the sf cli
|
|
38
|
+
sf browserforce
|
|
39
39
|
|
|
40
40
|
# globally in the sfdx-browserforce-plugin executable
|
|
41
41
|
sfdx-browserforce-plugin browserforce
|
|
@@ -49,14 +49,14 @@ $ sfdx-browserforce browserforce -h
|
|
|
49
49
|
browser automation
|
|
50
50
|
|
|
51
51
|
USAGE
|
|
52
|
-
$ sfdx-browserforce-plugin browserforce
|
|
52
|
+
$ sfdx-browserforce-plugin browserforce COMMAND
|
|
53
53
|
|
|
54
54
|
COMMANDS
|
|
55
|
-
browserforce
|
|
56
|
-
browserforce
|
|
55
|
+
browserforce apply apply a plan from a definition file
|
|
56
|
+
browserforce plan retrieve state and generate plan file
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Both the `browserforce
|
|
59
|
+
Both the `browserforce apply` and `browserforce plan` commands expect a config file and a target username or alias for the org.
|
|
60
60
|
|
|
61
61
|
# Example
|
|
62
62
|
|
|
@@ -80,7 +80,7 @@ Tip: If you use _Visual Studio Code_, you can leverage tab completion to build t
|
|
|
80
80
|
Next apply the config:
|
|
81
81
|
|
|
82
82
|
```console
|
|
83
|
-
$
|
|
83
|
+
$ sf browserforce apply -f ./config/setup-admin-login-as-any.json --target-org myOrg@example.com
|
|
84
84
|
logging in... done
|
|
85
85
|
Applying definition file ./config/setup-admin-login-as-any.json to org myOrg@example.com
|
|
86
86
|
[Security] retrieving state... done
|
|
@@ -24,8 +24,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.BrowserforceCommand = void 0;
|
|
27
|
-
const command_1 = require("@salesforce/command");
|
|
28
27
|
const core_1 = require("@salesforce/core");
|
|
28
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
29
29
|
const fs_1 = require("fs");
|
|
30
30
|
const path = __importStar(require("path"));
|
|
31
31
|
const browserforce_1 = require("./browserforce");
|
|
@@ -33,51 +33,57 @@ const config_parser_1 = require("./config-parser");
|
|
|
33
33
|
const DRIVERS = __importStar(require("./plugins"));
|
|
34
34
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
35
35
|
const messages = core_1.Messages.loadMessages('sfdx-browserforce-plugin', 'browserforce');
|
|
36
|
-
class BrowserforceCommand extends
|
|
36
|
+
class BrowserforceCommand extends sf_plugins_core_1.SfCommand {
|
|
37
37
|
async init() {
|
|
38
|
+
const { flags } = await this.parse(BrowserforceCommand);
|
|
38
39
|
await super.init();
|
|
39
|
-
const definitionFileData = await fs_1.promises.readFile(path.resolve(this.flags.definitionfile), 'utf8');
|
|
40
40
|
let definition;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
if (flags.definitionfile) {
|
|
42
|
+
const definitionFileData = await fs_1.promises.readFile(path.resolve(flags.definitionfile), 'utf8');
|
|
43
|
+
try {
|
|
44
|
+
definition = JSON.parse(definitionFileData);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
throw new Error('Failed parsing definitionfile');
|
|
48
|
+
}
|
|
46
49
|
}
|
|
47
50
|
// TODO: use require.resolve to dynamically load plugins from npm packages
|
|
48
51
|
this.settings = config_parser_1.ConfigParser.parse(DRIVERS, definition);
|
|
49
|
-
this.bf = new browserforce_1.Browserforce(
|
|
50
|
-
this.
|
|
52
|
+
this.bf = new browserforce_1.Browserforce(flags['target-org'], new sf_plugins_core_1.Ux({ jsonEnabled: this.jsonEnabled() }));
|
|
53
|
+
this.spinner.start('logging in');
|
|
51
54
|
await this.bf.login();
|
|
52
|
-
this.
|
|
55
|
+
this.spinner.stop();
|
|
53
56
|
}
|
|
54
57
|
async run() {
|
|
55
58
|
throw new Error('BrowserforceCommand should not be run directly');
|
|
56
59
|
}
|
|
57
60
|
async finally(err) {
|
|
58
|
-
this.
|
|
61
|
+
this.spinner.stop(err?.message);
|
|
59
62
|
if (this.bf) {
|
|
60
|
-
this.
|
|
63
|
+
this.spinner.start('logging out');
|
|
61
64
|
await this.bf.logout();
|
|
62
|
-
this.
|
|
65
|
+
this.spinner.stop();
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
exports.BrowserforceCommand = BrowserforceCommand;
|
|
67
|
-
BrowserforceCommand.
|
|
68
|
-
|
|
69
|
-
definitionfile:
|
|
70
|
+
BrowserforceCommand.flags = {
|
|
71
|
+
'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
|
|
72
|
+
definitionfile: sf_plugins_core_1.Flags.string({
|
|
70
73
|
char: 'f',
|
|
74
|
+
summary: messages.getMessage('definitionFileDescription'),
|
|
71
75
|
description: messages.getMessage('definitionFileDescription')
|
|
72
76
|
}),
|
|
73
|
-
planfile:
|
|
77
|
+
planfile: sf_plugins_core_1.Flags.string({
|
|
74
78
|
char: 'p',
|
|
75
79
|
name: 'plan',
|
|
80
|
+
summary: messages.getMessage('planFileDescription'),
|
|
76
81
|
description: messages.getMessage('planFileDescription')
|
|
77
82
|
}),
|
|
78
|
-
statefile:
|
|
83
|
+
statefile: sf_plugins_core_1.Flags.string({
|
|
79
84
|
char: 's',
|
|
80
85
|
name: 'state',
|
|
86
|
+
summary: messages.getMessage('stateFileDescription'),
|
|
81
87
|
description: messages.getMessage('stateFileDescription')
|
|
82
88
|
})
|
|
83
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserforce-command.js","sourceRoot":"","sources":["../src/browserforce-command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"browserforce-command.js","sourceRoot":"","sources":["../src/browserforce-command.ts"],"names":[],"mappings":"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"}
|
package/lib/browserforce.js
CHANGED
|
@@ -57,10 +57,7 @@ class Browserforce {
|
|
|
57
57
|
}
|
|
58
58
|
async resolveDomains() {
|
|
59
59
|
// resolve ip addresses of both LEX and classic domains
|
|
60
|
-
const salesforceUrls = [
|
|
61
|
-
this.getInstanceUrl(),
|
|
62
|
-
this.getLightningUrl()
|
|
63
|
-
].filter((u) => u);
|
|
60
|
+
const salesforceUrls = [this.getInstanceUrl(), this.getLightningUrl()].filter((u) => u);
|
|
64
61
|
for (const salesforceUrl of salesforceUrls) {
|
|
65
62
|
const resolver = await core_1.MyDomainResolver.create({
|
|
66
63
|
url: new url_1.URL(salesforceUrl)
|
|
@@ -78,7 +75,7 @@ class Browserforce {
|
|
|
78
75
|
// there seems to be an issue with Enhanced Domains
|
|
79
76
|
// await this.resolveDomains();
|
|
80
77
|
page = await this.browser.newPage();
|
|
81
|
-
page.setDefaultNavigationTimeout(parseInt(process.env.BROWSERFORCE_NAVIGATION_TIMEOUT_MS, 10)
|
|
78
|
+
page.setDefaultNavigationTimeout(parseInt(process.env.BROWSERFORCE_NAVIGATION_TIMEOUT_MS ?? '90000', 10));
|
|
82
79
|
await page.setViewport({ width: 1024, height: 768 });
|
|
83
80
|
const url = `${this.getInstanceUrl()}/${urlPath}`;
|
|
84
81
|
const parsedUrl = (0, url_1.parse)(urlPath);
|
|
@@ -89,24 +86,18 @@ class Browserforce {
|
|
|
89
86
|
throw new Error(`${response.status()}: ${response.statusText()}`);
|
|
90
87
|
}
|
|
91
88
|
if (response.url().indexOf('/?ec=302') > 0) {
|
|
92
|
-
const salesforceUrls = [
|
|
93
|
-
this.getInstanceUrl(),
|
|
94
|
-
this.getLightningUrl()
|
|
95
|
-
].filter((u) => u);
|
|
89
|
+
const salesforceUrls = [this.getInstanceUrl(), this.getLightningUrl()].filter((u) => u);
|
|
96
90
|
if (salesforceUrls.some((salesforceUrl) => response.url().startsWith(salesforceUrl))) {
|
|
97
91
|
// the url looks ok so it is a login error
|
|
98
92
|
throw new p_retry_1.AbortError('login failed');
|
|
99
93
|
}
|
|
100
|
-
else if (parsedUrl.pathname === 'secur/frontdoor.jsp' &&
|
|
101
|
-
parsedUrl.query.includes('retURL=')) {
|
|
94
|
+
else if (parsedUrl.pathname === 'secur/frontdoor.jsp' && parsedUrl.query?.includes('retURL=')) {
|
|
102
95
|
if (this.logger) {
|
|
103
96
|
this.logger.warn('trying frontdoor workaround...');
|
|
104
97
|
}
|
|
105
98
|
// try opening page directly without frontdoor as login might have already been successful
|
|
106
99
|
const qsUrl = querystring.parse(parsedUrl.query);
|
|
107
|
-
urlPath = Array.isArray(qsUrl.retURL)
|
|
108
|
-
? qsUrl.retURL[0]
|
|
109
|
-
: qsUrl.retURL;
|
|
100
|
+
urlPath = Array.isArray(qsUrl.retURL) ? qsUrl.retURL[0] : qsUrl.retURL;
|
|
110
101
|
throw new Error('frontdoor error');
|
|
111
102
|
}
|
|
112
103
|
else {
|
|
@@ -139,12 +130,8 @@ class Browserforce {
|
|
|
139
130
|
}
|
|
140
131
|
}
|
|
141
132
|
},
|
|
142
|
-
retries: process.env.BROWSERFORCE_RETRY_MAX_RETRIES
|
|
143
|
-
|
|
144
|
-
: 4,
|
|
145
|
-
minTimeout: process.env.BROWSERFORCE_RETRY_TIMEOUT_MS
|
|
146
|
-
? parseInt(process.env.BROWSERFORCE_RETRY_TIMEOUT_MS, 10)
|
|
147
|
-
: 4000
|
|
133
|
+
retries: parseInt(process.env.BROWSERFORCE_RETRY_MAX_RETRIES ?? '4', 10),
|
|
134
|
+
minTimeout: parseInt(process.env.BROWSERFORCE_RETRY_TIMEOUT_MS ?? '4000', 10)
|
|
148
135
|
});
|
|
149
136
|
return result;
|
|
150
137
|
}
|
|
@@ -189,7 +176,7 @@ class Browserforce {
|
|
|
189
176
|
return parts[0];
|
|
190
177
|
}
|
|
191
178
|
}
|
|
192
|
-
|
|
179
|
+
throw new Error(`Could not determine the instance URL from: ${instanceUrl}`);
|
|
193
180
|
}
|
|
194
181
|
getInstanceUrl() {
|
|
195
182
|
// sometimes the instanceUrl includes a trailing slash
|
|
@@ -202,7 +189,7 @@ class Browserforce {
|
|
|
202
189
|
if (myDomainOrInstance) {
|
|
203
190
|
return `https://${myDomainOrInstance}.lightning.force.com`;
|
|
204
191
|
}
|
|
205
|
-
|
|
192
|
+
throw new Error(`Could not determine the lightning URL from: ${myDomainOrInstance} and ${instanceDomain}`);
|
|
206
193
|
}
|
|
207
194
|
}
|
|
208
195
|
exports.Browserforce = Browserforce;
|
|
@@ -235,12 +222,8 @@ async function retry(input) {
|
|
|
235
222
|
onFailedAttempt: (error) => {
|
|
236
223
|
console.warn(`retrying ${error.retriesLeft} more time(s) because of "${error}"`);
|
|
237
224
|
},
|
|
238
|
-
retries: process.env.BROWSERFORCE_RETRY_MAX_RETRIES
|
|
239
|
-
|
|
240
|
-
: 6,
|
|
241
|
-
minTimeout: process.env.BROWSERFORCE_RETRY_TIMEOUT_MS
|
|
242
|
-
? parseInt(process.env.BROWSERFORCE_RETRY_TIMEOUT_MS, 10)
|
|
243
|
-
: 4000
|
|
225
|
+
retries: parseInt(process.env.BROWSERFORCE_RETRY_MAX_RETRIES ?? '6', 10),
|
|
226
|
+
minTimeout: parseInt(process.env.BROWSERFORCE_RETRY_TIMEOUT_MS ?? '4000', 10)
|
|
244
227
|
});
|
|
245
228
|
return res;
|
|
246
229
|
}
|
package/lib/browserforce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyD;
|
|
1
|
+
{"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,39 +7,39 @@ core_1.Messages.importMessagesDirectory(__dirname);
|
|
|
7
7
|
const messages = core_1.Messages.loadMessages('sfdx-browserforce-plugin', 'browserforce');
|
|
8
8
|
class BrowserforceApply extends browserforce_command_1.BrowserforceCommand {
|
|
9
9
|
async run() {
|
|
10
|
-
|
|
10
|
+
const { flags } = await this.parse(BrowserforceApply);
|
|
11
|
+
this.log(`Applying definition file ${flags.definitionfile} to org ${flags['target-org'].getUsername()}`);
|
|
11
12
|
for (const setting of this.settings) {
|
|
12
13
|
const driver = setting.Driver;
|
|
13
14
|
const instance = new driver(this.bf);
|
|
14
|
-
this.
|
|
15
|
+
this.spinner.start(`[${driver.name}] retrieving state`);
|
|
15
16
|
let state;
|
|
16
17
|
try {
|
|
17
18
|
state = await instance.retrieve(setting.value);
|
|
18
19
|
}
|
|
19
20
|
catch (err) {
|
|
20
|
-
this.
|
|
21
|
+
this.spinner.stop('failed');
|
|
21
22
|
throw err;
|
|
22
23
|
}
|
|
23
|
-
this.
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.ux.startSpinner(`[${driver.name}] ${Object.keys(action)
|
|
24
|
+
this.spinner.stop();
|
|
25
|
+
const diff = instance.diff(state, setting.value);
|
|
26
|
+
if (diff !== undefined) {
|
|
27
|
+
this.spinner.start(`[${driver.name}] ${Object.keys(diff)
|
|
28
28
|
.map((key) => {
|
|
29
|
-
return `changing '${key}' to '${JSON.stringify(
|
|
29
|
+
return `changing '${key}' to '${JSON.stringify(diff[key])}'`;
|
|
30
30
|
})
|
|
31
31
|
.join('\n')}`);
|
|
32
32
|
try {
|
|
33
|
-
await instance.apply(
|
|
33
|
+
await instance.apply(diff);
|
|
34
34
|
}
|
|
35
35
|
catch (err) {
|
|
36
|
-
this.
|
|
36
|
+
this.spinner.stop('failed');
|
|
37
37
|
throw err;
|
|
38
38
|
}
|
|
39
|
-
this.
|
|
39
|
+
this.spinner.stop();
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
|
-
this.
|
|
42
|
+
this.log(`[${driver.name}] no action necessary`);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
return { success: true };
|
|
@@ -48,7 +48,7 @@ class BrowserforceApply extends browserforce_command_1.BrowserforceCommand {
|
|
|
48
48
|
exports.BrowserforceApply = BrowserforceApply;
|
|
49
49
|
BrowserforceApply.description = messages.getMessage('applyCommandDescription');
|
|
50
50
|
BrowserforceApply.examples = [
|
|
51
|
-
`$
|
|
51
|
+
`$ <%= config.bin %> <%= command.id %> -f ./config/setup-admin-login-as-any.json --target-org myOrg@example.com
|
|
52
52
|
logging in... done
|
|
53
53
|
Applying definition file ./config/setup-admin-login-as-any.json to org myOrg@example.com
|
|
54
54
|
[Security] retrieving state... done
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/browserforce/apply.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,qEAAiE;AAEjE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/browserforce/apply.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,qEAAiE;AAEjE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;AAEnF,MAAa,iBAAkB,SAAQ,0CAAmB;IAajD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,cAAc,WAAW,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACzG,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC;YACV,IAAI;gBACF,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAChD;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC;aACX;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACX,OAAO,aAAa,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC/D,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;gBACF,IAAI;oBACF,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC5B;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,MAAM,GAAG,CAAC;iBACX;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACrB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC;aAClD;SACF;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;;AAjDH,8CAkDC;AAjDe,6BAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AAE7D,0BAAQ,GAAG;IACvB;;;;;;GAMD;CACA,CAAC"}
|
|
@@ -32,7 +32,8 @@ core_1.Messages.importMessagesDirectory(__dirname);
|
|
|
32
32
|
const messages = core_1.Messages.loadMessages('sfdx-browserforce-plugin', 'browserforce');
|
|
33
33
|
class BrowserforcePlanCommand extends browserforce_command_1.BrowserforceCommand {
|
|
34
34
|
async run() {
|
|
35
|
-
|
|
35
|
+
const { flags } = await this.parse(BrowserforcePlanCommand);
|
|
36
|
+
this.log(`Generating plan with definition file ${flags.definitionfile} from org ${flags['target-org'].getUsername()}`);
|
|
36
37
|
const state = {
|
|
37
38
|
settings: {}
|
|
38
39
|
};
|
|
@@ -42,31 +43,31 @@ class BrowserforcePlanCommand extends browserforce_command_1.BrowserforceCommand
|
|
|
42
43
|
for (const setting of this.settings) {
|
|
43
44
|
const driver = setting.Driver;
|
|
44
45
|
const instance = new driver(this.bf);
|
|
45
|
-
this.
|
|
46
|
+
this.spinner.start(`[${driver.name}] retrieving state`);
|
|
46
47
|
let driverState;
|
|
47
48
|
try {
|
|
48
49
|
driverState = await instance.retrieve(setting.value);
|
|
49
50
|
state.settings[setting.key] = driverState;
|
|
50
51
|
}
|
|
51
52
|
catch (err) {
|
|
52
|
-
this.
|
|
53
|
+
this.spinner.stop('failed');
|
|
53
54
|
throw err;
|
|
54
55
|
}
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
56
|
+
this.spinner.stop();
|
|
57
|
+
this.spinner.start(`[${driver.name}] generating plan`);
|
|
57
58
|
const driverPlan = instance.diff(driverState, setting.value);
|
|
58
59
|
plan.settings[setting.key] = driverPlan;
|
|
59
|
-
this.
|
|
60
|
+
this.spinner.stop();
|
|
60
61
|
}
|
|
61
|
-
if (
|
|
62
|
-
this.
|
|
63
|
-
await (0, promises_1.writeFile)(path.resolve(
|
|
64
|
-
this.
|
|
62
|
+
if (flags.statefile) {
|
|
63
|
+
this.spinner.start('writing state file');
|
|
64
|
+
await (0, promises_1.writeFile)(path.resolve(flags.statefile), JSON.stringify(state, null, 2));
|
|
65
|
+
this.spinner.stop();
|
|
65
66
|
}
|
|
66
|
-
if (
|
|
67
|
-
this.
|
|
68
|
-
await (0, promises_1.writeFile)(path.resolve(
|
|
69
|
-
this.
|
|
67
|
+
if (flags.planfile) {
|
|
68
|
+
this.spinner.start('writing plan file');
|
|
69
|
+
await (0, promises_1.writeFile)(path.resolve(flags.planfile), JSON.stringify(plan, null, 2));
|
|
70
|
+
this.spinner.stop();
|
|
70
71
|
}
|
|
71
72
|
return { success: true, plan };
|
|
72
73
|
}
|
|
@@ -74,7 +75,7 @@ class BrowserforcePlanCommand extends browserforce_command_1.BrowserforceCommand
|
|
|
74
75
|
exports.BrowserforcePlanCommand = BrowserforcePlanCommand;
|
|
75
76
|
BrowserforcePlanCommand.description = messages.getMessage('planCommandDescription');
|
|
76
77
|
BrowserforcePlanCommand.examples = [
|
|
77
|
-
`$
|
|
78
|
+
`$ <%= config.bin %> <%= command.id %> -f ./config/setup-admin-login-as-any.json --target-org myOrg@example.com
|
|
78
79
|
logging in... done
|
|
79
80
|
Generating plan with definition file ./config/setup-admin-login-as-any.json from org myOrg@example.com
|
|
80
81
|
[Security] retrieving state... done
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/browserforce/plan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAwC;AACxC,2CAA4C;AAC5C,2CAA6B;AAC7B,qEAAiE;AAEjE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/browserforce/plan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAwC;AACxC,2CAA4C;AAC5C,2CAA6B;AAC7B,qEAAiE;AAEjE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;AAEnF,MAAa,uBAAwB,SAAQ,0CAAmB;IAavD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CACN,wCAAwC,KAAK,CAAC,cAAc,aAAa,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAC7G,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,MAAM,IAAI,GAAG;YACX,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;YACxD,IAAI,WAAW,CAAC;YAChB,IAAI;gBACF,WAAW,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC;aACX;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,mBAAmB,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QACD,IAAI,KAAK,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACzC,MAAM,IAAA,oBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACxC,MAAM,IAAA,oBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;;AArDH,0DAsDC;AArDe,mCAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;AAE5D,gCAAQ,GAAG;IACvB;;;;;;GAMD;CACA,CAAC"}
|
package/lib/config-parser.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.ConfigParser = void 0;
|
|
|
4
4
|
class ConfigParser {
|
|
5
5
|
static parse(drivers, data) {
|
|
6
6
|
const settings = [];
|
|
7
|
-
if (data
|
|
7
|
+
if (data?.settings) {
|
|
8
8
|
for (const driverName of Object.keys(data.settings)) {
|
|
9
9
|
if (drivers[driverName]) {
|
|
10
10
|
settings.push({
|
package/lib/config-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../src/config-parser.ts"],"names":[],"mappings":";;;AAgBA,MAAa,YAAY;IAChB,MAAM,CAAC,KAAK,CAAC,OAAgB,EAAE,IAAU;QAC9C,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../src/config-parser.ts"],"names":[],"mappings":";;;AAgBA,MAAa,YAAY;IAChB,MAAM,CAAC,KAAK,CAAC,OAAgB,EAAE,IAAU;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,IAAI,EAAE,QAAQ,EAAE;YAClB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACnD,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;oBACvB,QAAQ,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;wBAC3B,GAAG,EAAE,UAAU;wBACf,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;qBACjC,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACvG;aACF;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AApBD,oCAoBC"}
|
package/lib/jsforce-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsforce-utils.js","sourceRoot":"","sources":["../src/jsforce-utils.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,SAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"jsforce-utils.js","sourceRoot":"","sources":["../src/jsforce-utils.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,SAAgB,WAAW,CAAI,IAAa;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;QACvC,OAAO,EAAE,CAAC;KACX;IACD,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AARD,kCAQC"}
|
package/lib/plugin.js
CHANGED
|
@@ -1,44 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.BrowserforcePlugin = void 0;
|
|
27
|
-
const jsonMergePatch = __importStar(require("json-merge-patch"));
|
|
28
4
|
const utils_1 = require("./plugins/utils");
|
|
29
5
|
class BrowserforcePlugin {
|
|
30
6
|
constructor(browserforce) {
|
|
31
7
|
this.browserforce = browserforce;
|
|
32
8
|
this.org = browserforce?.org;
|
|
33
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* deep diff
|
|
12
|
+
* @param state
|
|
13
|
+
* @param definition
|
|
14
|
+
* @returns undefined when there is no diff
|
|
15
|
+
*/
|
|
34
16
|
diff(state, definition) {
|
|
35
|
-
return
|
|
17
|
+
return (0, utils_1.deepDiff)(state, definition);
|
|
36
18
|
}
|
|
37
|
-
async run(
|
|
38
|
-
const state = await this.retrieve(
|
|
39
|
-
const diff = this.diff(state,
|
|
40
|
-
|
|
41
|
-
if (needsAction) {
|
|
19
|
+
async run(definition) {
|
|
20
|
+
const state = await this.retrieve(definition);
|
|
21
|
+
const diff = this.diff(state, definition);
|
|
22
|
+
if (diff !== undefined) {
|
|
42
23
|
const result = await this.apply(diff);
|
|
43
24
|
return result;
|
|
44
25
|
}
|
package/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAEA,2CAA2C;AAE3C,MAAsB,kBAAkB;IAItC,YAAmB,YAA0B;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,YAAY,EAAE,GAAG,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,KAAc,EAAE,UAAmB;QAC7C,OAAO,IAAA,gBAAQ,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,UAAmB;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;SACf;QACD,OAAO;YACL,OAAO,EAAE,qBAAqB;SAC/B,CAAC;IACJ,CAAC;CACF;AA9BD,gDA8BC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const _1 = require(".");
|
|
8
|
+
describe(_1.ActivitySettings.name, function () {
|
|
9
|
+
let plugin;
|
|
10
|
+
before(() => {
|
|
11
|
+
plugin = new _1.ActivitySettings(global.bf);
|
|
12
|
+
});
|
|
13
|
+
describe('allowUsersToRelateMultipleContactsToTasksAndEvents', () => {
|
|
14
|
+
const configEnabled = {
|
|
15
|
+
allowUsersToRelateMultipleContactsToTasksAndEvents: true
|
|
16
|
+
};
|
|
17
|
+
const configDisabled = {
|
|
18
|
+
allowUsersToRelateMultipleContactsToTasksAndEvents: false
|
|
19
|
+
};
|
|
20
|
+
it('should enable', async () => {
|
|
21
|
+
await plugin.run(configEnabled);
|
|
22
|
+
});
|
|
23
|
+
it('should be enabled', async () => {
|
|
24
|
+
const res = await plugin.retrieve();
|
|
25
|
+
assert_1.default.deepStrictEqual(res, configEnabled);
|
|
26
|
+
});
|
|
27
|
+
it('should fail to disable', async () => {
|
|
28
|
+
let err;
|
|
29
|
+
try {
|
|
30
|
+
await plugin.apply(configDisabled);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
err = e;
|
|
34
|
+
}
|
|
35
|
+
assert_1.default.throws(() => {
|
|
36
|
+
throw err;
|
|
37
|
+
}, /can only be disabled/);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=index.e2e-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/activity-settings/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAqC;AAErC,QAAQ,CAAC,mBAAgB,CAAC,IAAI,EAAE;IAC9B,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,mBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAClE,MAAM,aAAa,GAAG;YACpB,kDAAkD,EAAE,IAAI;SACzD,CAAC;QACF,MAAM,cAAc,GAAG;YACrB,kDAAkD,EAAE,KAAK;SAC1D,CAAC;QAEF,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;YACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpC,gBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,IAAI,GAAG,CAAC;YACR,IAAI;gBACF,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aACpC;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,gBAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,GAAG,CAAC;YACZ,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -28,10 +28,7 @@ class ActivitySettings extends plugin_1.BrowserforcePlugin {
|
|
|
28
28
|
await page.$eval(SELECTORS.MANY_WHO_PREF_INPUT, (e, v) => {
|
|
29
29
|
e.checked = v;
|
|
30
30
|
}, config.allowUsersToRelateMultipleContactsToTasksAndEvents);
|
|
31
|
-
await Promise.all([
|
|
32
|
-
page.waitForNavigation(),
|
|
33
|
-
page.click(SELECTORS.SUBMIT_BUTTON)
|
|
34
|
-
]);
|
|
31
|
+
await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SUBMIT_BUTTON)]);
|
|
35
32
|
await page.close();
|
|
36
33
|
}
|
|
37
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/activity-settings/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAElD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,iCAAiC;CACxC,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,mBAAmB,EAAE,kDAAkD;IACvE,aAAa,EAAE,qDAAqD;CACrE,CAAC;AAMF,MAAa,gBAAiB,SAAQ,2BAAkB;IAC/C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG;YACf,kDAAkD,EAAE,MAAM,IAAI,CAAC,KAAK,CAClE,SAAS,CAAC,mBAAmB,EAC7B,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CACrC;SACF,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,kDAAkD,KAAK,KAAK,EAAE;YACvE,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;SACH;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,mBAAmB,EAC7B,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;YAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChB,CAAC,EACD,MAAM,CAAC,kDAAkD,CAC1D,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/activity-settings/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAElD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,iCAAiC;CACxC,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,mBAAmB,EAAE,kDAAkD;IACvE,aAAa,EAAE,qDAAqD;CACrE,CAAC;AAMF,MAAa,gBAAiB,SAAQ,2BAAkB;IAC/C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG;YACf,kDAAkD,EAAE,MAAM,IAAI,CAAC,KAAK,CAClE,SAAS,CAAC,mBAAmB,EAC7B,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CACrC;SACF,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,kDAAkD,KAAK,KAAK,EAAE;YACvE,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;SACH;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,mBAAmB,EAC7B,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;YAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChB,CAAC,EACD,MAAM,CAAC,kDAAkD,CAC1D,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAhCD,4CAgCC"}
|