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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/identity-provider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/identity-provider/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 core_1 = require("@salesforce/core");
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const certificate_and_key_management_1 = require("./certificate-and-key-management");
|
|
9
|
+
const identity_provider_1 = require("./identity-provider");
|
|
10
|
+
describe(`${certificate_and_key_management_1.CertificateAndKeyManagement.name} and ${identity_provider_1.IdentityProvider.name}`, function () {
|
|
11
|
+
let pluginIdentityProvider, pluginCertificateManagement;
|
|
12
|
+
before(() => {
|
|
13
|
+
pluginIdentityProvider = new identity_provider_1.IdentityProvider(global.bf);
|
|
14
|
+
pluginCertificateManagement = new certificate_and_key_management_1.CertificateAndKeyManagement(global.bf);
|
|
15
|
+
});
|
|
16
|
+
const configEnabled = {
|
|
17
|
+
enabled: true,
|
|
18
|
+
certificate: 'identity_provider'
|
|
19
|
+
};
|
|
20
|
+
const configDisabled = {
|
|
21
|
+
enabled: false
|
|
22
|
+
};
|
|
23
|
+
const configGeneratedCert = {
|
|
24
|
+
certificates: [
|
|
25
|
+
{
|
|
26
|
+
name: 'identity_provider',
|
|
27
|
+
label: 'identity_provider'
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
};
|
|
31
|
+
const configImportFromKeystore = {
|
|
32
|
+
importFromKeystore: [
|
|
33
|
+
{
|
|
34
|
+
filePath: './src/plugins/security/certificate-and-key-management/Dummy.jks',
|
|
35
|
+
name: 'Dummy'
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
it('should fail to enable identity provider with non-existing Certificate', async () => {
|
|
40
|
+
let err;
|
|
41
|
+
try {
|
|
42
|
+
await pluginIdentityProvider.run(configEnabled);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
err = e;
|
|
46
|
+
}
|
|
47
|
+
assert_1.default.throws(() => {
|
|
48
|
+
throw err;
|
|
49
|
+
}, /Could not find Certificate 'identity_provider'/);
|
|
50
|
+
});
|
|
51
|
+
it('should create a self-signed certificate', async () => {
|
|
52
|
+
await pluginCertificateManagement.apply(configGeneratedCert);
|
|
53
|
+
});
|
|
54
|
+
it('should not do anything if self-signed certificate is already available', async () => {
|
|
55
|
+
// explictly pass definition to retrieve
|
|
56
|
+
const res = await pluginCertificateManagement.run(configGeneratedCert);
|
|
57
|
+
assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
|
|
58
|
+
});
|
|
59
|
+
it('should enable Identity Provider with generated cert', async () => {
|
|
60
|
+
await pluginIdentityProvider.apply(configEnabled);
|
|
61
|
+
});
|
|
62
|
+
it('Identity Provider should be enabled', async () => {
|
|
63
|
+
const state = await pluginIdentityProvider.retrieve();
|
|
64
|
+
assert_1.default.deepStrictEqual(state.enabled, true);
|
|
65
|
+
});
|
|
66
|
+
it('should disable Identity Provider', async () => {
|
|
67
|
+
await pluginIdentityProvider.apply(configDisabled);
|
|
68
|
+
});
|
|
69
|
+
it('Identity Provider should be disabled', async () => {
|
|
70
|
+
const state = await pluginIdentityProvider.retrieve();
|
|
71
|
+
assert_1.default.deepStrictEqual(state.enabled, false);
|
|
72
|
+
});
|
|
73
|
+
it('should import a cert from a keystore', async () => {
|
|
74
|
+
await pluginCertificateManagement.run(configImportFromKeystore);
|
|
75
|
+
});
|
|
76
|
+
it('should not do anything if cert is already available in keystore', async () => {
|
|
77
|
+
const res = await pluginCertificateManagement.run(configImportFromKeystore);
|
|
78
|
+
assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
|
|
79
|
+
});
|
|
80
|
+
it('should delete certificates using Metadata API', async () => {
|
|
81
|
+
const org = await core_1.Org.create({});
|
|
82
|
+
const conn = org.getConnection();
|
|
83
|
+
await conn.metadata.delete('Certificate', ['identity_provider', 'Dummy']);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=index.e2e-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/security/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Security = void 0;
|
|
4
4
|
const plugin_1 = require("../../plugin");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
5
|
const certificate_and_key_management_1 = require("./certificate-and-key-management");
|
|
7
6
|
const identity_provider_1 = require("./identity-provider");
|
|
8
7
|
const login_access_policies_1 = require("./login-access-policies");
|
|
@@ -17,31 +16,41 @@ class Security extends plugin_1.BrowserforcePlugin {
|
|
|
17
16
|
}
|
|
18
17
|
if (definition.identityProvider) {
|
|
19
18
|
const pluginIdentityProvider = new identity_provider_1.IdentityProvider(this.browserforce);
|
|
20
|
-
response.identityProvider = await pluginIdentityProvider.retrieve(
|
|
19
|
+
response.identityProvider = await pluginIdentityProvider.retrieve();
|
|
21
20
|
}
|
|
22
21
|
if (definition.loginAccessPolicies) {
|
|
23
22
|
const pluginLoginAccessPolicies = new login_access_policies_1.LoginAccessPolicies(this.browserforce);
|
|
24
|
-
response.loginAccessPolicies = await pluginLoginAccessPolicies.retrieve(
|
|
23
|
+
response.loginAccessPolicies = await pluginLoginAccessPolicies.retrieve();
|
|
25
24
|
}
|
|
26
25
|
if (definition.sharing) {
|
|
27
26
|
const pluginSharing = new sharing_1.Sharing(this.browserforce);
|
|
28
|
-
response.sharing = await pluginSharing.retrieve(
|
|
27
|
+
response.sharing = await pluginSharing.retrieve();
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
return response;
|
|
32
31
|
}
|
|
33
32
|
diff(state, definition) {
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const response = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
const certificateAndKeyManagement = new certificate_and_key_management_1.CertificateAndKeyManagement(this.browserforce).diff(state.certificateAndKeyManagement, definition.certificateAndKeyManagement);
|
|
34
|
+
const identityProvider = new identity_provider_1.IdentityProvider(this.browserforce).diff(state.identityProvider, definition.identityProvider);
|
|
35
|
+
const loginAccessPolicies = new login_access_policies_1.LoginAccessPolicies(this.browserforce).diff(state.loginAccessPolicies, definition.loginAccessPolicies);
|
|
36
|
+
const sharing = new sharing_1.Sharing(this.browserforce).diff(state.sharing, definition.sharing);
|
|
37
|
+
const response = {};
|
|
38
|
+
if (certificateAndKeyManagement !== undefined) {
|
|
39
|
+
response.certificateAndKeyManagement = certificateAndKeyManagement;
|
|
40
|
+
}
|
|
41
|
+
if (identityProvider !== undefined) {
|
|
42
|
+
response.identityProvider = identityProvider;
|
|
43
|
+
}
|
|
44
|
+
if (loginAccessPolicies !== undefined) {
|
|
45
|
+
response.loginAccessPolicies = loginAccessPolicies;
|
|
46
|
+
}
|
|
47
|
+
if (loginAccessPolicies !== undefined) {
|
|
48
|
+
response.loginAccessPolicies = loginAccessPolicies;
|
|
49
|
+
}
|
|
50
|
+
if (sharing !== undefined) {
|
|
51
|
+
response.sharing = sharing;
|
|
52
|
+
}
|
|
53
|
+
return Object.keys(response).length ? response : undefined;
|
|
45
54
|
}
|
|
46
55
|
async apply(plan) {
|
|
47
56
|
if (plan.certificateAndKeyManagement) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/security/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/security/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.LoginAccessPolicies.name, function () {
|
|
9
|
+
let plugin;
|
|
10
|
+
before(() => {
|
|
11
|
+
plugin = new _1.LoginAccessPolicies(global.bf);
|
|
12
|
+
});
|
|
13
|
+
describe('administratorsCanLogInAsAnyUser', () => {
|
|
14
|
+
const configDisabled = { administratorsCanLogInAsAnyUser: false };
|
|
15
|
+
const configEnabled = { administratorsCanLogInAsAnyUser: true };
|
|
16
|
+
it('should enable', async () => {
|
|
17
|
+
await plugin.run(configEnabled);
|
|
18
|
+
});
|
|
19
|
+
it('should be enabled', async () => {
|
|
20
|
+
const res = await plugin.retrieve();
|
|
21
|
+
assert_1.default.deepStrictEqual(res, configEnabled);
|
|
22
|
+
});
|
|
23
|
+
it('should disable', async () => {
|
|
24
|
+
await plugin.apply(configDisabled);
|
|
25
|
+
});
|
|
26
|
+
it('should be disabled', async () => {
|
|
27
|
+
const res = await plugin.retrieve();
|
|
28
|
+
assert_1.default.deepStrictEqual(res, configDisabled);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=index.e2e-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../../src/plugins/security/login-access-policies/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAqD;AAErD,QAAQ,CAAC,sBAAmB,CAAC,IAAI,EAAE;IACjC,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,sBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,MAAM,cAAc,GAAW,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC;QAC1E,MAAM,aAAa,GAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC;QAExE,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,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpC,gBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -11,7 +11,7 @@ const SELECTORS = {
|
|
|
11
11
|
SAVE_BUTTON: 'input[id$=":save"]'
|
|
12
12
|
};
|
|
13
13
|
class LoginAccessPolicies extends plugin_1.BrowserforcePlugin {
|
|
14
|
-
async retrieve(
|
|
14
|
+
async retrieve() {
|
|
15
15
|
const page = await this.browserforce.openPage(PATHS.BASE);
|
|
16
16
|
await page.waitForSelector(SELECTORS.ENABLED);
|
|
17
17
|
const response = {
|
|
@@ -26,10 +26,7 @@ class LoginAccessPolicies extends plugin_1.BrowserforcePlugin {
|
|
|
26
26
|
await page.$eval(SELECTORS.ENABLED, (e, v) => {
|
|
27
27
|
e.checked = v;
|
|
28
28
|
}, config.administratorsCanLogInAsAnyUser);
|
|
29
|
-
await Promise.all([
|
|
30
|
-
page.waitForSelector(SELECTORS.CONFIRM_MESSAGE),
|
|
31
|
-
page.click(SELECTORS.SAVE_BUTTON)
|
|
32
|
-
]);
|
|
29
|
+
await Promise.all([page.waitForSelector(SELECTORS.CONFIRM_MESSAGE), page.click(SELECTORS.SAVE_BUTTON)]);
|
|
33
30
|
await page.close();
|
|
34
31
|
}
|
|
35
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/login-access-policies/index.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,qCAAqC;CAC5C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,kCAAkC;IAC3C,eAAe,EAAE,oBAAoB;IACrC,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAMF,MAAa,mBAAoB,SAAQ,2BAAkB;IAClD,KAAK,CAAC,QAAQ
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/login-access-policies/index.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,qCAAqC;CAC5C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,kCAAkC;IAC3C,eAAe,EAAE,oBAAoB;IACrC,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAMF,MAAa,mBAAoB,SAAQ,2BAAkB;IAClD,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,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG;YACf,+BAA+B,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;SAC3G,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,OAAO,EACjB,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;YAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChB,CAAC,EACD,MAAM,CAAC,+BAA+B,CACvC,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAxBD,kDAwBC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.Sharing.name, function () {
|
|
9
|
+
let plugin;
|
|
10
|
+
before(() => {
|
|
11
|
+
plugin = new _1.Sharing(global.bf);
|
|
12
|
+
});
|
|
13
|
+
const configEnabled = {
|
|
14
|
+
enableExternalSharingModel: true
|
|
15
|
+
};
|
|
16
|
+
const configDisabled = {
|
|
17
|
+
enableExternalSharingModel: true
|
|
18
|
+
};
|
|
19
|
+
it('should enable', async () => {
|
|
20
|
+
await plugin.run(configEnabled);
|
|
21
|
+
});
|
|
22
|
+
it('should be enabled', async () => {
|
|
23
|
+
const state = await plugin.retrieve();
|
|
24
|
+
assert_1.default.deepStrictEqual(state, configEnabled);
|
|
25
|
+
});
|
|
26
|
+
it('should disable', async () => {
|
|
27
|
+
await plugin.apply(configDisabled);
|
|
28
|
+
});
|
|
29
|
+
it('should be disabled', async () => {
|
|
30
|
+
const state = await plugin.retrieve();
|
|
31
|
+
assert_1.default.deepStrictEqual(state, configDisabled);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=index.e2e-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../../src/plugins/security/sharing/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAA4B;AAE5B,QAAQ,CAAC,IAAI,CAAC,UAAO,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,UAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,0BAA0B,EAAE,IAAI;KACjC,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,0BAA0B,EAAE,IAAI;KACjC,CAAC;IAEF,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,gBAAM,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,gBAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -12,13 +12,13 @@ const SELECTORS = {
|
|
|
12
12
|
MODAL_DIALOG: 'Modal.confirm'
|
|
13
13
|
};
|
|
14
14
|
class Sharing extends plugin_1.BrowserforcePlugin {
|
|
15
|
-
async retrieve(
|
|
15
|
+
async retrieve() {
|
|
16
16
|
const page = await this.browserforce.openPage(PATHS.BASE);
|
|
17
17
|
await page.waitForSelector(SELECTORS.EXTERNAL_SHARING_MODEL_BUTTON);
|
|
18
|
-
const buttonOnclick = await page.$eval(SELECTORS.EXTERNAL_SHARING_MODEL_BUTTON, (el) => el.onclick
|
|
18
|
+
const buttonOnclick = await page.$eval(SELECTORS.EXTERNAL_SHARING_MODEL_BUTTON, (el) => el.onclick?.toString() || '');
|
|
19
19
|
await page.close();
|
|
20
20
|
return {
|
|
21
|
-
enableExternalSharingModel: buttonOnclick.
|
|
21
|
+
enableExternalSharingModel: buttonOnclick.includes(SELECTORS.MODAL_DIALOG)
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
async apply(config) {
|
|
@@ -28,16 +28,10 @@ class Sharing extends plugin_1.BrowserforcePlugin {
|
|
|
28
28
|
await dialog.accept();
|
|
29
29
|
});
|
|
30
30
|
if (config.enableExternalSharingModel) {
|
|
31
|
-
await Promise.all([
|
|
32
|
-
page.waitForSelector(SELECTORS.DISABLE_BUTTON),
|
|
33
|
-
page.click(SELECTORS.ENABLE_BUTTON)
|
|
34
|
-
]);
|
|
31
|
+
await Promise.all([page.waitForSelector(SELECTORS.DISABLE_BUTTON), page.click(SELECTORS.ENABLE_BUTTON)]);
|
|
35
32
|
}
|
|
36
33
|
else {
|
|
37
|
-
await Promise.all([
|
|
38
|
-
page.waitForSelector(SELECTORS.ENABLE_BUTTON),
|
|
39
|
-
page.click(SELECTORS.DISABLE_BUTTON)
|
|
40
|
-
]);
|
|
34
|
+
await Promise.all([page.waitForSelector(SELECTORS.ENABLE_BUTTON), page.click(SELECTORS.DISABLE_BUTTON)]);
|
|
41
35
|
}
|
|
42
36
|
await page.close();
|
|
43
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/sharing/index.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,wBAAwB;CAC/B,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,6BAA6B,EAAE,6BAA6B;IAC5D,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/sharing/index.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,wBAAwB;CAC/B,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,6BAA6B,EAAE,6BAA6B;IAC5D,aAAa,EAAE,kEAAkE;IACjF,cAAc,EAAE,4DAA4D;IAC5E,YAAY,EAAE,eAAe;CAC9B,CAAC;AAMF,MAAa,OAAQ,SAAQ,2BAAkB;IACtC,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,6BAA6B,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CACpC,SAAS,CAAC,6BAA6B,EACvC,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CACvD,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,0BAA0B,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;SAC3E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACpE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACjC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,0BAA0B,EAAE;YACrC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC1G;aAAM;YACL,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC1G;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AA3BD,0BA2BC"}
|
package/lib/plugins/utils.js
CHANGED
|
@@ -1,51 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
if (!obj) {
|
|
6
|
-
obj = {};
|
|
7
|
-
}
|
|
8
|
-
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
9
|
-
if (Array.isArray(value)) {
|
|
10
|
-
if (value.length) {
|
|
11
|
-
acc[key] = value;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
else if (typeof value === 'object') {
|
|
15
|
-
if (Object.keys(value).length) {
|
|
16
|
-
acc[key] = value;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
else if (value !== undefined && value !== null) {
|
|
20
|
-
acc[key] = value;
|
|
21
|
-
}
|
|
22
|
-
return acc;
|
|
23
|
-
}, {});
|
|
24
|
-
}
|
|
25
|
-
exports.removeEmptyValues = removeEmptyValues;
|
|
26
|
-
function removeNullValues(obj) {
|
|
27
|
-
if (!obj) {
|
|
28
|
-
obj = {};
|
|
29
|
-
}
|
|
30
|
-
Object.entries(obj).forEach(([key, val]) => (val && typeof val === 'object' && removeNullValues(val)) ||
|
|
31
|
-
((val === null || val === undefined) && delete obj[key]));
|
|
32
|
-
return obj;
|
|
33
|
-
}
|
|
34
|
-
exports.removeNullValues = removeNullValues;
|
|
3
|
+
exports.deepDiff = exports.isEmptyObjectOrArray = exports.semanticallyCleanObject = void 0;
|
|
4
|
+
const util_1 = require("util");
|
|
35
5
|
// an object only containing an id is semantically empty
|
|
36
6
|
function semanticallyCleanObject(obj, id = 'id') {
|
|
37
|
-
if (
|
|
38
|
-
obj
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return null;
|
|
7
|
+
if (typeof obj === 'object' && obj !== null) {
|
|
8
|
+
if (Object.keys(obj).length === 1 && Object.keys(obj)[0] === id) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
42
11
|
}
|
|
43
12
|
return obj;
|
|
44
13
|
}
|
|
45
14
|
exports.semanticallyCleanObject = semanticallyCleanObject;
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
15
|
+
function isEmptyObjectOrArray(arg) {
|
|
16
|
+
if (typeof arg === 'object' && arg !== null) {
|
|
17
|
+
return Object.keys(arg).length === 0;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
exports.isEmptyObjectOrArray = isEmptyObjectOrArray;
|
|
22
|
+
function deepDiff(source, target) {
|
|
23
|
+
if ((0, util_1.isDeepStrictEqual)(source, target)) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
if (typeof target === 'object' && target !== null && typeof source === 'object' && source !== null) {
|
|
27
|
+
let objectOrArray;
|
|
28
|
+
if (Array.isArray(target)) {
|
|
29
|
+
objectOrArray = target.map((item, i) => deepDiff(source?.[i], item)).filter((x) => x !== undefined);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const targetKeys = Object.keys(target);
|
|
33
|
+
const minSource = Object.fromEntries(Object.entries(source).filter(([key, value]) => targetKeys.includes(key)));
|
|
34
|
+
if (!(0, util_1.isDeepStrictEqual)(minSource, source)) {
|
|
35
|
+
return deepDiff(minSource, target);
|
|
36
|
+
}
|
|
37
|
+
objectOrArray = target;
|
|
38
|
+
}
|
|
39
|
+
if (isEmptyObjectOrArray(objectOrArray)) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return objectOrArray;
|
|
43
|
+
}
|
|
44
|
+
// simple value
|
|
45
|
+
return target;
|
|
49
46
|
}
|
|
50
|
-
exports.
|
|
47
|
+
exports.deepDiff = deepDiff;
|
|
51
48
|
//# sourceMappingURL=utils.js.map
|
package/lib/plugins/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/plugins/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/plugins/utils.ts"],"names":[],"mappings":";;;AAAA,+BAAyC;AAEzC,wDAAwD;AACxD,SAAgB,uBAAuB,CAAoB,GAAM,EAAE,EAAE,GAAG,IAAI;IAC1E,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/D,OAAO,SAAS,CAAC;SAClB;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAPD,0DAOC;AAED,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,oDAKC;AAED,SAAgB,QAAQ,CAAoB,MAAqB,EAAE,MAAqB;IACtF,IAAI,IAAA,wBAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QACrC,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;QAClG,IAAI,aAA4B,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAErF,CAAC;SACf;aAAM;YACL,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;YACZ,IAAI,CAAC,IAAA,wBAAiB,EAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBACzC,OAAO,QAAQ,CAAC,SAAc,EAAE,MAAM,CAAC,CAAC;aACzC;YACD,aAAa,GAAG,MAAM,CAAC;SACxB;QACD,IAAI,oBAAoB,CAAC,aAAa,CAAC,EAAE;YACvC,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,aAAa,CAAC;KACtB;IACD,eAAe;IACf,OAAO,MAAM,CAAC;AAChB,CAAC;AA3BD,4BA2BC"}
|