@jterrats/smart-deployment 1.3.1 → 1.4.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 (98) hide show
  1. package/README.md +38 -0
  2. package/lib/analysis/metadata-capability-definitions.d.ts +2 -0
  3. package/lib/analysis/metadata-capability-definitions.js +260 -0
  4. package/lib/analysis/metadata-capability-definitions.js.map +1 -0
  5. package/lib/analysis/metadata-capability-registry.d.ts +11 -0
  6. package/lib/analysis/metadata-capability-registry.js +142 -0
  7. package/lib/analysis/metadata-capability-registry.js.map +1 -0
  8. package/lib/analysis/metadata-gap-analysis-service.d.ts +51 -0
  9. package/lib/analysis/metadata-gap-analysis-service.js +277 -0
  10. package/lib/analysis/metadata-gap-analysis-service.js.map +1 -0
  11. package/lib/commands/ci-publish.d.ts +6 -2
  12. package/lib/commands/ci-publish.js +23 -8
  13. package/lib/commands/ci-publish.js.map +1 -1
  14. package/lib/commands/metadata/gaps.d.ts +15 -0
  15. package/lib/commands/metadata/gaps.js +84 -0
  16. package/lib/commands/metadata/gaps.js.map +1 -0
  17. package/lib/commands/resume.js +5 -4
  18. package/lib/commands/resume.js.map +1 -1
  19. package/lib/commands/start.d.ts +6 -0
  20. package/lib/commands/start.js +43 -14
  21. package/lib/commands/start.js.map +1 -1
  22. package/lib/commands/status.js +5 -2
  23. package/lib/commands/status.js.map +1 -1
  24. package/lib/commands/validate.d.ts +7 -0
  25. package/lib/commands/validate.js +24 -2
  26. package/lib/commands/validate.js.map +1 -1
  27. package/lib/constants/deployment-order.js +1 -0
  28. package/lib/constants/deployment-order.js.map +1 -1
  29. package/lib/deployment/commit-scope-service.d.ts +7 -0
  30. package/lib/deployment/commit-scope-service.js +104 -21
  31. package/lib/deployment/commit-scope-service.js.map +1 -1
  32. package/lib/deployment/deployment-runner.d.ts +1 -1
  33. package/lib/deployment/deployment-runner.js +23 -22
  34. package/lib/deployment/deployment-runner.js.map +1 -1
  35. package/lib/deployment/deployment-status-service.d.ts +8 -7
  36. package/lib/deployment/deployment-status-service.js +45 -27
  37. package/lib/deployment/deployment-status-service.js.map +1 -1
  38. package/lib/deployment/deployment-validation-service.d.ts +2 -0
  39. package/lib/deployment/deployment-validation-service.js +2 -0
  40. package/lib/deployment/deployment-validation-service.js.map +1 -1
  41. package/lib/deployment/resume-deployment-service.d.ts +5 -4
  42. package/lib/deployment/resume-deployment-service.js +18 -21
  43. package/lib/deployment/resume-deployment-service.js.map +1 -1
  44. package/lib/deployment/sf-cli-integration.d.ts +5 -2
  45. package/lib/deployment/sf-cli-integration.js +26 -14
  46. package/lib/deployment/sf-cli-integration.js.map +1 -1
  47. package/lib/deployment/special-deployment-plan.js +36 -49
  48. package/lib/deployment/special-deployment-plan.js.map +1 -1
  49. package/lib/deployment/start-execution-service.js +1 -1
  50. package/lib/deployment/start-execution-service.js.map +1 -1
  51. package/lib/presentation/release-report-presenter.d.ts +10 -0
  52. package/lib/presentation/release-report-presenter.js +35 -0
  53. package/lib/presentation/release-report-presenter.js.map +1 -0
  54. package/lib/presentation/validate-command-presenter.js +13 -0
  55. package/lib/presentation/validate-command-presenter.js.map +1 -1
  56. package/lib/reports/release-report-builder.d.ts +6 -0
  57. package/lib/reports/release-report-builder.js +115 -0
  58. package/lib/reports/release-report-builder.js.map +1 -0
  59. package/lib/reports/release-report-command-adapter.d.ts +14 -0
  60. package/lib/reports/release-report-command-adapter.js +28 -0
  61. package/lib/reports/release-report-command-adapter.js.map +1 -0
  62. package/lib/reports/release-report-facts-factory.d.ts +14 -0
  63. package/lib/reports/release-report-facts-factory.js +140 -0
  64. package/lib/reports/release-report-facts-factory.js.map +1 -0
  65. package/lib/reports/release-report-sanitizer.d.ts +5 -0
  66. package/lib/reports/release-report-sanitizer.js +120 -0
  67. package/lib/reports/release-report-sanitizer.js.map +1 -0
  68. package/lib/reports/release-report-service.d.ts +43 -0
  69. package/lib/reports/release-report-service.js +80 -0
  70. package/lib/reports/release-report-service.js.map +1 -0
  71. package/lib/reports/release-report-store.d.ts +30 -0
  72. package/lib/reports/release-report-store.js +57 -0
  73. package/lib/reports/release-report-store.js.map +1 -0
  74. package/lib/reports/start-release-report-coordinator.d.ts +15 -0
  75. package/lib/reports/start-release-report-coordinator.js +23 -0
  76. package/lib/reports/start-release-report-coordinator.js.map +1 -0
  77. package/lib/services/metadata-scanner-service.js +12 -2
  78. package/lib/services/metadata-scanner-service.js.map +1 -1
  79. package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +2 -1
  80. package/lib/services/scanners/automation-ai-metadata-scanner.js +48 -0
  81. package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
  82. package/lib/types/index.d.ts +2 -0
  83. package/lib/types/index.js +2 -0
  84. package/lib/types/index.js.map +1 -1
  85. package/lib/types/metadata-capability.d.ts +39 -0
  86. package/lib/types/metadata-capability.js +2 -0
  87. package/lib/types/metadata-capability.js.map +1 -0
  88. package/lib/types/metadata.d.ts +7 -1
  89. package/lib/types/release-report.d.ts +89 -0
  90. package/lib/types/release-report.js +42 -0
  91. package/lib/types/release-report.js.map +1 -0
  92. package/messages/metadata.gaps.json +12 -0
  93. package/messages/start.json +2 -0
  94. package/messages/validate.json +3 -1
  95. package/npm-shrinkwrap.json +417 -901
  96. package/oclif.lock +415 -718
  97. package/oclif.manifest.json +93 -10
  98. package/package.json +18 -14
