Releases: msrivastav13/mo-dx-plugin
v1.0.0
Changelog
1.0.0 (2026-04-22)
This is a major release that modernizes the entire plugin infrastructure. All 10 commands work identically to before -- no command names have changed. The --targetusername flag has been replaced by --target-org (with -o shorthand) to align with the modern Salesforce CLI convention.
Breaking Changes
- Node.js 20+ is now required. The plugin no longer runs on Node 16 or 18. If you are on an older Node version, stay on 0.3.2 and upgrade Node before updating.
- Salesforce CLI
sfv2+ is required. The legacysfdxbinary still works for running commands, but installation now usessf plugins installinstead ofsfdx plugins:install. --targetusername/-uflag replaced by--target-org/-o. If you have scripts or the DX Code Companion extension using-u, update them to use-oor--target-org.
What existing users need to know
- Commands are unchanged.
deploy:apex,deploy:trigger,deploy:vf,deploy:vfcomponent,deploy:aura,deploy:lwc,deploy:staticresource,retrieve:dxsource,retrieve:pkgsource, andmetadata:renameall accept the same flags and produce the same output. - Update your install command. Run
sf plugins install mo-dx-pluginto upgrade. The oldsfdx plugins:install mo-dx-pluginmay still work but is deprecated. - DX Code Companion extension. The extension continues to work with this version without any changes.
Migrated to ESM
The plugin is now a native ES Module, following the Salesforce CLI ESM migration guide.
- Added
"type": "module"to package.json. - All source files use ESM
import/exportsyntax. - All relative imports include
.jsextensions. __dirnamereplaced withimport.meta.urlpattern.require()calls replaced with ESM imports orcreateRequirewhere needed.bin/run.jsandbin/dev.jsfollow the oclif ESM convention.- TypeScript config extends
@salesforce/dev-config/tsconfig-strict-esm.
Dependency upgrades
Every dependency has been updated to its latest compatible version. Unused dependencies have been removed.
Migrated to SfCommand (@salesforce/sf-plugins-core)
The plugin has been migrated from the deprecated @salesforce/command (SfdxCommand) to the modern @salesforce/sf-plugins-core (SfCommand) + @salesforce/core@8. This eliminates the Deprecated config name: apiVersion warning that users were seeing on every command run.
- All commands now extend
SfCommandinstead ofSfdxCommand. - Flags use
@oclif/corev4 Flags API withrequiredOrgFlagWithDeprecationsfor org targeting. - UX uses
this.spinner.start()/this.spinner.stop()instead ofthis.ux.startSpinner()/this.ux.stopSpinner(). - Messages use
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url)(core@8 API). - Connection obtained via
flags['target-org'].getConnection()instead ofthis.org.getConnection(). - Display helpers refactored to use a simple
{ log() }interface instead of the removedUXclass.
Production dependencies:
| Package | 0.3.2 | 1.0.0 | Notes |
|---|---|---|---|
@salesforce/sf-plugins-core |
(new) | 12.2.6 | Replaces @salesforce/command |
@salesforce/core |
(transitive) | 8.28.3 | Now a direct dependency (was transitive via @salesforce/command) |
adm-zip |
0.4.13 | 0.5.17 | Import style changed to ESM default |
chalk |
4.1.0 | 4.1.2 | Import changed from namespace to default |
fs-extra |
9.0.1 | 11.3.4 | Import changed to ESM default |
mime-types |
2.1.24 | 2.1.35 | |
tslib |
1.9.3 | 2.8.1 | |
xmldom-sfdx-encoding |
0.1.29 | 0.1.30 |
Removed (unused): @oclif/command, @oclif/config, @oclif/errors, lodash.
Dev dependencies:
| Package | 0.3.2 | 1.0.0 | Notes |
|---|---|---|---|
typescript |
3 | 5.7+ | |
oclif |
(was @oclif/dev-cli 1.x) | 4.23.0 | Replaces deprecated @oclif/dev-cli |
@oclif/plugin-help |
2 | 6.2.38 | |
@oclif/test |
1 | 4.1.18 | |
@salesforce/dev-config |
2.0.0 | 4.3.3 | |
mocha |
5 | 10.8.2 | |
sinon |
5 | 11.1.2 | |
chai |
4 | 4.5.0 | |
ts-node |
9 | 10.9.2 | |
nyc |
14 | 17.1.0 | |
globby |
8 | 11.1.0 |
Removed: @types/jsforce, @types/lodash, tslint (deprecated). Added: @salesforce/ts-sinon, @types/sinon.
Security
All 34 npm audit vulnerabilities from the previous version have been resolved:
- Upgraded
ocliffrom v3 to v4 (eliminated 27 vulnerabilities from yeoman-environment, aws-sdk v2, @octokit, tar, cacache, sigstore). - Added
overridesforserialize-javascript@7.0.5(fixes RCE/DoS in mocha's dependency chain). - Added
overridesfortmp@0.2.5(fixes symlink vulnerability in jsforce's dependency chain). npm auditnow reports 0 vulnerabilities.
Tests
Tests have been rewritten following the Salesforce CLI plugin testing guide.
- Replaced the old
@salesforce/command/lib/testchain-based test with service-layer unit tests. - 27 unit tests covering:
getFileName,delay,PackageXmlTemplate,executeToolingQuery,createMetadataContainer,createMetadataMember, andDeploy. - Uses mocha + chai + sinon with ESM-compatible mocking patterns (connection-level mocks instead of module-level sinon stubs).
- Mocha configured via
.mocharc.ymlwithts-node/esmloader.
Other changes
- Removed deprecated
tslint.json(tslint has been unmaintained since 2019). - Removed
mocha.optsin favor of.mocharc.yml. - Engine requirement updated from Node 8 to Node 20.
- Source code uses
@salesforce/coredirectly forConnectionandMessages(previously accessed viacorere-export from@salesforce/command).
0.3.2
- Previous stable release (CommonJS, Node 8+, sfdx CLI).
0.3.2
- Security fixes
- Add Execution times to the commands
0.3.0
- Security updates to npm packages.
- Fix for use cases where insert of tooling api fails.
0.2.7
- Fix typo
- Updates for the npm for chalk and other modules
0.2.5
Adds a utility to rename the metadata component using Metadata.Rename()
https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_renameMetadata.htm
0.2.4
Changes static resource folder name parameter from resourcepath to resourcefolder
0.2.3
Support added for static resource deploy via tooling api
0.2.1
Security fixes and version upgrade packages
0.2.0
package 0.2