@jterrats/smart-deployment 1.3.1 → 1.5.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 (125) 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 +284 -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/preset.js +2 -1
  12. package/lib/commands/ci/preset.js.map +1 -1
  13. package/lib/commands/ci-publish.d.ts +6 -2
  14. package/lib/commands/ci-publish.js +23 -8
  15. package/lib/commands/ci-publish.js.map +1 -1
  16. package/lib/commands/metadata/gaps.d.ts +15 -0
  17. package/lib/commands/metadata/gaps.js +84 -0
  18. package/lib/commands/metadata/gaps.js.map +1 -0
  19. package/lib/commands/resume.d.ts +7 -0
  20. package/lib/commands/resume.js +59 -6
  21. package/lib/commands/resume.js.map +1 -1
  22. package/lib/commands/start.d.ts +9 -0
  23. package/lib/commands/start.js +89 -29
  24. package/lib/commands/start.js.map +1 -1
  25. package/lib/commands/status.js +10 -4
  26. package/lib/commands/status.js.map +1 -1
  27. package/lib/commands/validate.d.ts +7 -0
  28. package/lib/commands/validate.js +26 -3
  29. package/lib/commands/validate.js.map +1 -1
  30. package/lib/config/repo-config.d.ts +3 -0
  31. package/lib/config/repo-config.js +12 -0
  32. package/lib/config/repo-config.js.map +1 -1
  33. package/lib/constants/deployment-order.js +1 -0
  34. package/lib/constants/deployment-order.js.map +1 -1
  35. package/lib/deployment/ci-preset-service.d.ts +2 -0
  36. package/lib/deployment/ci-preset-service.js +7 -0
  37. package/lib/deployment/ci-preset-service.js.map +1 -1
  38. package/lib/deployment/commit-scope-service.d.ts +7 -0
  39. package/lib/deployment/commit-scope-service.js +104 -21
  40. package/lib/deployment/commit-scope-service.js.map +1 -1
  41. package/lib/deployment/deployment-runner.d.ts +18 -4
  42. package/lib/deployment/deployment-runner.js +135 -33
  43. package/lib/deployment/deployment-runner.js.map +1 -1
  44. package/lib/deployment/deployment-state-summary.d.ts +7 -1
  45. package/lib/deployment/deployment-state-summary.js +24 -6
  46. package/lib/deployment/deployment-state-summary.js.map +1 -1
  47. package/lib/deployment/deployment-status-service.d.ts +15 -8
  48. package/lib/deployment/deployment-status-service.js +53 -28
  49. package/lib/deployment/deployment-status-service.js.map +1 -1
  50. package/lib/deployment/deployment-validation-service.d.ts +2 -0
  51. package/lib/deployment/deployment-validation-service.js +2 -0
  52. package/lib/deployment/deployment-validation-service.js.map +1 -1
  53. package/lib/deployment/resume-deployment-service.d.ts +24 -4
  54. package/lib/deployment/resume-deployment-service.js +108 -23
  55. package/lib/deployment/resume-deployment-service.js.map +1 -1
  56. package/lib/deployment/sf-cli-integration.d.ts +5 -2
  57. package/lib/deployment/sf-cli-integration.js +26 -14
  58. package/lib/deployment/sf-cli-integration.js.map +1 -1
  59. package/lib/deployment/special-deployment-plan.js +36 -49
  60. package/lib/deployment/special-deployment-plan.js.map +1 -1
  61. package/lib/deployment/start-execution-service.d.ts +11 -1
  62. package/lib/deployment/start-execution-service.js +13 -5
  63. package/lib/deployment/start-execution-service.js.map +1 -1
  64. package/lib/deployment/state-manager.d.ts +22 -0
  65. package/lib/deployment/state-manager.js +40 -5
  66. package/lib/deployment/state-manager.js.map +1 -1
  67. package/lib/presentation/release-report-presenter.d.ts +10 -0
  68. package/lib/presentation/release-report-presenter.js +35 -0
  69. package/lib/presentation/release-report-presenter.js.map +1 -0
  70. package/lib/presentation/validate-command-presenter.js +13 -0
  71. package/lib/presentation/validate-command-presenter.js.map +1 -1
  72. package/lib/reports/deployment-plan-report-service.d.ts +3 -0
  73. package/lib/reports/deployment-plan-report-service.js +9 -0
  74. package/lib/reports/deployment-plan-report-service.js.map +1 -1
  75. package/lib/reports/release-report-builder.d.ts +6 -0
  76. package/lib/reports/release-report-builder.js +115 -0
  77. package/lib/reports/release-report-builder.js.map +1 -0
  78. package/lib/reports/release-report-command-adapter.d.ts +14 -0
  79. package/lib/reports/release-report-command-adapter.js +28 -0
  80. package/lib/reports/release-report-command-adapter.js.map +1 -0
  81. package/lib/reports/release-report-facts-factory.d.ts +14 -0
  82. package/lib/reports/release-report-facts-factory.js +140 -0
  83. package/lib/reports/release-report-facts-factory.js.map +1 -0
  84. package/lib/reports/release-report-sanitizer.d.ts +5 -0
  85. package/lib/reports/release-report-sanitizer.js +120 -0
  86. package/lib/reports/release-report-sanitizer.js.map +1 -0
  87. package/lib/reports/release-report-service.d.ts +43 -0
  88. package/lib/reports/release-report-service.js +80 -0
  89. package/lib/reports/release-report-service.js.map +1 -0
  90. package/lib/reports/release-report-store.d.ts +30 -0
  91. package/lib/reports/release-report-store.js +57 -0
  92. package/lib/reports/release-report-store.js.map +1 -0
  93. package/lib/reports/start-release-report-coordinator.d.ts +15 -0
  94. package/lib/reports/start-release-report-coordinator.js +23 -0
  95. package/lib/reports/start-release-report-coordinator.js.map +1 -0
  96. package/lib/services/metadata-scanner-service.js +12 -2
  97. package/lib/services/metadata-scanner-service.js.map +1 -1
  98. package/lib/services/scanners/additional-metadata-scanner.js +37 -3
  99. package/lib/services/scanners/additional-metadata-scanner.js.map +1 -1
  100. package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +2 -1
  101. package/lib/services/scanners/automation-ai-metadata-scanner.js +48 -0
  102. package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
  103. package/lib/types/index.d.ts +2 -0
  104. package/lib/types/index.js +2 -0
  105. package/lib/types/index.js.map +1 -1
  106. package/lib/types/manual-checkpoint.d.ts +27 -0
  107. package/lib/types/manual-checkpoint.js +89 -0
  108. package/lib/types/manual-checkpoint.js.map +1 -0
  109. package/lib/types/metadata-capability.d.ts +39 -0
  110. package/lib/types/metadata-capability.js +2 -0
  111. package/lib/types/metadata-capability.js.map +1 -0
  112. package/lib/types/metadata.d.ts +7 -1
  113. package/lib/types/release-report.d.ts +89 -0
  114. package/lib/types/release-report.js +42 -0
  115. package/lib/types/release-report.js.map +1 -0
  116. package/lib/waves/wave-priority-policy.js +2 -25
  117. package/lib/waves/wave-priority-policy.js.map +1 -1
  118. package/messages/metadata.gaps.json +12 -0
  119. package/messages/resume.json +5 -3
  120. package/messages/start.json +2 -0
  121. package/messages/validate.json +3 -1
  122. package/npm-shrinkwrap.json +417 -901
  123. package/oclif.lock +415 -718
  124. package/oclif.manifest.json +103 -12
  125. package/package.json +18 -14
