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.
Files changed (182) hide show
  1. package/README.md +6 -6
  2. package/lib/browserforce-command.js +25 -19
  3. package/lib/browserforce-command.js.map +1 -1
  4. package/lib/browserforce.js +11 -28
  5. package/lib/browserforce.js.map +1 -1
  6. package/lib/commands/browserforce/apply.js +14 -14
  7. package/lib/commands/browserforce/apply.js.map +1 -1
  8. package/lib/commands/browserforce/plan.js +16 -15
  9. package/lib/commands/browserforce/plan.js.map +1 -1
  10. package/lib/config-parser.js +1 -1
  11. package/lib/config-parser.js.map +1 -1
  12. package/lib/jsforce-utils.js.map +1 -1
  13. package/lib/plugin.js +11 -30
  14. package/lib/plugin.js.map +1 -1
  15. package/lib/plugins/activity-settings/index.e2e-spec.js +41 -0
  16. package/lib/plugins/activity-settings/index.e2e-spec.js.map +1 -0
  17. package/lib/plugins/activity-settings/index.js +1 -4
  18. package/lib/plugins/activity-settings/index.js.map +1 -1
  19. package/lib/plugins/communities/index.e2e-spec.js +39 -0
  20. package/lib/plugins/communities/index.e2e-spec.js.map +1 -0
  21. package/lib/plugins/communities/index.js +2 -7
  22. package/lib/plugins/communities/index.js.map +1 -1
  23. package/lib/plugins/company-information/index.e2e-spec.js +42 -0
  24. package/lib/plugins/company-information/index.e2e-spec.js.map +1 -0
  25. package/lib/plugins/company-information/index.js +8 -12
  26. package/lib/plugins/company-information/index.js.map +1 -1
  27. package/lib/plugins/customer-portal/available-custom-objects/index.js +20 -48
  28. package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
  29. package/lib/plugins/customer-portal/available-custom-objects/index.test.js +44 -0
  30. package/lib/plugins/customer-portal/available-custom-objects/index.test.js.map +1 -0
  31. package/lib/plugins/customer-portal/enabled/index.js +3 -11
  32. package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
  33. package/lib/plugins/customer-portal/enabled/index.test.js +39 -0
  34. package/lib/plugins/customer-portal/enabled/index.test.js.map +1 -0
  35. package/lib/plugins/customer-portal/index.e2e-spec.js +222 -0
  36. package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -0
  37. package/lib/plugins/customer-portal/index.js +17 -13
  38. package/lib/plugins/customer-portal/index.js.map +1 -1
  39. package/lib/plugins/customer-portal/index.test.js +89 -0
  40. package/lib/plugins/customer-portal/index.test.js.map +1 -0
  41. package/lib/plugins/customer-portal/portals/index.js +17 -25
  42. package/lib/plugins/customer-portal/portals/index.js.map +1 -1
  43. package/lib/plugins/customer-portal/portals/index.test.js +145 -0
  44. package/lib/plugins/customer-portal/portals/index.test.js.map +1 -0
  45. package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js +96 -0
  46. package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js.map +1 -0
  47. package/lib/plugins/defer-sharing-calculation/index.js +2 -7
  48. package/lib/plugins/defer-sharing-calculation/index.js.map +1 -1
  49. package/lib/plugins/density-settings/index.e2e-spec.js +44 -0
  50. package/lib/plugins/density-settings/index.e2e-spec.js.map +1 -0
  51. package/lib/plugins/density-settings/index.js +8 -6
  52. package/lib/plugins/density-settings/index.js.map +1 -1
  53. package/lib/plugins/email-deliverability/index.e2e-spec.js +60 -0
  54. package/lib/plugins/email-deliverability/index.e2e-spec.js.map +1 -0
  55. package/lib/plugins/email-deliverability/index.js +7 -10
  56. package/lib/plugins/email-deliverability/index.js.map +1 -1
  57. package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js +34 -0
  58. package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js.map +1 -0
  59. package/lib/plugins/high-velocity-sales-settings/index.js +1 -2
  60. package/lib/plugins/high-velocity-sales-settings/index.js.map +1 -1
  61. package/lib/plugins/high-velocity-sales-settings/page.js +3 -1
  62. package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
  63. package/lib/plugins/home-page-layouts/index.e2e-spec.js +52 -0
  64. package/lib/plugins/home-page-layouts/index.e2e-spec.js.map +1 -0
  65. package/lib/plugins/home-page-layouts/index.js +14 -32
  66. package/lib/plugins/home-page-layouts/index.js.map +1 -1
  67. package/lib/plugins/home-page-layouts/index.test.js +109 -0
  68. package/lib/plugins/home-page-layouts/index.test.js.map +1 -0
  69. package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +44 -0
  70. package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -0
  71. package/lib/plugins/lightning-experience-settings/index.js +11 -9
  72. package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
  73. package/lib/plugins/opportunity-splits/index.e2e-spec.js +70 -0
  74. package/lib/plugins/opportunity-splits/index.e2e-spec.js.map +1 -0
  75. package/lib/plugins/opportunity-splits/pages/layout-selection.js +1 -4
  76. package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
  77. package/lib/plugins/opportunity-splits/pages/overview.js +1 -4
  78. package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
  79. package/lib/plugins/opportunity-splits/pages/setup.js +1 -4
  80. package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
  81. package/lib/plugins/picklists/field-dependencies/index.js +15 -10
  82. package/lib/plugins/picklists/field-dependencies/index.js.map +1 -1
  83. package/lib/plugins/picklists/field-dependencies/index.test.js +69 -0
  84. package/lib/plugins/picklists/field-dependencies/index.test.js.map +1 -0
  85. package/lib/plugins/picklists/field-dependencies/pages.js +3 -12
  86. package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
  87. package/lib/plugins/picklists/index.e2e-spec.js +118 -0
  88. package/lib/plugins/picklists/index.e2e-spec.js.map +1 -0
  89. package/lib/plugins/picklists/index.js +36 -27
  90. package/lib/plugins/picklists/index.js.map +1 -1
  91. package/lib/plugins/picklists/pages.js +7 -28
  92. package/lib/plugins/picklists/pages.js.map +1 -1
  93. package/lib/plugins/picklists/standard-value-set.js +1 -1
  94. package/lib/plugins/picklists/standard-value-set.js.map +1 -1
  95. package/lib/plugins/record-types/index.e2e-spec.js +99 -0
  96. package/lib/plugins/record-types/index.e2e-spec.js.map +1 -0
  97. package/lib/plugins/record-types/index.js +1 -2
  98. package/lib/plugins/record-types/index.js.map +1 -1
  99. package/lib/plugins/record-types/pages.js +4 -10
  100. package/lib/plugins/record-types/pages.js.map +1 -1
  101. package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +34 -0
  102. package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js.map +1 -0
  103. package/lib/plugins/relate-contact-to-multiple-accounts/index.js +3 -12
  104. package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
  105. package/lib/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.js +3 -0
  106. package/lib/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.js.map +1 -0
  107. package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +1 -4
  108. package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
  109. package/lib/plugins/reports-and-dashboards/index.e2e-spec.js +3 -0
  110. package/lib/plugins/reports-and-dashboards/index.e2e-spec.js.map +1 -0
  111. package/lib/plugins/reports-and-dashboards/index.js +6 -6
  112. package/lib/plugins/reports-and-dashboards/index.js.map +1 -1
  113. package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +39 -0
  114. package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -0
  115. package/lib/plugins/salesforce-to-salesforce/index.js +1 -4
  116. package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
  117. package/lib/plugins/security/certificate-and-key-management/index.js +25 -36
  118. package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
  119. package/lib/plugins/security/certificate-and-key-management/index.test.js +66 -0
  120. package/lib/plugins/security/certificate-and-key-management/index.test.js.map +1 -0
  121. package/lib/plugins/security/identity-provider/index.js +13 -24
  122. package/lib/plugins/security/identity-provider/index.js.map +1 -1
  123. package/lib/plugins/security/index.e2e-spec.js +86 -0
  124. package/lib/plugins/security/index.e2e-spec.js.map +1 -0
  125. package/lib/plugins/security/index.js +24 -15
  126. package/lib/plugins/security/index.js.map +1 -1
  127. package/lib/plugins/security/login-access-policies/index.e2e-spec.js +32 -0
  128. package/lib/plugins/security/login-access-policies/index.e2e-spec.js.map +1 -0
  129. package/lib/plugins/security/login-access-policies/index.js +2 -5
  130. package/lib/plugins/security/login-access-policies/index.js.map +1 -1
  131. package/lib/plugins/security/sharing/index.e2e-spec.js +34 -0
  132. package/lib/plugins/security/sharing/index.e2e-spec.js.map +1 -0
  133. package/lib/plugins/security/sharing/index.js +5 -11
  134. package/lib/plugins/security/sharing/index.js.map +1 -1
  135. package/lib/plugins/utils.js +38 -41
  136. package/lib/plugins/utils.js.map +1 -1
  137. package/oclif.manifest.json +85 -53
  138. package/package.json +12 -10
  139. package/lib/browserforce-command.d.ts +0 -15
  140. package/lib/browserforce.d.ts +0 -26
  141. package/lib/commands/browserforce/apply.d.ts +0 -6
  142. package/lib/commands/browserforce/plan.d.ts +0 -6
  143. package/lib/config-parser.d.ts +0 -16
  144. package/lib/index.d.ts +0 -1
  145. package/lib/jsforce-utils.d.ts +0 -5
  146. package/lib/plugin.d.ts +0 -11
  147. package/lib/plugins/activity-settings/index.d.ts +0 -9
  148. package/lib/plugins/communities/index.d.ts +0 -10
  149. package/lib/plugins/company-information/index.d.ts +0 -8
  150. package/lib/plugins/customer-portal/available-custom-objects/index.d.ts +0 -14
  151. package/lib/plugins/customer-portal/enabled/index.d.ts +0 -7
  152. package/lib/plugins/customer-portal/index.d.ts +0 -15
  153. package/lib/plugins/customer-portal/portals/index.d.ts +0 -25
  154. package/lib/plugins/defer-sharing-calculation/index.d.ts +0 -9
  155. package/lib/plugins/density-settings/index.d.ts +0 -17
  156. package/lib/plugins/email-deliverability/index.d.ts +0 -9
  157. package/lib/plugins/high-velocity-sales-settings/index.d.ts +0 -10
  158. package/lib/plugins/high-velocity-sales-settings/page.d.ts +0 -7
  159. package/lib/plugins/home-page-layouts/index.d.ts +0 -14
  160. package/lib/plugins/index.d.ts +0 -18
  161. package/lib/plugins/lightning-experience-settings/index.d.ts +0 -17
  162. package/lib/plugins/opportunity-splits/index.d.ts +0 -9
  163. package/lib/plugins/opportunity-splits/pages/layout-selection.d.ts +0 -8
  164. package/lib/plugins/opportunity-splits/pages/overview.d.ts +0 -10
  165. package/lib/plugins/opportunity-splits/pages/setup.d.ts +0 -8
  166. package/lib/plugins/picklists/field-dependencies/index.d.ts +0 -11
  167. package/lib/plugins/picklists/field-dependencies/pages.d.ts +0 -14
  168. package/lib/plugins/picklists/index.d.ts +0 -23
  169. package/lib/plugins/picklists/pages.d.ts +0 -40
  170. package/lib/plugins/picklists/standard-value-set.d.ts +0 -1
  171. package/lib/plugins/record-types/index.d.ts +0 -13
  172. package/lib/plugins/record-types/pages.d.ts +0 -15
  173. package/lib/plugins/relate-contact-to-multiple-accounts/index.d.ts +0 -9
  174. package/lib/plugins/reports-and-dashboards/folder-sharing/index.d.ts +0 -8
  175. package/lib/plugins/reports-and-dashboards/index.d.ts +0 -11
  176. package/lib/plugins/salesforce-to-salesforce/index.d.ts +0 -9
  177. package/lib/plugins/security/certificate-and-key-management/index.d.ts +0 -23
  178. package/lib/plugins/security/identity-provider/index.d.ts +0 -10
  179. package/lib/plugins/security/index.d.ts +0 -17
  180. package/lib/plugins/security/login-access-policies/index.d.ts +0 -8
  181. package/lib/plugins/security/sharing/index.d.ts +0 -8
  182. package/lib/plugins/utils.d.ts +0 -4
