sfdx-browserforce-plugin 2.11.3 → 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 +6 -6
- 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 +3 -1
- 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 +85 -53
- 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 -8
- 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 -10
- 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_ (`sf browserforce
|
|
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
|
|
|
@@ -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
|
-
$ sf browserforce
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,iEAAoG;AACpG,2BAA8B;AAC9B,2CAA6B;AAC7B,iDAA8C;AAC9C,mDAA+C;AAC/C,mDAAqC;AAErC,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;AAEnF,MAAa,mBAAoB,SAAQ,2BAAkB;IAyBlD,KAAK,CAAC,IAAI;QACf,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,UAAU,CAAC;QACf,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,MAAM,kBAAkB,GAAG,MAAM,aAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/F,IAAI;gBACF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;aAC7C;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aAClD;SACF;QACD,0EAA0E;QAC1E,IAAI,CAAC,QAAQ,GAAG,4BAAY,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,GAAG,IAAI,2BAAY,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,oBAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;IACH,CAAC;;AAxDH,kDAyDC;AAxDwB,yBAAK,GAAG;IAC7B,YAAY,EAAE,iDAA+B;IAC7C,cAAc,EAAE,uBAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;QACzD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;KAC9D,CAAC;IACF,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACnD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;KACxD,CAAC;IACF,SAAS,EAAE,uBAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;QACpD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;KACzD,CAAC;CACH,CAAC"}
|
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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.skip(_1.Communities.name, function () {
|
|
9
|
+
let plugin;
|
|
10
|
+
before(() => {
|
|
11
|
+
plugin = new _1.Communities(global.bf);
|
|
12
|
+
});
|
|
13
|
+
const configEnabled = {
|
|
14
|
+
enabled: true
|
|
15
|
+
};
|
|
16
|
+
const configDisabled = {
|
|
17
|
+
enabled: false
|
|
18
|
+
};
|
|
19
|
+
it('should enable', async () => {
|
|
20
|
+
await plugin.run(configEnabled);
|
|
21
|
+
});
|
|
22
|
+
it('should be enabled', async () => {
|
|
23
|
+
const res = await plugin.run(configEnabled);
|
|
24
|
+
assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
|
|
25
|
+
});
|
|
26
|
+
it('should fail to disable', async () => {
|
|
27
|
+
let err;
|
|
28
|
+
try {
|
|
29
|
+
await plugin.apply(configDisabled);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
err = e;
|
|
33
|
+
}
|
|
34
|
+
assert_1.default.throws(() => {
|
|
35
|
+
throw err;
|
|
36
|
+
}, /cannot be disabled/);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.e2e-spec.js.map
|