@@ -537,7 +537,8 @@
537
537
  "args": {},
538
538
  "examples": [
539
539
  "<%= config.bin %> <%= command.id %> --source-path force-app",
540
- "<%= config.bin %> <%= command.id %> --source-path force-app --retry-strategy quick"
540
+ "<%= config.bin %> <%= command.id %> --source-path force-app --retry-strategy quick",
541
+ "<%= config.bin %> <%= command.id %> --source-path . --approve-checkpoint activate-decision-table"
541
542
  ],
542
543
  "flags": {
543
544
  "json": {
@@ -556,6 +557,7 @@
556
557
  "type": "option"
557
558
  },
558
559
  "target-org": {
560
+ "char": "o",
559
561
  "name": "target-org",
560
562
  "summary": "Target Salesforce org alias or username for remote deployment resume",
561
563
  "hasDynamicHelp": false,
@@ -581,6 +583,13 @@
581
583
  "validate-only"
582
584
  ],
583
585
  "type": "option"
586
+ },
587
+ "approve-checkpoint": {
588
+ "name": "approve-checkpoint",
589
+ "summary": "Approve a paused manual checkpoint and continue the remaining waves",
590
+ "hasDynamicHelp": false,
591
+ "multiple": false,
592
+ "type": "option"
584
593
  }
585
594
  },
586
595
  "hasDynamicHelp": false,
@@ -590,7 +599,7 @@
590
599
  "pluginName": "@jterrats/smart-deployment",
591
600
  "pluginType": "core",
592
601
  "strict": true,
593
- "summary": "Resume a failed deployment",
602
+ "summary": "Resume a failed or paused deployment",
594
603
  "enableJsonFlag": true,
595
604
  "isESM": true,
596
605
  "relativePath": [
@@ -750,16 +759,10 @@
750
759
  "type": "option"
751
760
  },
752
761
  "target-org": {
753
- "aliases": [
754
- "targetusername",
755
- "u"
756
- ],
757
762
  "char": "o",
758
- "deprecateAliases": true,
759
763
  "name": "target-org",
760
- "noCacheDefault": true,
761
- "summary": "Username or alias of the target org.",
762
- "hasDynamicHelp": true,
764
+ "summary": "Target Salesforce org for deployment",
765
+ "hasDynamicHelp": false,
763
766
  "multiple": false,
764
767
  "type": "option"
765
768
  },
@@ -851,6 +854,14 @@
851
854
  "multiple": false,
852
855
  "type": "option"
853
856
  },