@@ -9,10 +9,7 @@ class RecordTypePage {
9
9
  const xpath = `//a[contains(@href, "setup/ui/recordtypedelete.jsp?id=${recordTypeId.slice(0, 15)}")]`;
10
10
  await this.page.waitForXPath(xpath);
11
11
  const deleteLink = (await this.page.$x(xpath))[0];
12
- await Promise.all([
13
- this.page.waitForNavigation(),
14
- this.page.evaluate((e) => e.click(), deleteLink)
15
- ]);
12
+ await Promise.all([this.page.waitForNavigation(), this.page.evaluate((e) => e.click(), deleteLink)]);
16
13
  return new RecordTypeDeletePage(this.page);
17
14
  }
18
15
  }
@@ -33,10 +30,7 @@ class RecordTypeDeletePage {
33
30
  }
34
31
  async save() {
35
32
  await this.page.waitForSelector(this.saveButton);
36
- await Promise.all([
37
- this.page.waitForNavigation(),
38
- this.page.click(this.saveButton)
39
- ]);
33
+ await Promise.all([this.page.waitForNavigation(), this.page.click(this.saveButton)]);
40
34
  await this.throwPageErrors();
41
35
  }
42
36
  async throwOnMissingSaveButton() {
@@ -46,7 +40,7 @@ class RecordTypeDeletePage {
46
40
  if (bodyHandle) {
47
41
  const errorMsg = await this.page.evaluate((div) => div.textContent, bodyHandle);
48
42
  await bodyHandle.dispose();
49
- if (errorMsg && errorMsg.trim()) {
43
+ if (errorMsg?.trim()) {
50
44
  throw new Error(errorMsg.trim());
51
45
  }
52
46
  }
@@ -57,7 +51,7 @@ class RecordTypeDeletePage {
57
51
  if (errorHandle) {
58
52
  const errorMsg = await this.page.evaluate((div) => div.innerText, errorHandle);
59
53
  await errorHandle.dispose();
60
- if (errorMsg && errorMsg.trim()) {
54
+ if (errorMsg?.trim()) {
61
55
  throw new Error(errorMsg.trim());
62
56
  }
63
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/record-types/pages.ts"],"names":[],"mappings":";;;AAEA,MAAa,cAAc;IAGzB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAAoB;QAEpB,MAAM,KAAK,GAAG,yDAAyD,YAAY,CAAC,KAAK,CACvF,CAAC,EACD,EAAE,CACH,KAAK,CAAC;QACP,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;SACjD,CAAC,CAAC;QACH,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAtBD,wCAsBC;AAED,MAAa,oBAAoB;IAI/B,YAAY,IAAU;QAFZ,eAAU,GAAG,oBAAoB,CAAC;QAG1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,eAAwB;QACpC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACtC,MAAM,kBAAkB,GAAG,WAAW,CAAC;QACvC,IAAI,eAAe,EAAE;YACnB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAC1E;QACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE;gBACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvC,CAAC,GAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EACxC,UAAU,CACX,CAAC;gBACF,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;oBAC/B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;iBAClC;aACF;SACF;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CACnC,qCAAqC,CACtC,CAAC;QACF,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvC,CAAC,GAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EACtC,WAAW,CACZ,CAAC;YACF,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;aAClC;SACF;IACH,CAAC;CACF;AA3DD,oDA2DC"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/record-types/pages.ts"],"names":[],"mappings":"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"}
@@ -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(_1.RelateContactToMultipleAccounts.name, function () {
9
+ let plugin;
10
+ before(() => {
11
+ plugin = new _1.RelateContactToMultipleAccounts(global.bf);
12
+ });
13
+ const configEnabled = {
14
+ enabled: true
15
+ };
16
+ const configDisabled = {
17
+ enabled: false
18
+ };
19
+ it('should enable', async () => {
20
+ await plugin.run(configEnabled);
21
+ });
22
+ it('should be enabled', async () => {
23
+ const res = await plugin.run(configEnabled);
24
+ assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
25
+ });
26
+ it('should disable', async () => {
27
+ await plugin.run(configDisabled);
28
+ });
29
+ it('should be disabled', async () => {
30
+ const res = await plugin.run(configDisabled);
31
+ assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
32
+ });
33
+ });
34
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAoD;AAEpD,QAAQ,CAAC,kCAA+B,CAAC,IAAI,EAAE;IAC7C,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,kCAA+B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;KACf,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,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,gBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7C,gBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -19,10 +19,7 @@ class RelateContactToMultipleAccounts extends plugin_1.BrowserforcePlugin {
19
19
  const page = await this.browserforce.openPage(PATHS.BASE);
20
20
  // First we have to click the 'Edit' button, to see the checkbox
21
21
  await page.waitForSelector(SELECTORS.EDIT_BUTTON);
22
- await Promise.all([
23
- page.waitForNavigation(),
24
- page.click(SELECTORS.EDIT_BUTTON)
25
- ]);
22
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.EDIT_BUTTON)]);
26
23
  await page.waitForSelector(SELECTORS.ENABLED);
27
24
  const response = {
28
25
  enabled: await page.$eval(SELECTORS.ENABLED, (el) => el.checked)
@@ -34,10 +31,7 @@ class RelateContactToMultipleAccounts extends plugin_1.BrowserforcePlugin {
34
31
  const page = await this.browserforce.openPage(PATHS.BASE);
35
32
  // First we have to click the 'Edit' button, to make the checkbox editable
36
33
  await page.waitForSelector(SELECTORS.EDIT_BUTTON);
37
- await Promise.all([
38
- page.waitForNavigation(),
39
- page.click(SELECTORS.EDIT_BUTTON)
40
- ]);
34
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.EDIT_BUTTON)]);
41
35
  // Change the value of the checkbox
42
36
  await page.waitForSelector(SELECTORS.ENABLED);
43
37
  await page.$eval(SELECTORS.ENABLED, (e, v) => {
@@ -56,10 +50,7 @@ class RelateContactToMultipleAccounts extends plugin_1.BrowserforcePlugin {
56
50
  if (await page.$(SELECTORS.CONFIRM_CHECKBOX)) {
57
51
  await page.click(SELECTORS.CONFIRM_CHECKBOX);
58
52
  await page.waitForSelector(SELECTORS.CONFIRM_BUTTON);
59
- await Promise.all([
60
- page.waitForNavigation(),
61
- page.click(SELECTORS.CONFIRM_BUTTON)
62
- ]);
53
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.CONFIRM_BUTTON)]);
63
54
  }
64
55
  await (0, browserforce_1.throwPageErrors)(page);
65
56
  await page.close();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/relate-contact-to-multiple-accounts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // no tests because this setting is only available in old orgs
3
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../../src/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.ts"],"names":[],"mappings":";AAAA,8DAA8D"}
@@ -47,10 +47,7 @@ class FolderSharing extends plugin_1.BrowserforcePlugin {
47
47
  e.checked = v;
48
48
  }, config.enableEnhancedFolderSharing);
