sfdx-browserforce-plugin 5.2.0-next.4 → 6.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browserforce.js +88 -22
- package/lib/browserforce.js.map +1 -1
- package/lib/plugins/activity-settings/index.js +93 -20
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.js +104 -31
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +166 -71
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.js +73 -10
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.js +196 -101
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/density-settings/index.js +95 -21
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.js +94 -21
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.js +67 -2
- package/lib/plugins/high-velocity-sales-settings/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +0 -1
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +162 -83
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.js +129 -57
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.js +85 -12
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.js +84 -6
- package/lib/plugins/linkedin-sales-navigator-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.js +0 -2
- package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.js +88 -13
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.js +103 -18
- package/lib/plugins/opportunity-splits/index.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +124 -51
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.js +86 -4
- package/lib/plugins/picklists/field-dependencies/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.js +0 -1
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/index.js +128 -55
- package/lib/plugins/picklists/index.js.map +1 -1
- package/lib/plugins/picklists/pages.js +9 -10
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/record-types/index.js +73 -10
- package/lib/plugins/record-types/index.js.map +1 -1
- package/lib/plugins/record-types/pages.js +0 -1
- package/lib/plugins/record-types/pages.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js +102 -28
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +107 -35
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +249 -165
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.js +93 -20
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +121 -49
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.js +142 -57
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +173 -102
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/slack/index.js +101 -27
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/user-access-policies/index.js +96 -24
- package/lib/plugins/user-access-policies/index.js.map +1 -1
- package/lib/plugins/user-access-policies/page.js +0 -6
- package/lib/plugins/user-access-policies/page.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,55 @@
|
|
|
1
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
+
}
|
|
18
|
+
else if (async) {
|
|
19
|
+
env.stack.push({ async: true });
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
+
return function (env) {
|
|
25
|
+
function fail(e) {
|
|
26
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
+
env.hasError = true;
|
|
28
|
+
}
|
|
29
|
+
var r, s = 0;
|
|
30
|
+
function next() {
|
|
31
|
+
while (r = env.stack.pop()) {
|
|
32
|
+
try {
|
|
33
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
+
if (r.dispose) {
|
|
35
|
+
var result = r.dispose.call(r.value);
|
|
36
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
+
}
|
|
38
|
+
else s |= 1;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
fail(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
+
if (env.hasError) throw env.error;
|
|
46
|
+
}
|
|
47
|
+
return next();
|
|
48
|
+
};
|
|
49
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
+
var e = new Error(message);
|
|
51
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
+
});
|
|
1
53
|
import { BrowserforcePlugin } from '../../../plugin.js';
|
|
2
54
|
import { semanticallyCleanObject } from '../../utils.js';
|
|
3
55
|
const SAVE_BUTTON_SELECTOR = 'input[name="save"]';
|
|
@@ -6,60 +58,81 @@ export class CustomerPortalAvailableCustomObjects extends BrowserforcePlugin {
|
|
|
6
58
|
async retrieve(definition) {
|
|
7
59
|
const response = [];
|
|
8
60
|
if (definition) {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// new URLs for LEX: https://help.salesforce.com/articleView?id=FAQ-for-the-New-URL-Format-for-Lightning-Experience-and-the-Salesforce-Mobile-App&type=1
|
|
26
|
-
const isLEX = page.url().includes('/one/one.app') ||
|
|
27
|
-
page.url().includes('/lightning/');
|
|
28
|
-
const getObjectPageUrl = function (customObject, isLexUi = true) {
|
|
29
|
-
const classicUiPath = `${customObject._id}/e`;
|
|
30
|
-
if (isLexUi) {
|
|
31
|
-
return `lightning/setup/ObjectManager/${customObject._id}/edit?nodeId=ObjectManager&address=${encodeURIComponent(`/${classicUiPath}`)}`;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
return classicUiPath;
|
|
61
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
62
|
+
try {
|
|
63
|
+
const availableCustomObjectList = definition
|
|
64
|
+
.map((customObject) => {
|
|
65
|
+
return `'${customObject.name}'`;
|
|
66
|
+
})
|
|
67
|
+
.join(',');
|
|
68
|
+
const customObjects = await this.org
|
|
69
|
+
.getConnection()
|
|
70
|
+
.tooling.query(`SELECT Id, DeveloperName, NamespacePrefix FROM CustomObject WHERE DeveloperName IN (${availableCustomObjectList}) ORDER BY CreatedDate DESC`, { scanAll: false });
|
|
71
|
+
// Note: Unfortunately scanAll=false has no impact and returns deleted CustomObjects.
|
|
72
|
+
// Workaround: Order by CreatedDate DESC to get the latest CustomObject first.
|
|
73
|
+
for (const record of customObjects?.records) {
|
|
74
|
+
if (record.NamespacePrefix === null) {
|
|
75
|
+
record.NamespacePrefix = undefined;
|
|
76
|
+
}
|
|
35
77
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
name: customObject.DeveloperName,
|
|
49
|
-
namespacePrefix: customObject.NamespacePrefix,
|
|
78
|
+
const page = __addDisposableResource(env_1, await this.browserforce.openPage(''), true);
|
|
79
|
+
// new URLs for LEX: https://help.salesforce.com/articleView?id=FAQ-for-the-New-URL-Format-for-Lightning-Experience-and-the-Salesforce-Mobile-App&type=1
|
|
80
|
+
const isLEX = page.url().includes('/one/one.app') ||
|
|
81
|
+
page.url().includes('/lightning/');
|
|
82
|
+
const getObjectPageUrl = function (customObject, isLexUi = true) {
|
|
83
|
+
const classicUiPath = `${customObject._id}/e`;
|
|
84
|
+
if (isLexUi) {
|
|
85
|
+
return `lightning/setup/ObjectManager/${customObject._id}/edit?nodeId=ObjectManager&address=${encodeURIComponent(`/${classicUiPath}`)}`;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return classicUiPath;
|
|
89
|
+
}
|
|
50
90
|
};
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
91
|
+
for (const availableCustomObject of definition) {
|
|
92
|
+
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
93
|
+
try {
|
|
94
|
+
const customObject = customObjects.records.find((co) => {
|
|
95
|
+
return (co.DeveloperName === availableCustomObject.name &&
|
|
96
|
+
co.NamespacePrefix === availableCustomObject.namespacePrefix);
|
|
97
|
+
});
|
|
98
|
+
if (!customObject) {
|
|
99
|
+
throw new Error(`Could not find CustomObject: {DeveloperName: ${availableCustomObject.name}, NamespacePrefix: ${availableCustomObject.namespacePrefix}`);
|
|
100
|
+
}
|
|
101
|
+
const result = {
|
|
102
|
+
_id: customObject.Id,
|
|
103
|
+
name: customObject.DeveloperName,
|
|
104
|
+
namespacePrefix: customObject.NamespacePrefix,
|
|
105
|
+
};
|
|
106
|
+
const pageUrl = getObjectPageUrl(result, isLEX);
|
|
107
|
+
const editPage = __addDisposableResource(env_2, await this.browserforce.openPage(pageUrl), true);
|
|
108
|
+
const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(editPage, CUSTOM_OBJECT_AVAILABLE_FOR_CUSTOMER_PORTAL_SELECTOR);
|
|
109
|
+
response.push({
|
|
110
|
+
...result,
|
|
111
|
+
available: await frameOrPage
|
|
112
|
+
.locator(CUSTOM_OBJECT_AVAILABLE_FOR_CUSTOMER_PORTAL_SELECTOR)
|
|
113
|
+
.isChecked(),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (e_1) {
|
|
117
|
+
env_2.error = e_1;
|
|
118
|
+
env_2.hasError = true;
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
const result_1 = __disposeResources(env_2);
|
|
122
|
+
if (result_1)
|
|
123
|
+
await result_1;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (e_2) {
|
|
128
|
+
env_1.error = e_2;
|
|
129
|
+
env_1.hasError = true;
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
const result_2 = __disposeResources(env_1);
|
|
133
|
+
if (result_2)
|
|
134
|
+
await result_2;
|
|
61
135
|
}
|
|
62
|
-
await page.close();
|
|
63
136
|
}
|
|
64
137
|
return response;
|
|
65
138
|
}
|
|
@@ -87,28 +160,50 @@ export class CustomerPortalAvailableCustomObjects extends BrowserforcePlugin {
|
|
|
87
160
|
}
|
|
88
161
|
async apply(plan) {
|
|
89
162
|
if (plan && plan.length) {
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
163
|
+
const env_3 = { stack: [], error: void 0, hasError: false };
|
|
164
|
+
try {
|
|
165
|
+
const page = __addDisposableResource(env_3, await this.browserforce.openPage(''), true);
|
|
166
|
+
// new URLs for LEX: https://help.salesforce.com/articleView?id=FAQ-for-the-New-URL-Format-for-Lightning-Experience-and-the-Salesforce-Mobile-App&type=1
|
|
167
|
+
const isLEX = page.url().includes('/one/one.app') ||
|
|
168
|
+
page.url().includes('/lightning/');
|
|
169
|
+
const getObjectPageUrl = function (customObject, isLexUi = true) {
|
|
170
|
+
const classicUiPath = `${customObject._id}/e?options_9=${customObject.available ? 1 : 0}&retURL=/${customObject._id}`;
|
|
171
|
+
if (isLexUi) {
|
|
172
|
+
return `lightning/setup/ObjectManager/${customObject._id}/edit?nodeId=ObjectManager&address=${encodeURIComponent(`/${classicUiPath}`)}`;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
return classicUiPath;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
for (const customObject of plan) {
|
|
179
|
+
const env_4 = { stack: [], error: void 0, hasError: false };
|
|
180
|
+
try {
|
|
181
|
+
const pageUrl = getObjectPageUrl(customObject, isLEX);
|
|
182
|
+
const editPage = __addDisposableResource(env_4, await this.browserforce.openPage(pageUrl), true);
|
|
183
|
+
const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(editPage, SAVE_BUTTON_SELECTOR);
|
|
184
|
+
await frameOrPage.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
185
|
+
await editPage.getByRole('heading', { name: 'Details' }).waitFor();
|
|
186
|
+
}
|
|
187
|
+
catch (e_3) {
|
|
188
|
+
env_4.error = e_3;
|
|
189
|
+
env_4.hasError = true;
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
const result_3 = __disposeResources(env_4);
|
|
193
|
+
if (result_3)
|
|
194
|
+
await result_3;
|
|
195
|
+
}
|
|
101
196
|
}
|
|
102
|
-
};
|
|
103
|
-
for (const customObject of plan) {
|
|
104
|
-
const pageUrl = getObjectPageUrl(customObject, isLEX);
|
|
105
|
-
const editPage = await this.browserforce.openPage(pageUrl);
|
|
106
|
-
const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(editPage, SAVE_BUTTON_SELECTOR);
|
|
107
|
-
await frameOrPage.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
108
|
-
await editPage.getByRole('heading', { name: 'Details' }).waitFor();
|
|
109
|
-
await editPage.close();
|
|
110
197
|
}
|
|
111
|
-
|
|
198
|
+
catch (e_4) {
|
|
199
|
+
env_3.error = e_4;
|
|
200
|
+
env_3.hasError = true;
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
const result_4 = __disposeResources(env_3);
|
|
204
|
+
if (result_4)
|
|
205
|
+
await result_4;
|
|
206
|
+
}
|
|
112
207
|
}
|
|
113
208
|
}
|
|
114
209
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/available-custom-objects/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAClD,MAAM,oDAAoD,GAAG,YAAY,CAAC;AAgB1E,MAAM,OAAO,oCAAqC,SAAQ,kBAAkB;IACnE,KAAK,CAAC,QAAQ,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,UAAU,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/available-custom-objects/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,55 @@
|
|
|
1
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
+
}
|
|
18
|
+
else if (async) {
|
|
19
|
+
env.stack.push({ async: true });
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
+
return function (env) {
|
|
25
|
+
function fail(e) {
|
|
26
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
+
env.hasError = true;
|
|
28
|
+
}
|
|
29
|
+
var r, s = 0;
|
|
30
|
+
function next() {
|
|
31
|
+
while (r = env.stack.pop()) {
|
|
32
|
+
try {
|
|
33
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
+
if (r.dispose) {
|
|
35
|
+
var result = r.dispose.call(r.value);
|
|
36
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
+
}
|
|
38
|
+
else s |= 1;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
fail(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
+
if (env.hasError) throw env.error;
|
|
46
|
+
}
|
|
47
|
+
return next();
|
|
48
|
+
};
|
|
49
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
+
var e = new Error(message);
|
|
51
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
+
});
|
|
1
53
|
import { waitForPageErrors } from '../../../browserforce.js';
|
|
2
54
|
import { BrowserforcePlugin } from '../../../plugin.js';
|
|
3
55
|
const BASE_PATH = '_ui/core/portal/CustomerSuccessPortalSetup/e';
|
|
@@ -10,17 +62,28 @@ export class CustomerPortalEnable extends BrowserforcePlugin {
|
|
|
10
62
|
return orgSettings.enableCustomerSuccessPortal ?? false;
|
|
11
63
|
}
|
|
12
64
|
async apply(plan) {
|
|
13
|
-
|
|
14
|
-
|
|
65
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
66
|
+
try {
|
|
67
|
+
if (plan === false) {
|
|
68
|
+
throw new Error('`enabled` cannot be disabled once enabled');
|
|
69
|
+
}
|
|
70
|
+
const page = __addDisposableResource(env_1, await this.browserforce.openPage(BASE_PATH), true);
|
|
71
|
+
await page.locator(ENABLE_CHECKBOX).setChecked(true);
|
|
72
|
+
await page.locator(SAVE_BUTTON).first().click();
|
|
73
|
+
await Promise.race([
|
|
74
|
+
page.waitForURL((url) => url.pathname === '/ui/setup/portal/RoleConversionWizardSplashPage' || url.pathname === '/_ui/core/portal/RoleInternalConvertWizard'),
|
|
75
|
+
waitForPageErrors(page),
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
catch (e_1) {
|
|
79
|
+
env_1.error = e_1;
|
|
80
|
+
env_1.hasError = true;
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
const result_1 = __disposeResources(env_1);
|
|
84
|
+
if (result_1)
|
|
85
|
+
await result_1;
|
|
15
86
|
}
|
|
16
|
-
const page = await this.browserforce.openPage(BASE_PATH);
|
|
17
|
-
await page.locator(ENABLE_CHECKBOX).setChecked(true);
|
|
18
|
-
await page.locator(SAVE_BUTTON).first().click();
|
|
19
|
-
await Promise.race([
|
|
20
|
-
page.waitForURL((url) => url.pathname !== `/${BASE_PATH}`),
|
|
21
|
-
waitForPageErrors(page),
|
|
22
|
-
]);
|
|
23
|
-
await page.close();
|
|
24
87
|
}
|
|
25
88
|
}
|
|
26
89
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/enabled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,SAAS,GAAG,8CAA8C,CAAC;AAEjE,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,eAAe,GAAG,uCAAuC,CAAC;AAIhE,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IACnD,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,2BAA2B,IAAI,KAAK,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAY
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/enabled/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,SAAS,GAAG,8CAA8C,CAAC;AAEjE,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,eAAe,GAAG,uCAAuC,CAAC;AAIhE,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IACnD,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,2BAA2B,IAAI,KAAK,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAY;;;YAC7B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAY,IAAI,kCAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAA,CAAC;YAC/D,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,iDAAiD,IAAI,GAAG,CAAC,QAAQ,KAAK,4CAA4C,CAAC;gBAC7J,iBAAiB,CAAC,IAAI,CAAC;aACxB,CAAC,CAAC;;;;;;;;;;;KACJ;CACF"}
|