857
+ "scope-manifest-output": {
858
+ "description": "Creates a deterministic JSON contract containing commits, changed files, included metadata, dependency-retained metadata, explicitly included metadata, and ignored metadata.",
859
+ "name": "scope-manifest-output",
860
+ "summary": "Write the resolved story scope manifest for CI review",
861
+ "hasDynamicHelp": false,
862
+ "multiple": false,
863
+ "type": "option"
864
+ },
854
865
  "destructive": {
855
866
  "description": "Runs the normal analysis path, then executes destructiveChanges manifests in reverse wave order.",
856
867
  "name": "destructive",
@@ -875,7 +886,7 @@
875
886
  "type": "option"
876
887
  }
877
888
  },
878
- "hasDynamicHelp": true,
889
+ "hasDynamicHelp": false,
879
890
  "hiddenAliases": [],
880
891
  "id": "start",
881
892
  "pluginAlias": "@jterrats/smart-deployment",
@@ -924,6 +935,7 @@
924
935
  "type": "option"
925
936
  },
926
937
  "target-org": {
938
+ "char": "o",
927
939
  "name": "target-org",
928
940
  "summary": "Target Salesforce org alias or username for remote deployment status refresh",
929
941
  "hasDynamicHelp": false,
@@ -1026,6 +1038,14 @@
1026
1038
  "hasDynamicHelp": false,
1027
1039
  "multiple": false,
1028
1040
  "type": "option"
1041
+ },
1042
+ "scope-manifest-output": {
1043
+ "description": "Creates a deterministic JSON contract containing commits, changed files, included metadata, dependency-retained metadata, explicitly included metadata, and ignored metadata.",
1044
+ "name": "scope-manifest-output",
1045
+ "summary": "Write the resolved story scope manifest for CI review",
1046
+ "hasDynamicHelp": false,
1047
+ "multiple": false,
1048
+ "type": "option"
1029
1049
  }
1030
1050
  },
1031
1051
  "hasDynamicHelp": true,
@@ -1472,7 +1492,78 @@
1472
1492
  "plan:explain",
1473
1493
  "explain:plan"
1474
1494
  ]
1495
+ },
1496
+ "metadata:gaps": {
1497
+ "aliases": [
1498
+ "smart-deployment:metadata:gaps"
1499
+ ],
1500
+ "args": {},
1501
+ "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.",
1502
+ "examples": [
1503
+ "<%= config.bin %> <%= command.id %> --source-path force-app --json",
1504
+ "<%= config.bin %> smart-deployment metadata gaps --ai-explain"
1505
+ ],
1506
+ "flags": {
1507
+ "json": {
1508
+ "description": "Format output as json.",
1509
+ "helpGroup": "GLOBAL",
1510
+ "name": "json",
1511
+ "allowNo": false,
1512
+ "type": "boolean"
1513
+ },
1514
+ "flags-dir": {
1515
+ "helpGroup": "GLOBAL",
1516
+ "name": "flags-dir",
1517
+ "summary": "Import flag values from a directory.",
1518
+ "hasDynamicHelp": false,
1519
+ "multiple": false,
1520
+ "type": "option"
1521
+ },
1522
+ "source-path": {
1523
+ "description": "Path used to locate sfdx-project.json and scan configured package directories.",
1524
+ "name": "source-path",
1525
+ "summary": "Salesforce project or source path to scan",
1526
+ "hasDynamicHelp": false,
1527
+ "multiple": false,
1528
+ "type": "option"
1529
+ },
1530
+ "ai-explain": {
1531
+ "description": "Adds a deterministic prompt and setup-agents workflow command for Codex-assisted review. The plugin does not call an AI provider directly.",
1532
+ "name": "ai-explain",
1533
+ "summary": "Include workflow-ready AI explanation context",
1534
+ "allowNo": false,
1535
+ "type": "boolean"
1536
+ }
1537
+ },
1538
+ "hasDynamicHelp": false,
1539
+ "hiddenAliases": [],
1540
+ "id": "metadata:gaps",
1541
+ "pluginAlias": "@jterrats/smart-deployment",
1542
+ "pluginName": "@jterrats/smart-deployment",
1543
+ "pluginType": "core",
1544
+ "strict": true,
1545
+ "summary": "Analyze unsupported Salesforce metadata types",
1546
+ "enableJsonFlag": true,
1547
+ "isESM": true,
1548
+ "relativePath": [
1549
+ "lib",
1550
+ "commands",
1551
+ "metadata",
1552
+ "gaps.js"
1553
+ ],
1554
+ "aliasPermutations": [
1555
+ "smart-deployment:metadata:gaps",
1556
+ "metadata:smart-deployment:gaps",
1557
+ "metadata:gaps:smart-deployment",
1558
+ "smart-deployment:gaps:metadata",
1559
+ "gaps:smart-deployment:metadata",
1560
+ "gaps:metadata:smart-deployment"
1561
+ ],
1562
+ "permutations": [
1563
+ "metadata:gaps",
1564
+ "gaps:metadata"
1565
+ ]
1475
1566
  }
1476
1567
  },
1477
- "version": "1.3.1"
1568
+ "version": "1.5.0"
1478
1569
  }
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.5.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
  }