49
49
  await page.waitForSelector(SELECTORS.SAVE_BUTTON);
50
- await Promise.all([
51
- page.waitForNavigation(),
52
- page.click(SELECTORS.SAVE_BUTTON)
53
- ]);
50
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
54
51
  await page.close();
55
52
  }
56
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/reports-and-dashboards/folder-sharing/index.ts"],"names":[],"mappings":";;;AACA,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,uCAAuC;CAC9C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,eAAe,EAAE,eAAe;IAChC,WAAW,EAAE,wBAAwB;CACtC,CAAC;AAMF,MAAa,aAAc,SAAQ,2BAAkB;IAC5C,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,QAAQ,GAAG;YACf,2BAA2B,EAAE,IAAI;SAClC,CAAC;QACF,IAAI,IAAU,CAAC;QACf,IAAI;YACF,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,CACtE,IAAI,EACJ,SAAS,CAAC,IAAI,CACf,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnE,IAAI,WAAW,EAAE;gBACf,QAAQ,CAAC,2BAA2B,GAAG,MAAM,WAAW,CAAC,KAAK,CAC5D,SAAS,CAAC,eAAe,EACzB,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CACrC,CAAC;aACH;iBAAM;gBACL,kBAAkB;gBAClB,QAAQ,CAAC,2BAA2B,GAAG,IAAI,CAAC;aAC7C;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE;gBAC9C,OAAO,QAAQ,CAAC;aACjB;YACD,MAAM,CAAC,CAAC;SACT;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,2BAA2B,KAAK,KAAK,EAAE;YAChD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;SACH;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,eAAe,EACzB,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;YAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChB,CAAC,EACD,MAAM,CAAC,2BAA2B,CACnC,CAAC;QACF,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAtDD,sCAsDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/reports-and-dashboards/folder-sharing/index.ts"],"names":[],"mappings":";;;AACA,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,uCAAuC;CAC9C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,eAAe,EAAE,eAAe;IAChC,WAAW,EAAE,wBAAwB;CACtC,CAAC;AAMF,MAAa,aAAc,SAAQ,2BAAkB;IAC5C,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,QAAQ,GAAG;YACf,2BAA2B,EAAE,IAAI;SAClC,CAAC;QACF,IAAI,IAAU,CAAC;QACf,IAAI;YACF,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/F,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnE,IAAI,WAAW,EAAE;gBACf,QAAQ,CAAC,2BAA2B,GAAG,MAAM,WAAW,CAAC,KAAK,CAC5D,SAAS,CAAC,eAAe,EACzB,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CACrC,CAAC;aACH;iBAAM;gBACL,kBAAkB;gBAClB,QAAQ,CAAC,2BAA2B,GAAG,IAAI,CAAC;aAC7C;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE;gBAC9C,OAAO,QAAQ,CAAC;aACjB;YACD,MAAM,CAAC,CAAC;SACT;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,2BAA2B,KAAK,KAAK,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;SAClF;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,eAAe,EACzB,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;YAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QAChB,CAAC,EACD,MAAM,CAAC,2BAA2B,CACnC,CAAC;QACF,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AA9CD,sCA8CC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // no tests because the folder sharing setting is only available in old orgs
3
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/reports-and-dashboards/index.e2e-spec.ts"],"names":[],"mappings":";AAAA,4EAA4E"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReportsAndDashboards = void 0;
4
4
  const plugin_1 = require("../../plugin");
