@jterrats/smart-deployment 1.2.5 → 1.3.1
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 +31 -1
- package/lib/analysis/project-analysis-service.d.ts +5 -0
- package/lib/analysis/project-analysis-service.js +18 -0
- package/lib/analysis/project-analysis-service.js.map +1 -1
- package/lib/commands/ci/preset.d.ts +25 -0
- package/lib/commands/ci/preset.js +125 -0
- package/lib/commands/ci/preset.js.map +1 -0
- package/lib/commands/graph/export.d.ts +20 -0
- package/lib/commands/graph/export.js +107 -0
- package/lib/commands/graph/export.js.map +1 -0
- package/lib/commands/impact.d.ts +18 -0
- package/lib/commands/impact.js +105 -0
- package/lib/commands/impact.js.map +1 -0
- package/lib/commands/init.d.ts +19 -0
- package/lib/commands/init.js +83 -0
- package/lib/commands/init.js.map +1 -0
- package/lib/commands/plan/explain.d.ts +14 -0
- package/lib/commands/plan/explain.js +134 -0
- package/lib/commands/plan/explain.js.map +1 -0
- package/lib/commands/resume.d.ts +1 -0
- package/lib/commands/resume.js +17 -3
- package/lib/commands/resume.js.map +1 -1
- package/lib/commands/retrieve.d.ts +20 -0
- package/lib/commands/retrieve.js +111 -0
- package/lib/commands/retrieve.js.map +1 -0
- package/lib/commands/start.d.ts +21 -0
- package/lib/commands/start.js +124 -14
- package/lib/commands/start.js.map +1 -1
- package/lib/commands/status.d.ts +1 -0
- package/lib/commands/status.js +15 -3
- package/lib/commands/status.js.map +1 -1
- package/lib/commands/validate.d.ts +8 -0
- package/lib/commands/validate.js +14 -0
- package/lib/commands/validate.js.map +1 -1
- package/lib/config/init-config-generation-service.d.ts +27 -0
- package/lib/config/init-config-generation-service.js +88 -0
- package/lib/config/init-config-generation-service.js.map +1 -0
- package/lib/config/repo-config.d.ts +25 -0
- package/lib/config/repo-config.js.map +1 -1
- package/lib/dependencies/dependency-graph-builder.d.ts +1 -0
- package/lib/dependencies/dependency-graph-builder.js +15 -0
- package/lib/dependencies/dependency-graph-builder.js.map +1 -1
- package/lib/dependencies/impact-analysis-service.d.ts +77 -0
- package/lib/dependencies/impact-analysis-service.js +234 -0
- package/lib/dependencies/impact-analysis-service.js.map +1 -0
- package/lib/deployment/ci-preset-service.d.ts +44 -0
- package/lib/deployment/ci-preset-service.js +65 -0
- package/lib/deployment/ci-preset-service.js.map +1 -0
- package/lib/deployment/commit-scope-service.d.ts +43 -0
- package/lib/deployment/commit-scope-service.js +209 -0
- package/lib/deployment/commit-scope-service.js.map +1 -0
- package/lib/deployment/deployment-context-service.d.ts +3 -0
- package/lib/deployment/deployment-context-service.js +1 -0
- package/lib/deployment/deployment-context-service.js.map +1 -1
- package/lib/deployment/deployment-error-diagnostics.d.ts +11 -0
- package/lib/deployment/deployment-error-diagnostics.js +187 -0
- package/lib/deployment/deployment-error-diagnostics.js.map +1 -0
- package/lib/deployment/deployment-runner.d.ts +1 -0
- package/lib/deployment/deployment-runner.js +35 -15
- package/lib/deployment/deployment-runner.js.map +1 -1
- package/lib/deployment/deployment-status-service.d.ts +9 -2
- package/lib/deployment/deployment-status-service.js +56 -3
- package/lib/deployment/deployment-status-service.js.map +1 -1
- package/lib/deployment/deployment-validation-service.d.ts +3 -0
- package/lib/deployment/deployment-validation-service.js +32 -4
- package/lib/deployment/deployment-validation-service.js.map +1 -1
- package/lib/deployment/plan-explain-service.d.ts +88 -0
- package/lib/deployment/plan-explain-service.js +171 -0
- package/lib/deployment/plan-explain-service.js.map +1 -0
- package/lib/deployment/resume-deployment-service.d.ts +6 -2
- package/lib/deployment/resume-deployment-service.js +27 -3
- package/lib/deployment/resume-deployment-service.js.map +1 -1
- package/lib/deployment/retrieve-forceignore-service.d.ts +51 -0
- package/lib/deployment/retrieve-forceignore-service.js +139 -0
- package/lib/deployment/retrieve-forceignore-service.js.map +1 -0
- package/lib/deployment/rollback-planning-service.d.ts +49 -0
- package/lib/deployment/rollback-planning-service.js +178 -0
- package/lib/deployment/rollback-planning-service.js.map +1 -0
- package/lib/deployment/sf-cli-integration.d.ts +4 -0
- package/lib/deployment/sf-cli-integration.js +22 -2
- package/lib/deployment/sf-cli-integration.js.map +1 -1
- package/lib/deployment/start-execution-service.d.ts +1 -0
- package/lib/deployment/start-execution-service.js +14 -8
- package/lib/deployment/start-execution-service.js.map +1 -1
- package/lib/deployment/wave-manifest-service.d.ts +8 -0
- package/lib/deployment/wave-manifest-service.js +39 -20
- package/lib/deployment/wave-manifest-service.js.map +1 -1
- package/lib/presentation/plan-explain-presenter.d.ts +9 -0
- package/lib/presentation/plan-explain-presenter.js +40 -0
- package/lib/presentation/plan-explain-presenter.js.map +1 -0
- package/lib/presentation/start-command-presenter.d.ts +4 -0
- package/lib/presentation/start-command-presenter.js +4 -0
- package/lib/presentation/start-command-presenter.js.map +1 -1
- package/lib/reports/deployment-plan-report-service.d.ts +76 -0
- package/lib/reports/deployment-plan-report-service.js +234 -0
- package/lib/reports/deployment-plan-report-service.js.map +1 -0
- package/lib/reports/graph-export-service.d.ts +85 -0
- package/lib/reports/graph-export-service.js +296 -0
- package/lib/reports/graph-export-service.js.map +1 -0
- package/lib/services/metadata-scanner-service.js +4 -2
- package/lib/services/metadata-scanner-service.js.map +1 -1
- package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +1 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.js +39 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
- package/lib/utils/deployment-plan-manager.js +3 -2
- package/lib/utils/deployment-plan-manager.js.map +1 -1
- package/messages/ci.preset.json +22 -0
- package/messages/graph.export.json +20 -0
- package/messages/impact.json +18 -0
- package/messages/init.json +16 -0
- package/messages/plan.explain.json +20 -0
- package/messages/resume.json +1 -0
- package/messages/retrieve.json +26 -0
- package/messages/start.json +16 -2
- package/messages/status.json +1 -0
- package/messages/validate.json +3 -1
- package/npm-shrinkwrap.json +45 -70
- package/oclif.lock +44 -41
- package/oclif.manifest.json +801 -25
- package/package.json +9 -8
package/oclif.manifest.json
CHANGED
|
@@ -338,6 +338,198 @@
|
|
|
338
338
|
"config"
|
|
339
339
|
]
|
|
340
340
|
},
|
|
341
|
+
"impact": {
|
|
342
|
+
"aliases": [
|
|
343
|
+
"smart-deployment:impact"
|
|
344
|
+
],
|
|
345
|
+
"args": {},
|
|
346
|
+
"description": "Maps git changes to Salesforce metadata components, expands transitive dependents, reports planned deployment waves, and suggests Apex tests for CI decisions.",
|
|
347
|
+
"examples": [
|
|
348
|
+
"<%= config.bin %> <%= command.id %> --base origin/main --head HEAD --json",
|
|
349
|
+
"<%= config.bin %> smart-deployment impact --working-tree --source-path force-app"
|
|
350
|
+
],
|
|
351
|
+
"flags": {
|
|
352
|
+
"json": {
|
|
353
|
+
"description": "Format output as json.",
|
|
354
|
+
"helpGroup": "GLOBAL",
|
|
355
|
+
"name": "json",
|
|
356
|
+
"allowNo": false,
|
|
357
|
+
"type": "boolean"
|
|
358
|
+
},
|
|
359
|
+
"flags-dir": {
|
|
360
|
+
"helpGroup": "GLOBAL",
|
|
361
|
+
"name": "flags-dir",
|
|
362
|
+
"summary": "Import flag values from a directory.",
|
|
363
|
+
"hasDynamicHelp": false,
|
|
364
|
+
"multiple": false,
|
|
365
|
+
"type": "option"
|
|
366
|
+
},
|
|
367
|
+
"source-path": {
|
|
368
|
+
"description": "Path to the Salesforce source directory used to build the dependency graph and deployment waves.",
|
|
369
|
+
"name": "source-path",
|
|
370
|
+
"summary": "Salesforce source path to analyze",
|
|
371
|
+
"hasDynamicHelp": false,
|
|
372
|
+
"multiple": false,
|
|
373
|
+
"type": "option"
|
|
374
|
+
},
|
|
375
|
+
"base": {
|
|
376
|
+
"description": "Git ref at the start of the comparison range. Must be provided with --head.",
|
|
377
|
+
"name": "base",
|
|
378
|
+
"summary": "Base git ref for impact analysis",
|
|
379
|
+
"hasDynamicHelp": false,
|
|
380
|
+
"multiple": false,
|
|
381
|
+
"type": "option"
|
|
382
|
+
},
|
|
383
|
+
"head": {
|
|
384
|
+
"description": "Git ref at the end of the comparison range. Must be provided with --base.",
|
|
385
|
+
"name": "head",
|
|
386
|
+
"summary": "Head git ref for impact analysis",
|
|
387
|
+
"hasDynamicHelp": false,
|
|
388
|
+
"multiple": false,
|
|
389
|
+
"type": "option"
|
|
390
|
+
},
|
|
391
|
+
"working-tree": {
|
|
392
|
+
"description": "Uses git status to include staged, unstaged, and untracked working-tree changes. This is the default when --base and --head are omitted.",
|
|
393
|
+
"name": "working-tree",
|
|
394
|
+
"summary": "Analyze current working-tree changes",
|
|
395
|
+
"allowNo": false,
|
|
396
|
+
"type": "boolean"
|
|
397
|
+
},
|
|
398
|
+
"max-depth": {
|
|
399
|
+
"description": "Limits transitive dependent traversal. Omit for unlimited depth.",
|
|
400
|
+
"name": "max-depth",
|
|
401
|
+
"summary": "Maximum dependent traversal depth",
|
|
402
|
+
"hasDynamicHelp": false,
|
|
403
|
+
"multiple": false,
|
|
404
|
+
"type": "option"
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
"hasDynamicHelp": false,
|
|
408
|
+
"hiddenAliases": [],
|
|
409
|
+
"id": "impact",
|
|
410
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
411
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
412
|
+
"pluginType": "core",
|
|
413
|
+
"strict": true,
|
|
414
|
+
"summary": "Analyze deployment impact from git changes",
|
|
415
|
+
"enableJsonFlag": true,
|
|
416
|
+
"isESM": true,
|
|
417
|
+
"relativePath": [
|
|
418
|
+
"lib",
|
|
419
|
+
"commands",
|
|
420
|
+
"impact.js"
|
|
421
|
+
],
|
|
422
|
+
"aliasPermutations": [
|
|
423
|
+
"smart-deployment:impact",
|
|
424
|
+
"impact:smart-deployment"
|
|
425
|
+
],
|
|
426
|
+
"permutations": [
|
|
427
|
+
"impact"
|
|
428
|
+
]
|
|
429
|
+
},
|
|
430
|
+
"init": {
|
|
431
|
+
"aliases": [
|
|
432
|
+
"smart-deployment:init"
|
|
433
|
+
],
|
|
434
|
+
"args": {},
|
|
435
|
+
"description": "Detects Salesforce project source settings and writes .smart-deployment.json defaults for cache policy, CI preset behavior, and report locations.",
|
|
436
|
+
"examples": [
|
|
437
|
+
"<%= config.bin %> <%= command.id %>",
|
|
438
|
+
"<%= config.bin %> smart-deployment init --source-path force-app --validation-mode warn-only --non-interactive",
|
|
439
|
+
"<%= config.bin %> smart-deployment init --force --no-cache-enabled"
|
|
440
|
+
],
|
|
441
|
+
"flags": {
|
|
442
|
+
"json": {
|
|
443
|
+
"description": "Format output as json.",
|
|
444
|
+
"helpGroup": "GLOBAL",
|
|
445
|
+
"name": "json",
|
|
446
|
+
"allowNo": false,
|
|
447
|
+
"type": "boolean"
|
|
448
|
+
},
|
|
449
|
+
"flags-dir": {
|
|
450
|
+
"helpGroup": "GLOBAL",
|
|
451
|
+
"name": "flags-dir",
|
|
452
|
+
"summary": "Import flag values from a directory.",
|
|
453
|
+
"hasDynamicHelp": false,
|
|
454
|
+
"multiple": false,
|
|
455
|
+
"type": "option"
|
|
456
|
+
},
|
|
457
|
+
"source-path": {
|
|
458
|
+
"name": "source-path",
|
|
459
|
+
"summary": "Path used to detect the Salesforce project and default package directory",
|
|
460
|
+
"hasDynamicHelp": false,
|
|
461
|
+
"multiple": false,
|
|
462
|
+
"type": "option"
|
|
463
|
+
},
|
|
464
|
+
"force": {
|
|
465
|
+
"char": "f",
|
|
466
|
+
"name": "force",
|
|
467
|
+
"summary": "Overwrite an existing .smart-deployment.json file",
|
|
468
|
+
"allowNo": false,
|
|
469
|
+
"type": "boolean"
|
|
470
|
+
},
|
|
471
|
+
"cache-enabled": {
|
|
472
|
+
"name": "cache-enabled",
|
|
473
|
+
"summary": "Enable file-hash cache defaults in generated config",
|
|
474
|
+
"allowNo": true,
|
|
475
|
+
"type": "boolean"
|
|
476
|
+
},
|
|
477
|
+
"validation-mode": {
|
|
478
|
+
"name": "validation-mode",
|
|
479
|
+
"summary": "Default validation mode for the CI preset",
|
|
480
|
+
"default": "strict",
|
|
481
|
+
"hasDynamicHelp": false,
|
|
482
|
+
"multiple": false,
|
|
483
|
+
"options": [
|
|
484
|
+
"strict",
|
|
485
|
+
"warn-only",
|
|
486
|
+
"local-only"
|
|
487
|
+
],
|
|
488
|
+
"type": "option"
|
|
489
|
+
},
|
|
490
|
+
"report-dir": {
|
|
491
|
+
"name": "report-dir",
|
|
492
|
+
"summary": "Default report directory for CI preset plan artifacts",
|
|
493
|
+
"hasDynamicHelp": false,
|
|
494
|
+
"multiple": false,
|
|
495
|
+
"type": "option"
|
|
496
|
+
},
|
|
497
|
+
"skip-tests": {
|
|
498
|
+
"name": "skip-tests",
|
|
499
|
+
"summary": "Default skip-tests setting for CI preset config",
|
|
500
|
+
"allowNo": false,
|
|
501
|
+
"type": "boolean"
|
|
502
|
+
},
|
|
503
|
+
"non-interactive": {
|
|
504
|
+
"name": "non-interactive",
|
|
505
|
+
"summary": "Run with deterministic defaults suitable for CI automation",
|
|
506
|
+
"allowNo": false,
|
|
507
|
+
"type": "boolean"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
"hasDynamicHelp": false,
|
|
511
|
+
"hiddenAliases": [],
|
|
512
|
+
"id": "init",
|
|
513
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
514
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
515
|
+
"pluginType": "core",
|
|
516
|
+
"strict": true,
|
|
517
|
+
"summary": "Initialize Smart Deployment repository config",
|
|
518
|
+
"enableJsonFlag": true,
|
|
519
|
+
"isESM": true,
|
|
520
|
+
"relativePath": [
|
|
521
|
+
"lib",
|
|
522
|
+
"commands",
|
|
523
|
+
"init.js"
|
|
524
|
+
],
|
|
525
|
+
"aliasPermutations": [
|
|
526
|
+
"smart-deployment:init",
|
|
527
|
+
"init:smart-deployment"
|
|
528
|
+
],
|
|
529
|
+
"permutations": [
|
|
530
|
+
"init"
|
|
531
|
+
]
|
|
532
|
+
},
|
|
341
533
|
"resume": {
|
|
342
534
|
"aliases": [
|
|
343
535
|
"smart-deployment:resume"
|
|
@@ -364,16 +556,9 @@
|
|
|
364
556
|
"type": "option"
|
|
365
557
|
},
|
|
366
558
|
"target-org": {
|
|
367
|
-
"aliases": [
|
|
368
|
-
"targetusername",
|
|
369
|
-
"u"
|
|
370
|
-
],
|
|
371
|
-
"char": "o",
|
|
372
|
-
"deprecateAliases": true,
|
|
373
559
|
"name": "target-org",
|
|
374
|
-
"
|
|
375
|
-
"
|
|
376
|
-
"hasDynamicHelp": true,
|
|
560
|
+
"summary": "Target Salesforce org alias or username for remote deployment resume",
|
|
561
|
+
"hasDynamicHelp": false,
|
|
377
562
|
"multiple": false,
|
|
378
563
|
"type": "option"
|
|
379
564
|
},
|
|
@@ -398,7 +583,7 @@
|
|
|
398
583
|
"type": "option"
|
|
399
584
|
}
|
|
400
585
|
},
|
|
401
|
-
"hasDynamicHelp":
|
|
586
|
+
"hasDynamicHelp": false,
|
|
402
587
|
"hiddenAliases": [],
|
|
403
588
|
"id": "resume",
|
|
404
589
|
"pluginAlias": "@jterrats/smart-deployment",
|
|
@@ -421,6 +606,119 @@
|
|
|
421
606
|
"resume"
|
|
422
607
|
]
|
|
423
608
|
},
|
|
609
|
+
"retrieve": {
|
|
610
|
+
"aliases": [
|
|
611
|
+
"smart-deployment:retrieve"
|
|
612
|
+
],
|
|
613
|
+
"args": {},
|
|
614
|
+
"description": "Wraps sf project retrieve start, then restores any changed paths protected by .forceignore. This protects DigitalExperienceBundle, LightningComponentBundle, and AuraDefinitionBundle leaf paths that the Salesforce CLI can write as part of composite retrieves.",
|
|
615
|
+
"examples": [
|
|
616
|
+
"<%= config.bin %> <%= command.id %> --metadata DigitalExperienceBundle:site/PHP_Portal1 --target-org dev",
|
|
617
|
+
"<%= config.bin %> <%= command.id %> --metadata DigitalExperienceBundle:site/PHP_Portal1 --strict-ignore",
|
|
618
|
+
"<%= config.bin %> <%= command.id %> --metadata DigitalExperienceBundle:site/PHP_Portal1 --normalize-meta"
|
|
619
|
+
],
|
|
620
|
+
"flags": {
|
|
621
|
+
"json": {
|
|
622
|
+
"description": "Format output as json.",
|
|
623
|
+
"helpGroup": "GLOBAL",
|
|
624
|
+
"name": "json",
|
|
625
|
+
"allowNo": false,
|
|
626
|
+
"type": "boolean"
|
|
627
|
+
},
|
|
628
|
+
"flags-dir": {
|
|
629
|
+
"helpGroup": "GLOBAL",
|
|
630
|
+
"name": "flags-dir",
|
|
631
|
+
"summary": "Import flag values from a directory.",
|
|
632
|
+
"hasDynamicHelp": false,
|
|
633
|
+
"multiple": false,
|
|
634
|
+
"type": "option"
|
|
635
|
+
},
|
|
636
|
+
"target-org": {
|
|
637
|
+
"aliases": [
|
|
638
|
+
"targetusername",
|
|
639
|
+
"u"
|
|
640
|
+
],
|
|
641
|
+
"char": "o",
|
|
642
|
+
"deprecateAliases": true,
|
|
643
|
+
"name": "target-org",
|
|
644
|
+
"noCacheDefault": true,
|
|
645
|
+
"summary": "Username or alias of the target org.",
|
|
646
|
+
"hasDynamicHelp": true,
|
|
647
|
+
"multiple": false,
|
|
648
|
+
"type": "option"
|
|
649
|
+
},
|
|
650
|
+
"source-path": {
|
|
651
|
+
"description": "Defaults to the current working directory when omitted.",
|
|
652
|
+
"name": "source-path",
|
|
653
|
+
"summary": "Salesforce project path where retrieve should run",
|
|
654
|
+
"hasDynamicHelp": false,
|
|
655
|
+
"multiple": false,
|
|
656
|
+
"type": "option"
|
|
657
|
+
},
|
|
658
|
+
"metadata": {
|
|
659
|
+
"char": "m",
|
|
660
|
+
"description": "Passed through to sf project retrieve start --metadata. Example: DigitalExperienceBundle:site/PHP_Portal1.",
|
|
661
|
+
"name": "metadata",
|
|
662
|
+
"summary": "Metadata component(s) to retrieve, comma-separated",
|
|
663
|
+
"hasDynamicHelp": false,
|
|
664
|
+
"multiple": false,
|
|
665
|
+
"type": "option"
|
|
666
|
+
},
|
|
667
|
+
"manifest": {
|
|
668
|
+
"char": "x",
|
|
669
|
+
"description": "Passed through to sf project retrieve start --manifest.",
|
|
670
|
+
"name": "manifest",
|
|
671
|
+
"summary": "Package manifest to retrieve",
|
|
672
|
+
"hasDynamicHelp": false,
|
|
673
|
+
"multiple": false,
|
|
674
|
+
"type": "option"
|
|
675
|
+
},
|
|
676
|
+
"wait": {
|
|
677
|
+
"name": "wait",
|
|
678
|
+
"summary": "Minutes to wait for Salesforce retrieve completion",
|
|
679
|
+
"default": 33,
|
|
680
|
+
"hasDynamicHelp": false,
|
|
681
|
+
"multiple": false,
|
|
682
|
+
"type": "option"
|
|
683
|
+
},
|
|
684
|
+
"strict-ignore": {
|
|
685
|
+
"description": "Protected paths are still restored before the command fails.",
|
|
686
|
+
"name": "strict-ignore",
|
|
687
|
+
"summary": "Fail when retrieve touches .forceignore-protected paths",
|
|
688
|
+
"allowNo": false,
|
|
689
|
+
"type": "boolean"
|
|
690
|
+
},
|
|
691
|
+
"normalize-meta": {
|
|
692
|
+
"description": "Formats JSON with two-space indentation and a trailing newline before forceignore restoration.",
|
|
693
|
+
"name": "normalize-meta",
|
|
694
|
+
"summary": "Normalize DigitalExperienceBundle *_meta.json formatting after retrieve",
|
|
695
|
+
"allowNo": false,
|
|
696
|
+
"type": "boolean"
|
|
697
|
+
}
|
|
698
|
+
},
|
|
699
|
+
"hasDynamicHelp": true,
|
|
700
|
+
"hiddenAliases": [],
|
|
701
|
+
"id": "retrieve",
|
|
702
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
703
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
704
|
+
"pluginType": "core",
|
|
705
|
+
"strict": true,
|
|
706
|
+
"summary": "Retrieve Salesforce metadata while enforcing .forceignore for bundle sub-paths",
|
|
707
|
+
"enableJsonFlag": true,
|
|
708
|
+
"isESM": true,
|
|
709
|
+
"relativePath": [
|
|
710
|
+
"lib",
|
|
711
|
+
"commands",
|
|
712
|
+
"retrieve.js"
|
|
713
|
+
],
|
|
714
|
+
"aliasPermutations": [
|
|
715
|
+
"smart-deployment:retrieve",
|
|
716
|
+
"retrieve:smart-deployment"
|
|
717
|
+
],
|
|
718
|
+
"permutations": [
|
|
719
|
+
"retrieve"
|
|
720
|
+
]
|
|
721
|
+
},
|
|
424
722
|
"start": {
|
|
425
723
|
"aliases": [
|
|
426
724
|
"smart-deployment:start"
|
|
@@ -431,7 +729,9 @@
|
|
|
431
729
|
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg",
|
|
432
730
|
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --dry-run",
|
|
433
731
|
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --validate-only",
|
|
434
|
-
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --skip-tests"
|
|
732
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --skip-tests",
|
|
733
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --destructive",
|
|
734
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --rollback-from v1.2.0 --rollback-to v1.2.1"
|
|
435
735
|
],
|
|
436
736
|
"flags": {
|
|
437
737
|
"json": {
|
|
@@ -492,6 +792,14 @@
|
|
|
492
792
|
"multiple": false,
|
|
493
793
|
"type": "option"
|
|
494
794
|
},
|
|
795
|
+
"report-dir": {
|
|
796
|
+
"description": "Defaults to .smart-deployment/reports/start-dry-run under the scanned project root",
|
|
797
|
+
"name": "report-dir",
|
|
798
|
+
"summary": "Directory for dry-run deployment plan reports",
|
|
799
|
+
"hasDynamicHelp": false,
|
|
800
|
+
"multiple": false,
|
|
801
|
+
"type": "option"
|
|
802
|
+
},
|
|
495
803
|
"allow-cycle-remediation": {
|
|
496
804
|
"description": "Applies temporary reversible source edits for simple cycles only",
|
|
497
805
|
"name": "allow-cycle-remediation",
|
|
@@ -526,6 +834,45 @@
|
|
|
526
834
|
"hasDynamicHelp": false,
|
|
527
835
|
"multiple": false,
|
|
528
836
|
"type": "option"
|
|
837
|
+
},
|
|
838
|
+
"scope-commits": {
|
|
839
|
+
"description": "Limits the deployment plan to metadata changed by these commits plus required dependencies.",
|
|
840
|
+
"name": "scope-commits",
|
|
841
|
+
"summary": "Comma-separated commit SHAs or refs to include in the deployment scope",
|
|
842
|
+
"hasDynamicHelp": false,
|
|
843
|
+
"multiple": false,
|
|
844
|
+
"type": "option"
|
|
845
|
+
},
|
|
846
|
+
"scope-manifest": {
|
|
847
|
+
"description": "Reads commits from { commits: [] } and { stories: [{ commits: [] }] } to scope validation and deployment planning.",
|
|
848
|
+
"name": "scope-manifest",
|
|
849
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
850
|
+
"hasDynamicHelp": false,
|
|
851
|
+
"multiple": false,
|
|
852
|
+
"type": "option"
|
|
853
|
+
},
|
|
854
|
+
"destructive": {
|
|
855
|
+
"description": "Runs the normal analysis path, then executes destructiveChanges manifests in reverse wave order.",
|
|
856
|
+
"name": "destructive",
|
|
857
|
+
"summary": "Delete metadata components using destructive wave manifests",
|
|
858
|
+
"allowNo": false,
|
|
859
|
+
"type": "boolean"
|
|
860
|
+
},
|
|
861
|
+
"rollback-from": {
|
|
862
|
+
"description": "Use with --rollback-to. Modified or deleted metadata is restored from this ref using normal deploy waves.",
|
|
863
|
+
"name": "rollback-from",
|
|
864
|
+
"summary": "Git ref or release tag that represents the rollback target state",
|
|
865
|
+
"hasDynamicHelp": false,
|
|
866
|
+
"multiple": false,
|
|
867
|
+
"type": "option"
|
|
868
|
+
},
|
|
869
|
+
"rollback-to": {
|
|
870
|
+
"description": "Use with --rollback-from. Metadata added between refs is deleted using destructive waves.",
|
|
871
|
+
"name": "rollback-to",
|
|
872
|
+
"summary": "Git ref or release tag that represents the release being rolled back",
|
|
873
|
+
"hasDynamicHelp": false,
|
|
874
|
+
"multiple": false,
|
|
875
|
+
"type": "option"
|
|
529
876
|
}
|
|
530
877
|
},
|
|
531
878
|
"hasDynamicHelp": true,
|
|
@@ -577,16 +924,9 @@
|
|
|
577
924
|
"type": "option"
|
|
578
925
|
},
|
|
579
926
|
"target-org": {
|
|
580
|
-
"aliases": [
|
|
581
|
-
"targetusername",
|
|
582
|
-
"u"
|
|
583
|
-
],
|
|
584
|
-
"char": "o",
|
|
585
|
-
"deprecateAliases": true,
|
|
586
927
|
"name": "target-org",
|
|
587
|
-
"
|
|
588
|
-
"
|
|
589
|
-
"hasDynamicHelp": true,
|
|
928
|
+
"summary": "Target Salesforce org alias or username for remote deployment status refresh",
|
|
929
|
+
"hasDynamicHelp": false,
|
|
590
930
|
"multiple": false,
|
|
591
931
|
"type": "option"
|
|
592
932
|
},
|
|
@@ -598,7 +938,7 @@
|
|
|
598
938
|
"type": "option"
|
|
599
939
|
}
|
|
600
940
|
},
|
|
601
|
-
"hasDynamicHelp":
|
|
941
|
+
"hasDynamicHelp": false,
|
|
602
942
|
"hiddenAliases": [],
|
|
603
943
|
"id": "status",
|
|
604
944
|
"pluginAlias": "@jterrats/smart-deployment",
|
|
@@ -669,11 +1009,25 @@
|
|
|
669
1009
|
},
|
|
670
1010
|
"use-ai": {
|
|
671
1011
|
"name": "use-ai",
|
|
672
|
-
"summary": "Use AI
|
|
1012
|
+
"summary": "Use configured provider AI validation when available",
|
|
673
1013
|
"allowNo": false,
|
|
674
1014
|
"type": "boolean"
|
|
675
|
-
}
|
|
676
|
-
|
|
1015
|
+
},
|
|
1016
|
+
"scope-commits": {
|
|
1017
|
+
"name": "scope-commits",
|
|
1018
|
+
"summary": "Comma-separated commit SHAs or refs to include in validation",
|
|
1019
|
+
"hasDynamicHelp": false,
|
|
1020
|
+
"multiple": false,
|
|
1021
|
+
"type": "option"
|
|
1022
|
+
},
|
|
1023
|
+
"scope-manifest": {
|
|
1024
|
+
"name": "scope-manifest",
|
|
1025
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
1026
|
+
"hasDynamicHelp": false,
|
|
1027
|
+
"multiple": false,
|
|
1028
|
+
"type": "option"
|
|
1029
|
+
}
|
|
1030
|
+
},
|
|
677
1031
|
"hasDynamicHelp": true,
|
|
678
1032
|
"hiddenAliases": [],
|
|
679
1033
|
"id": "validate",
|
|
@@ -696,7 +1050,429 @@
|
|
|
696
1050
|
"permutations": [
|
|
697
1051
|
"validate"
|
|
698
1052
|
]
|
|
1053
|
+
},
|
|
1054
|
+
"ci:preset": {
|
|
1055
|
+
"aliases": [
|
|
1056
|
+
"smart-deployment:ci:preset"
|
|
1057
|
+
],
|
|
1058
|
+
"args": {},
|
|
1059
|
+
"description": "Builds a validation-safe deployment plan, writes JSON and HTML report artifacts, emits GitHub Actions output keys, and returns deterministic CI exit codes.",
|
|
1060
|
+
"examples": [
|
|
1061
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org dev --report-dir reports/deployment-plan",
|
|
1062
|
+
"<%= config.bin %> smart-deployment ci preset --validation-mode warn-only --skip-tests"
|
|
1063
|
+
],
|
|
1064
|
+
"flags": {
|
|
1065
|
+
"json": {
|
|
1066
|
+
"description": "Format output as json.",
|
|
1067
|
+
"helpGroup": "GLOBAL",
|
|
1068
|
+
"name": "json",
|
|
1069
|
+
"allowNo": false,
|
|
1070
|
+
"type": "boolean"
|
|
1071
|
+
},
|
|
1072
|
+
"flags-dir": {
|
|
1073
|
+
"helpGroup": "GLOBAL",
|
|
1074
|
+
"name": "flags-dir",
|
|
1075
|
+
"summary": "Import flag values from a directory.",
|
|
1076
|
+
"hasDynamicHelp": false,
|
|
1077
|
+
"multiple": false,
|
|
1078
|
+
"type": "option"
|
|
1079
|
+
},
|
|
1080
|
+
"target-org": {
|
|
1081
|
+
"aliases": [
|
|
1082
|
+
"targetusername",
|
|
1083
|
+
"u"
|
|
1084
|
+
],
|
|
1085
|
+
"char": "o",
|
|
1086
|
+
"deprecateAliases": true,
|
|
1087
|
+
"name": "target-org",
|
|
1088
|
+
"noCacheDefault": true,
|
|
1089
|
+
"summary": "Username or alias of the target org.",
|
|
1090
|
+
"hasDynamicHelp": true,
|
|
1091
|
+
"multiple": false,
|
|
1092
|
+
"type": "option"
|
|
1093
|
+
},
|
|
1094
|
+
"source-path": {
|
|
1095
|
+
"description": "Path to the Salesforce source directory used to build the deployment plan.",
|
|
1096
|
+
"name": "source-path",
|
|
1097
|
+
"summary": "Salesforce source path to analyze",
|
|
1098
|
+
"hasDynamicHelp": false,
|
|
1099
|
+
"multiple": false,
|
|
1100
|
+
"type": "option"
|
|
1101
|
+
},
|
|
1102
|
+
"report-dir": {
|
|
1103
|
+
"description": "Defaults to the deployment plan report service location under the analyzed project.",
|
|
1104
|
+
"name": "report-dir",
|
|
1105
|
+
"summary": "Directory where JSON and HTML deployment plan reports are written",
|
|
1106
|
+
"hasDynamicHelp": false,
|
|
1107
|
+
"multiple": false,
|
|
1108
|
+
"type": "option"
|
|
1109
|
+
},
|
|
1110
|
+
"validation-mode": {
|
|
1111
|
+
"description": "strict exits non-zero for blockers, warn-only reports blockers with exit code 0, and local-only avoids org-dependent validation expectations.",
|
|
1112
|
+
"name": "validation-mode",
|
|
1113
|
+
"summary": "CI exit-code policy for deployment planning blockers",
|
|
1114
|
+
"default": "strict",
|
|
1115
|
+
"hasDynamicHelp": false,
|
|
1116
|
+
"multiple": false,
|
|
1117
|
+
"options": [
|
|
1118
|
+
"strict",
|
|
1119
|
+
"warn-only",
|
|
1120
|
+
"local-only"
|
|
1121
|
+
],
|
|
1122
|
+
"type": "option"
|
|
1123
|
+
},
|
|
1124
|
+
"skip-tests": {
|
|
1125
|
+
"name": "skip-tests",
|
|
1126
|
+
"summary": "Record that Apex tests should be skipped by downstream validation",
|
|
1127
|
+
"allowNo": false,
|
|
1128
|
+
"type": "boolean"
|
|
1129
|
+
},
|
|
1130
|
+
"use-ai": {
|
|
1131
|
+
"name": "use-ai",
|
|
1132
|
+
"summary": "Use configured AI providers for dependency inference and wave priority analysis",
|
|
1133
|
+
"allowNo": false,
|
|
1134
|
+
"type": "boolean"
|
|
1135
|
+
},
|
|
1136
|
+
"org-type": {
|
|
1137
|
+
"name": "org-type",
|
|
1138
|
+
"summary": "Target org type used by AI wave priority analysis",
|
|
1139
|
+
"hasDynamicHelp": false,
|
|
1140
|
+
"multiple": false,
|
|
1141
|
+
"options": [
|
|
1142
|
+
"Production",
|
|
1143
|
+
"Sandbox",
|
|
1144
|
+
"Developer"
|
|
1145
|
+
],
|
|
1146
|
+
"type": "option"
|
|
1147
|
+
},
|
|
1148
|
+
"industry": {
|
|
1149
|
+
"name": "industry",
|
|
1150
|
+
"summary": "Industry context used by AI wave priority analysis",
|
|
1151
|
+
"hasDynamicHelp": false,
|
|
1152
|
+
"multiple": false,
|
|
1153
|
+
"type": "option"
|
|
1154
|
+
},
|
|
1155
|
+
"scope-commits": {
|
|
1156
|
+
"description": "Limits CI plan artifacts to metadata changed by these commits plus required dependencies.",
|
|
1157
|
+
"name": "scope-commits",
|
|
1158
|
+
"summary": "Comma-separated commit SHAs or refs to include in the CI deployment scope",
|
|
1159
|
+
"hasDynamicHelp": false,
|
|
1160
|
+
"multiple": false,
|
|
1161
|
+
"type": "option"
|
|
1162
|
+
},
|
|
1163
|
+
"scope-manifest": {
|
|
1164
|
+
"description": "Reads commits from { commits: [] } and { stories: [{ commits: [] }] } for trunk-based validation.",
|
|
1165
|
+
"name": "scope-manifest",
|
|
1166
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
1167
|
+
"hasDynamicHelp": false,
|
|
1168
|
+
"multiple": false,
|
|
1169
|
+
"type": "option"
|
|
1170
|
+
}
|
|
1171
|
+
},
|
|
1172
|
+
"hasDynamicHelp": true,
|
|
1173
|
+
"hiddenAliases": [],
|
|
1174
|
+
"id": "ci:preset",
|
|
1175
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
1176
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
1177
|
+
"pluginType": "core",
|
|
1178
|
+
"strict": true,
|
|
1179
|
+
"summary": "Run the CI deployment planning preset",
|
|
1180
|
+
"enableJsonFlag": true,
|
|
1181
|
+
"isESM": true,
|
|
1182
|
+
"relativePath": [
|
|
1183
|
+
"lib",
|
|
1184
|
+
"commands",
|
|
1185
|
+
"ci",
|
|
1186
|
+
"preset.js"
|
|
1187
|
+
],
|
|
1188
|
+
"aliasPermutations": [
|
|
1189
|
+
"smart-deployment:ci:preset",
|
|
1190
|
+
"ci:smart-deployment:preset",
|
|
1191
|
+
"ci:preset:smart-deployment",
|
|
1192
|
+
"smart-deployment:preset:ci",
|
|
1193
|
+
"preset:smart-deployment:ci",
|
|
1194
|
+
"preset:ci:smart-deployment"
|
|
1195
|
+
],
|
|
1196
|
+
"permutations": [
|
|
1197
|
+
"ci:preset",
|
|
1198
|
+
"preset:ci"
|
|
1199
|
+
]
|
|
1200
|
+
},
|
|
1201
|
+
"graph:export": {
|
|
1202
|
+
"aliases": [
|
|
1203
|
+
"smart-deployment:graph:export"
|
|
1204
|
+
],
|
|
1205
|
+
"args": {},
|
|
1206
|
+
"description": "Builds the local dependency graph and deployment waves, then exports review-ready graph artifacts in Mermaid, DOT, JSON, or HTML format.",
|
|
1207
|
+
"examples": [
|
|
1208
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --format mermaid --report-dir reports/graphs",
|
|
1209
|
+
"<%= config.bin %> smart-deployment graph export --format html --output reports/dependency-graph.html",
|
|
1210
|
+
"<%= config.bin %> smart-deployment graph export --json --format json"
|
|
1211
|
+
],
|
|
1212
|
+
"flags": {
|
|
1213
|
+
"json": {
|
|
1214
|
+
"description": "Format output as json.",
|
|
1215
|
+
"helpGroup": "GLOBAL",
|
|
1216
|
+
"name": "json",
|
|
1217
|
+
"allowNo": false,
|
|
1218
|
+
"type": "boolean"
|
|
1219
|
+
},
|
|
1220
|
+
"flags-dir": {
|
|
1221
|
+
"helpGroup": "GLOBAL",
|
|
1222
|
+
"name": "flags-dir",
|
|
1223
|
+
"summary": "Import flag values from a directory.",
|
|
1224
|
+
"hasDynamicHelp": false,
|
|
1225
|
+
"multiple": false,
|
|
1226
|
+
"type": "option"
|
|
1227
|
+
},
|
|
1228
|
+
"source-path": {
|
|
1229
|
+
"description": "Path to the Salesforce source directory used to build the dependency and wave graph.",
|
|
1230
|
+
"name": "source-path",
|
|
1231
|
+
"summary": "Salesforce source path to analyze",
|
|
1232
|
+
"hasDynamicHelp": false,
|
|
1233
|
+
"multiple": false,
|
|
1234
|
+
"type": "option"
|
|
1235
|
+
},
|
|
1236
|
+
"report-dir": {
|
|
1237
|
+
"description": "Defaults to .smart-deployment/reports/graph-export under the analyzed project root.",
|
|
1238
|
+
"name": "report-dir",
|
|
1239
|
+
"summary": "Directory where the selected graph artifact is written",
|
|
1240
|
+
"hasDynamicHelp": false,
|
|
1241
|
+
"multiple": false,
|
|
1242
|
+
"type": "option"
|
|
1243
|
+
},
|
|
1244
|
+
"output": {
|
|
1245
|
+
"description": "Overrides --report-dir and writes the selected graph artifact to this file.",
|
|
1246
|
+
"name": "output",
|
|
1247
|
+
"summary": "Exact output file path for the selected graph format",
|
|
1248
|
+
"hasDynamicHelp": false,
|
|
1249
|
+
"multiple": false,
|
|
1250
|
+
"type": "option"
|
|
1251
|
+
},
|
|
1252
|
+
"format": {
|
|
1253
|
+
"char": "f",
|
|
1254
|
+
"description": "Supported formats are mermaid, dot, json, and html.",
|
|
1255
|
+
"name": "format",
|
|
1256
|
+
"summary": "Graph export format",
|
|
1257
|
+
"default": "json",
|
|
1258
|
+
"hasDynamicHelp": false,
|
|
1259
|
+
"multiple": false,
|
|
1260
|
+
"options": [
|
|
1261
|
+
"mermaid",
|
|
1262
|
+
"dot",
|
|
1263
|
+
"json",
|
|
1264
|
+
"html"
|
|
1265
|
+
],
|
|
1266
|
+
"type": "option"
|
|
1267
|
+
},
|
|
1268
|
+
"use-ai": {
|
|
1269
|
+
"name": "use-ai",
|
|
1270
|
+
"summary": "Use configured AI providers for dependency inference and wave priority analysis before exporting",
|
|
1271
|
+
"allowNo": false,
|
|
1272
|
+
"type": "boolean"
|
|
1273
|
+
},
|
|
1274
|
+
"org-type": {
|
|
1275
|
+
"name": "org-type",
|
|
1276
|
+
"summary": "Target org type used by AI wave priority analysis",
|
|
1277
|
+
"hasDynamicHelp": false,
|
|
1278
|
+
"multiple": false,
|
|
1279
|
+
"options": [
|
|
1280
|
+
"Production",
|
|
1281
|
+
"Sandbox",
|
|
1282
|
+
"Developer"
|
|
1283
|
+
],
|
|
1284
|
+
"type": "option"
|
|
1285
|
+
},
|
|
1286
|
+
"industry": {
|
|
1287
|
+
"name": "industry",
|
|
1288
|
+
"summary": "Industry context used by AI wave priority analysis",
|
|
1289
|
+
"hasDynamicHelp": false,
|
|
1290
|
+
"multiple": false,
|
|
1291
|
+
"type": "option"
|
|
1292
|
+
}
|
|
1293
|
+
},
|
|
1294
|
+
"hasDynamicHelp": false,
|
|
1295
|
+
"hiddenAliases": [],
|
|
1296
|
+
"id": "graph:export",
|
|
1297
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
1298
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
1299
|
+
"pluginType": "core",
|
|
1300
|
+
"strict": true,
|
|
1301
|
+
"summary": "Export dependency and deployment wave graphs",
|
|
1302
|
+
"enableJsonFlag": true,
|
|
1303
|
+
"isESM": true,
|
|
1304
|
+
"relativePath": [
|
|
1305
|
+
"lib",
|
|
1306
|
+
"commands",
|
|
1307
|
+
"graph",
|
|
1308
|
+
"export.js"
|
|
1309
|
+
],
|
|
1310
|
+
"aliasPermutations": [
|
|
1311
|
+
"smart-deployment:graph:export",
|
|
1312
|
+
"graph:smart-deployment:export",
|
|
1313
|
+
"graph:export:smart-deployment",
|
|
1314
|
+
"smart-deployment:export:graph",
|
|
1315
|
+
"export:smart-deployment:graph",
|
|
1316
|
+
"export:graph:smart-deployment"
|
|
1317
|
+
],
|
|
1318
|
+
"permutations": [
|
|
1319
|
+
"graph:export",
|
|
1320
|
+
"export:graph"
|
|
1321
|
+
]
|
|
1322
|
+
},
|
|
1323
|
+
"plan:explain": {
|
|
1324
|
+
"aliases": [
|
|
1325
|
+
"smart-deployment:plan:explain"
|
|
1326
|
+
],
|
|
1327
|
+
"args": {},
|
|
1328
|
+
"description": "Builds the same local plan used by start dry-run and explains wave placement, dependency edges, unresolved references, and provider-owned deployment decisions.",
|
|
1329
|
+
"examples": [
|
|
1330
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
1331
|
+
"<%= config.bin %> smart-deployment plan explain --use-ai --org-type Sandbox --target-org dev"
|
|
1332
|
+
],
|
|
1333
|
+
"flags": {
|
|
1334
|
+
"json": {
|
|
1335
|
+
"description": "Format output as json.",
|
|
1336
|
+
"helpGroup": "GLOBAL",
|
|
1337
|
+
"name": "json",
|
|
1338
|
+
"allowNo": false,
|
|
1339
|
+
"type": "boolean"
|
|
1340
|
+
},
|
|
1341
|
+
"flags-dir": {
|
|
1342
|
+
"helpGroup": "GLOBAL",
|
|
1343
|
+
"name": "flags-dir",
|
|
1344
|
+
"summary": "Import flag values from a directory.",
|
|
1345
|
+
"hasDynamicHelp": false,
|
|
1346
|
+
"multiple": false,
|
|
1347
|
+
"type": "option"
|
|
1348
|
+
},
|
|
1349
|
+
"target-org": {
|
|
1350
|
+
"aliases": [
|
|
1351
|
+
"targetusername",
|
|
1352
|
+
"u"
|
|
1353
|
+
],
|
|
1354
|
+
"char": "o",
|
|
1355
|
+
"deprecateAliases": true,
|
|
1356
|
+
"name": "target-org",
|
|
1357
|
+
"noCacheDefault": true,
|
|
1358
|
+
"summary": "Username or alias of the target org.",
|
|
1359
|
+
"hasDynamicHelp": true,
|
|
1360
|
+
"multiple": false,
|
|
1361
|
+
"type": "option"
|
|
1362
|
+
},
|
|
1363
|
+
"source-path": {
|
|
1364
|
+
"name": "source-path",
|
|
1365
|
+
"summary": "Salesforce source path to analyze",
|
|
1366
|
+
"hasDynamicHelp": false,
|
|
1367
|
+
"multiple": false,
|
|
1368
|
+
"type": "option"
|
|
1369
|
+
},
|
|
1370
|
+
"dry-run": {
|
|
1371
|
+
"name": "dry-run",
|
|
1372
|
+
"summary": "Accepted for parity with start dry-run; explain never deploys metadata",
|
|
1373
|
+
"allowNo": true,
|
|
1374
|
+
"type": "boolean"
|
|
1375
|
+
},
|
|
1376
|
+
"validate-only": {
|
|
1377
|
+
"name": "validate-only",
|
|
1378
|
+
"summary": "Accepted for parity with start validate-only; explain never deploys metadata",
|
|
1379
|
+
"allowNo": false,
|
|
1380
|
+
"type": "boolean"
|
|
1381
|
+
},
|
|
1382
|
+
"skip-tests": {
|
|
1383
|
+
"name": "skip-tests",
|
|
1384
|
+
"summary": "Accepted for parity with start dry-run inputs; explain never runs tests",
|
|
1385
|
+
"allowNo": false,
|
|
1386
|
+
"type": "boolean"
|
|
1387
|
+
},
|
|
1388
|
+
"allow-cycle-remediation": {
|
|
1389
|
+
"name": "allow-cycle-remediation",
|
|
1390
|
+
"summary": "Accepted for parity with start dry-run inputs; explain does not modify sources",
|
|
1391
|
+
"allowNo": false,
|
|
1392
|
+
"type": "boolean"
|
|
1393
|
+
},
|
|
1394
|
+
"use-ai": {
|
|
1395
|
+
"name": "use-ai",
|
|
1396
|
+
"summary": "Use configured AI providers for dependency inference and wave priority analysis",
|
|
1397
|
+
"allowNo": false,
|
|
1398
|
+
"type": "boolean"
|
|
1399
|
+
},
|
|
1400
|
+
"org-type": {
|
|
1401
|
+
"name": "org-type",
|
|
1402
|
+
"summary": "Target org type used by AI wave priority analysis",
|
|
1403
|
+
"hasDynamicHelp": false,
|
|
1404
|
+
"multiple": false,
|
|
1405
|
+
"options": [
|
|
1406
|
+
"Production",
|
|
1407
|
+
"Sandbox",
|
|
1408
|
+
"Developer"
|
|
1409
|
+
],
|
|
1410
|
+
"type": "option"
|
|
1411
|
+
},
|
|
1412
|
+
"industry": {
|
|
1413
|
+
"name": "industry",
|
|
1414
|
+
"summary": "Industry context used by AI wave priority analysis",
|
|
1415
|
+
"hasDynamicHelp": false,
|
|
1416
|
+
"multiple": false,
|
|
1417
|
+
"type": "option"
|
|
1418
|
+
},
|
|
1419
|
+
"since": {
|
|
1420
|
+
"name": "since",
|
|
1421
|
+
"summary": "Git ref used to explain changed provider-owned metadata decisions",
|
|
1422
|
+
"hasDynamicHelp": false,
|
|
1423
|
+
"multiple": false,
|
|
1424
|
+
"type": "option"
|
|
1425
|
+
},
|
|
1426
|
+
"auto-activate": {
|
|
1427
|
+
"name": "auto-activate",
|
|
1428
|
+
"summary": "Include Agentforce activation decisions in provider-owned metadata planning",
|
|
1429
|
+
"allowNo": false,
|
|
1430
|
+
"type": "boolean"
|
|
1431
|
+
},
|
|
1432
|
+
"scope-commits": {
|
|
1433
|
+
"name": "scope-commits",
|
|
1434
|
+
"summary": "Comma-separated commit SHAs or refs to include in the explained plan",
|
|
1435
|
+
"hasDynamicHelp": false,
|
|
1436
|
+
"multiple": false,
|
|
1437
|
+
"type": "option"
|
|
1438
|
+
},
|
|
1439
|
+
"scope-manifest": {
|
|
1440
|
+
"name": "scope-manifest",
|
|
1441
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
1442
|
+
"hasDynamicHelp": false,
|
|
1443
|
+
"multiple": false,
|
|
1444
|
+
"type": "option"
|
|
1445
|
+
}
|
|
1446
|
+
},
|
|
1447
|
+
"hasDynamicHelp": true,
|
|
1448
|
+
"hiddenAliases": [],
|
|
1449
|
+
"id": "plan:explain",
|
|
1450
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
1451
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
1452
|
+
"pluginType": "core",
|
|
1453
|
+
"strict": true,
|
|
1454
|
+
"summary": "Explain why metadata components are placed in deployment waves",
|
|
1455
|
+
"enableJsonFlag": true,
|
|
1456
|
+
"isESM": true,
|
|
1457
|
+
"relativePath": [
|
|
1458
|
+
"lib",
|
|
1459
|
+
"commands",
|
|
1460
|
+
"plan",
|
|
1461
|
+
"explain.js"
|
|
1462
|
+
],
|
|
1463
|
+
"aliasPermutations": [
|
|
1464
|
+
"smart-deployment:plan:explain",
|
|
1465
|
+
"plan:smart-deployment:explain",
|
|
1466
|
+
"plan:explain:smart-deployment",
|
|
1467
|
+
"smart-deployment:explain:plan",
|
|
1468
|
+
"explain:smart-deployment:plan",
|
|
1469
|
+
"explain:plan:smart-deployment"
|
|
1470
|
+
],
|
|
1471
|
+
"permutations": [
|
|
1472
|
+
"plan:explain",
|
|
1473
|
+
"explain:plan"
|
|
1474
|
+
]
|
|
699
1475
|
}
|
|
700
1476
|
},
|
|
701
|
-
"version": "1.
|
|
1477
|
+
"version": "1.3.1"
|
|
702
1478
|
}
|