@@ -556,6 +556,7 @@
556
556
  "type": "option"
557
557
  },
558
558
  "target-org": {
559
+ "char": "o",
559
560
  "name": "target-org",
560
561
  "summary": "Target Salesforce org alias or username for remote deployment resume",
561
562
  "hasDynamicHelp": false,
@@ -750,16 +751,10 @@
750
751
  "type": "option"
751
752
  },
752
753
  "target-org": {
753
- "aliases": [
754
- "targetusername",
755
- "u"
756
- ],
757
754
  "char": "o",
758
- "deprecateAliases": true,
759
755
  "name": "target-org",
760
- "noCacheDefault": true,
761
- "summary": "Username or alias of the target org.",
762
- "hasDynamicHelp": true,
756
+ "summary": "Target Salesforce org for deployment",
757
+ "hasDynamicHelp": false,
763
758
  "multiple": false,
764
759
  "type": "option"
765
760
  },
@@ -851,6 +846,14 @@
851
846
  "multiple": false,
852
847
  "type": "option"
853
848
  },
849
+ "scope-manifest-output": {
850
+ "description": "Creates a deterministic JSON contract containing commits, changed files, included metadata, dependency-retained metadata, explicitly included metadata, and ignored metadata.",
851
+ "name": "scope-manifest-output",
852
+ "summary": "Write the resolved story scope manifest for CI review",
853
+ "hasDynamicHelp": false,
854
+ "multiple": false,
855
+ "type": "option"
856
+ },
854
857
  "destructive": {
855
858
  "description": "Runs the normal analysis path, then executes destructiveChanges manifests in reverse wave order.",
856
859
  "name": "destructive",
@@ -875,7 +878,7 @@
875
878
  "type": "option"
876
879
  }
