sfdx-browserforce-plugin 4.5.0 → 4.6.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.
Files changed (34) hide show
  1. package/README.md +1 -1
  2. package/lib/browserforce.js +2 -1
  3. package/lib/browserforce.js.map +1 -1
  4. package/lib/plugins/index.d.ts +4 -1
  5. package/lib/plugins/index.js +4 -1
  6. package/lib/plugins/index.js.map +1 -1
  7. package/lib/plugins/lightning-experience-settings/index.js +2 -1
  8. package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
  9. package/lib/plugins/omni-channel-settings/index.d.ts +9 -0
  10. package/lib/plugins/omni-channel-settings/index.e2e-spec.d.ts +1 -0
  11. package/lib/plugins/omni-channel-settings/index.e2e-spec.js +26 -0
  12. package/lib/plugins/omni-channel-settings/index.e2e-spec.js.map +1 -0
  13. package/lib/plugins/omni-channel-settings/index.js +33 -0
  14. package/lib/plugins/omni-channel-settings/index.js.map +1 -0
  15. package/lib/plugins/permission-sets/index.d.ts +10 -0
  16. package/lib/plugins/permission-sets/index.e2e-spec.d.ts +1 -0
  17. package/lib/plugins/permission-sets/index.e2e-spec.js +36 -0
  18. package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -0
  19. package/lib/plugins/permission-sets/index.js +22 -0
  20. package/lib/plugins/permission-sets/index.js.map +1 -0
  21. package/lib/plugins/permission-sets/service-presence-status/index.d.ts +10 -0
  22. package/lib/plugins/permission-sets/service-presence-status/index.js +56 -0
  23. package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -0
  24. package/lib/plugins/service-channels/capacity/index.d.ts +18 -0
  25. package/lib/plugins/service-channels/capacity/index.js +126 -0
  26. package/lib/plugins/service-channels/capacity/index.js.map +1 -0
  27. package/lib/plugins/service-channels/index.d.ts +12 -0
  28. package/lib/plugins/service-channels/index.e2e-spec.d.ts +1 -0
  29. package/lib/plugins/service-channels/index.e2e-spec.js +57 -0
  30. package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -0
  31. package/lib/plugins/service-channels/index.js +37 -0
  32. package/lib/plugins/service-channels/index.js.map +1 -0
  33. package/oclif.manifest.json +1 -1
  34. package/package.json +6 -4
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Actions Status](https://github.com/amtrack/sfdx-browserforce-plugin/actions/workflows/default.yml/badge.svg?branch=main)](https://github.com/amtrack/sfdx-browserforce-plugin/actions?query=branch:main)
6
6
 
7
- Unlike the [Scratch Org Definition Configuration](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs_def_file.htm) which can only be used **on the creation of a scratch org** (`sfdx force:org:create -f config/scratch-def.json`),
7
+ Unlike the [Scratch Org Definition Configuration](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs_def_file.htm) which can only be used **on the creation of a scratch org** (`sf org create scratch -f config/scratch-def.json`),
8
8
  the _Browserforce Configuration_ allows to "shape" **any org**, (e.g. scratch org, sandbox or production org) with **similar preferences and unofficial preferences** that are not (yet) available in the _Scratch Org Definition Configuration_ or as _Metadata_ (`sf browserforce apply -f config/setup-admin-login-as-any.json -u myOrg@example.com`).
9
9
 
10
10
  Further benefits:
@@ -22,7 +22,8 @@ export class Browserforce {
22
22
  // workaround for navigating frames https://github.com/puppeteer/puppeteer/issues/5123
23
23
  '--disable-features=site-per-process'
24
24
  ],
25
- headless: !(process.env.BROWSER_DEBUG === 'true')
25
+ headless: !(process.env.BROWSER_DEBUG === 'true'),
26
+ slowMo: parseInt(process.env.BROWSER_SLOWMO, 10) ?? 0
26
27
  });
27
28
  const page = await this.getNewPage();
28
29
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,9 @@ import { HighVelocitySalesSettings as highVelocitySalesSettings } from './high-v
9
9
  import { HomePageLayouts as homePageLayouts } from './home-page-layouts/index.js';
10
10
  import { LightningExperienceSettings as lightningExperienceSettings } from './lightning-experience-settings/index.js';
11
11
  import { LinkedInSalesNavigatorSettings as linkedInSalesNavigatorSettings } from './linkedin-sales-navigator-settings/index.js';