5
- const utils_1 = require("../utils");
6
5
  const folder_sharing_1 = require("./folder-sharing");
7
6
  class ReportsAndDashboards extends plugin_1.BrowserforcePlugin {
8
7
  async retrieve(definition) {
@@ -16,11 +15,12 @@ class ReportsAndDashboards extends plugin_1.BrowserforcePlugin {
16
15
  return response;
17
16
  }
18
17
  diff(state, definition) {
19
- const pluginFolderSharing = new folder_sharing_1.FolderSharing(null);
20
- const response = {
21
- folderSharing: pluginFolderSharing.diff(state.folderSharing, definition.folderSharing)
22
- };
23
- return (0, utils_1.removeEmptyValues)(response);
18
+ const response = {};
19
+ const folderSharing = new folder_sharing_1.FolderSharing(this.browserforce).diff(state.folderSharing, definition.folderSharing);
20
+ if (folderSharing !== undefined) {
21
+ response.folderSharing = folderSharing;
22
+ }
23
+ return Object.keys(response).length ? response : undefined;
24
24
  }
25
25
  async apply(plan) {
26
26
  if (plan.folderSharing) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/reports-and-dashboards/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAClD,oCAA6C;AAC7C,qDAAgF;AAMhF,MAAa,oBAAqB,SAAQ,2BAAkB;IACnD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,CAAC,aAAa,EAAE;gBAC5B,MAAM,mBAAmB,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjE,QAAQ,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CACzD,UAAU,CAAC,aAAa,CACzB,CAAC;aACH;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,KAAa,EAAE,UAAkB;QAC3C,MAAM,mBAAmB,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG;YACf,aAAa,EAAE,mBAAmB,CAAC,IAAI,CACrC,KAAK,CAAC,aAAa,EACnB,UAAU,CAAC,aAAa,CACzB;SACF,CAAC;QACF,OAAO,IAAA,yBAAiB,EAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAY;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,mBAAmB,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACrD;IACH,CAAC;CACF;AA/BD,oDA+BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/reports-and-dashboards/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAClD,qDAAgF;AAMhF,MAAa,oBAAqB,SAAQ,2BAAkB;IACnD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,CAAC,aAAa,EAAE;gBAC5B,MAAM,mBAAmB,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjE,QAAQ,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aACvF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,KAAa,EAAE,UAAkB;QAC3C,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAEhG,CAAC;QACd,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;SACxC;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,aAAa,EAAE;YACtB,MAAM,mBAAmB,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACrD;IACH,CAAC;CACF;AA7BD,oDA6BC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const _1 = require(".");
8
+ describe(_1.SalesforceToSalesforce.name, function () {
9
+ let plugin;
10
+ before(() => {
11
+ plugin = new _1.SalesforceToSalesforce(global.bf);
12
+ });
13
+ const configEnabled = {
14
+ enabled: true
15
+ };
16
+ const configDisabled = {
17
+ enabled: false
18
+ };
19
+ it('should enable', async () => {
20
+ await plugin.run(configEnabled);
21
+ });
22
+ it('should be enabled', async () => {
23
+ const state = await plugin.retrieve();
24
+ assert_1.default.deepStrictEqual(state, configEnabled);
25
+ });
26
+ it('should fail to disable', async () => {
27
+ let err;
28
+ try {
29
+ await plugin.apply(configDisabled);
30
+ }
31
+ catch (e) {
32
+ err = e;
33
+ }
34
+ assert_1.default.throws(() => {
35
+ throw err;
36
+ }, /cannot be disabled/);
37
+ });
38
+ });
39
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/salesforce-to-salesforce/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAA2C;AAE3C,QAAQ,CAAC,yBAAsB,CAAC,IAAI,EAAE;IACpC,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,yBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;KACf,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,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,IAAI,GAAG,CAAC;QACR,IAAI;YACF,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SACpC;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,GAAG,CAAC,CAAC;SACT;QACD,gBAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -39,10 +39,7 @@ class SalesforceToSalesforce extends plugin_1.BrowserforcePlugin {
39
39
  await page.$eval(SELECTORS.ENABLED, (e, v) => {
40
40
  e.checked = v;
41
41
  }, config.enabled);
42
- await Promise.all([
43
- page.waitForNavigation(),
44
- page.click(SELECTORS.SAVE_BUTTON)
45
- ]);
42
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
46
43
  const result = await this.retrieve();
47
44
  await page.close();
48
45
  if (result.enabled !== config.enabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/salesforce-to-salesforce/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAC7B,yCAAkD;AAElD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,mCAAmC;CAC1C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAMF,MAAa,sBAAuB,SAAQ,2BAAkB;IACrD,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,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE;YACf,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CACjC,SAAS,CAAC,OAAO,EACjB,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CACrC,CAAC;SACH;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;QACD,kFAAkF;QAClF,MAAM,IAAA,iBAAM,EAAC,KAAK,IAAI,EAAE;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,OAAO,EACjB,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;gBAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;YAChB,CAAC,EACD,MAAM,CAAC,OAAO,CACf,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aACxD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA5CD,wDA4CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/salesforce-to-salesforce/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAC7B,yCAAkD;AAElD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,mCAAmC;CAC1C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAMF,MAAa,sBAAuB,SAAQ,2BAAkB;IACrD,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,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE;YACf,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SAC9F;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;QACD,kFAAkF;QAClF,MAAM,IAAA,iBAAM,EAAC,KAAK,IAAI,EAAE;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,KAAK,CACd,SAAS,CAAC,OAAO,EACjB,CAAC,CAAmB,EAAE,CAAU,EAAE,EAAE;gBAClC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;YAChB,CAAC,EACD,MAAM,CAAC,OAAO,CACf,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aACxD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtCD,wDAsCC"}
@@ -25,11 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.CertificateAndKeyManagement = void 0;
27
27
  const fs_1 = require("fs");
28
- const jsonMergePatch = __importStar(require("json-merge-patch"));
29
28
  const path = __importStar(require("path"));
30
29
  const queryString = __importStar(require("querystring"));
31
30
  const plugin_1 = require("../../../plugin");
32
- const utils_1 = require("../../utils");
33
31
  const PATHS = {
34
32
  CERT_PREFIX: '0P1',
35
33
  KEYSTORE_IMPORT: '_ui/security/certificate/KeyStoreImportUi/e'
@@ -46,18 +44,15 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
46
44
  importFromKeystore: []
47
45
  };
48
46
  let existingCertificates;
49
- if (definition?.certificates?.length ||
50
- definition?.importFromKeystore?.length) {
51
- existingCertificates = await this.org
52
- .getConnection()
53
- .tooling.query(`SELECT Id, DeveloperName, MasterLabel, OptionsIsPrivateKeyExportable, KeySize FROM Certificate`, { scanAll: false }
47
+ if (definition?.certificates?.length || definition?.importFromKeystore?.length) {
48
+ existingCertificates = await this.org.getConnection().tooling.query(`SELECT Id, DeveloperName, MasterLabel, OptionsIsPrivateKeyExportable, KeySize FROM Certificate`, { scanAll: false }
54
49
  // BUG in jsforce: query acts with scanAll:true and returns deleted CustomObjects.
55
50
  // It cannot be disabled.
56
51
  );
57
52
  }
58
53
  if (definition?.certificates?.length) {
59
54
  for (const cert of definition.certificates) {
60
- const existingCert = existingCertificates.records.find(co => co.DeveloperName === cert.name);
55
+ const existingCert = existingCertificates.records.find((co) => co.DeveloperName === cert.name);
61
56
  if (existingCert) {
62
57
  response.certificates.push({
63
58
  _id: existingCert.Id,
@@ -71,11 +66,10 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
71
66
  }
72
67
  if (definition?.importFromKeystore?.length) {
73
68
  for (const cert of definition.importFromKeystore) {
74
- const existingCert = existingCertificates.records.find(co => co.DeveloperName === cert.name);
69
+ const existingCert = existingCertificates.records.find((co) => co.DeveloperName === cert.name);
75
70
  if (existingCert) {
76
71
  response.importFromKeystore.push({
77
- name: existingCert.DeveloperName,
78
- filePath: null
72
+ name: existingCert.DeveloperName
79
73
  });
80
74
  }
81
75
  }
@@ -83,29 +77,30 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
83
77
  return response;
84
78
  }
85
79
  diff(state, definition) {
86
- const response = {
87
- certificates: [],
88
- importFromKeystore: []
89
- };
80
+ const response = {};
90
81
  if (state && definition && state.certificates && definition.certificates) {
91
82
  for (const cert of definition.certificates) {
92
- const existingCert = state.certificates.find(c => c.name === cert.name);
83
+ const existingCert = state.certificates.find((c) => c.name === cert.name);
93
84
  if (existingCert) {
94
- // move id from state to definition to be retained and used
85
+ // copy id from state to definition to be retained and used
95
86
  cert._id = existingCert._id;
96
- delete existingCert._id;
97
87
  }
98
- const certDiff = (0, utils_1.semanticallyCleanObject)((0, utils_1.removeNullValues)(jsonMergePatch.generate(existingCert, cert)), '_id');
99
- if (certDiff) {
88
+ const certDiff = super.diff(existingCert, cert);
89
+ if (certDiff !== undefined) {
90
+ if (!response.certificates) {
91
+ response.certificates = [];
92
+ }
100
93
  response.certificates.push(certDiff);
101
94
  }
102
95
  }
103
96
  }
104
97
  if (definition?.importFromKeystore?.length) {
105
- response.importFromKeystore =
106
- definition?.importFromKeystore?.filter(cert => !state.importFromKeystore.find(c => c.name === cert.name)) || [];
98
+ const importFromKeystore = definition?.importFromKeystore?.filter((cert) => !state?.importFromKeystore?.find((c) => c.name === cert.name));
99
+ if (importFromKeystore.length) {
100
+ response.importFromKeystore = importFromKeystore;
101
+ }
107
102
  }
108
- return (0, utils_1.removeEmptyValues)(response);
103
+ return Object.keys(response).length ? response : undefined;
109
104
  }
110
105
  async apply(plan) {
111
106
  if (plan.certificates) {
@@ -127,10 +122,7 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
127
122
  }
128
123
  const page = await this.browserforce.openPage(`${PATHS.CERT_PREFIX}/e?${queryString.stringify(urlAttributes)}`);
129
124
  await page.waitForSelector(SELECTORS.SAVE_BUTTON);
130
- await Promise.all([
131
- page.waitForNavigation(),
132
- page.click(SELECTORS.SAVE_BUTTON)
133
- ]);
125
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
134
126
  await page.close();
135
127
  }
136
128
  }
@@ -139,8 +131,11 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
139
131
  for (const certificate of plan.importFromKeystore) {
140
132
  const page = await this.browserforce.openPage(`${PATHS.KEYSTORE_IMPORT}`);
141
133
  await page.waitForSelector(SELECTORS.FILE_UPLOAD);
142
- const elementHandle = await page.$(SELECTORS.FILE_UPLOAD);
134
+ const elementHandle = (await page.$(SELECTORS.FILE_UPLOAD));
143
135
  // TODO: make relative to this.command.flags.definitionfile
136
+ if (!certificate.filePath) {
137
+ throw new Error(`To import a certificate, the filePath is mandatory.`);
138
+ }
144
139
  const filePath = path.resolve(certificate.filePath);
145
140
  if (!(0, fs_1.existsSync)(filePath)) {
146
141
  throw new Error(`file does not exist: ${filePath}`);
@@ -151,10 +146,7 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
151
146
  await page.type(SELECTORS.KEYSTORE_PASSWORD, certificate.password);
152
147
  }
153
148
  await page.waitForSelector(SELECTORS.SAVE_BUTTON);
154
- await Promise.all([
155
- page.waitForNavigation(),
156
- page.click(SELECTORS.SAVE_BUTTON)
157
- ]);
149
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
158
150
  if (certificate.name) {
159
151
  // rename cert as it has the wrong name
160
152
  // JKS aliases are case-insensitive (and so lowercase)
@@ -164,10 +156,7 @@ class CertificateAndKeyManagement extends plugin_1.BrowserforcePlugin {
164
156
  const importedCert = certsResponse.records[0];
165
157
  const certPage = await this.browserforce.openPage(`${importedCert.Id}/e?MasterLabel=${certificate.name}&DeveloperName=${certificate.name}`);
166
158
  await certPage.waitForSelector(SELECTORS.SAVE_BUTTON);
167
- await Promise.all([
168
- certPage.waitForNavigation(),
169
- certPage.click(SELECTORS.SAVE_BUTTON)
170
- ]);
159
+ await Promise.all([certPage.waitForNavigation(), certPage.click(SELECTORS.SAVE_BUTTON)]);
171
160
  await certPage.close();
172
161
  }
173
162
  await page.close();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/certificate-and-key-management/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/certificate-and-key-management/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAgC;AAEhC,2CAA6B;AAE7B,yDAA2C;AAC3C,4CAAqD;AAErD,MAAM,KAAK,GAAG;IACZ,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,6CAA6C;CAC/D,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,WAAW,EAAE,oBAAoB;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,WAAW,EAAE,oBAAoB;CAClC,CAAC;AA4BF,MAAa,2BAA4B,SAAQ,2BAAkB;IAC1D,KAAK,CAAC,QAAQ,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAW;YACvB,YAAY,EAAE,EAAE;YAChB,kBAAkB,EAAE,EAAE;SACvB,CAAC;QACF,IAAI,oBAAoB,CAAC;QACzB,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE;YAC9E,oBAAoB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CACjE,gGAAgG,EAChG,EAAE,OAAO,EAAE,KAAK,EAAE;YAClB,kFAAkF;YAClF,yBAAyB;aAC1B,CAAC;SACH;QACD,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE;YACpC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,YAAY,EAAE;gBAC1C,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/F,IAAI,YAAY,EAAE;oBAChB,QAAQ,CAAC,YAAa,CAAC,IAAI,CAAC;wBAC1B,GAAG,EAAE,YAAY,CAAC,EAAE;wBACpB,IAAI,EAAE,YAAY,CAAC,aAAa;wBAChC,KAAK,EAAE,YAAY,CAAC,WAAW;wBAC/B,UAAU,EAAE,YAAY,CAAC,6BAA6B;wBACtD,OAAO,EAAE,YAAY,CAAC,OAAO;qBAC9B,CAAC,CAAC;iBACJ;aACF;SACF;QACD,IAAI,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE;YAC1C,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,kBAAkB,EAAE;gBAChD,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/F,IAAI,YAAY,EAAE;oBAChB,QAAQ,CAAC,kBAAmB,CAAC,IAAI,CAAC;wBAChC,IAAI,EAAE,YAAY,CAAC,aAAa;qBACjC,CAAC,CAAC;iBACJ;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,KAAc,EAAE,UAAmB;QAC7C,MAAM,QAAQ,GAAW,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,EAAE;YACxE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,YAAY,EAAE;gBAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1E,IAAI,YAAY,EAAE;oBAChB,2DAA2D;oBAC3D,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;iBAC7B;gBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAA4B,CAAC;gBAC3E,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;wBAC1B,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC;qBAC5B;oBACD,QAAQ,CAAC,YAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACvC;aACF;SACF;QACD,IAAI,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE;YAC1C,MAAM,kBAAkB,GAAG,UAAU,EAAE,kBAAkB,EAAE,MAAM,CAC/D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CACxE,CAAC;YACF,IAAI,kBAAkB,CAAC,MAAM,EAAE;gBAC7B,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;aAClD;SACF;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,YAAY,EAAE;YACrB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC3C,IAAI,WAAW,CAAC,GAAG,EAAE;oBACnB,SAAS;iBACV;qBAAM;oBACL,aAAa;oBACb,MAAM,aAAa,GAAG;wBACpB,aAAa,EAAE,WAAW,CAAC,IAAI;wBAC/B,WAAW,EAAE,WAAW,CAAC,KAAK;qBAC/B,CAAC;oBACF,IAAI,WAAW,CAAC,OAAO,EAAE;wBACvB,aAAa,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;qBAChD;oBACD,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE;wBACxC,aAAa,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvD;oBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAC3C,GAAG,KAAK,CAAC,WAAW,MAAM,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CACjE,CAAC;oBACF,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oBAClD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACjF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;iBACpB;aACF;SACF;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC1E,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAoC,CAAC;gBAC/F,2DAA2D;gBAC3D,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;iBACxE;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;iBACrD;gBACD,MAAM,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,WAAW,CAAC,QAAQ,EAAE;oBACxB,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;oBACxD,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;iBACpE;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACjF,IAAI,WAAW,CAAC,IAAI,EAAE;oBACpB,uCAAuC;oBACvC,uDAAuD;oBACvD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG;yBACjC,aAAa,EAAE;yBACf,OAAO,CAAC,KAAK,CACZ,qDAAqD,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CACvF,CAAC;oBACJ,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAC/C,GAAG,YAAY,CAAC,EAAE,kBAAkB,WAAW,CAAC,IAAI,kBAAkB,WAAW,CAAC,IAAI,EAAE,CACzF,CAAC;oBACF,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oBACtD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACzF,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;iBACxB;gBACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;aACpB;SACF;IACH,CAAC;CACF;AAzID,kEAyIC"}
@@ -0,0 +1,66 @@
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
+ const tests = [
9
+ {
10
+ description: 'should not do anything if keystore already exists',
11
+ source: {
12
+ importFromKeystore: [
13
+ {
14
+ name: 'Dummy'
15
+ }
16
+ ]
17
+ },
18
+ target: {
19
+ importFromKeystore: [
20
+ {
21
+ name: 'Dummy',
22
+ filePath: 'foo.jks'
23
+ }
24
+ ]
25
+ },
26
+ expected: undefined
27
+ },
28
+ {
29
+ description: 'should try to import keystore',
30
+ source: {
31
+ importFromKeystore: [
32
+ {
33
+ name: 'Foo'
34
+ }
35
+ ]
36
+ },
37
+ target: {
38
+ importFromKeystore: [
39
+ {
40
+ name: 'Dummy',
41
+ filePath: 'foo.jks'
42
+ }
43
+ ]
44
+ },
45
+ expected: {
46
+ importFromKeystore: [
47
+ {
48
+ name: 'Dummy',
49
+ filePath: 'foo.jks'
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ ];
55
+ describe('CertificateAndKeyManagement', () => {
56
+ describe('diff()', () => {
57
+ const p = new _1.CertificateAndKeyManagement(global.bf);
58
+ for (const t of tests) {
59
+ it(t.description, () => {
60
+ const actual = p.diff(t.source, t.target);
61
+ assert_1.default.deepStrictEqual(actual, t.expected);
62
+ });
63
+ }
64
+ });
65
+ });
66
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/plugins/security/certificate-and-key-management/index.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAwD;AASxD,MAAM,KAAK,GAAQ;IACjB;QACE,WAAW,EAAE,mDAAmD;QAChE,MAAM,EAAE;YACN,kBAAkB,EAAE;gBAClB;oBACE,IAAI,EAAE,OAAO;iBACd;aACF;SACF;QACD,MAAM,EAAE;YACN,kBAAkB,EAAE;gBAClB;oBACE,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,SAAS;iBACpB;aACF;SACF;QACD,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,WAAW,EAAE,+BAA+B;QAC5C,MAAM,EAAE;YACN,kBAAkB,EAAE;gBAClB;oBACE,IAAI,EAAE,KAAK;iBACZ;aACF;SACF;QACD,MAAM,EAAE;YACN,kBAAkB,EAAE;gBAClB;oBACE,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,SAAS;iBACpB;aACF;SACF;QACD,QAAQ,EAAE;YACR,kBAAkB,EAAE;gBAClB;oBACE,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,SAAS;iBACpB;aACF;SACF;KACF;CACF,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,GAAG,IAAI,8BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;gBACrB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,gBAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -24,10 +24,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.IdentityProvider = void 0;
27
- const jsonMergePatch = __importStar(require("json-merge-patch"));
28
27
  const p_retry_1 = __importStar(require("p-retry"));
29
28
  const plugin_1 = require("../../../plugin");
30
- const utils_1 = require("../../utils");
31
29
  const PATHS = {
32
30
  EDIT_VIEW: 'setup/secur/idp/IdpPage.apexp'
33
31
  };
@@ -39,25 +37,24 @@ const SELECTORS = {
39
37
  SAVE_BUTTON: 'input[name$=":save"]'
40
38
  };
41
39
  class IdentityProvider extends plugin_1.BrowserforcePlugin {
42
- async retrieve(definition) {
40
+ async retrieve() {
43
41
  const page = await this.browserforce.openPage(PATHS.EDIT_VIEW);
44
42
  await page.waitForSelector(SELECTORS.EDIT_BUTTON);
45
43
  const disableButton = await page.$(SELECTORS.DISABLE_BUTTON);
46
- const certNameHandle = await page.$(SELECTORS.CERT_NAME_SPAN);
44
+ const enabled = disableButton !== null;
47
45
  const response = {
48
- enabled: disableButton !== null
46
+ enabled
49
47
  };
50
- if (certNameHandle) {
51
- response['certificate'] = await page.evaluate((span) => span.innerText, certNameHandle);
48
+ if (enabled) {
49
+ const certNameHandle = await page.$(SELECTORS.CERT_NAME_SPAN);
50
+ response.certificate = await page.evaluate((span) => span.innerText, certNameHandle);
52
51
  }
53
52
  await page.close();
54
53
  return response;
55
54
  }
56
- diff(state, definition) {
57
- return (0, utils_1.removeNullValues)(jsonMergePatch.generate(state, definition));
58
- }
59
55
  async apply(plan) {
60
56
  if (plan.enabled && plan.certificate && plan.certificate !== '') {
57
+ // enable with required certificate
61
58
  // wait for cert to become available in Identity Provider UI
62
59
  await (0, p_retry_1.default)(async () => {
63
60
  const certsResponse = await this.org
@@ -68,20 +65,17 @@ class IdentityProvider extends plugin_1.BrowserforcePlugin {
68
65
  }
69
66
  const page = await this.browserforce.openPage(PATHS.EDIT_VIEW);
70
67
  await page.waitForSelector(SELECTORS.EDIT_BUTTON);
71
- await Promise.all([
72
- page.waitForNavigation(),
73
- page.click(SELECTORS.EDIT_BUTTON)
74
- ]);
68
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.EDIT_BUTTON)]);
75
69
  await page.waitForSelector(SELECTORS.CHOOSE_CERT);
76
70
  const chooseCertOptions = await page.$$eval(`${SELECTORS.CHOOSE_CERT} option`, (options) => {
77
- return options.map(option => {
71
+ return options.map((option) => {
78
72
  return {
79
73
  text: option.text,
80
74
  value: option.value
81
75
  };
82
76
  });
83
77
  });
84
- const chooseCertOption = chooseCertOptions.find(x => x.text === plan.certificate);
78
+ const chooseCertOption = chooseCertOptions.find((x) => x.text === plan.certificate);
85
79
  if (!chooseCertOption) {
86
80
  throw new Error(`Waiting for Certificate '${plan.certificate}' to be available in Identity Provider picklist timed out`);
87
81
  }
@@ -90,10 +84,7 @@ class IdentityProvider extends plugin_1.BrowserforcePlugin {
90
84
  await dialog.accept();
91
85
  });
92
86
  await page.waitForSelector(SELECTORS.SAVE_BUTTON);
93
- await Promise.all([
94
- page.waitForNavigation(),
95
- page.click(SELECTORS.SAVE_BUTTON)
96
- ]);
87
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
97
88
  await page.close();
98
89
  }, {
99
90
  retries: 5,
@@ -101,16 +92,14 @@ class IdentityProvider extends plugin_1.BrowserforcePlugin {
101
92
  });
102
93
  }
103
94
  else {
95
+ // disable
104
96
  const page = await this.browserforce.openPage(PATHS.EDIT_VIEW);
105
97
  await page.waitForSelector(SELECTORS.EDIT_BUTTON);
106
98
  await page.$(SELECTORS.DISABLE_BUTTON);
107
99
  page.on('dialog', async (dialog) => {
108
100
  await dialog.accept();
109
101
  });
110
- await Promise.all([
111
- page.waitForNavigation(),
112
- page.click(SELECTORS.DISABLE_BUTTON)
113
- ]);
102
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.DISABLE_BUTTON)]);
114
103
  await page.close();
115
104
  }
116
105
  }