From 5ad446716b7bc6a33d42b0b3723612053a572c67 Mon Sep 17 00:00:00 2001 From: Amrit Mishra Date: Mon, 17 Aug 2026 13:45:12 +0530 Subject: [PATCH 1/4] NEW @W-23659201@ Register uibundle engine in CLI Adds the new @salesforce/code-analyzer-uibundle-engine plugin to the CLI's EnginePluginsFactoryImpl so it runs alongside the other engines with `sf code-analyzer run`. Depends on forcedotcom/code-analyzer-core#499 being merged and the engine package being published before this PR's CI can go green. --- package.json | 1 + src/lib/factories/EnginePluginsFactory.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index a4c71481d..47a61b0c4 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@salesforce/code-analyzer-regex-engine": "0.39.0", "@salesforce/code-analyzer-retirejs-engine": "0.38.0", "@salesforce/code-analyzer-sfge-engine": "0.24.0", + "@salesforce/code-analyzer-uibundle-engine": "0.1.0-SNAPSHOT", "@salesforce/core": "8.23.4", "@salesforce/sf-plugins-core": "^12.2.26", "@salesforce/ts-types": "^2.0.12", diff --git a/src/lib/factories/EnginePluginsFactory.ts b/src/lib/factories/EnginePluginsFactory.ts index 22a516573..b36cdba7a 100644 --- a/src/lib/factories/EnginePluginsFactory.ts +++ b/src/lib/factories/EnginePluginsFactory.ts @@ -6,6 +6,7 @@ import * as RegexEngineModule from '@salesforce/code-analyzer-regex-engine'; import * as FlowEngineModule from '@salesforce/code-analyzer-flow-engine'; import * as SfgeEngineModule from '@salesforce/code-analyzer-sfge-engine'; import * as ApexGuruEngineModule from '@salesforce/code-analyzer-apexguru-engine'; +import * as UIBundleEngineModule from '@salesforce/code-analyzer-uibundle-engine'; export interface EnginePluginsFactory { create(): EnginePlugin[]; @@ -20,7 +21,8 @@ export class EnginePluginsFactoryImpl implements EnginePluginsFactory { RegexEngineModule.createEnginePlugin(), FlowEngineModule.createEnginePlugin(), SfgeEngineModule.createEnginePlugin(), - ApexGuruEngineModule.createEnginePlugin() + ApexGuruEngineModule.createEnginePlugin(), + UIBundleEngineModule.createEnginePlugin() ]; } } From 2e4cbbfa1ce3cabfdfb9c4fefe91860817def6e7 Mon Sep 17 00:00:00 2001 From: Amrit Mishra Date: Mon, 24 Aug 2026 13:10:58 +0530 Subject: [PATCH 2/4] CHANGE @W-23659201@ Pin uibundle-engine to 0.1.0 Bumps the CLI's @salesforce/code-analyzer-uibundle-engine dependency from 0.1.0-SNAPSHOT to the just-published 0.1.0 release. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 47a61b0c4..aef7024a4 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@salesforce/code-analyzer-regex-engine": "0.39.0", "@salesforce/code-analyzer-retirejs-engine": "0.38.0", "@salesforce/code-analyzer-sfge-engine": "0.24.0", - "@salesforce/code-analyzer-uibundle-engine": "0.1.0-SNAPSHOT", + "@salesforce/code-analyzer-uibundle-engine": "0.1.0", "@salesforce/core": "8.23.4", "@salesforce/sf-plugins-core": "^12.2.26", "@salesforce/ts-types": "^2.0.12", From 2353509924fc9d8773056471a87dc9ef280fa9e4 Mon Sep 17 00:00:00 2001 From: Nikhil Mittal Date: Tue, 25 Aug 2026 11:32:48 +0530 Subject: [PATCH 3/4] update ui bundle --- package-lock.json | 68 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index b36139600..fc169d1ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@salesforce/code-analyzer-regex-engine": "0.39.0", "@salesforce/code-analyzer-retirejs-engine": "0.38.0", "@salesforce/code-analyzer-sfge-engine": "0.24.0", + "@salesforce/code-analyzer-uibundle-engine": "0.2.0", "@salesforce/core": "8.23.4", "@salesforce/sf-plugins-core": "^12.2.26", "@salesforce/ts-types": "^2.0.12", @@ -5827,6 +5828,73 @@ "node": ">=20.0.0" } }, + "node_modules/@salesforce/code-analyzer-uibundle-engine": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@salesforce/code-analyzer-uibundle-engine/-/code-analyzer-uibundle-engine-0.2.0.tgz", + "integrity": "sha512-n2w9PW65cxZ9u2O6GzyEgaS/FDhdpmwWXJNPAywoZAZ9rfxYamZq8t2K3xjt8G0SjJQopUvTt49djjwjpNe4DQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/parser": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0", + "@jridgewell/sourcemap-codec": "^1.5.5", + "@jridgewell/trace-mapping": "^0.3.31", + "@salesforce/code-analyzer-engine-api": "0.42.0", + "@types/node": "^20.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@salesforce/code-analyzer-uibundle-engine/node_modules/@salesforce/code-analyzer-engine-api": { + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@salesforce/code-analyzer-engine-api/-/code-analyzer-engine-api-0.42.0.tgz", + "integrity": "sha512-ojS09MCnBMecPFdz0RIOCCbutL15HRwOlXzb0Mdgs8EAwAWnouxXpolUGIFhRh3Kd1sc56XOQrxBaxVfKXmFaQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/node": "^20.0.0", + "minimatch": "^10.2.6" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@salesforce/code-analyzer-uibundle-engine/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@salesforce/code-analyzer-uibundle-engine/node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@salesforce/code-analyzer-uibundle-engine/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@salesforce/core": { "version": "8.23.4", "resolved": "https://registry.npmjs.org/@salesforce/core/-/core-8.23.4.tgz", diff --git a/package.json b/package.json index aef7024a4..2688e4547 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@salesforce/code-analyzer-regex-engine": "0.39.0", "@salesforce/code-analyzer-retirejs-engine": "0.38.0", "@salesforce/code-analyzer-sfge-engine": "0.24.0", - "@salesforce/code-analyzer-uibundle-engine": "0.1.0", + "@salesforce/code-analyzer-uibundle-engine": "0.2.0", "@salesforce/core": "8.23.4", "@salesforce/sf-plugins-core": "^12.2.26", "@salesforce/ts-types": "^2.0.12", From f350c11e3e644b9f2fa3e73db45b9fe1875ceaa6 Mon Sep 17 00:00:00 2001 From: Nikhil Mittal Date: Tue, 25 Aug 2026 11:45:59 +0530 Subject: [PATCH 4/4] update ui bundle --- test/lib/factories/EnginePluginsFactory.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/lib/factories/EnginePluginsFactory.test.ts b/test/lib/factories/EnginePluginsFactory.test.ts index 1765f3446..7c59561b2 100644 --- a/test/lib/factories/EnginePluginsFactory.test.ts +++ b/test/lib/factories/EnginePluginsFactory.test.ts @@ -6,7 +6,7 @@ describe('EnginePluginsFactoryImpl', () => { const pluginsFactory = new EnginePluginsFactoryImpl(); const enginePlugins = pluginsFactory.create(); - expect(enginePlugins).toHaveLength(7); + expect(enginePlugins).toHaveLength(8); expect(enginePlugins[0].getAvailableEngineNames()).toEqual(['eslint']); expect(enginePlugins[1].getAvailableEngineNames()).toEqual(['pmd', 'cpd']); expect(enginePlugins[2].getAvailableEngineNames()).toEqual(['retire-js']); @@ -14,5 +14,6 @@ describe('EnginePluginsFactoryImpl', () => { expect(enginePlugins[4].getAvailableEngineNames()).toEqual(['flow']); expect(enginePlugins[5].getAvailableEngineNames()).toEqual(['sfge']); expect(enginePlugins[6].getAvailableEngineNames()).toEqual(['apexguru']); + expect(enginePlugins[7].getAvailableEngineNames()).toEqual(['uibundle']); }); });