877
880
  },
878
- "hasDynamicHelp": true,
881
+ "hasDynamicHelp": false,
879
882
  "hiddenAliases": [],
880
883
  "id": "start",
881
884
  "pluginAlias": "@jterrats/smart-deployment",
@@ -924,6 +927,7 @@
924
927
  "type": "option"
925
928
  },
926
929
  "target-org": {
930
+ "char": "o",
927
931
  "name": "target-org",
928
932
  "summary": "Target Salesforce org alias or username for remote deployment status refresh",
929
933
  "hasDynamicHelp": false,
@@ -1026,6 +1030,14 @@
1026
1030
  "hasDynamicHelp": false,
1027
1031
  "multiple": false,
1028
1032
  "type": "option"
1033
+ },
1034
+ "scope-manifest-output": {
1035
+ "description": "Creates a deterministic JSON contract containing commits, changed files, included metadata, dependency-retained metadata, explicitly included metadata, and ignored metadata.",
1036
+ "name": "scope-manifest-output",
1037
+ "summary": "Write the resolved story scope manifest for CI review",
1038
+ "hasDynamicHelp": false,
1039
+ "multiple": false,
1040
+ "type": "option"
1029
1041
  }
1030
1042
  },
1031
1043
  "hasDynamicHelp": true,
@@ -1320,6 +1332,77 @@
1320
1332
  "export:graph"
1321
1333
  ]
1322
1334
  },
1335
+ "metadata:gaps": {
1336
+ "aliases": [
1337
+ "smart-deployment:metadata:gaps"
1338
+ ],
1339
+ "args": {},
1340
+ "description": "Scans package manifests and Salesforce source paths, compares detected metadata types against smart-deployment support, and reports safe next steps for unsupported or partially supported metadata.",
1341
+ "examples": [
1342
+ "<%= config.bin %> <%= command.id %> --source-path force-app --json",
1343
+ "<%= config.bin %> smart-deployment metadata gaps --ai-explain"
1344
+ ],
1345
+ "flags": {
1346
+ "json": {
1347
+ "description": "Format output as json.",
1348
+ "helpGroup": "GLOBAL",
1349
+ "name": "json",
1350
+ "allowNo": false,
1351
+ "type": "boolean"
1352
+ },
1353
+ "flags-dir": {
1354
+ "helpGroup": "GLOBAL",
1355
+ "name": "flags-dir",
1356
+ "summary": "Import flag values from a directory.",
1357
+ "hasDynamicHelp": false,
1358
+ "multiple": false,
1359
+ "type": "option"
1360
+ },
1361
+ "source-path": {
1362
+ "description": "Path used to locate sfdx-project.json and scan configured package directories.",
1363
+ "name": "source-path",
1364
+ "summary": "Salesforce project or source path to scan",
1365
+ "hasDynamicHelp": false,
1366
+ "multiple": false,
1367
+ "type": "option"
1368
+ },
1369
+ "ai-explain": {
1370
+ "description": "Adds a deterministic prompt and setup-agents workflow command for Codex-assisted review. The plugin does not call an AI provider directly.",
1371
+ "name": "ai-explain",
1372
+ "summary": "Include workflow-ready AI explanation context",
1373
+ "allowNo": false,
1374
+ "type": "boolean"
1375
+ }
1376
+ },
1377
+ "hasDynamicHelp": false,
1378
+ "hiddenAliases": [],
1379
+ "id": "metadata:gaps",
1380
+ "pluginAlias": "@jterrats/smart-deployment",
1381
+ "pluginName": "@jterrats/smart-deployment",
1382
+ "pluginType": "core",
1383
+ "strict": true,
1384
+ "summary": "Analyze unsupported Salesforce metadata types",
1385
+ "enableJsonFlag": true,
1386
+ "isESM": true,
1387
+ "relativePath": [
1388
+ "lib",
1389
+ "commands",
1390
+ "metadata",
1391
+ "gaps.js"
1392
+ ],
1393
+ "aliasPermutations": [
1394
+ "smart-deployment:metadata:gaps",
1395
+ "metadata:smart-deployment:gaps",
1396
+ "metadata:gaps:smart-deployment",
1397
+ "smart-deployment:gaps:metadata",
1398
+ "gaps:smart-deployment:metadata",
1399
+ "gaps:metadata:smart-deployment"
1400
+ ],
1401
+ "permutations": [
1402
+ "metadata:gaps",
1403
+ "gaps:metadata"
1404
+ ]
1405
+ },
1323
1406
  "plan:explain": {
1324
1407
  "aliases": [
1325
1408
  "smart-deployment:plan:explain"
@@ -1474,5 +1557,5 @@
1474
1557
  ]
1475
1558
  }