12
+ import { OmniChannelSettings as omniChannelSettings } from './omni-channel-settings/index.js';
12
13
  import { OpportunitySplits as opportunitySplits } from './opportunity-splits/index.js';
14
+ import { PermissionSets as permissionSets } from './permission-sets/index.js';
13
15
  import { Picklists as picklists } from './picklists/index.js';
14
16
  import { RecordTypes as recordTypes } from './record-types/index.js';
15
17
  import { RelateContactToMultipleAccounts as relateContactToMultipleAccounts } from './relate-contact-to-multiple-accounts/index.js';
@@ -17,5 +19,6 @@ import { ReportsAndDashboards as reportsAndDashboards } from './reports-and-dash
17
19
  import { SalesforceCpqConfig as salesforceCpqConfig } from './salesforce-cpq-config/index.js';
18
20
  import { SalesforceToSalesforce as salesforceToSalesforce } from './salesforce-to-salesforce/index.js';
19
21
  import { Security as security } from './security/index.js';
22
+ import { ServiceChannels as serviceChannels } from './service-channels/index.js';
20
23
  import { Slack as slack } from './slack/index.js';
21
- export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, opportunitySplits, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, slack };
24
+ export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack };
@@ -9,7 +9,9 @@ import { HighVelocitySalesSettings as highVelocitySalesSettings } from './high-v
9
9
  import { HomePageLayouts as homePageLayouts } from './home-page-layouts/index.js';
10
10
  import { LightningExperienceSettings as lightningExperienceSettings } from './lightning-experience-settings/index.js';
11
11
  import { LinkedInSalesNavigatorSettings as linkedInSalesNavigatorSettings } from './linkedin-sales-navigator-settings/index.js';
12
+ import { OmniChannelSettings as omniChannelSettings } from './omni-channel-settings/index.js';
12
13
  import { OpportunitySplits as opportunitySplits } from './opportunity-splits/index.js';
14
+ import { PermissionSets as permissionSets } from './permission-sets/index.js';
13
15
  import { Picklists as picklists } from './picklists/index.js';
14
16
  import { RecordTypes as recordTypes } from './record-types/index.js';
15
17
  import { RelateContactToMultipleAccounts as relateContactToMultipleAccounts } from './relate-contact-to-multiple-accounts/index.js';
@@ -17,6 +19,7 @@ import { ReportsAndDashboards as reportsAndDashboards } from './reports-and-dash
17
19
  import { SalesforceCpqConfig as salesforceCpqConfig } from './salesforce-cpq-config/index.js';
18
20
  import { SalesforceToSalesforce as salesforceToSalesforce } from './salesforce-to-salesforce/index.js';
19
21
  import { Security as security } from './security/index.js';
22
+ import { ServiceChannels as serviceChannels } from './service-channels/index.js';
20
23
  import { Slack as slack } from './slack/index.js';
21
- export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, opportunitySplits, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, slack };
24
+ export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack };
22
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1G,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,yBAAyB,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACjH,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,2BAA2B,IAAI,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAAE,8BAA8B,IAAI,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAChI,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,+BAA+B,IAAI,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACpI,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,KAAK,EACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1G,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,yBAAyB,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACjH,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,2BAA2B,IAAI,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAAE,8BAA8B,IAAI,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAChI,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,+BAA+B,IAAI,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACpI,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,WAAW,EACX,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,KAAK,EACN,CAAC"}
@@ -2,7 +2,8 @@ import { BrowserforcePlugin } from '../../plugin.js';
2
2
  const PATHS = {
3
3
  BASE: 'lightning/setup/ThemingAndBranding/home'
4
4
  };
