sfdx-browserforce-plugin 6.0.2 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -53,6 +53,17 @@ $ sf browserforce apply -f ./config/currency.json --target-org myOrg@example.com
53
53
  logging out... done
54
54
  ```
55
55
 
56
+ Apply the config again: 👉 No action necessary
57
+
58
+ ```console
59
+ $ sf browserforce apply -f ./config/currency.json --target-org myOrg@example.com
60
+ logging in... done
61
+ Applying config file ./config/currency.json to org myOrg@example.com
62
+ [CompanyInformation] retrieving state... done
63
+ [CompanyInformation] no action necessary
64
+ logging out... done
65
+ ```
66
+
56
67
  ## Key Concepts
57
68
 
58
69
  - 🔧 configuration using JSON Schema (similar to 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))
@@ -186,7 +197,7 @@ FLAG DESCRIPTIONS
186
197
  The trace file can be viewed with "sf browserforce playwright -- show-trace trace-<date>.zip".
187
198
  ```
188
199
 
189
- _See code: [src/commands/browserforce/apply.ts](https://github.com/amtrack/sfdx-browserforce-plugin/blob/v6.0.2/src/commands/browserforce/apply.ts)_
200
+ _See code: [src/commands/browserforce/apply.ts](https://github.com/amtrack/sfdx-browserforce-plugin/blob/v6.2.0/src/commands/browserforce/apply.ts)_
190
201
 
191
202
  ## `sf browserforce playwright`
192
203
 
@@ -209,7 +220,7 @@ EXAMPLES
209
220
  $ sf browserforce playwright -- install chromium
210
221
  ```
211
222
 
212
- _See code: [src/commands/browserforce/playwright.ts](https://github.com/amtrack/sfdx-browserforce-plugin/blob/v6.0.2/src/commands/browserforce/playwright.ts)_
223
+ _See code: [src/commands/browserforce/playwright.ts](https://github.com/amtrack/sfdx-browserforce-plugin/blob/v6.2.0/src/commands/browserforce/playwright.ts)_
213
224
  <!-- commandsstop -->
214
225
 
215
226
  ## Playwright
@@ -1,4 +1,24 @@
1
+ import { readFileSync } from 'fs';
1
2
  import { BrowserforceCommand } from '../../browserforce-command.js';
3
+ import { maskSensitiveValues } from '../../plugins/utils.js';
4
+ // Convert camelCase to kebab-case (e.g., "authProviders" -> "auth-providers")
5
+ function camelToKebab(str) {
6
+ return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
7
+ }
8
+ // Load schema for a plugin
9
+ function loadPluginSchema(pluginName) {
10
+ try {
11
+ // Resolve schema path relative to the plugins directory
12
+ // Since we're in src/commands/browserforce/, we need to go up to src/plugins/
13
+ const schemaPath = new URL(`../../plugins/${camelToKebab(pluginName)}/schema.json`, import.meta.url);
14
+ const schemaContent = readFileSync(schemaPath, 'utf8');
15
+ return JSON.parse(schemaContent);
16
+ }
17
+ catch (error) {
18
+ // Schema file not found or invalid - return undefined to fall back to pattern matching
19
+ return undefined;
20
+ }
21
+ }
2
22
  export class BrowserforceApply extends BrowserforceCommand {
3
23
  static description = 'apply a plan from a config file';
4
24
  static examples = [
@@ -30,9 +50,13 @@ export class BrowserforceApply extends BrowserforceCommand {
30
50
  const diff = instance.diff(state, setting.value);
31
51
  const action = flags['dry-run'] ? 'would change' : 'changing';
32
52
  if (diff !== undefined) {
33
- this.spinner.start(`[${driver.name}] ${Object.keys(diff)
53
+ // Load schema for this plugin to check for password fields
54
+ const schema = loadPluginSchema(setting.key);
55
+ // Mask sensitive values before logging (using schema if available)
56
+ const maskedDiff = maskSensitiveValues(diff, '', schema);
57
+ this.spinner.start(`[${driver.name}] ${Object.keys(maskedDiff)
34
58
  .map((key) => {
35
- return `${action} '${key}' to '${JSON.stringify(diff[key])}'`;
59
+ return `${action} '${key}' to '${JSON.stringify(maskedDiff[key])}'`;
36
60
  })
37
61
  .join('\n')}`);
38
62
  if (!flags['dry-run']) {
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/browserforce/apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAMpE,MAAM,OAAO,iBAAkB,SAAQ,mBAA8C;IAC5E,MAAM,CAAC,WAAW,GAAG,iCAAiC,CAAC;IACvD,MAAM,CAAC,QAAQ,GAAG;QACvB;;;;;;GAMD;KACA,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,cAAc,WAAW,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrG,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;YAC9D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACX,OAAO,GAAG,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAChE,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC;wBACH,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5B,MAAM,GAAG,CAAC;oBACZ,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,CAAC;gBACD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/commands/browserforce/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ type AuthProviderConfig = {
3
+ consumerSecret?: string;
4
+ consumerKey?: string;
5
+ };
6
+ export type Config = {
7
+ [developerName: string]: AuthProviderConfig;
8
+ };
9
+ export declare class AuthProviders extends BrowserforcePlugin {
10
+ retrieve(): Promise<Config>;
11
+ apply(config: Config): Promise<void>;
12
+ }
13
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,78 @@
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 { AuthProviders } from './index.js';
6
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
7
+ describe(AuthProviders.name, function () {
8
+ this.timeout('10m');
9
+ let plugin;
10
+ before(() => {
11
+ plugin = new AuthProviders(global.browserforce);
12
+ });
13
+ const configWithSecretAndKey = {
14
+ TestAuthProvider: {
15
+ consumerSecret: 'test-secret-12345',
16
+ consumerKey: 'test-key-67890',
17
+ },
18
+ };
19
+ const configWithSecretOnly = {
20
+ TestAuthProvider: {
21
+ consumerSecret: 'updated-secret-abcde',
22
+ },
23
+ };
24
+ const configWithKeyOnly = {
25
+ TestAuthProvider: {
26
+ consumerKey: 'updated-key-fghij',
27
+ },
28
+ };
29
+ const configEmpty = {
30
+ TestAuthProvider: {},
31
+ };
32
+ it('should deploy an AuthProvider for testing', () => {
33
+ const sourceDeployCmd = child.spawnSync('sf', [
34
+ 'project',
35
+ 'deploy',
36
+ 'start',
37
+ '-d',
38
+ path.join(__dirname, 'sfdx-source'),
39
+ '--json',
40
+ ]);
41
+ assert.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
42
+ });
43
+ it('should update consumerSecret and consumerKey', async () => {
44
+ await plugin.apply(configWithSecretAndKey);
45
+ // Note: retrieve() returns empty config, so we can only verify apply completes without errors
46
+ });
47
+ it('should update consumerSecret only', async () => {
48
+ await plugin.apply(configWithSecretOnly);
49
+ });
50
+ it('should update consumerKey only', async () => {
51
+ await plugin.apply(configWithKeyOnly);
52
+ });
53
+ it('should handle empty config without errors', async () => {
54
+ await plugin.apply(configEmpty);
55
+ });
56
+ it('should throw an error when AuthProvider does not exist', async () => {
57
+ const configInvalid = {
58
+ NonExistentAuthProvider: {
59
+ consumerSecret: 'test-secret',
60
+ consumerKey: 'test-key',
61
+ },
62
+ };
63
+ let err;
64
+ try {
65
+ await plugin.apply(configInvalid);
66
+ }
67
+ catch (e) {
68
+ err = e;
69
+ }
70
+ assert.throws(() => {
71
+ throw err;
72
+ }, /No AuthProviders found with DeveloperNames/);
73
+ });
74
+ it('should remove the testing AuthProvider', async () => {
75
+ await global.browserforce.connection.metadata.delete('AuthProvider', ['TestAuthProvider']);
76
+ });
77
+ });
78
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/auth-providers/index.e2e-spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import { waitForPageErrors } from '../../browserforce.js';
54
+ import { BrowserforcePlugin } from '../../plugin.js';
55
+ const CONSUMER_SECRET_SELECTOR = '#ConsumerSecret';
56
+ const CONSUMER_KEY_SELECTOR = '#ConsumerKey';
57
+ const SAVE_BUTTON_SELECTOR = 'input[id$=":saveBtn"], #topButtonRow > input[name="save"], button[title="Save"]';
58
+ const getUrl = (orgId) => `/${orgId}/e?retURL=/${orgId}`;
59
+ export class AuthProviders extends BrowserforcePlugin {
60
+ async retrieve() {
61
+ // Skip retrieve as requested - return empty config
62
+ return {};
63
+ }
64
+ async apply(config) {
65
+ if (!config || Object.keys(config).length === 0) {
66
+ return;
67
+ }
68
+ const developerNames = Object.keys(config);
69
+ const developerNamesList = developerNames.map((name) => `'${name}'`).join(',');
70
+ // Query AuthProviders using standard REST API (not Tooling API)
71
+ const authProviders = await this.browserforce.connection.query(`SELECT Id, DeveloperName FROM AuthProvider WHERE DeveloperName IN (${developerNamesList})`);
72
+ if (authProviders.records.length === 0) {
73
+ throw new Error(`No AuthProviders found with DeveloperNames: ${developerNames.join(', ')}`);
74
+ }
75
+ // Create a map for quick lookup
76
+ const authProviderMap = new Map();
77
+ for (const authProvider of authProviders.records) {
78
+ authProviderMap.set(authProvider.DeveloperName, authProvider.Id);
79
+ }
80
+ // Verify we found all required AuthProviders
81
+ const missingProviders = developerNames.filter((name) => !authProviderMap.has(name));
82
+ if (missingProviders.length > 0) {
83
+ throw new Error(`AuthProvider with DeveloperName(s) not found: ${missingProviders.join(', ')}. ` +
84
+ `Please verify the DeveloperNames are correct and the AuthProviders exist in your org.`);
85
+ }
86
+ // Process each auth provider configuration
87
+ for (const [developerName, authProviderConfig] of Object.entries(config)) {
88
+ const authProviderId = authProviderMap.get(developerName);
89
+ if (!authProviderId) {
90
+ throw new Error(`AuthProvider with DeveloperName '${developerName}' not found`);
91
+ }
92
+ try {
93
+ // Check if there are updates to consumerSecret or consumerKey
94
+ const hasConsumerUpdates = authProviderConfig.consumerSecret !== undefined || authProviderConfig.consumerKey !== undefined;
95
+ if (hasConsumerUpdates) {
96
+ const env_1 = { stack: [], error: void 0, hasError: false };
97
+ try {
98
+ // Navigate to the edit page
99
+ const editPageUrl = getUrl(authProviderId);
100
+ this.browserforce.logger?.log(`Navigating to edit page for ${developerName}: ${editPageUrl}`);
101
+ const page = __addDisposableResource(env_1, await this.browserforce.openPage(editPageUrl), true);
102
+ // Update ConsumerSecret if provided
103
+ if (authProviderConfig.consumerSecret !== undefined) {
104
+ await page.locator(CONSUMER_SECRET_SELECTOR).fill(authProviderConfig.consumerSecret);
105
+ }
106
+ // Update ConsumerKey if provided
107
+ if (authProviderConfig.consumerKey !== undefined) {
108
+ await page.locator(CONSUMER_KEY_SELECTOR).fill(authProviderConfig.consumerKey);
109
+ }
110
+ // Save the changes
111
+ const saveButtonLocator = page.locator(SAVE_BUTTON_SELECTOR);
112
+ await saveButtonLocator.first().click();
113
+ await Promise.race([
114
+ page.waitForURL((url) => url.pathname === `/${authProviderId}`),
115
+ waitForPageErrors(page),
116
+ ]);
117
+ }
118
+ catch (e_1) {
119
+ env_1.error = e_1;
120
+ env_1.hasError = true;
121
+ }
122
+ finally {
123
+ const result_1 = __disposeResources(env_1);
124
+ if (result_1)
125
+ await result_1;
126
+ }
127
+ }
128
+ }
129
+ catch (error) {
130
+ throw new Error(`Failed to update AuthProvider '${developerName}': ${error.message}`);
131
+ }
132
+ }
133
+ }
134
+ }
135
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/auth-providers/index.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,11 @@ export class HighVelocitySalesSetupPage {
11
11
  return '/lightning/setup/SalesEngagement/home';
12
12
  }
13
13
  async setUpAndEnable() {
14
- await this.page.locator(AUTOMATION_TAB_ITEM).waitFor();
14
+ await Promise.race([
15
+ this.page.locator(AUTOMATION_TAB_ITEM).waitFor(),
16
+ // workaround: Starting Spring '26 there is a modal "Event fired" on page load.
17
+ this.page.locator(`div[role=dialog] button.slds-modal__close`).click(),
18
+ ]);
15
19
  const tabCount = await this.page.locator(AUTOMATION_TAB_ITEM).count();
16
20
  if (tabCount > 0) {
17
21
  await this.page.locator(AUTOMATION_TAB_ITEM).click();
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/high-velocity-sales-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAElF,MAAM,4BAA4B,GAAG,6BAA6B,CAAC;AACnE,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,MAAM,mBAAmB,GAAG,sDAAsD,CAAC;AAEnF,MAAM,OAAO,0BAA0B;IAC7B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,uCAAuC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;CACF"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/high-velocity-sales-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAElF,MAAM,4BAA4B,GAAG,6BAA6B,CAAC;AACnE,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,MAAM,mBAAmB,GAAG,sDAAsD,CAAC;AAEnF,MAAM,OAAO,0BAA0B;IAC7B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,uCAAuC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE;YAChD,+EAA+E;YAC/E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,KAAK,EAAE;SACvE,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;CACF"}
@@ -11,6 +11,8 @@ export type FieldHistoryTrackingConfig = {
11
11
  export declare class HistoryTracking extends BrowserforcePlugin {
12
12
  retrieve(definition?: HistoryTrackingConfig[]): Promise<HistoryTrackingConfig[]>;
13
13
  apply(plan: HistoryTrackingConfig[]): Promise<void>;
14
+ private queryCustomFieldsAndPopulateMap;
15
+ private parseNamespacedFieldApiName;
14
16
  private getFieldSelectorByFieldApiName;
15
17
  private getTableEnumOrIdByObjectApiName;
16
18
  }
@@ -176,6 +176,23 @@ export class HistoryTracking extends BrowserforcePlugin {
176
176
  }
177
177
  }
178
178
  }
179
+ async queryCustomFieldsAndPopulateMap(fieldApiNameTuples, tableEnumOrId, suffix, fieldSelectorByFieldApiName) {
180
+ const developerNameConditions = fieldApiNameTuples.map(([apiname, namespace]) => namespace
181
+ ? `(DeveloperName ='${apiname}' AND NamespacePrefix ='${namespace}')`
182
+ : `(DeveloperName = '${apiname}')`);
183
+ const customFieldsQuery = await this.browserforce.connection.tooling.query(`SELECT Id, DeveloperName, NamespacePrefix FROM CustomField WHERE (${developerNameConditions.join(' OR ')}) AND TableEnumOrId = '${tableEnumOrId}' ORDER By CreatedDate ASC`);
184
+ for (const customField of customFieldsQuery.records) {
185
+ const fieldApiName = `${customField.NamespacePrefix ? `${customField.NamespacePrefix}__` : ''}${customField.DeveloperName}${suffix}`;
186
+ fieldSelectorByFieldApiName.set(fieldApiName, customField.Id.substring(0, 15));
187
+ }
188
+ }
189
+ parseNamespacedFieldApiName(fieldApiName, suffix) {
190
+ const fieldNameWithoutSuffix = fieldApiName.replace(suffix, '');
191
+ const parts = fieldNameWithoutSuffix.split('__');
192
+ const namespace = parts.length > 1 ? parts[0] : undefined;
193
+ const apiname = parts.length > 1 ? parts.slice(1).join('__') : parts[0];
194
+ return [apiname, namespace];
195
+ }
179
196
  async getFieldSelectorByFieldApiName(tableEnumOrId, fieldHistoryTrackingConfigs) {
180
197
  const fieldSelectorByFieldApiName = new Map();
181
198
  const customFieldApiNames = [];
@@ -183,12 +200,12 @@ export class HistoryTracking extends BrowserforcePlugin {
183
200
  for (const fieldHistoryTrackingConfig of fieldHistoryTrackingConfigs) {
184
201
  // If this is a person account field, we must do special handling for this
185
202
  if (tableEnumOrId === 'Account' && fieldHistoryTrackingConfig.fieldApiName.includes('__pc')) {
186
- personAccountFieldApiNames.push(`'${fieldHistoryTrackingConfig.fieldApiName.replace('__pc', '')}'`);
203
+ personAccountFieldApiNames.push(this.parseNamespacedFieldApiName(fieldHistoryTrackingConfig.fieldApiName, '__pc'));
187
204
  continue;
188
205
  }
189
206
  // If this is a custom field, we must query for the Field Id
190
207
  if (fieldHistoryTrackingConfig.fieldApiName.includes('__c')) {
191
- customFieldApiNames.push(`'${fieldHistoryTrackingConfig.fieldApiName.replace('__c', '')}'`);
208
+ customFieldApiNames.push(this.parseNamespacedFieldApiName(fieldHistoryTrackingConfig.fieldApiName, '__c'));
192
209
  continue;
193
210
  }
194
211
  // Otherwise, if this is a standard field, the Selector is the Field API Name
@@ -200,18 +217,12 @@ export class HistoryTracking extends BrowserforcePlugin {
200
217
  if (personAccountFieldApiNames.length > 0) {
201
218
  // NOTE: Unfortunately this includes deleted records
202
219
  // WORKAROUND: ORDER BY CreatedDate
203
- const personAccountFieldsQuery = await this.browserforce.connection.tooling.query(`SELECT Id, DeveloperName FROM CustomField WHERE DeveloperName IN (${personAccountFieldApiNames.join(',')}) AND TableEnumOrId = 'Contact' ORDER By CreatedDate ASC`);
204
- for (const personAccountField of personAccountFieldsQuery.records) {
205
- fieldSelectorByFieldApiName.set(`${personAccountField.DeveloperName}__pc`, personAccountField.Id.substring(0, 15));
206
- }
220
+ await this.queryCustomFieldsAndPopulateMap(personAccountFieldApiNames, 'Contact', '__pc', fieldSelectorByFieldApiName);
207
221
  }
208
222
  if (customFieldApiNames.length > 0) {
209
223
  // NOTE: Unfortunately this includes deleted records
210
224
  // WORKAROUND: ORDER BY CreatedDate
211
- const customFieldsQuery = await this.browserforce.connection.tooling.query(`SELECT Id, DeveloperName FROM CustomField WHERE DeveloperName IN (${customFieldApiNames.join(',')}) AND TableEnumOrId = '${tableEnumOrId}' ORDER By CreatedDate ASC`);
212
- for (const customField of customFieldsQuery.records) {
213
- fieldSelectorByFieldApiName.set(`${customField.DeveloperName}__c`, customField.Id.substring(0, 15));
214
- }
225
+ await this.queryCustomFieldsAndPopulateMap(customFieldApiNames, tableEnumOrId, '__c', fieldSelectorByFieldApiName);
215
226
  }
216
227
  return fieldSelectorByFieldApiName;
217
228
  }
@@ -221,7 +232,7 @@ export class HistoryTracking extends BrowserforcePlugin {
221
232
  for (const historyTrackingConfig of historyTrackingConfigs) {
222
233
  // If it is a custom object, the CustomField.TableEnumOrId is the Object Id
223
234
  if (historyTrackingConfig.objectApiName.includes('__c')) {
224
- customObjectApiNames.push(`'${historyTrackingConfig.objectApiName.replace('__c', '')}'`);
235
+ customObjectApiNames.push(this.parseNamespacedFieldApiName(historyTrackingConfig.objectApiName, '__c'));
225
236
  continue;
226
237
  }
227
238
  // Otherwise, if this is a standard object, the CustomField.TableEnumOrId is the Object API Name
@@ -232,7 +243,10 @@ export class HistoryTracking extends BrowserforcePlugin {
232
243
  }
233
244
  // NOTE: Unfortunately this includes deleted records
234
245
  // WORKAROUND: ORDER BY CreatedDate
235
- const customObjectsQuery = await this.browserforce.connection.tooling.query(`SELECT Id, DeveloperName FROM CustomObject WHERE DeveloperName IN (${customObjectApiNames.join(',')}) ORDER BY CreatedDate ASC`);
246
+ const customObjectDeveloperNames = customObjectApiNames.map(([apiname, namespace]) => namespace
247
+ ? `(DeveloperName = '${apiname}' AND NamespacePrefix = '${namespace}')`
248
+ : `(DeveloperName = '${apiname}')`);
249
+ const customObjectsQuery = await this.browserforce.connection.tooling.query(`SELECT Id, DeveloperName FROM CustomObject WHERE (${customObjectDeveloperNames.join(' OR ')}) ORDER BY CreatedDate ASC`);
236
250
  for (const customObject of customObjectsQuery.records) {
237
251
  tableEnumOrIdByObjectApiName.set(`${customObject.DeveloperName}__c`, customObject.Id);
238
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAsB,kEAAkE,kBAAkB,CAAC,+BAA+B,CAAC,EAAE,CAAC;AAE7J,MAAM,uBAAuB,GAAG,qCAAqC,CAAC;AACtE,MAAM,6BAA6B,GAAG,2BAA2B,CAAC;AAClE,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAajE,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ,CAAC,UAAoC;QACxD,MAAM,sBAAsB,GAA4B,EAAE,CAAC;QAE3D,wFAAwF;QACxF,sEAAsE;QACtE,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAE5F,gFAAgF;QAChF,KAAK,MAAM,qBAAqB,IAAI,UAAU,EAAE,CAAC;;;gBAC/C,MAAM,qBAAqB,GAAG,EAAE,GAAG,qBAAqB,EAAE,CAAC;gBAE3D,8CAA8C;gBAC9C,MAAY,IAAI,kCAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CACjD,SAAS,CAAC,OAAO,CACf,WAAW,EACX,4BAA4B,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,CAAC,CACjD,CACvB,OAAA,CAAC;gBAEF,uCAAuC;gBACvC,oEAAoE;gBACpE,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,qBAAqB,CAAC,qBAAqB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,SAAS,EAAE,CAAC;gBACxG,CAAC;gBAED,oEAAoE;gBACpE,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;oBAChD,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBACnD,SAAS;gBACX,CAAC;gBAED,MAAM,2BAA2B,GAAiC,EAAE,CAAC;gBAErE,oGAAoG;gBACpG,4CAA4C;gBAC5C,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzG,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;wBAC9E,2BAA2B,CAAC,IAAI,CAAC;4BAC/B,GAAG,oBAAoB;4BACvB,qBAAqB,EAAE,KAAK;yBAC7B,CAAC,CAAC;oBACL,CAAC;oBAED,qBAAqB,CAAC,oBAAoB,GAAG,2BAA2B,CAAC;oBACzE,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBACnD,SAAS;gBACX,CAAC;gBAED,mFAAmF;gBACnF,gFAAgF;gBAChF,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAC3E,4BAA4B,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,CAAC,EACrE,qBAAqB,CAAC,oBAAoB,CAC3C,CAAC;gBAEF,yFAAyF;gBACzF,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;oBAC9E,MAAM,0BAA0B,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;oBAE/D,MAAM,YAAY,GAAG,2BAA2B,CAAC,GAAG,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;oBAExF,0BAA0B,CAAC,qBAAqB,GAAG,MAAM,IAAI;yBAC1D,OAAO,CAAC,6BAA6B,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;yBACzE,SAAS,EAAE,CAAC;oBAEf,2BAA2B,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBAC/D,CAAC;gBAED,qBAAqB,CAAC,oBAAoB,GAAG,2BAA2B,CAAC;gBACzE,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;;;;;;;;;;;SACpD;QAED,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAA6B;QAC9C,wFAAwF;QACxF,sEAAsE;QACtE,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QAEtF,0EAA0E;QAC1E,KAAK,MAAM,qBAAqB,IAAI,IAAI,EAAE,CAAC;;;gBACzC,8CAA8C;gBAC9C,MAAY,IAAI,kCAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CACjD,SAAS,CAAC,OAAO,CACf,WAAW,EACX,4BAA4B,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,CAAC,CACjD,CACvB,OAAA,CAAC;gBAEF,uCAAuC;gBACvC,oEAAoE;gBACpE,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,SAAS,EAAE,CAAC;oBAEvF,IAAI,qBAAqB,CAAC,qBAAqB,KAAK,sBAAsB,EAAE,CAAC;wBAC3E,qBAAqB;wBACrB,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,IAAI,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;oBAC/C,mFAAmF;oBACnF,gFAAgF;oBAChF,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAC3E,4BAA4B,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,CAAC,EACrE,qBAAqB,CAAC,oBAAoB,CAC3C,CAAC;oBAEF,yFAAyF;oBACzF,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;wBAC9E,MAAM,YAAY,GAAG,2BAA2B,CAAC,GAAG,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;wBAExF,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;wBAEvF,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;wBAElF,IAAI,oBAAoB,CAAC,qBAAqB,KAAK,2BAA2B,EAAE,CAAC;4BAC/E,qBAAqB;4BACrB,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;wBAC5C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,oBAAoB;gBACpB,MAAM,IAAI;qBACP,OAAO,CAAC,oBAAoB,CAAC;qBAC7B,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,kEAAkE;qBAC5F,KAAK,EAAE;qBACP,KAAK,EAAE,CAAC;gBACX,MAAM,OAAO,CAAC,IAAI,CAAC;oBACjB,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;oBAClF,iBAAiB,CAAC,IAAI,CAAC;iBACxB,CAAC,CAAC;;;;;;;;;;;SACJ;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAC1C,aAAqB,EACrB,2BAAyD;QAEzD,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAE,CAAC;QAE9C,MAAM,mBAAmB,GAAG,EAAE,CAAC;QAC/B,MAAM,0BAA0B,GAAG,EAAE,CAAC;QAEtC,KAAK,MAAM,0BAA0B,IAAI,2BAA2B,EAAE,CAAC;YACrE,0EAA0E;YAC1E,IAAI,aAAa,KAAK,SAAS,IAAI,0BAA0B,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5F,0BAA0B,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACpG,SAAS;YACX,CAAC;YAED,4DAA4D;YAC5D,IAAI,0BAA0B,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,mBAAmB,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5F,SAAS;YACX,CAAC;YAED,6EAA6E;YAC7E,2BAA2B,CAAC,GAAG,CAAC,0BAA0B,CAAC,YAAY,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;QACpH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChF,OAAO,2BAA2B,CAAC;QACrC,CAAC;QAED,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,oDAAoD;YACpD,mCAAmC;YACnC,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAC/E,qEAAqE,0BAA0B,CAAC,IAAI,CAClG,GAAG,CACJ,0DAA0D,CAC5D,CAAC;YAEF,KAAK,MAAM,kBAAkB,IAAI,wBAAwB,CAAC,OAAO,EAAE,CAAC;gBAClE,2BAA2B,CAAC,GAAG,CAC7B,GAAG,kBAAkB,CAAC,aAAa,MAAM,EACzC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,oDAAoD;YACpD,mCAAmC;YACnC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CACxE,qEAAqE,mBAAmB,CAAC,IAAI,CAC3F,GAAG,CACJ,0BAA0B,aAAa,4BAA4B,CACrE,CAAC;YAEF,KAAK,MAAM,WAAW,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACpD,2BAA2B,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,aAAa,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;QAED,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,sBAA+C;QAC3F,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAE,CAAC;QAE/C,MAAM,oBAAoB,GAAG,EAAE,CAAC;QAEhC,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;YAC3D,2EAA2E;YAC3E,IAAI,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,oBAAoB,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACzF,SAAS;YACX,CAAC;YAED,gGAAgG;YAChG,4BAA4B,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC7G,CAAC;QAED,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,4BAA4B,CAAC;QACtC,CAAC;QAED,oDAAoD;QACpD,mCAAmC;QACnC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CACzE,sEAAsE,oBAAoB,CAAC,IAAI,CAC7F,GAAG,CACJ,4BAA4B,CAC9B,CAAC;QAEF,KAAK,MAAM,YAAY,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACtD,4BAA4B,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,aAAa,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,4BAA4B,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ActivitySettings as activitySettings } from './activity-settings/index.js';
2
+ import { AuthProviders as authProviders } from './auth-providers/index.js';
2
3
  import { CompanyInformation as companyInformation } from './company-information/index.js';
3
4
  import { CustomerPortal as customerPortal } from './customer-portal/index.js';
4
5
  import { DensitySettings as densitySettings } from './density-settings/index.js';
@@ -21,4 +22,4 @@ import { Security as security } from './security/index.js';
21
22
  import { ServiceChannels as serviceChannels } from './service-channels/index.js';
22
23
  import { Slack as slack } from './slack/index.js';
23
24
  import { UserAccessPolicies as userAccessPolicies } from './user-access-policies/index.js';
24
- export { activitySettings, companyInformation, customerPortal, densitySettings, emailDeliverability, highVelocitySalesSettings, historyTracking, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack, userAccessPolicies, };
25
+ export { activitySettings, authProviders, companyInformation, customerPortal, densitySettings, emailDeliverability, highVelocitySalesSettings, historyTracking, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack, userAccessPolicies, };
@@ -1,4 +1,5 @@
1
1
  import { ActivitySettings as activitySettings } from './activity-settings/index.js';
2
+ import { AuthProviders as authProviders } from './auth-providers/index.js';
2
3
  import { CompanyInformation as companyInformation } from './company-information/index.js';
3
4
  import { CustomerPortal as customerPortal } from './customer-portal/index.js';
4
5
  import { DensitySettings as densitySettings } from './density-settings/index.js';
@@ -21,5 +22,5 @@ import { Security as security } from './security/index.js';
21
22
  import { ServiceChannels as serviceChannels } from './service-channels/index.js';
22
23
  import { Slack as slack } from './slack/index.js';
23
24
  import { UserAccessPolicies as userAccessPolicies } from './user-access-policies/index.js';
24
- export { activitySettings, companyInformation, customerPortal, densitySettings, emailDeliverability, highVelocitySalesSettings, historyTracking, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack, userAccessPolicies, };
25
+ export { activitySettings, authProviders, companyInformation, customerPortal, densitySettings, emailDeliverability, highVelocitySalesSettings, historyTracking, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack, userAccessPolicies, };
25
26
  //# 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,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,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,6BAA6B,CAAC;AACjF,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;AAClD,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,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,EACL,kBAAkB,GACnB,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,aAAa,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,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,6BAA6B,CAAC;AACjF,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;AAClD,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE3F,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,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,EACL,kBAAkB,GACnB,CAAC"}
@@ -3,9 +3,13 @@ export type Config = {
3
3
  services: Array<{
4
4
  label: string;
5
5
  enabled: boolean;
6
+ } | {
7
+ authProviderApiName: string;
8
+ enabled: boolean;
6
9
  }>;
7
10
  };
8
11
  export declare class AuthenticationConfiguration extends BrowserforcePlugin {
12
+ private getAuthProviderIds;
9
13
  retrieve(definition: Config): Promise<Config>;
10
14
  apply(plan: Config): Promise<void>;
11
15
  }
@@ -31,6 +31,18 @@ describe(AuthenticationConfiguration.name, function () {
31
31
  { label: 'TestAuthMethod', enabled: false },
32
32
  ],
33
33
  };
34
+ const configRetrieveByApiName = {
35
+ services: [{ authProviderApiName: 'TestAuthMethod', enabled: true }],
36
+ };
37
+ const configApplyByApiName = {
38
+ services: [
39
+ { label: 'Login Form', enabled: true },
40
+ { authProviderApiName: 'TestAuthMethod', enabled: false },
41
+ ],
42
+ };
43
+ const configApplyMissingApiName = {
44
+ services: [{ authProviderApiName: 'NonExistentAuthProvider', enabled: true }],
45
+ };
34
46
  it('should retrieve the single enabled Login Form auth', async () => {
35
47
  const res = await plugin.retrieve(configRetrieveSingle);
36
48
  assert.deepStrictEqual(res, configRetrieveSingle);
@@ -67,6 +79,31 @@ describe(AuthenticationConfiguration.name, function () {
67
79
  const res = await plugin.retrieve(configApplyMultiple);
68
80
  assert.deepStrictEqual(res, configApplyMultiple);
69
81
  });
82
+ it('should retrieve using authProviderApiName', async () => {
83
+ const res = await plugin.retrieve(configRetrieveByApiName);
84
+ assert.deepStrictEqual(res, configRetrieveByApiName);
85
+ });
86
+ it('should update auth service using authProviderApiName', async () => {
87
+ await plugin.apply(configApplyByApiName);
88
+ const res = await plugin.retrieve(configApplyByApiName);
89
+ assert.deepStrictEqual(res, configApplyByApiName);
90
+ });
91
+ it('should not do anything when run with authProviderApiName and config already set', async () => {
92
+ const res = await plugin.run(configApplyByApiName);
93
+ assert.deepStrictEqual(res, { message: 'no action necessary' });
94
+ });
95
+ it('should throw an error when authProviderApiName does not exist', async () => {
96
+ let err;
97
+ try {
98
+ await plugin.apply(configApplyMissingApiName);
99
+ }
100
+ catch (e) {
101
+ err = e;
102
+ }
103
+ assert.throws(() => {
104
+ throw err;
105
+ }, /not found/);
106
+ });
70
107
  it('should throw an error when trying to apply a missing service', async () => {
71
108
  let err;
72
109
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../../src/plugins/security/authentication-configuration/index.e2e-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../../src/plugins/security/authentication-configuration/index.e2e-spec.ts"],"names":[],"mappings":"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"}
@@ -55,24 +55,60 @@ const EDIT_VIEW_PATH = '/lightning/setup/OrgDomain/page?address=%2Fdomainname%2F
55
55
  const SETUP_FORM_SELECTOR = 'form[id="BrandSetup:brandSetupForm"]';
56
56
  const SERVICE_CHECKBOX_SELECTOR = 'input.authOption[type="checkbox"]';
57
57
  const SAVE_BUTTON_SELECTOR = 'input[id$=":Save"]';
58
+ function authProviderIdMatchesCheckboxValue(authProviderId, checkboxValue) {
59
+ if (!checkboxValue)
60
+ return false;
61
+ // Support 15-char and 18-char Salesforce Id comparison
62
+ const id15 = authProviderId.substring(0, 15);
63
+ return authProviderId === checkboxValue || id15 === checkboxValue || authProviderId.includes(checkboxValue);
64
+ }
58
65
  export class AuthenticationConfiguration extends BrowserforcePlugin {
66
+ async getAuthProviderIds(developerNames) {
67
+ if (developerNames.length === 0)
68
+ return new Map();
69
+ const developerNamesList = developerNames.map((name) => `'${name}'`).join(',');
70
+ const authProviders = await this.browserforce.connection.query(`SELECT Id, DeveloperName FROM AuthProvider WHERE DeveloperName IN (${developerNamesList})`);
71
+ const map = new Map();
72
+ for (const record of authProviders.records) {
73
+ map.set(record.DeveloperName, record.Id);
74
+ }
75
+ return map;
76
+ }
59
77
  async retrieve(definition) {
60
78
  const env_1 = { stack: [], error: void 0, hasError: false };
61
79
  try {
62
80
  const page = __addDisposableResource(env_1, await this.browserforce.openPage(EDIT_VIEW_PATH), true);
63
81
  const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(page, SETUP_FORM_SELECTOR);
82
+ const authProviderApiNames = definition.services
83
+ .filter((s) => 'authProviderApiName' in s)
84
+ .map((s) => s.authProviderApiName);
85
+ const authProviderIdMap = await this.getAuthProviderIds(authProviderApiNames);
64
86
  const inputLocators = await frameOrPage.locator(SERVICE_CHECKBOX_SELECTOR).all();
65
87
  const allServices = await Promise.all(inputLocators.map(async (input) => {
66
88
  const id = await input.getAttribute('id');
89
+ const value = await input.getAttribute('value');
67
90
  const labelLocator = frameOrPage.locator(`label[for="${id}"]`);
68
91
  const labelCount = await labelLocator.count();
69
92
  const label = labelCount > 0 ? (await labelLocator.textContent()).trim() : id;
70
93
  return {
71
94
  label,
95
+ value,
72
96
  enabled: await input.isChecked(),
73
97
  };
74
98
  }));
75
- const services = allServices.filter((service) => definition.services.some((definedService) => definedService.label === service.label));
99
+ const services = definition.services
100
+ .map((definedService) => {
101
+ if ('label' in definedService) {
102
+ const service = allServices.find((s) => s.label === definedService.label);
103
+ return service ? { label: service.label, enabled: service.enabled } : null;
104
+ }
105
+ const authProviderId = authProviderIdMap.get(definedService.authProviderApiName);
106
+ if (!authProviderId)
107
+ return null;
108
+ const service = allServices.find((s) => authProviderIdMatchesCheckboxValue(authProviderId, s.value));
109
+ return service ? { authProviderApiName: definedService.authProviderApiName, enabled: service.enabled } : null;
110
+ })
111
+ .filter((s) => s !== null);
76
112
  return { services };
77
113
  }
78
114
  catch (e_1) {
@@ -90,23 +126,48 @@ export class AuthenticationConfiguration extends BrowserforcePlugin {
90
126
  try {
91
127
  const page = __addDisposableResource(env_2, await this.browserforce.openPage(EDIT_VIEW_PATH), true);
92
128
  const frameOrPage = await this.browserforce.waitForSelectorInFrameOrPage(page, SETUP_FORM_SELECTOR);
129
+ const authProviderApiNames = plan.services
130
+ .filter((s) => 'authProviderApiName' in s)
131
+ .map((s) => s.authProviderApiName);
132
+ const authProviderIdMap = await this.getAuthProviderIds(authProviderApiNames);
93
133
  for (const svc of plan.services) {
94
134
  const inputLocators = await frameOrPage.locator(SERVICE_CHECKBOX_SELECTOR).all();
95
135
  let checkboxId = null;
96
- for (const input of inputLocators) {
97
- const id = await input.getAttribute('id');
98
- const labelLocator = frameOrPage.locator(`label[for="${id}"]`);
99
- const labelCount = await labelLocator.count();
100
- if (labelCount > 0) {
101
- const labelText = (await labelLocator.textContent()).trim();
102
- if (labelText === svc.label) {
136
+ if ('label' in svc) {
137
+ for (const input of inputLocators) {
138
+ const id = await input.getAttribute('id');
139
+ const labelLocator = frameOrPage.locator(`label[for="${id}"]`);
140
+ const labelCount = await labelLocator.count();
141
+ if (labelCount > 0) {
142
+ const labelText = (await labelLocator.textContent()).trim();
143
+ if (labelText === svc.label) {
144
+ checkboxId = id;
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ if (!checkboxId) {
150
+ throw new Error(`Authentication service "${svc.label}" not found`);
151
+ }
152
+ }
153
+ else {
154
+ const authProviderId = authProviderIdMap.get(svc.authProviderApiName);
155
+ if (!authProviderId) {
156
+ throw new Error(`AuthProvider with DeveloperName '${svc.authProviderApiName}' not found. ` +
157
+ `Please verify the AuthProvider exists in your org.`);
158
+ }
159
+ for (const input of inputLocators) {
160
+ const id = await input.getAttribute('id');
161
+ const value = await input.getAttribute('value');
162
+ if (authProviderIdMatchesCheckboxValue(authProviderId, value)) {
103
163
  checkboxId = id;
104
164
  break;
105
165
  }
106
166
  }
107
- }
108
- if (!checkboxId) {
109
- throw new Error(`Authentication service "${svc.label}" not found`);
167
+ if (!checkboxId) {
168
+ throw new Error(`Authentication service for AuthProvider '${svc.authProviderApiName}' not found. ` +
169
+ `It may not be available in the Authentication Service configuration.`);
170
+ }
110
171
  }
111
172
  const selector = `[id="${checkboxId}"]`;
112
173
  const isChecked = await frameOrPage.locator(selector).isChecked();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/authentication-configuration/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/security/authentication-configuration/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,13 @@
1
1
  export declare function semanticallyCleanObject<T extends unknown>(obj: T, id?: string): T | undefined;
2
2
  export declare function isEmptyObjectOrArray(arg: unknown): boolean;
3
3
  export declare function deepDiff<T extends unknown>(source: T | undefined, target: T | undefined): T | undefined;
4
+ /**
5
+ * Masks sensitive values in an object for safe logging
6
+ * Fields matching patterns like "secret", "password", "key", "token", etc. will be masked
7
+ * Additionally, fields marked as type "password" in the schema will be masked
8
+ * @param value The value to mask (can be object, array, or primitive)
9
+ * @param keyPath The current key path (for nested objects)
10
+ * @param schema Optional JSON schema to check for password type fields
11
+ * @returns Masked value safe for logging
12
+ */
13
+ export declare function maskSensitiveValues(value: unknown, keyPath?: string, schema?: unknown): unknown;
@@ -39,4 +39,121 @@ export function deepDiff(source, target) {
39
39
  // simple value
40
40
  return target;
41
41
  }
42
+ /**
43
+ * Extracts password field names from a JSON schema
44
+ * @param schema The JSON schema object
45
+ * @param prefix The current path prefix (for nested schemas)
46
+ * @returns Set of field paths that are marked as password type
47
+ */
48
+ function extractPasswordFields(schema, prefix = '') {
49
+ const passwordFields = new Set();
50
+ if (typeof schema !== 'object' || schema === null) {
51
+ return passwordFields;
52
+ }
53
+ const schemaObj = schema;
54
+ // Check if this schema object is marked as password using x-password property
55
+ if (schemaObj['x-password'] === true) {
56
+ if (prefix) {
57
+ passwordFields.add(prefix);
58
+ }
59
+ }
60
+ // Handle patternProperties (for dynamic keys like auth-providers)
61
+ if (schemaObj.patternProperties && typeof schemaObj.patternProperties === 'object') {
62
+ const patternProps = schemaObj.patternProperties;
63
+ for (const subSchema of Object.values(patternProps)) {
64
+ const subPasswordFields = extractPasswordFields(subSchema, prefix);
65
+ subPasswordFields.forEach((field) => passwordFields.add(field));
66
+ }
67
+ }
68
+ // Handle properties (for fixed keys)
69
+ if (schemaObj.properties && typeof schemaObj.properties === 'object') {
70
+ const properties = schemaObj.properties;
71
+ for (const [key, propSchema] of Object.entries(properties)) {
72
+ const currentPath = prefix ? `${prefix}.${key}` : key;
73
+ const propPasswordFields = extractPasswordFields(propSchema, currentPath);
74
+ propPasswordFields.forEach((field) => passwordFields.add(field));
75
+ }
76
+ }
77
+ return passwordFields;
78
+ }
79
+ /**
80
+ * Checks if a field path matches any password field from the schema
81
+ * @param fieldPath The field path to check (e.g., "consumerSecret" or "test.consumerSecret")
82
+ * @param passwordFields Set of password field paths from schema
83
+ * @returns True if the field should be masked
84
+ */
85
+ function isPasswordField(fieldPath, passwordFields) {
86
+ // Check exact match
87
+ if (passwordFields.has(fieldPath)) {
88
+ return true;
89
+ }
90
+ // Check if any password field is a suffix of the current path
91
+ // e.g., if schema has "consumerSecret" and path is "test.consumerSecret"
92
+ const passwordFieldsArray = Array.from(passwordFields);
93
+ for (const passwordField of passwordFieldsArray) {
94
+ if (fieldPath.endsWith(`.${passwordField}`) || fieldPath === passwordField) {
95
+ return true;
96
+ }
97
+ }
98
+ return false;
99
+ }
100
+ /**
101
+ * Masks sensitive values in an object for safe logging
102
+ * Fields matching patterns like "secret", "password", "key", "token", etc. will be masked
103
+ * Additionally, fields marked as type "password" in the schema will be masked
104
+ * @param value The value to mask (can be object, array, or primitive)
105
+ * @param keyPath The current key path (for nested objects)
106
+ * @param schema Optional JSON schema to check for password type fields
107
+ * @returns Masked value safe for logging
108
+ */
109
+ export function maskSensitiveValues(value, keyPath = '', schema) {
110
+ // Extract password fields from schema if provided
111
+ const passwordFields = schema ? extractPasswordFields(schema) : new Set();
112
+ // List of patterns that indicate sensitive fields (fallback for when schema is not available)
113
+ const sensitivePatterns = [
114
+ /secret/i,
115
+ /password/i,
116
+ /token/i,
117
+ /key/i,
118
+ /credential/i,
119
+ /auth/i,
120
+ /api[_-]?key/i,
121
+ /access[_-]?token/i,
122
+ ];
123
+ const isSensitiveField = (key) => {
124
+ // First check schema-based password fields
125
+ if (passwordFields.size > 0 && isPasswordField(key, passwordFields)) {
126
+ return true;
127
+ }
128
+ // Fallback to pattern matching
129
+ return sensitivePatterns.some((pattern) => pattern.test(key));
130
+ };
131
+ if (value === null || value === undefined) {
132
+ return value;
133
+ }
134
+ // If it's a string and we're in a sensitive field context, mask it
135
+ if (typeof value === 'string' && keyPath && isSensitiveField(keyPath)) {
136
+ return '****';
137
+ }
138
+ // If it's an object, recursively mask nested values
139
+ if (typeof value === 'object') {
140
+ if (Array.isArray(value)) {
141
+ return value.map((item, index) => maskSensitiveValues(item, `${keyPath}[${index}]`, schema));
142
+ }
143
+ else {
144
+ const masked = {};
145
+ for (const [key, val] of Object.entries(value)) {
146
+ const currentPath = keyPath ? `${keyPath}.${key}` : key;
147
+ if (isSensitiveField(key) && typeof val === 'string' && val.length > 0) {
148
+ masked[key] = '****';
149
+ }
150
+ else {
151
+ masked[key] = maskSensitiveValues(val, currentPath, schema);
152
+ }
153
+ }
154
+ return masked;
155
+ }
156
+ }
157
+ return value;
158
+ }
42
159
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/plugins/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAEzC,wDAAwD;AACxD,MAAM,UAAU,uBAAuB,CAAoB,GAAM,EAAE,EAAE,GAAG,IAAI;IAC1E,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAoB,MAAqB,EAAE,MAAqB;IACtF,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACnG,IAAI,aAA4B,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAErF,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;YACZ,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC1C,OAAO,QAAQ,CAAC,SAAc,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YACD,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,oBAAoB,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,eAAe;IACf,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/plugins/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAEzC,wDAAwD;AACxD,MAAM,UAAU,uBAAuB,CAAoB,GAAM,EAAE,EAAE,GAAG,IAAI;IAC1E,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAoB,MAAqB,EAAE,MAAqB;IACtF,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACnG,IAAI,aAA4B,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAErF,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;YACZ,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC1C,OAAO,QAAQ,CAAC,SAAc,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YACD,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,oBAAoB,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,eAAe;IACf,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,MAAe,EAAE,MAAM,GAAG,EAAE;IACzD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,MAAiC,CAAC;IAEpD,8EAA8E;IAC9E,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,SAAS,CAAC,iBAAiB,IAAI,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QACnF,MAAM,YAAY,GAAG,SAAS,CAAC,iBAA4C,CAAC;QAC5E,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACpD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACnE,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,SAAS,CAAC,UAAU,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,UAAU,GAAG,SAAS,CAAC,UAAqC,CAAC;QACnE,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACtD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC1E,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,SAAiB,EAAE,cAA2B;IACrE,oBAAoB;IACpB,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,KAAK,MAAM,aAAa,IAAI,mBAAmB,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,OAAO,GAAG,EAAE,EAAE,MAAgB;IAChF,kDAAkD;IAClD,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAElF,8FAA8F;IAC9F,MAAM,iBAAiB,GAAG;QACxB,SAAS;QACT,WAAW;QACX,QAAQ;QACR,MAAM;QACN,aAAa;QACb,OAAO;QACP,cAAc;QACd,mBAAmB;KACpB,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAW,EAAE;QAChD,2CAA2C;QAC3C,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,+BAA+B;QAC/B,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mEAAmE;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oDAAoD;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,OAAO,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/F,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -173,5 +173,5 @@
173
173
  ]
174
174
  }
175
175
  },
176
- "version": "6.0.2"
176
+ "version": "6.2.0"
177
177
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfdx-browserforce-plugin",
3
- "version": "6.0.2",
3
+ "version": "6.2.0",
4
4
  "description": "sfdx plugin for browser automation",
5
5
  "author": "Matthias Rolke <mr.amtrack@gmail.com>",
6
6
  "type": "module",