1476
1559
  },
1477
- "version": "1.3.1"
1560
+ "version": "1.4.0"
1478
1561
  }
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@jterrats/smart-deployment",
3
3
  "description": "Intelligent Salesforce metadata deployment plugin that automatically analyzes dependencies, generates optimal deployment",
4
- "version": "1.3.1",
4
+ "version": "1.4.0",
5
5
  "dependencies": {
6
- "@oclif/core": "4.11.2",
7
- "@salesforce/core": "^8.29.0",
8
- "@salesforce/sf-plugins-core": "^12.2.13",
6
+ "@oclif/core": "4.11.4",
7
+ "@salesforce/core": "^8.31.0",
8
+ "@salesforce/sf-plugins-core": "^12.2.24",
9
9
  "fast-xml-parser": "^5.8.0",
10
10
  "glob": "^11.0.0",
11
- "minimatch": "^10.2.5"
11
+ "minimatch": "^10.2.6"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@commitlint/cli": "^18.4.3",
@@ -28,8 +28,8 @@
28
28
  "commitizen": "^4.3.1",
29
29
  "cz-customizable": "^7.5.4",
30
30
  "eslint-plugin-sf-plugin": "^1.20.33",
31
- "mocha": "^11.7.5",
32
- "oclif": "^4.22.77",
31
+ "mocha": "^11.7.6",
32
+ "oclif": "^4.23.14",
33
33
  "semantic-release": "25.0.3",
34
34
  "ts-node": "^10.9.2",
35
35
  "typescript": "^5.9.3"
@@ -223,17 +223,21 @@
223
223
  }
224
224
  },
225
225
  "resolutions": {
226
- "@oclif/core": "4.11.2",
226
+ "@oclif/core": "4.11.4",
227
227
  "baseline-browser-mapping": "2.10.31",
228
- "**/filelist/**/brace-expansion": "2.1.0",
228
+ "**/jake": "12.10.1",
229
+ "**/filelist": "2.0.2",
230
+ "**/fast-uri": "3.1.5",
231
+ "**/form-data": "4.0.6",
232
+ "**/websocket-driver": "0.7.5",
229
233
  "**/socks/**/ip-address": "10.2.0"
230
234
  },
231
235
  "overrides": {
232
- "filelist": {
233
- "minimatch": {
234
- "brace-expansion": "2.1.0"
235
- }
236
- },
236
+ "jake": "12.10.1",
237
+ "filelist": "2.0.2",
238
+ "fast-uri": "3.1.5",
239
+ "form-data": "4.0.6",
240
+ "websocket-driver": "0.7.5",
237
241
  "socks": {
238
242
  "ip-address": "10.2.0"
239
243
  }