sfdx-browserforce-plugin 4.8.2 → 5.0.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/README.md +69 -105
- package/lib/browserforce-command.js +8 -6
- package/lib/browserforce-command.js.map +1 -1
- package/lib/browserforce.js +15 -11
- package/lib/browserforce.js.map +1 -1
- package/lib/commands/browserforce/apply.js +6 -6
- package/lib/commands/browserforce/apply.js.map +1 -1
- package/lib/commands/browserforce/plan.js +7 -7
- 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/pages/login.js +4 -4
- package/lib/pages/login.js.map +1 -1
- package/lib/plugin.js +1 -1
- package/lib/plugins/activity-settings/index.e2e-spec.js +2 -2
- package/lib/plugins/activity-settings/index.js +13 -14
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.e2e-spec.js +2 -2
- package/lib/plugins/company-information/index.js +18 -22
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +16 -12
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.test.js +8 -8
- package/lib/plugins/customer-portal/enabled/index.js +2 -2
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.test.js +4 -4
- package/lib/plugins/customer-portal/index.e2e-spec.js +25 -19
- package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -1
- package/lib/plugins/customer-portal/index.js +10 -9
- package/lib/plugins/customer-portal/index.js.map +1 -1
- package/lib/plugins/customer-portal/index.test.js +22 -22
- package/lib/plugins/customer-portal/portals/index.js +54 -52
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.test.js +37 -37
- package/lib/plugins/customer-portal/portals/index.test.js.map +1 -1
- package/lib/plugins/density-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/density-settings/index.js +13 -16
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/deprecated.d.ts +4 -0
- package/lib/plugins/deprecated.js +28 -0
- package/lib/plugins/deprecated.js.map +1 -0
- package/lib/plugins/email-deliverability/index.e2e-spec.js +4 -4
- package/lib/plugins/email-deliverability/index.js +16 -17
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js +2 -2
- package/lib/plugins/high-velocity-sales-settings/index.js +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.e2e-spec.js +38 -38
- package/lib/plugins/history-tracking/index.e2e-spec.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +20 -21
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.e2e-spec.js +8 -8
- package/lib/plugins/home-page-layouts/index.js +13 -14
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.test.js +29 -29
- package/lib/plugins/index.d.ts +1 -3
- package/lib/plugins/index.js +1 -3
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.js +16 -17
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.e2e-spec.js +2 -2
- package/lib/plugins/linkedin-sales-navigator-settings/index.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js +2 -2
- package/lib/plugins/omni-channel-settings/index.js +9 -13
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.e2e-spec.js +3 -3
- package/lib/plugins/opportunity-splits/index.e2e-spec.js.map +1 -1
- package/lib/plugins/permission-sets/index.e2e-spec.js +4 -4
- package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -1
- package/lib/plugins/permission-sets/index.js +1 -1
- package/lib/plugins/permission-sets/index.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +25 -21
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.js +6 -4
- package/lib/plugins/picklists/field-dependencies/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.test.js +13 -13
- package/lib/plugins/picklists/index.e2e-spec.js +10 -6
- package/lib/plugins/picklists/index.e2e-spec.js.map +1 -1
- package/lib/plugins/picklists/index.js +15 -8
- package/lib/plugins/picklists/index.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 +10 -10
- package/lib/plugins/record-types/index.e2e-spec.js.map +1 -1
- package/lib/plugins/record-types/index.js +3 -3
- package/lib/plugins/record-types/index.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +2 -2
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js +37 -32
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +17 -18
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/index.js +1 -1
- package/lib/plugins/reports-and-dashboards/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/formConfig.js +638 -638
- package/lib/plugins/salesforce-cpq-config/formConfig.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.e2e-spec.js +4 -4
- package/lib/plugins/salesforce-cpq-config/index.e2e-spec.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +43 -31
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +2 -2
- package/lib/plugins/salesforce-to-salesforce/index.js +16 -17
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js +9 -15
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +22 -24
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js +63 -0
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js.map +1 -0
- package/lib/plugins/security/certificate-and-key-management/index.js +48 -30
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.test.js +18 -18
- package/lib/plugins/security/index.d.ts +1 -7
- package/lib/plugins/security/index.js +2 -44
- package/lib/plugins/security/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +48 -41
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/service-channels/index.e2e-spec.js +14 -14
- package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -1
- package/lib/plugins/service-channels/index.js +4 -3
- package/lib/plugins/service-channels/index.js.map +1 -1
- package/lib/plugins/slack/index.e2e-spec.js +3 -3
- package/lib/plugins/slack/index.js +3 -5
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/utils.js +7 -2
- package/lib/plugins/utils.js.map +1 -1
- package/oclif.manifest.json +3 -3
- package/package.json +11 -7
- package/lib/plugins/communities/index.d.ts +0 -10
- package/lib/plugins/communities/index.e2e-spec.js +0 -34
- package/lib/plugins/communities/index.e2e-spec.js.map +0 -1
- package/lib/plugins/communities/index.js +0 -45
- package/lib/plugins/communities/index.js.map +0 -1
- package/lib/plugins/defer-sharing-calculation/index.d.ts +0 -9
- package/lib/plugins/defer-sharing-calculation/index.e2e-spec.d.ts +0 -1
- package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js +0 -70
- package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js.map +0 -1
- package/lib/plugins/defer-sharing-calculation/index.js +0 -39
- package/lib/plugins/defer-sharing-calculation/index.js.map +0 -1
- package/lib/plugins/security/identity-provider/index.d.ts +0 -9
- package/lib/plugins/security/identity-provider/index.js +0 -81
- package/lib/plugins/security/identity-provider/index.js.map +0 -1
- package/lib/plugins/security/index.e2e-spec.d.ts +0 -1
- package/lib/plugins/security/index.e2e-spec.js +0 -82
- package/lib/plugins/security/index.e2e-spec.js.map +0 -1
- package/lib/plugins/security/login-access-policies/index.d.ts +0 -8
- package/lib/plugins/security/login-access-policies/index.e2e-spec.d.ts +0 -1
- package/lib/plugins/security/login-access-policies/index.e2e-spec.js +0 -27
- package/lib/plugins/security/login-access-policies/index.e2e-spec.js.map +0 -1
- package/lib/plugins/security/login-access-policies/index.js +0 -30
- package/lib/plugins/security/login-access-policies/index.js.map +0 -1
- package/lib/plugins/security/sharing/index.d.ts +0 -8
- package/lib/plugins/security/sharing/index.e2e-spec.d.ts +0 -1
- package/lib/plugins/security/sharing/index.e2e-spec.js +0 -29
- package/lib/plugins/security/sharing/index.e2e-spec.js.map +0 -1
- package/lib/plugins/security/sharing/index.js +0 -36
- package/lib/plugins/security/sharing/index.js.map +0 -1
- /package/lib/plugins/{communities → security/certificate-and-key-management}/index.e2e-spec.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../../src/plugins/security/certificate-and-key-management/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,27 +2,26 @@ import { existsSync } from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as queryString from 'querystring';
|
|
4
4
|
import { BrowserforcePlugin } from '../../../plugin.js';
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
FILE_UPLOAD: 'input[type="file"]',
|
|
11
|
-
KEYSTORE_PASSWORD: 'input#Password',
|
|
12
|
-
SAVE_BUTTON: 'input[name="save"]'
|
|
13
|
-
};
|
|
5
|
+
const CERT_PREFIX_PATH = '0P1';
|
|
6
|
+
const KEYSTORE_IMPORT_PATH = '_ui/security/certificate/KeyStoreImportUi/e';
|
|
7
|
+
const FILE_UPLOAD_SELECTOR = 'input[type="file"]';
|
|
8
|
+
const KEYSTORE_PASSWORD_SELECTOR = 'input#Password';
|
|
9
|
+
const SAVE_BUTTON_SELECTOR = 'input[name="save"]';
|
|
14
10
|
export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
15
11
|
async retrieve(definition) {
|
|
16
12
|
const response = {
|
|
17
13
|
certificates: [],
|
|
18
|
-
importFromKeystore: []
|
|
14
|
+
importFromKeystore: [],
|
|
19
15
|
};
|
|
20
16
|
let existingCertificates = [];
|
|
21
|
-
if (definition?.certificates?.length ||
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
if (definition?.certificates?.length ||
|
|
18
|
+
definition?.importFromKeystore?.length) {
|
|
19
|
+
existingCertificates =
|
|
20
|
+
// Note: Unfortunately scanAll=false has no impact and returns deleted records.
|
|
21
|
+
// Workaround: Order by CreatedDate DESC to get the latest record first.
|
|
22
|
+
(await this.org
|
|
23
|
+
.getConnection()
|
|
24
|
+
.tooling.query(`SELECT Id, DeveloperName, MasterLabel, OptionsIsPrivateKeyExportable, KeySize FROM Certificate ORDER BY CreatedDate DESC`, { scanAll: false }))?.records;
|
|
26
25
|
}
|
|
27
26
|
if (definition?.certificates?.length) {
|
|
28
27
|
for (const cert of definition.certificates) {
|
|
@@ -33,7 +32,7 @@ export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
|
33
32
|
name: existingCert.DeveloperName,
|
|
34
33
|
label: existingCert.MasterLabel,
|
|
35
34
|
exportable: existingCert.OptionsIsPrivateKeyExportable,
|
|
36
|
-
keySize: existingCert.KeySize
|
|
35
|
+
keySize: existingCert.KeySize,
|
|
37
36
|
});
|
|
38
37
|
}
|
|
39
38
|
}
|
|
@@ -43,7 +42,7 @@ export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
|
43
42
|
const existingCert = existingCertificates.find((co) => co.DeveloperName === cert.name);
|
|
44
43
|
if (existingCert) {
|
|
45
44
|
response.importFromKeystore.push({
|
|
46
|
-
name: existingCert.DeveloperName
|
|
45
|
+
name: existingCert.DeveloperName,
|
|
47
46
|
});
|
|
48
47
|
}
|
|
49
48
|
}
|
|
@@ -86,7 +85,7 @@ export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
|
86
85
|
// create new
|
|
87
86
|
const urlAttributes = {
|
|
88
87
|
DeveloperName: certificate.name,
|
|
89
|
-
MasterLabel: certificate.label
|
|
88
|
+
MasterLabel: certificate.label,
|
|
90
89
|
};
|
|
91
90
|
if (certificate.keySize) {
|
|
92
91
|
urlAttributes['keySize'] = certificate.keySize;
|
|
@@ -94,18 +93,21 @@ export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
|
94
93
|
if (certificate.exportable !== undefined) {
|
|
95
94
|
urlAttributes['exp'] = certificate.exportable ? 1 : 0;
|
|
96
95
|
}
|
|
97
|
-
const page = await this.browserforce.openPage(`${
|
|
98
|
-
await page.waitForSelector(
|
|
99
|
-
await Promise.all([
|
|
96
|
+
const page = await this.browserforce.openPage(`${CERT_PREFIX_PATH}/e?${queryString.stringify(urlAttributes)}`);
|
|
97
|
+
await page.waitForSelector(SAVE_BUTTON_SELECTOR);
|
|
98
|
+
await Promise.all([
|
|
99
|
+
page.waitForNavigation(),
|
|
100
|
+
page.click(SAVE_BUTTON_SELECTOR),
|
|
101
|
+
]);
|
|
100
102
|
await page.close();
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
106
|
if (plan.importFromKeystore) {
|
|
105
107
|
for (const certificate of plan.importFromKeystore) {
|
|
106
|
-
const page = await this.browserforce.openPage(`${
|
|
107
|
-
await page.waitForSelector(
|
|
108
|
-
const elementHandle = (await page.$(
|
|
108
|
+
const page = await this.browserforce.openPage(`${KEYSTORE_IMPORT_PATH}`);
|
|
109
|
+
await page.waitForSelector(FILE_UPLOAD_SELECTOR);
|
|
110
|
+
const elementHandle = (await page.$(FILE_UPLOAD_SELECTOR));
|
|
109
111
|
// TODO: make relative to this.command.flags.definitionfile
|
|
110
112
|
if (!certificate.filePath) {
|
|
111
113
|
throw new Error(`To import a certificate, the filePath is mandatory.`);
|
|
@@ -116,11 +118,23 @@ export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
|
116
118
|
}
|
|
117
119
|
await elementHandle.uploadFile(filePath);
|
|
118
120
|
if (certificate.password) {
|
|
119
|
-
await page.waitForSelector(
|
|
120
|
-
await page.type(
|
|
121
|
+
await page.waitForSelector(KEYSTORE_PASSWORD_SELECTOR);
|
|
122
|
+
await page.type(KEYSTORE_PASSWORD_SELECTOR, certificate.password);
|
|
123
|
+
}
|
|
124
|
+
await page.waitForSelector(SAVE_BUTTON_SELECTOR);
|
|
125
|
+
await Promise.all([
|
|
126
|
+
page.waitForNavigation(),
|
|
127
|
+
page.click(SAVE_BUTTON_SELECTOR),
|
|
128
|
+
]);
|
|
129
|
+
try {
|
|
130
|
+
await this.browserforce.throwPageErrors(page);
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
if (e.message === 'Data Not Available') {
|
|
134
|
+
throw new Error('Failed to import certificate from Keystore. Please enable Identity Provider first. https://salesforce.stackexchange.com/questions/61618/import-keystore-in-certificate-and-key-management');
|
|
135
|
+
}
|
|
136
|
+
throw e;
|
|
121
137
|
}
|
|
122
|
-
await page.waitForSelector(SELECTORS.SAVE_BUTTON);
|
|
123
|
-
await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
|
|
124
138
|
if (certificate.name) {
|
|
125
139
|
// rename cert as it has the wrong name
|
|
126
140
|
// JKS aliases are case-insensitive (and so lowercase)
|
|
@@ -129,8 +143,12 @@ export class CertificateAndKeyManagement extends BrowserforcePlugin {
|
|
|
129
143
|
.tooling.query(`SELECT Id FROM Certificate WHERE DeveloperName = '${certificate.name.toLowerCase()}'`);
|
|
130
144
|
const importedCert = certsResponse.records[0];
|
|
131
145
|
const certPage = await this.browserforce.openPage(`${importedCert.Id}/e?MasterLabel=${certificate.name}&DeveloperName=${certificate.name}`);
|
|
132
|
-
await certPage.waitForSelector(
|
|
133
|
-
await Promise.all([
|
|
146
|
+
await certPage.waitForSelector(SAVE_BUTTON_SELECTOR);
|
|
147
|
+
await Promise.all([
|
|
148
|
+
certPage.waitForNavigation(),
|
|
149
|
+
certPage.click(SAVE_BUTTON_SELECTOR),
|
|
150
|
+
]);
|
|
151
|
+
await this.browserforce.throwPageErrors(certPage);
|
|
134
152
|
await certPage.close();
|
|
135
153
|
}
|
|
136
154
|
await page.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/certificate-and-key-management/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/certificate-and-key-management/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,46 +6,46 @@ const tests = [
|
|
|
6
6
|
source: {
|
|
7
7
|
importFromKeystore: [
|
|
8
8
|
{
|
|
9
|
-
name: 'Dummy'
|
|
10
|
-
}
|
|
11
|
-
]
|
|
9
|
+
name: 'Dummy',
|
|
10
|
+
},
|
|
11
|
+
],
|
|
12
12
|
},
|
|
13
13
|
target: {
|
|
14
14
|
importFromKeystore: [
|
|
15
15
|
{
|
|
16
16
|
name: 'Dummy',
|
|
17
|
-
filePath: 'foo.jks'
|
|
18
|
-
}
|
|
19
|
-
]
|
|
17
|
+
filePath: 'foo.jks',
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
20
|
},
|
|
21
|
-
expected: undefined
|
|
21
|
+
expected: undefined,
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
description: 'should try to import keystore',
|
|
25
25
|
source: {
|
|
26
26
|
importFromKeystore: [
|
|
27
27
|
{
|
|
28
|
-
name: 'Foo'
|
|
29
|
-
}
|
|
30
|
-
]
|
|
28
|
+
name: 'Foo',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
31
|
},
|
|
32
32
|
target: {
|
|
33
33
|
importFromKeystore: [
|
|
34
34
|
{
|
|
35
35
|
name: 'Dummy',
|
|
36
|
-
filePath: 'foo.jks'
|
|
37
|
-
}
|
|
38
|
-
]
|
|
36
|
+
filePath: 'foo.jks',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
39
|
},
|
|
40
40
|
expected: {
|
|
41
41
|
importFromKeystore: [
|
|
42
42
|
{
|
|
43
43
|
name: 'Dummy',
|
|
44
|
-
filePath: 'foo.jks'
|
|
45
|
-
}
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
}
|
|
44
|
+
filePath: 'foo.jks',
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
49
|
];
|
|
50
50
|
describe('CertificateAndKeyManagement', () => {
|
|
51
51
|
describe('diff()', () => {
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
2
|
-
import { Config as CertificateAndKeyManagementConfig } from './certificate-and-key-management/index.js';
|
|
3
|
-
import { Config as IdentityProviderConfig } from './identity-provider/index.js';
|
|
4
|
-
import { Config as LoginAccessPoliciesConfig } from './login-access-policies/index.js';
|
|
5
|
-
import { Config as SharingConfig } from './sharing/index.js';
|
|
6
2
|
import { Config as AuthenticationConfigurationConfig } from './authentication-configuration/index.js';
|
|
3
|
+
import { Config as CertificateAndKeyManagementConfig } from './certificate-and-key-management/index.js';
|
|
7
4
|
type Config = {
|
|
8
5
|
certificateAndKeyManagement?: CertificateAndKeyManagementConfig;
|
|
9
|
-
identityProvider?: IdentityProviderConfig;
|
|
10
|
-
loginAccessPolicies?: LoginAccessPoliciesConfig;
|
|
11
|
-
sharing?: SharingConfig;
|
|
12
6
|
authenticationConfiguration?: AuthenticationConfigurationConfig;
|
|
13
7
|
};
|
|
14
8
|
export declare class Security extends BrowserforcePlugin {
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { LoginAccessPolicies } from './login-access-policies/index.js';
|
|
5
|
-
import { Sharing } from './sharing/index.js';
|
|
6
|
-
import { AuthenticationConfiguration } from './authentication-configuration/index.js';
|
|
2
|
+
import { AuthenticationConfiguration, } from './authentication-configuration/index.js';
|
|
3
|
+
import { CertificateAndKeyManagement, } from './certificate-and-key-management/index.js';
|
|
7
4
|
export class Security extends BrowserforcePlugin {
|
|
8
5
|
async retrieve(definition) {
|
|
9
6
|
const response = {};
|
|
@@ -12,18 +9,6 @@ export class Security extends BrowserforcePlugin {
|
|
|
12
9
|
const pluginCKM = new CertificateAndKeyManagement(this.browserforce);
|
|
13
10
|
response.certificateAndKeyManagement = await pluginCKM.retrieve(definition.certificateAndKeyManagement);
|
|
14
11
|
}
|
|
15
|
-
if (definition.identityProvider) {
|
|
16
|
-
const pluginIdentityProvider = new IdentityProvider(this.browserforce);
|
|
17
|
-
response.identityProvider = await pluginIdentityProvider.retrieve();
|
|
18
|
-
}
|
|
19
|
-
if (definition.loginAccessPolicies) {
|
|
20
|
-
const pluginLoginAccessPolicies = new LoginAccessPolicies(this.browserforce);
|
|
21
|
-
response.loginAccessPolicies = await pluginLoginAccessPolicies.retrieve();
|
|
22
|
-
}
|
|
23
|
-
if (definition.sharing) {
|
|
24
|
-
const pluginSharing = new Sharing(this.browserforce);
|
|
25
|
-
response.sharing = await pluginSharing.retrieve();
|
|
26
|
-
}
|
|
27
12
|
if (definition.authenticationConfiguration) {
|
|
28
13
|
response.authenticationConfiguration =
|
|
29
14
|
await new AuthenticationConfiguration(this.browserforce).retrieve(definition.authenticationConfiguration);
|
|
@@ -33,26 +18,11 @@ export class Security extends BrowserforcePlugin {
|
|
|
33
18
|
}
|
|
34
19
|
diff(state, definition) {
|
|
35
20
|
const certificateAndKeyManagement = new CertificateAndKeyManagement(this.browserforce).diff(state.certificateAndKeyManagement, definition.certificateAndKeyManagement);
|
|
36
|
-
const identityProvider = new IdentityProvider(this.browserforce).diff(state.identityProvider, definition.identityProvider);
|
|
37
|
-
const loginAccessPolicies = new LoginAccessPolicies(this.browserforce).diff(state.loginAccessPolicies, definition.loginAccessPolicies);
|
|
38
|
-
const sharing = new Sharing(this.browserforce).diff(state.sharing, definition.sharing);
|
|
39
21
|
const authenticationConfiguration = new AuthenticationConfiguration(this.browserforce).diff(state.authenticationConfiguration, definition.authenticationConfiguration);
|
|
40
22
|
const response = {};
|
|
41
23
|
if (certificateAndKeyManagement !== undefined) {
|
|
42
24
|
response.certificateAndKeyManagement = certificateAndKeyManagement;
|
|
43
25
|
}
|
|
44
|
-
if (identityProvider !== undefined) {
|
|
45
|
-
response.identityProvider = identityProvider;
|
|
46
|
-
}
|
|
47
|
-
if (loginAccessPolicies !== undefined) {
|
|
48
|
-
response.loginAccessPolicies = loginAccessPolicies;
|
|
49
|
-
}
|
|
50
|
-
if (loginAccessPolicies !== undefined) {
|
|
51
|
-
response.loginAccessPolicies = loginAccessPolicies;
|
|
52
|
-
}
|
|
53
|
-
if (sharing !== undefined) {
|
|
54
|
-
response.sharing = sharing;
|
|
55
|
-
}
|
|
56
26
|
if (authenticationConfiguration !== undefined) {
|
|
57
27
|
response.authenticationConfiguration = authenticationConfiguration;
|
|
58
28
|
}
|
|
@@ -63,18 +33,6 @@ export class Security extends BrowserforcePlugin {
|
|
|
63
33
|
const pluginCKM = new CertificateAndKeyManagement(this.browserforce);
|
|
64
34
|
await pluginCKM.apply(plan.certificateAndKeyManagement);
|
|
65
35
|
}
|
|
66
|
-
if (plan.identityProvider) {
|
|
67
|
-
const pluginIdentityProvider = new IdentityProvider(this.browserforce);
|
|
68
|
-
await pluginIdentityProvider.apply(plan.identityProvider);
|
|
69
|
-
}
|
|
70
|
-
if (plan.loginAccessPolicies) {
|
|
71
|
-
const pluginLoginAccessPolicies = new LoginAccessPolicies(this.browserforce);
|
|
72
|
-
await pluginLoginAccessPolicies.apply(plan.loginAccessPolicies);
|
|
73
|
-
}
|
|
74
|
-
if (plan.sharing) {
|
|
75
|
-
const pluginSharing = new Sharing(this.browserforce);
|
|
76
|
-
await pluginSharing.apply(plan.sharing);
|
|
77
|
-
}
|
|
78
36
|
if (plan.authenticationConfiguration) {
|
|
79
37
|
const pluginAuthConfig = new AuthenticationConfiguration(this.browserforce);
|
|
80
38
|
await pluginAuthConfig.apply(plan.authenticationConfiguration);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,2BAA2B,GAE5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,2BAA2B,GAE5B,MAAM,2CAA2C,CAAC;AAOnD,MAAM,OAAO,QAAS,SAAQ,kBAAkB;IACvC,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,2BAA2B,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACrE,QAAQ,CAAC,2BAA2B,GAAG,MAAM,SAAS,CAAC,QAAQ,CAC7D,UAAU,CAAC,2BAA2B,CACvC,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,2BAA2B,EAAE,CAAC;gBAC3C,QAAQ,CAAC,2BAA2B;oBAClC,MAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAC/D,UAAU,CAAC,2BAA2B,CACvC,CAAC;YACN,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,KAAa,EAAE,UAAkB;QAC3C,MAAM,2BAA2B,GAAG,IAAI,2BAA2B,CACjE,IAAI,CAAC,YAAY,CAClB,CAAC,IAAI,CACJ,KAAK,CAAC,2BAA2B,EACjC,UAAU,CAAC,2BAA2B,CACvC,CAAC;QACF,MAAM,2BAA2B,GAAG,IAAI,2BAA2B,CACjE,IAAI,CAAC,YAAY,CAClB,CAAC,IAAI,CACJ,KAAK,CAAC,2BAA2B,EACjC,UAAU,CAAC,2BAA2B,CACU,CAAC;QACnD,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,2BAA2B,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;QACrE,CAAC;QACD,IAAI,2BAA2B,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;QACrE,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAY;QAC7B,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrE,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACrC,MAAM,gBAAgB,GAAG,IAAI,2BAA2B,CACtD,IAAI,CAAC,YAAY,CAClB,CAAC;YACF,MAAM,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import { BrowserforcePlugin } from '../../../plugin.js';
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
VALUES_IN_PROGRESS: 'select[id$=":statusFieldValues:duelingListBox:backingList_s"]:not([disabled="disabled"])'
|
|
12
|
-
};
|
|
2
|
+
const ADD_BUTTON_SELECTOR = 'a[id$=":duelingListBox:backingList_add"]';
|
|
3
|
+
const CAPACITY_MODEL_SELECTOR = 'select[id$=":capacityModelSection:editCapacityModel"]';
|
|
4
|
+
const OWNER_CHANGE_CAPACITY_SELECTOR = 'input[name*=":ownerChangeCapacityCheck"]';
|
|
5
|
+
const REMOVE_BUTTON_SELECTOR = 'a[id$=":duelingListBox:backingList_remove"]';
|
|
6
|
+
const SAVE_BUTTON_SELECTOR = 'input[id$=":save"]';
|
|
7
|
+
const STATUS_FIELD_SELECTOR = 'select[id$=":statusFieldSection:editCapacityModel"]';
|
|
8
|
+
const STATUS_CHANGE_CAPACITY_SELECTOR = 'input[name*=":statusChangeCapacityCheck"]';
|
|
9
|
+
const VALUES_COMPLETED_SELECTOR = 'select[id$=":statusFieldValues:duelingListBox:backingList_a"]:not([disabled="disabled"])';
|
|
10
|
+
const VALUES_IN_PROGRESS_SELECTOR = 'select[id$=":statusFieldValues:duelingListBox:backingList_s"]:not([disabled="disabled"])';
|
|
13
11
|
export class Capacity extends BrowserforcePlugin {
|
|
14
12
|
async retrieve(definition) {
|
|
15
13
|
// Query for the service channel
|
|
16
14
|
const serviceChannelDeveloperName = definition.serviceChannelDeveloperName;
|
|
17
|
-
const serviceChannel = await this.org
|
|
15
|
+
const serviceChannel = await this.org
|
|
16
|
+
.getConnection()
|
|
17
|
+
.singleRecordQuery(`SELECT Id FROM ServiceChannel WHERE DeveloperName='${serviceChannelDeveloperName}'`);
|
|
18
18
|
// Open the service channel setup page
|
|
19
19
|
const page = await this.browserforce.openPage(`${serviceChannel.Id}/e`);
|
|
20
20
|
// Retrieve the service channel config
|
|
21
|
-
if (!await page.$(
|
|
21
|
+
if (!(await page.$(CAPACITY_MODEL_SELECTOR))) {
|
|
22
22
|
return {};
|
|
23
23
|
}
|
|
24
|
-
const capacityModel = (await page.$eval(`${
|
|
24
|
+
const capacityModel = (await page.$eval(`${CAPACITY_MODEL_SELECTOR} > option[selected]`, (el) => el.value)) ?? '';
|
|
25
25
|
if (capacityModel === 'StatusBased') {
|
|
26
|
-
const statusField = (await page.$eval(`${
|
|
27
|
-
const valuesForInProgress = await page.$$eval(`${
|
|
26
|
+
const statusField = (await page.$eval(`${STATUS_FIELD_SELECTOR} > option[selected]`, (el) => el.value)) ?? '';
|
|
27
|
+
const valuesForInProgress = await page.$$eval(`${VALUES_IN_PROGRESS_SELECTOR} > option`, (options) => {
|
|
28
28
|
return options.map((option) => option.title ?? '');
|
|
29
29
|
});
|
|
30
|
-
const checkAgentCapacityOnReopenedWorkItems = await page.$eval(
|
|
31
|
-
const checkAgentCapacityOnReassignedWorkItems = await page.$eval(
|
|
30
|
+
const checkAgentCapacityOnReopenedWorkItems = await page.$eval(STATUS_CHANGE_CAPACITY_SELECTOR, (el) => (el.getAttribute('checked') === 'checked' ? true : false));
|
|
31
|
+
const checkAgentCapacityOnReassignedWorkItems = await page.$eval(OWNER_CHANGE_CAPACITY_SELECTOR, (el) => (el.getAttribute('checked') === 'checked' ? true : false));
|
|
32
32
|
return {
|
|
33
33
|
capacityModel,
|
|
34
34
|
statusField,
|
|
35
35
|
valuesForInProgress,
|
|
36
36
|
checkAgentCapacityOnReopenedWorkItems,
|
|
37
|
-
checkAgentCapacityOnReassignedWorkItems
|
|
37
|
+
checkAgentCapacityOnReassignedWorkItems,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
return { capacityModel };
|
|
@@ -55,14 +55,19 @@ export class Capacity extends BrowserforcePlugin {
|
|
|
55
55
|
if (definition.statusField !== state.statusField) {
|
|
56
56
|
response.statusField = definition.statusField;
|
|
57
57
|
}
|
|
58
|
-
if (JSON.stringify(definition.valuesForInProgress) !==
|
|
58
|
+
if (JSON.stringify(definition.valuesForInProgress) !==
|
|
59
|
+
JSON.stringify(state.valuesForInProgress)) {
|
|
59
60
|
response.valuesForInProgress = definition.valuesForInProgress;
|
|
60
61
|
}
|
|
61
|
-
if (definition.checkAgentCapacityOnReassignedWorkItems !==
|
|
62
|
-
|
|
62
|
+
if (definition.checkAgentCapacityOnReassignedWorkItems !==
|
|
63
|
+
state.checkAgentCapacityOnReassignedWorkItems) {
|
|
64
|
+
response.checkAgentCapacityOnReassignedWorkItems =
|
|
65
|
+
definition.checkAgentCapacityOnReassignedWorkItems;
|
|
63
66
|
}
|
|
64
|
-
if (definition.checkAgentCapacityOnReopenedWorkItems !==
|
|
65
|
-
|
|
67
|
+
if (definition.checkAgentCapacityOnReopenedWorkItems !==
|
|
68
|
+
state.checkAgentCapacityOnReopenedWorkItems) {
|
|
69
|
+
response.checkAgentCapacityOnReopenedWorkItems =
|
|
70
|
+
definition.checkAgentCapacityOnReopenedWorkItems;
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
return Object.keys(response).length ? response : undefined;
|
|
@@ -77,47 +82,49 @@ export class Capacity extends BrowserforcePlugin {
|
|
|
77
82
|
// Update the service channel config
|
|
78
83
|
const configCapacity = config.capacity;
|
|
79
84
|
if (configCapacity?.capacityModel) {
|
|
80
|
-
await page.waitForSelector(
|
|
81
|
-
await page.select(
|
|
85
|
+
await page.waitForSelector(CAPACITY_MODEL_SELECTOR);
|
|
86
|
+
await page.select(CAPACITY_MODEL_SELECTOR, configCapacity.capacityModel);
|
|
82
87
|
}
|
|
83
88
|
if (configCapacity?.statusField) {
|
|
84
|
-
await page.waitForSelector(
|
|
85
|
-
await page.select(
|
|
89
|
+
await page.waitForSelector(STATUS_FIELD_SELECTOR);
|
|
90
|
+
await page.select(STATUS_FIELD_SELECTOR, configCapacity.statusField);
|
|
86
91
|
}
|
|
87
92
|
if (configCapacity?.valuesForInProgress) {
|
|
88
|
-
await page.waitForSelector(`${
|
|
89
|
-
const completedElements = await page.$$(`${
|
|
93
|
+
await page.waitForSelector(`${VALUES_COMPLETED_SELECTOR} > option`);
|
|
94
|
+
const completedElements = await page.$$(`${VALUES_COMPLETED_SELECTOR} > option`);
|
|
90
95
|
for (const completedElement of completedElements) {
|
|
91
|
-
const optionTitle = (await completedElement.evaluate(node => node.getAttribute('title')))?.toString();
|
|
92
|
-
if (optionTitle &&
|
|
96
|
+
const optionTitle = (await completedElement.evaluate((node) => node.getAttribute('title')))?.toString();
|
|
97
|
+
if (optionTitle &&
|
|
98
|
+
configCapacity.valuesForInProgress.includes(optionTitle)) {
|
|
93
99
|
await completedElement.click();
|
|
94
|
-
await page.click(
|
|
100
|
+
await page.click(ADD_BUTTON_SELECTOR);
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
|
-
await page.waitForSelector(`${
|
|
98
|
-
const inprogressElements = await page.$$(`${
|
|
103
|
+
await page.waitForSelector(`${VALUES_IN_PROGRESS_SELECTOR} > option`);
|
|
104
|
+
const inprogressElements = await page.$$(`${VALUES_IN_PROGRESS_SELECTOR} > option`);
|
|
99
105
|
for (const inprogressElement of inprogressElements) {
|
|
100
|
-
const optionTitle = (await inprogressElement.evaluate(node => node.getAttribute('title')))?.toString();
|
|
101
|
-
if (optionTitle &&
|
|
106
|
+
const optionTitle = (await inprogressElement.evaluate((node) => node.getAttribute('title')))?.toString();
|
|
107
|
+
if (optionTitle &&
|
|
108
|
+
!configCapacity.valuesForInProgress.includes(optionTitle)) {
|
|
102
109
|
await inprogressElement.click();
|
|
103
|
-
await page.click(
|
|
110
|
+
await page.click(REMOVE_BUTTON_SELECTOR);
|
|
104
111
|
}
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
114
|
if (configCapacity?.checkAgentCapacityOnReassignedWorkItems !== undefined) {
|
|
108
|
-
await page.$eval(
|
|
115
|
+
await page.$eval(STATUS_CHANGE_CAPACITY_SELECTOR, (e, v) => {
|
|
109
116
|
e.checked = v;
|
|
110
117
|
}, configCapacity.checkAgentCapacityOnReassignedWorkItems);
|
|
111
118
|
}
|
|
112
119
|
if (configCapacity?.checkAgentCapacityOnReopenedWorkItems !== undefined) {
|
|
113
|
-
await page.$eval(
|
|
120
|
+
await page.$eval(OWNER_CHANGE_CAPACITY_SELECTOR, (e, v) => {
|
|
114
121
|
e.checked = v;
|
|
115
122
|
}, configCapacity.checkAgentCapacityOnReopenedWorkItems);
|
|
116
123
|
}
|
|
117
124
|
// Save the settings and wait for page refresh
|
|
118
125
|
await Promise.all([
|
|
119
126
|
page.waitForNavigation(),
|
|
120
|
-
page.click(
|
|
127
|
+
page.click(SAVE_BUTTON_SELECTOR),
|
|
121
128
|
]);
|
|
122
129
|
// Close the page
|
|
123
130
|
await page.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/service-channels/capacity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/service-channels/capacity/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,25 +13,25 @@ describe(ServiceChannels.name, function () {
|
|
|
13
13
|
});
|
|
14
14
|
const configureServiceChannels = [
|
|
15
15
|
{
|
|
16
|
-
serviceChannelDeveloperName:
|
|
16
|
+
serviceChannelDeveloperName: 'CaseTest',
|
|
17
17
|
capacity: {
|
|
18
|
-
capacityModel:
|
|
19
|
-
statusField:
|
|
20
|
-
valuesForInProgress: [
|
|
18
|
+
capacityModel: 'StatusBased',
|
|
19
|
+
statusField: 'Case.Type',
|
|
20
|
+
valuesForInProgress: ['Electrical', 'Mechanical'],
|
|
21
21
|
checkAgentCapacityOnReopenedWorkItems: true,
|
|
22
|
-
checkAgentCapacityOnReassignedWorkItems: true
|
|
23
|
-
}
|
|
22
|
+
checkAgentCapacityOnReassignedWorkItems: true,
|
|
23
|
+
},
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
serviceChannelDeveloperName:
|
|
26
|
+
serviceChannelDeveloperName: 'LeadTest',
|
|
27
27
|
capacity: {
|
|
28
|
-
capacityModel:
|
|
29
|
-
statusField:
|
|
30
|
-
valuesForInProgress: [
|
|
28
|
+
capacityModel: 'StatusBased',
|
|
29
|
+
statusField: 'Lead.Industry',
|
|
30
|
+
valuesForInProgress: ['Agriculture', 'Chemicals'],
|
|
31
31
|
checkAgentCapacityOnReopenedWorkItems: true,
|
|
32
|
-
checkAgentCapacityOnReassignedWorkItems: true
|
|
33
|
-
}
|
|
34
|
-
}
|
|
32
|
+
checkAgentCapacityOnReassignedWorkItems: true,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
35
|
];
|
|
36
36
|
it('should create service channel as a prerequisite', () => {
|
|
37
37
|
const sourceDeployCmd = child.spawnSync('sf', [
|
|
@@ -40,7 +40,7 @@ describe(ServiceChannels.name, function () {
|
|
|
40
40
|
'start',
|
|
41
41
|
'-d',
|
|
42
42
|
path.join(__dirname, 'sfdx-source'),
|
|
43
|
-
'--json'
|
|
43
|
+
'--json',
|
|
44
44
|
]);
|
|
45
45
|
assert.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/service-channels/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;IAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAuB,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG;QAC/B;YACE,2BAA2B,EAAE,UAAU;YACvC,QAAQ,EAAE;gBACR,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,WAAW;gBACxB,mBAAmB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;gBACjD,qCAAqC,EAAE,IAAI;gBAC3C,uCAAuC,EAAE,IAAI;aAC9C;SACF;QACD;YACE,2BAA2B,EAAE,UAAU;YACvC,QAAQ,EAAE;gBACR,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,mBAAmB,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;gBACjD,qCAAqC,EAAE,IAAI;gBAC3C,uCAAuC,EAAE,IAAI;aAC9C;SACF;KACF,CAAC;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/service-channels/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;IAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAuB,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG;QAC/B;YACE,2BAA2B,EAAE,UAAU;YACvC,QAAQ,EAAE;gBACR,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,WAAW;gBACxB,mBAAmB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;gBACjD,qCAAqC,EAAE,IAAI;gBAC3C,uCAAuC,EAAE,IAAI;aAC9C;SACF;QACD;YACE,2BAA2B,EAAE,UAAU;YACvC,QAAQ,EAAE;gBACR,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,mBAAmB,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;gBACjD,qCAAqC,EAAE,IAAI;gBAC3C,uCAAuC,EAAE,IAAI;aAC9C;SACF;KACF,CAAC;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CACpB,eAAe,CAAC,MAAM,EACtB,CAAC,EACD,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,kBAAkB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QAC5D,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|