5
- const THEME_ROW_SELECTOR = '#setupComponent lightning-datatable table > tbody > tr';
5
+ // Spring 25 changed "lightning-datatable" to "one-theme-datatable"
6
+ const THEME_ROW_SELECTOR = '#setupComponent table > tbody > tr';
6
7
  const SELECTORS = {
7
8
  DEVELOPER_NAMES: `${THEME_ROW_SELECTOR} > td:nth-child(2) > lightning-primitive-cell-factory lightning-base-formatted-text`,
8
9
  STATES: `${THEME_ROW_SELECTOR} > td:nth-child(6) > lightning-primitive-cell-factory`
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ type Config = {
3
+ enableStatusBasedCapacityModel?: boolean;
4
+ };
5
+ export declare class OmniChannelSettings extends BrowserforcePlugin {
6
+ retrieve(definition?: Config): Promise<Config>;
7
+ apply(config: Config): Promise<void>;
8
+ }
9
+ export {};
@@ -0,0 +1,26 @@
1
+ import assert from 'assert';
2
+ import { OmniChannelSettings } from './index.js';
3
+ describe(OmniChannelSettings.name, function () {
4
+ this.timeout('10m');
5
+ let plugin;
6
+ before(() => {
7
+ plugin = new OmniChannelSettings(global.bf);
8
+ });
9
+ const configEnableStatusBasedCapacityModel = {
10
+ enableStatusBasedCapacityModel: true
11
+ };
12
+ const configDisableStatusBasedCapacityModel = {
13
+ enableStatusBasedCapacityModel: false
14
+ };
15
+ it('should enable status based capacity model', async () => {
16
+ await plugin.run(configEnableStatusBasedCapacityModel);
17
+ const res = await plugin.retrieve();
18
+ assert.deepStrictEqual(res, configEnableStatusBasedCapacityModel);
19
+ });
20
+ it('should disable status based capacity model', async () => {
21
+ await plugin.run(configDisableStatusBasedCapacityModel);
22
+ const res = await plugin.retrieve();
23
+ assert.deepStrictEqual(res, configDisableStatusBasedCapacityModel);
24
+ });
25
+ });
26
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/omni-channel-settings/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE;IACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAA2B,CAAC;IAChC,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,oCAAoC,GAAG;QAC3C,8BAA8B,EAAE,IAAI;KACrC,CAAC;IACF,MAAM,qCAAqC,GAAG;QAC5C,8BAA8B,EAAE,KAAK;KACtC,CAAC;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ const PATHS = {
3
+ BASE: 'omnichannel/settings.apexp'
4
+ };
5
+ const SELECTORS = {
6
+ SAVE_BUTTON: 'input[id$=":save"]',
7
+ STATUS_CAPACITY_TOGGLE: 'input[id$=":toggleOmniStatusCapModelPref"]'
8
+ };
9
+ export class OmniChannelSettings extends BrowserforcePlugin {
10
+ async retrieve(definition) {
11
+ // Open the omni-channel setup page
12
+ const page = await this.browserforce.openPage(PATHS.BASE);
13
+ // Retrieve the service channel config
14
+ await page.waitForSelector(SELECTORS.STATUS_CAPACITY_TOGGLE);
15
+ const enableStatusBasedCapacityModel = await page.$eval(SELECTORS.STATUS_CAPACITY_TOGGLE, el => (el.getAttribute('checked') === "checked" ? true : false));
16
+ return { enableStatusBasedCapacityModel };
17
+ }
18
+ async apply(config) {
19
+ // Open the omni-channel setup page
20
+ const page = await this.browserforce.openPage(PATHS.BASE);
21
+ // Click the checkbox
22
+ const capacityModel = await page.waitForSelector(SELECTORS.STATUS_CAPACITY_TOGGLE);
23
+ await capacityModel.click();
24
+ // Save the settings
25
+ const saveButton = await page.waitForSelector(SELECTORS.SAVE_BUTTON);
26
+ await saveButton.click();
27
+ // Wait for the page to refresh
28
+ await page.waitForNavigation();
29
+ // Close the page
30
+ await page.close();
31
+ }
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/omni-channel-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,4BAA4B;CACnC,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,WAAW,EAAE,oBAAoB;IACjC,sBAAsB,EAAE,4CAA4C;CACrE,CAAC;AAMF,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,mCAAmC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1D,sCAAsC;QACtC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC7D,MAAM,8BAA8B,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3J,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,mCAAmC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACnF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAE5B,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QAEzB,+BAA+B;QAC/B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE9B,iBAAiB;QACjB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ type PermissionSet = {
3
+ permissionSetName: string;
4
+ servicePresenceStatuses: string[];
5
+ };
6
+ export declare class PermissionSets extends BrowserforcePlugin {
7
+ retrieve(definition?: PermissionSet[]): Promise<PermissionSet[]>;
8
+ apply(plan: PermissionSet[]): Promise<void>;
9
+ }
10
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import assert from 'assert';
2
+ import * as child from 'child_process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import * as path from 'path';
5
+ import { PermissionSets } from './index.js';
6
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
7
+ describe(PermissionSets.name, function () {
8
+ this.timeout('10m');
9
+ let plugin;
10
+ before(() => {
11
+ plugin = new PermissionSets(global.bf);
12
+ });
13
+ const configurePermissionSet = [
14
+ {
15
+ permissionSetName: "ServicePresenceTest",
16
+ servicePresenceStatuses: ["TestStatus", "TestStatus3"]
17
+ }
18
+ ];
19
+ it('should create permission set and service presence status as a prerequisite', () => {
20
+ const sourceDeployCmd = child.spawnSync('sf', [
21
+ 'project',
22
+ 'deploy',
23
+ 'start',
24
+ '-d',
25
+ path.join(__dirname, 'sfdx-source'),
26
+ '--json'
27
+ ]);
28
+ assert.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
29
+ });
30
+ it('should configure permission set presence status', async () => {
31
+ await plugin.run(configurePermissionSet);
32
+ const res = await plugin.retrieve(configurePermissionSet);
33
+ assert.deepStrictEqual(res, configurePermissionSet);
34
+ });
35
+ });
36
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/permission-sets/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,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE;IAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAsB,CAAC;IAC3B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG;QAC7B;YACE,iBAAiB,EAAE,qBAAqB;YACxC,uBAAuB,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;SACvD;KACF,CAAC;IAEF,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,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,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ import { ServicePresenceStatus } from './service-presence-status/index.js';
3
+ export class PermissionSets extends BrowserforcePlugin {
4
+ async retrieve(definition) {
5
+ const pluginServicePresenceStatus = new ServicePresenceStatus(this.browserforce);
6
+ const permissionSets = [];
7
+ for await (const permissionSet of definition) {
8
+ permissionSets.push({
9
+ permissionSetName: permissionSet.permissionSetName,
10
+ servicePresenceStatuses: await pluginServicePresenceStatus.retrieve(permissionSet)
11
+ });
12
+ }
13
+ return permissionSets;
14
+ }
15
+ async apply(plan) {
16
+ const pluginServicePresenceStatus = new ServicePresenceStatus(this.browserforce);
17
+ for await (const permissionSet of plan) {
18
+ await pluginServicePresenceStatus.apply(permissionSet);
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/permission-sets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAO3E,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAC7C,KAAK,CAAC,QAAQ,CAAC,UAA4B;QAChD,MAAM,2BAA2B,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjF,MAAM,cAAc,GAAoB,EAAE,CAAC;QAE3C,IAAI,KAAK,EAAE,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YAC7C,cAAc,CAAC,IAAI,CAAC;gBAClB,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;gBAClD,uBAAuB,EAAE,MAAM,2BAA2B,CAAC,QAAQ,CAAC,aAAa,CAAC;aACnF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAqB;QACtC,MAAM,2BAA2B,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjF,IAAI,KAAK,EAAE,MAAM,aAAa,IAAI,IAAI,EAAE,CAAC;YACvC,MAAM,2BAA2B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ type PermissionSet = {
3
+ permissionSetName: string;
4
+ servicePresenceStatuses: string[];
5
+ };
6
+ export declare class ServicePresenceStatus extends BrowserforcePlugin {
7
+ retrieve(definition: PermissionSet): Promise<string[]>;
8
+ apply(config: PermissionSet): Promise<void>;
9
+ }
10
+ export {};
@@ -0,0 +1,56 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ const SELECTORS = {
3
+ ADD_BUTTON: 'a[id$=":duelingListBox:backingList_add"]',
4
+ REMOVE_BUTTON: 'a[id$=":duelingListBox:backingList_remove"]',
5
+ SAVE_BUTTON: 'input[id$=":button_pc_save"]',
6
+ VALUES_AVAILABLE: 'select[id$=":duelingListBox:backingList_a"]:not([disabled="disabled"])',
7
+ VALUES_ENABLED: 'select[id$=":duelingListBox:backingList_s"]:not([disabled="disabled"])'
8
+ };
9
+ export class ServicePresenceStatus extends BrowserforcePlugin {
10
+ async retrieve(definition) {
11
+ // Query for the permission set
12
+ const permissionSetName = definition.permissionSetName;
13
+ const permissionSet = await this.org.getConnection().singleRecordQuery(`SELECT Id FROM PermissionSet WHERE Name='${permissionSetName}'`);
14
+ // Open the permission set setup page
15
+ const page = await this.browserforce.openPage(`${permissionSet.Id}/e?s=ServicePresenceStatusAccess`);
16
+ const enabledServicePresenceStatuses = await page.$$eval(`${SELECTORS.VALUES_ENABLED} > option`, (options) => {
17
+ return options.map((option) => option.title ?? '');
18
+ });
19
+ return enabledServicePresenceStatuses;
20
+ }
21
+ async apply(config) {
22
+ // Query for the permission set
23
+ const permissionSetName = config.permissionSetName;
24
+ const permissionSet = await this.org.getConnection().singleRecordQuery(`SELECT Id FROM PermissionSet WHERE Name='${permissionSetName}'`);
25
+ // Open the permission set setup page
26
+ const page = await this.browserforce.openPage(`${permissionSet.Id}/e?s=ServicePresenceStatusAccess`);
27
+ if (config?.servicePresenceStatuses) {
28
+ await page.waitForSelector(`${SELECTORS.VALUES_AVAILABLE} > option`);
29
+ const availableElements = await page.$$(`${SELECTORS.VALUES_AVAILABLE} > option`);
30
+ for (const availableElement of availableElements) {
31
+ const optionTitle = (await availableElement.evaluate(node => node.getAttribute('title')))?.toString();
32
+ if (optionTitle && config.servicePresenceStatuses.includes(optionTitle)) {
33
+ await availableElement.click();
34
+ await page.click(SELECTORS.ADD_BUTTON);
35
+ }
36
+ }
37
+ await page.waitForSelector(`${SELECTORS.VALUES_ENABLED} > option`);
38
+ const enabledElements = await page.$$(`${SELECTORS.VALUES_ENABLED} > option`);
39
+ for (const enabledElement of enabledElements) {
40
+ const optionTitle = (await enabledElement.evaluate(node => node.getAttribute('title')))?.toString();
41
+ if (optionTitle && !config.servicePresenceStatuses.includes(optionTitle)) {
42
+ await enabledElement.click();
43
+ await page.click(SELECTORS.REMOVE_BUTTON);
44
+ }
45
+ }
46
+ }
47
+ // Save the settings and wait for page refresh
48
+ await Promise.all([
49
+ page.waitForNavigation(),
50
+ page.click(SELECTORS.SAVE_BUTTON)
51
+ ]);
52
+ // Close the page
53
+ await page.close();
54
+ }
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/permission-sets/service-presence-status/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ type ServiceChannel = {
3
+ serviceChannelDeveloperName: string;
4
+ capacity: CapacityConfig;
5
+ };
6
+ export type CapacityConfig = {
7
+ capacityModel?: string;
8
+ statusField?: string;
9
+ valuesForInProgress?: string[];
10
+ checkAgentCapacityOnReopenedWorkItems?: boolean;
11
+ checkAgentCapacityOnReassignedWorkItems?: boolean;
12
+ };
13
+ export declare class Capacity extends BrowserforcePlugin {
14
+ retrieve(definition: ServiceChannel): Promise<CapacityConfig>;
15
+ diff(state?: CapacityConfig, definition?: CapacityConfig): CapacityConfig | undefined;
16
+ apply(config: ServiceChannel): Promise<void>;
17
+ }
18
+ export {};
@@ -0,0 +1,126 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ const SELECTORS = {
3
+ ADD_BUTTON: 'a[id$=":duelingListBox:backingList_add"]',
4
+ CAPACITY_MODEL: 'select[id$=":capacityModelSection:editCapacityModel"]',
5
+ OWNER_CHANGE_CAPACITY: 'input[name*=":ownerChangeCapacityCheck"]',
6
+ REMOVE_BUTTON: 'a[id$=":duelingListBox:backingList_remove"]',
7
+ SAVE_BUTTON: 'input[id$=":save"]',
8
+ STATUS_FIELD: 'select[id$=":statusFieldSection:editCapacityModel"]',
9
+ STATUS_CHANGE_CAPACITY: 'input[name*=":statusChangeCapacityCheck"]',
10
+ VALUES_COMPLETED: 'select[id$=":statusFieldValues:duelingListBox:backingList_a"]:not([disabled="disabled"])',
11
+ VALUES_IN_PROGRESS: 'select[id$=":statusFieldValues:duelingListBox:backingList_s"]:not([disabled="disabled"])'
12
+ };
13
+ export class Capacity extends BrowserforcePlugin {
14
+ async retrieve(definition) {
15
+ // Query for the service channel
16
+ const serviceChannelDeveloperName = definition.serviceChannelDeveloperName;
17
+ const serviceChannel = await this.org.getConnection().singleRecordQuery(`SELECT Id FROM ServiceChannel WHERE DeveloperName='${serviceChannelDeveloperName}'`);
18
+ // Open the service channel setup page
19
+ const page = await this.browserforce.openPage(`${serviceChannel.Id}/e`);
20
+ // Retrieve the service channel config
21
+ if (!await page.$(SELECTORS.CAPACITY_MODEL)) {
22
+ return {};
23
+ }
24
+ const capacityModel = (await page.$eval(`${SELECTORS.CAPACITY_MODEL} > option[selected]`, (el) => el.value)) ?? '';
25
+ if (capacityModel === 'StatusBased') {
26
+ const statusField = (await page.$eval(`${SELECTORS.STATUS_FIELD} > option[selected]`, (el) => el.value)) ?? '';
27
+ const valuesForInProgress = await page.$$eval(`${SELECTORS.VALUES_IN_PROGRESS} > option`, (options) => {
28
+ return options.map((option) => option.title ?? '');
29
+ });
30
+ const checkAgentCapacityOnReopenedWorkItems = await page.$eval(SELECTORS.STATUS_CHANGE_CAPACITY, (el) => el.getAttribute('checked') === 'checked' ? true : false);
31
+ const checkAgentCapacityOnReassignedWorkItems = await page.$eval(SELECTORS.OWNER_CHANGE_CAPACITY, (el) => el.getAttribute('checked') === 'checked' ? true : false);
32
+ return {
33
+ capacityModel,
34
+ statusField,
35
+ valuesForInProgress,
36
+ checkAgentCapacityOnReopenedWorkItems,
37
+ checkAgentCapacityOnReassignedWorkItems
38
+ };
39
+ }
40
+ return { capacityModel };
41
+ }
42
+ diff(state, definition) {
43
+ const response = {};
44
+ if (state && definition) {
45
+ if (definition.capacityModel === 'Tab-based') {
46
+ if (definition.capacityModel !== state.capacityModel) {
47
+ response.capacityModel = definition.capacityModel;
48
+ return response;
49
+ }
50
+ return undefined;
51
+ }
52
+ if (definition.capacityModel !== state.capacityModel) {
53
+ response.capacityModel = definition.capacityModel;
54
+ }
55
+ if (definition.statusField !== state.statusField) {
56
+ response.statusField = definition.statusField;
57
+ }
58
+ if (JSON.stringify(definition.valuesForInProgress) !== JSON.stringify(state.valuesForInProgress)) {
59
+ response.valuesForInProgress = definition.valuesForInProgress;
60
+ }
61
+ if (definition.checkAgentCapacityOnReassignedWorkItems !== state.checkAgentCapacityOnReassignedWorkItems) {
62
+ response.checkAgentCapacityOnReassignedWorkItems = definition.checkAgentCapacityOnReassignedWorkItems;
63
+ }
64
+ if (definition.checkAgentCapacityOnReopenedWorkItems !== state.checkAgentCapacityOnReopenedWorkItems) {
65
+ response.checkAgentCapacityOnReopenedWorkItems = definition.checkAgentCapacityOnReopenedWorkItems;
66
+ }
67
+ }
68
+ return Object.keys(response).length ? response : undefined;
69
+ }
70
+ async apply(config) {
71
+ const conn = this.org.getConnection();
72
+ // Query for the service channel
73
+ const serviceChannelDeveloperName = config.serviceChannelDeveloperName;
74
+ const serviceChannel = await conn.singleRecordQuery(`SELECT Id FROM ServiceChannel WHERE DeveloperName='${serviceChannelDeveloperName}'`);
75
+ // Open the service channel setup page
76
+ const page = await this.browserforce.openPage(`${serviceChannel.Id}/e`);
77
+ // Update the service channel config
78
+ const configCapacity = config.capacity;
79
+ if (configCapacity?.capacityModel) {
80
+ await page.waitForSelector(SELECTORS.CAPACITY_MODEL);
81
+ await page.select(SELECTORS.CAPACITY_MODEL, configCapacity.capacityModel);
82
+ }
83
+ if (configCapacity?.statusField) {
84
+ await page.waitForSelector(SELECTORS.STATUS_FIELD);
85
+ await page.select(SELECTORS.STATUS_FIELD, configCapacity.statusField);
86
+ }
87
+ if (configCapacity?.valuesForInProgress) {
88
+ await page.waitForSelector(`${SELECTORS.VALUES_COMPLETED} > option`);
89
+ const completedElements = await page.$$(`${SELECTORS.VALUES_COMPLETED} > option`);
90
+ for (const completedElement of completedElements) {
91
+ const optionTitle = (await completedElement.evaluate(node => node.getAttribute('title')))?.toString();
92
+ if (optionTitle && configCapacity.valuesForInProgress.includes(optionTitle)) {
93
+ await completedElement.click();
94
+ await page.click(SELECTORS.ADD_BUTTON);
95
+ }
96
+ }
97
+ await page.waitForSelector(`${SELECTORS.VALUES_IN_PROGRESS} > option`);
98
+ const inprogressElements = await page.$$(`${SELECTORS.VALUES_IN_PROGRESS} > option`);
99
+ for (const inprogressElement of inprogressElements) {
100
+ const optionTitle = (await inprogressElement.evaluate(node => node.getAttribute('title')))?.toString();
101
+ if (optionTitle && !configCapacity.valuesForInProgress.includes(optionTitle)) {
102
+ await inprogressElement.click();
103
+ await page.click(SELECTORS.REMOVE_BUTTON);
104
+ }
105
+ }
106
+ }
107
+ if (configCapacity?.checkAgentCapacityOnReassignedWorkItems !== undefined) {
108
+ await page.$eval(SELECTORS.STATUS_CHANGE_CAPACITY, (e, v) => {
109
+ e.checked = v;
110
+ }, configCapacity.checkAgentCapacityOnReassignedWorkItems);
111
+ }
112
+ if (configCapacity?.checkAgentCapacityOnReopenedWorkItems !== undefined) {
113
+ await page.$eval(SELECTORS.OWNER_CHANGE_CAPACITY, (e, v) => {
114
+ e.checked = v;
115
+ }, configCapacity.checkAgentCapacityOnReopenedWorkItems);
116
+ }
117
+ // Save the settings and wait for page refresh
118
+ await Promise.all([
119
+ page.waitForNavigation(),
120
+ page.click(SELECTORS.SAVE_BUTTON)
121
+ ]);
122
+ // Close the page
123
+ await page.close();
124
+ }
125
+ }
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/service-channels/capacity/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ import { CapacityConfig } from './capacity/index.js';
3
+ type ServiceChannel = {
4
+ serviceChannelDeveloperName: string;
5
+ capacity: CapacityConfig;
6
+ };
7
+ export declare class ServiceChannels extends BrowserforcePlugin {
8
+ retrieve(definition?: ServiceChannel[]): Promise<ServiceChannel[]>;
9
+ diff(state: ServiceChannel[], definition: ServiceChannel[]): ServiceChannel[] | undefined;
10
+ apply(plan: ServiceChannel[]): Promise<void>;
11
+ }
12
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ import assert from 'assert';
2
+ import * as child from 'child_process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import * as path from 'path';
5
+ import { ServiceChannels } from './index.js';
6
+ import { OmniChannelSettings } from '../omni-channel-settings/index.js';
7
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
8
+ describe(ServiceChannels.name, function () {
9
+ this.timeout('10m');
10
+ let plugin;
11
+ before(() => {
12
+ plugin = new ServiceChannels(global.bf);
13
+ });
14
+ const configureServiceChannels = [
15
+ {
16
+ serviceChannelDeveloperName: "CaseTest",
17
+ capacity: {
18
+ capacityModel: "StatusBased",
19
+ statusField: "Case.Type",
20
+ valuesForInProgress: ["Electrical", "Mechanical"],
21
+ checkAgentCapacityOnReopenedWorkItems: true,
22
+ checkAgentCapacityOnReassignedWorkItems: true
23
+ }
24
+ },
25
+ {
26
+ serviceChannelDeveloperName: "LeadTest",
27
+ capacity: {
28
+ capacityModel: "StatusBased",
29
+ statusField: "Lead.Industry",
30
+ valuesForInProgress: ["Agriculture", "Chemicals"],
31
+ checkAgentCapacityOnReopenedWorkItems: true,
32
+ checkAgentCapacityOnReassignedWorkItems: true
33
+ }
34
+ }
35
+ ];
36
+ it('should create service channel as a prerequisite', () => {
37
+ const sourceDeployCmd = child.spawnSync('sf', [
38
+ 'project',
39
+ 'deploy',
40
+ 'start',
41
+ '-d',
42
+ path.join(__dirname, 'sfdx-source'),
43
+ '--json'
44
+ ]);
45
+ assert.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
46
+ });
47
+ it('should enable status based capacity model as a prerequisite', async () => {
48
+ const omnniChannelPlugin = new OmniChannelSettings(global.bf);
49
+ await omnniChannelPlugin.run({ enableStatusBasedCapacityModel: true });
50
+ });
51
+ it('should configure status based capacity model for service channels', async () => {
52
+ await plugin.run(configureServiceChannels);
53
+ const res = await plugin.retrieve(configureServiceChannels);
54
+ assert.deepStrictEqual(res, configureServiceChannels);
55
+ });
56
+ });
57
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +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,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,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"}
@@ -0,0 +1,37 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ import { Capacity } from './capacity/index.js';
3
+ export class ServiceChannels extends BrowserforcePlugin {
4
+ async retrieve(definition) {
5
+ const pluginCapacity = new Capacity(this.browserforce);
6
+ const serviceChannels = [];
7
+ for await (const serviceChannel of definition) {
8
+ serviceChannels.push({
9
+ serviceChannelDeveloperName: serviceChannel.serviceChannelDeveloperName,
10
+ capacity: await pluginCapacity.retrieve(serviceChannel)
11
+ });
12
+ }
13
+ return serviceChannels;
14
+ }
15
+ diff(state, definition) {
16
+ const pluginCapacity = new Capacity(this.browserforce);
17
+ const serviceChannels = [];
18
+ for (const serviceChannelDefinition of definition) {
19
+ const serviceChannelState = state.find((serviceChannelState) => serviceChannelState.serviceChannelDeveloperName === serviceChannelDefinition.serviceChannelDeveloperName);
20
+ const capacity = pluginCapacity.diff(serviceChannelState.capacity, serviceChannelDefinition.capacity);
21
+ if (capacity !== undefined) {
22
+ serviceChannels.push({
23
+ serviceChannelDeveloperName: serviceChannelDefinition.serviceChannelDeveloperName,
24
+ capacity
25
+ });
26
+ }
27
+ }
28
+ return serviceChannels.length ? serviceChannels : undefined;
29
+ }
30
+ async apply(plan) {
31
+ const pluginCapacity = new Capacity(this.browserforce);
32
+ for await (const serviceChannel of plan) {
33
+ await pluginCapacity.apply(serviceChannel);
34
+ }
35
+ }
36
+ }
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-channels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAkB,MAAM,qBAAqB,CAAC;AAO/D,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ,CAAC,UAA6B;QACjD,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,IAAI,KAAK,EAAE,MAAM,cAAc,IAAI,UAAU,EAAE,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC;gBACnB,2BAA2B,EAAE,cAAc,CAAC,2BAA2B;gBACvE,QAAQ,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,KAAuB,EAAE,UAA4B;QAC/D,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,wBAAwB,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CACpC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,2BAA2B,KAAK,wBAAwB,CAAC,2BAA2B,CAClI,CAAC;YAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAEtG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,eAAe,CAAC,IAAI,CAAC;oBACnB,2BAA2B,EAAE,wBAAwB,CAAC,2BAA2B;oBACjF,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAsB;QACvC,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,IAAI,KAAK,EAAE,MAAM,cAAc,IAAI,IAAI,EAAE,CAAC;YACxC,MAAM,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
@@ -159,5 +159,5 @@
159
159
  ]
160
160
  }
161
161
  },
162
- "version": "4.5.0"
162
+ "version": "4.6.1"
163
163
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfdx-browserforce-plugin",
3
- "version": "4.5.0",
3
+ "version": "4.6.1",
4
4
  "description": "sfdx plugin for browser automation",
5
5
  "author": "Matthias Rolke <mr.amtrack@gmail.com>",
6
6
  "type": "module",
@@ -9,13 +9,13 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@mdapi-issues/listmetadata-standardvalueset": "3.1.0",
12
- "@salesforce/sf-plugins-core": "12.1.0",
12
+ "@salesforce/sf-plugins-core": "12.1.4",
13
13
  "p-retry": "6.2.1",
14
14
  "puppeteer": "23.10.1"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@salesforce/dev-scripts": "10.2.11",
18
- "oclif": "4.16.0"
18
+ "oclif": "4.17.27"
19
19
  },
20
20
  "files": [
21
21
  "/bin",
@@ -25,7 +25,9 @@
25
25
  "keywords": [
26
26
  "salesforce",
27
27
  "sfdx",
28
- "sfdx-plugin"
28
+ "sfdx-plugin",
29
+ "sf",
30
+ "sf-plugin"
29
31
  ],
30
32
  "license": "MIT",
31
33
  "oclif": {