@jterrats/smart-deployment 1.2.6 → 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.
- package/README.md +69 -1
- package/lib/analysis/metadata-capability-definitions.d.ts +2 -0
- package/lib/analysis/metadata-capability-definitions.js +260 -0
- package/lib/analysis/metadata-capability-definitions.js.map +1 -0
- package/lib/analysis/metadata-capability-registry.d.ts +11 -0
- package/lib/analysis/metadata-capability-registry.js +142 -0
- package/lib/analysis/metadata-capability-registry.js.map +1 -0
- package/lib/analysis/metadata-gap-analysis-service.d.ts +51 -0
- package/lib/analysis/metadata-gap-analysis-service.js +277 -0
- package/lib/analysis/metadata-gap-analysis-service.js.map +1 -0
- 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/ci-publish.d.ts +6 -2
- package/lib/commands/ci-publish.js +23 -8
- package/lib/commands/ci-publish.js.map +1 -1
- 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/metadata/gaps.d.ts +15 -0
- package/lib/commands/metadata/gaps.js +84 -0
- package/lib/commands/metadata/gaps.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 +19 -4
- 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 +27 -0
- package/lib/commands/start.js +159 -20
- package/lib/commands/start.js.map +1 -1
- package/lib/commands/status.d.ts +1 -0
- package/lib/commands/status.js +19 -4
- package/lib/commands/status.js.map +1 -1
- package/lib/commands/validate.d.ts +15 -0
- package/lib/commands/validate.js +37 -1
- 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/constants/deployment-order.js +1 -0
- package/lib/constants/deployment-order.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 +50 -0
- package/lib/deployment/commit-scope-service.js +292 -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 +37 -16
- package/lib/deployment/deployment-runner.js.map +1 -1
- package/lib/deployment/deployment-status-service.d.ts +10 -2
- package/lib/deployment/deployment-status-service.js +74 -3
- package/lib/deployment/deployment-status-service.js.map +1 -1
- package/lib/deployment/deployment-validation-service.d.ts +5 -0
- package/lib/deployment/deployment-validation-service.js +34 -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 +7 -2
- package/lib/deployment/resume-deployment-service.js +24 -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 +7 -0
- package/lib/deployment/sf-cli-integration.js +35 -3
- package/lib/deployment/sf-cli-integration.js.map +1 -1
- package/lib/deployment/special-deployment-plan.js +36 -49
- package/lib/deployment/special-deployment-plan.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/release-report-presenter.d.ts +10 -0
- package/lib/presentation/release-report-presenter.js +35 -0
- package/lib/presentation/release-report-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/presentation/validate-command-presenter.js +13 -0
- package/lib/presentation/validate-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/reports/release-report-builder.d.ts +6 -0
- package/lib/reports/release-report-builder.js +115 -0
- package/lib/reports/release-report-builder.js.map +1 -0
- package/lib/reports/release-report-command-adapter.d.ts +14 -0
- package/lib/reports/release-report-command-adapter.js +28 -0
- package/lib/reports/release-report-command-adapter.js.map +1 -0
- package/lib/reports/release-report-facts-factory.d.ts +14 -0
- package/lib/reports/release-report-facts-factory.js +140 -0
- package/lib/reports/release-report-facts-factory.js.map +1 -0
- package/lib/reports/release-report-sanitizer.d.ts +5 -0
- package/lib/reports/release-report-sanitizer.js +120 -0
- package/lib/reports/release-report-sanitizer.js.map +1 -0
- package/lib/reports/release-report-service.d.ts +43 -0
- package/lib/reports/release-report-service.js +80 -0
- package/lib/reports/release-report-service.js.map +1 -0
- package/lib/reports/release-report-store.d.ts +30 -0
- package/lib/reports/release-report-store.js +57 -0
- package/lib/reports/release-report-store.js.map +1 -0
- package/lib/reports/start-release-report-coordinator.d.ts +15 -0
- package/lib/reports/start-release-report-coordinator.js +23 -0
- package/lib/reports/start-release-report-coordinator.js.map +1 -0
- package/lib/services/metadata-scanner-service.js +14 -2
- package/lib/services/metadata-scanner-service.js.map +1 -1
- package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +3 -1
- package/lib/services/scanners/automation-ai-metadata-scanner.js +87 -0
- package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +2 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/metadata-capability.d.ts +39 -0
- package/lib/types/metadata-capability.js +2 -0
- package/lib/types/metadata-capability.js.map +1 -0
- package/lib/types/metadata.d.ts +7 -1
- package/lib/types/release-report.d.ts +89 -0
- package/lib/types/release-report.js +42 -0
- package/lib/types/release-report.js.map +1 -0
- 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/metadata.gaps.json +12 -0
- package/messages/plan.explain.json +20 -0
- package/messages/resume.json +1 -0
- package/messages/retrieve.json +26 -0
- package/messages/start.json +18 -2
- package/messages/status.json +1 -0
- package/messages/validate.json +5 -1
- package/npm-shrinkwrap.json +436 -945
- package/oclif.lock +446 -746
- package/oclif.manifest.json +975 -116
- package/package.json +26 -21
package/oclif.manifest.json
CHANGED
|
@@ -338,14 +338,740 @@
|
|
|
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
|
-
"smart-deployment:resume"
|
|
535
|
+
"smart-deployment:resume"
|
|
536
|
+
],
|
|
537
|
+
"args": {},
|
|
538
|
+
"examples": [
|
|
539
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
540
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --retry-strategy quick"
|
|
541
|
+
],
|
|
542
|
+
"flags": {
|
|
543
|
+
"json": {
|
|
544
|
+
"description": "Format output as json.",
|
|
545
|
+
"helpGroup": "GLOBAL",
|
|
546
|
+
"name": "json",
|
|
547
|
+
"allowNo": false,
|
|
548
|
+
"type": "boolean"
|
|
549
|
+
},
|
|
550
|
+
"flags-dir": {
|
|
551
|
+
"helpGroup": "GLOBAL",
|
|
552
|
+
"name": "flags-dir",
|
|
553
|
+
"summary": "Import flag values from a directory.",
|
|
554
|
+
"hasDynamicHelp": false,
|
|
555
|
+
"multiple": false,
|
|
556
|
+
"type": "option"
|
|
557
|
+
},
|
|
558
|
+
"target-org": {
|
|
559
|
+
"char": "o",
|
|
560
|
+
"name": "target-org",
|
|
561
|
+
"summary": "Target Salesforce org alias or username for remote deployment resume",
|
|
562
|
+
"hasDynamicHelp": false,
|
|
563
|
+
"multiple": false,
|
|
564
|
+
"type": "option"
|
|
565
|
+
},
|
|
566
|
+
"source-path": {
|
|
567
|
+
"name": "source-path",
|
|
568
|
+
"summary": "Path to the Salesforce project containing deployment state",
|
|
569
|
+
"hasDynamicHelp": false,
|
|
570
|
+
"multiple": false,
|
|
571
|
+
"type": "option"
|
|
572
|
+
},
|
|
573
|
+
"retry-strategy": {
|
|
574
|
+
"name": "retry-strategy",
|
|
575
|
+
"summary": "Retry strategy to use when resuming the deployment",
|
|
576
|
+
"default": "standard",
|
|
577
|
+
"hasDynamicHelp": false,
|
|
578
|
+
"multiple": false,
|
|
579
|
+
"options": [
|
|
580
|
+
"standard",
|
|
581
|
+
"quick",
|
|
582
|
+
"validate-only"
|
|
583
|
+
],
|
|
584
|
+
"type": "option"
|
|
585
|
+
}
|
|
586
|
+
},
|
|
587
|
+
"hasDynamicHelp": false,
|
|
588
|
+
"hiddenAliases": [],
|
|
589
|
+
"id": "resume",
|
|
590
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
591
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
592
|
+
"pluginType": "core",
|
|
593
|
+
"strict": true,
|
|
594
|
+
"summary": "Resume a failed deployment",
|
|
595
|
+
"enableJsonFlag": true,
|
|
596
|
+
"isESM": true,
|
|
597
|
+
"relativePath": [
|
|
598
|
+
"lib",
|
|
599
|
+
"commands",
|
|
600
|
+
"resume.js"
|
|
601
|
+
],
|
|
602
|
+
"aliasPermutations": [
|
|
603
|
+
"smart-deployment:resume",
|
|
604
|
+
"resume:smart-deployment"
|
|
605
|
+
],
|
|
606
|
+
"permutations": [
|
|
607
|
+
"resume"
|
|
608
|
+
]
|
|
609
|
+
},
|
|
610
|
+
"retrieve": {
|
|
611
|
+
"aliases": [
|
|
612
|
+
"smart-deployment:retrieve"
|
|
613
|
+
],
|
|
614
|
+
"args": {},
|
|
615
|
+
"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.",
|
|
616
|
+
"examples": [
|
|
617
|
+
"<%= config.bin %> <%= command.id %> --metadata DigitalExperienceBundle:site/PHP_Portal1 --target-org dev",
|
|
618
|
+
"<%= config.bin %> <%= command.id %> --metadata DigitalExperienceBundle:site/PHP_Portal1 --strict-ignore",
|
|
619
|
+
"<%= config.bin %> <%= command.id %> --metadata DigitalExperienceBundle:site/PHP_Portal1 --normalize-meta"
|
|
620
|
+
],
|
|
621
|
+
"flags": {
|
|
622
|
+
"json": {
|
|
623
|
+
"description": "Format output as json.",
|
|
624
|
+
"helpGroup": "GLOBAL",
|
|
625
|
+
"name": "json",
|
|
626
|
+
"allowNo": false,
|
|
627
|
+
"type": "boolean"
|
|
628
|
+
},
|
|
629
|
+
"flags-dir": {
|
|
630
|
+
"helpGroup": "GLOBAL",
|
|
631
|
+
"name": "flags-dir",
|
|
632
|
+
"summary": "Import flag values from a directory.",
|
|
633
|
+
"hasDynamicHelp": false,
|
|
634
|
+
"multiple": false,
|
|
635
|
+
"type": "option"
|
|
636
|
+
},
|
|
637
|
+
"target-org": {
|
|
638
|
+
"aliases": [
|
|
639
|
+
"targetusername",
|
|
640
|
+
"u"
|
|
641
|
+
],
|
|
642
|
+
"char": "o",
|
|
643
|
+
"deprecateAliases": true,
|
|
644
|
+
"name": "target-org",
|
|
645
|
+
"noCacheDefault": true,
|
|
646
|
+
"summary": "Username or alias of the target org.",
|
|
647
|
+
"hasDynamicHelp": true,
|
|
648
|
+
"multiple": false,
|
|
649
|
+
"type": "option"
|
|
650
|
+
},
|
|
651
|
+
"source-path": {
|
|
652
|
+
"description": "Defaults to the current working directory when omitted.",
|
|
653
|
+
"name": "source-path",
|
|
654
|
+
"summary": "Salesforce project path where retrieve should run",
|
|
655
|
+
"hasDynamicHelp": false,
|
|
656
|
+
"multiple": false,
|
|
657
|
+
"type": "option"
|
|
658
|
+
},
|
|
659
|
+
"metadata": {
|
|
660
|
+
"char": "m",
|
|
661
|
+
"description": "Passed through to sf project retrieve start --metadata. Example: DigitalExperienceBundle:site/PHP_Portal1.",
|
|
662
|
+
"name": "metadata",
|
|
663
|
+
"summary": "Metadata component(s) to retrieve, comma-separated",
|
|
664
|
+
"hasDynamicHelp": false,
|
|
665
|
+
"multiple": false,
|
|
666
|
+
"type": "option"
|
|
667
|
+
},
|
|
668
|
+
"manifest": {
|
|
669
|
+
"char": "x",
|
|
670
|
+
"description": "Passed through to sf project retrieve start --manifest.",
|
|
671
|
+
"name": "manifest",
|
|
672
|
+
"summary": "Package manifest to retrieve",
|
|
673
|
+
"hasDynamicHelp": false,
|
|
674
|
+
"multiple": false,
|
|
675
|
+
"type": "option"
|
|
676
|
+
},
|
|
677
|
+
"wait": {
|
|
678
|
+
"name": "wait",
|
|
679
|
+
"summary": "Minutes to wait for Salesforce retrieve completion",
|
|
680
|
+
"default": 33,
|
|
681
|
+
"hasDynamicHelp": false,
|
|
682
|
+
"multiple": false,
|
|
683
|
+
"type": "option"
|
|
684
|
+
},
|
|
685
|
+
"strict-ignore": {
|
|
686
|
+
"description": "Protected paths are still restored before the command fails.",
|
|
687
|
+
"name": "strict-ignore",
|
|
688
|
+
"summary": "Fail when retrieve touches .forceignore-protected paths",
|
|
689
|
+
"allowNo": false,
|
|
690
|
+
"type": "boolean"
|
|
691
|
+
},
|
|
692
|
+
"normalize-meta": {
|
|
693
|
+
"description": "Formats JSON with two-space indentation and a trailing newline before forceignore restoration.",
|
|
694
|
+
"name": "normalize-meta",
|
|
695
|
+
"summary": "Normalize DigitalExperienceBundle *_meta.json formatting after retrieve",
|
|
696
|
+
"allowNo": false,
|
|
697
|
+
"type": "boolean"
|
|
698
|
+
}
|
|
699
|
+
},
|
|
700
|
+
"hasDynamicHelp": true,
|
|
701
|
+
"hiddenAliases": [],
|
|
702
|
+
"id": "retrieve",
|
|
703
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
704
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
705
|
+
"pluginType": "core",
|
|
706
|
+
"strict": true,
|
|
707
|
+
"summary": "Retrieve Salesforce metadata while enforcing .forceignore for bundle sub-paths",
|
|
708
|
+
"enableJsonFlag": true,
|
|
709
|
+
"isESM": true,
|
|
710
|
+
"relativePath": [
|
|
711
|
+
"lib",
|
|
712
|
+
"commands",
|
|
713
|
+
"retrieve.js"
|
|
714
|
+
],
|
|
715
|
+
"aliasPermutations": [
|
|
716
|
+
"smart-deployment:retrieve",
|
|
717
|
+
"retrieve:smart-deployment"
|
|
718
|
+
],
|
|
719
|
+
"permutations": [
|
|
720
|
+
"retrieve"
|
|
721
|
+
]
|
|
722
|
+
},
|
|
723
|
+
"start": {
|
|
724
|
+
"aliases": [
|
|
725
|
+
"smart-deployment:start"
|
|
726
|
+
],
|
|
727
|
+
"args": {},
|
|
728
|
+
"description": "Analyzes your Salesforce metadata, generates deployment waves based on dependencies, and executes the deployment sequentially. This command orchestrates the entire smart deployment workflow.",
|
|
729
|
+
"examples": [
|
|
730
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg",
|
|
731
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --dry-run",
|
|
732
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --validate-only",
|
|
733
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --skip-tests",
|
|
734
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --destructive",
|
|
735
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --rollback-from v1.2.0 --rollback-to v1.2.1"
|
|
736
|
+
],
|
|
737
|
+
"flags": {
|
|
738
|
+
"json": {
|
|
739
|
+
"description": "Format output as json.",
|
|
740
|
+
"helpGroup": "GLOBAL",
|
|
741
|
+
"name": "json",
|
|
742
|
+
"allowNo": false,
|
|
743
|
+
"type": "boolean"
|
|
744
|
+
},
|
|
745
|
+
"flags-dir": {
|
|
746
|
+
"helpGroup": "GLOBAL",
|
|
747
|
+
"name": "flags-dir",
|
|
748
|
+
"summary": "Import flag values from a directory.",
|
|
749
|
+
"hasDynamicHelp": false,
|
|
750
|
+
"multiple": false,
|
|
751
|
+
"type": "option"
|
|
752
|
+
},
|
|
753
|
+
"target-org": {
|
|
754
|
+
"char": "o",
|
|
755
|
+
"name": "target-org",
|
|
756
|
+
"summary": "Target Salesforce org for deployment",
|
|
757
|
+
"hasDynamicHelp": false,
|
|
758
|
+
"multiple": false,
|
|
759
|
+
"type": "option"
|
|
760
|
+
},
|
|
761
|
+
"dry-run": {
|
|
762
|
+
"char": "d",
|
|
763
|
+
"name": "dry-run",
|
|
764
|
+
"summary": "Preview deployment without executing",
|
|
765
|
+
"allowNo": false,
|
|
766
|
+
"type": "boolean"
|
|
767
|
+
},
|
|
768
|
+
"validate-only": {
|
|
769
|
+
"char": "v",
|
|
770
|
+
"name": "validate-only",
|
|
771
|
+
"summary": "Validate the local wave plan without deploying",
|
|
772
|
+
"allowNo": false,
|
|
773
|
+
"type": "boolean"
|
|
774
|
+
},
|
|
775
|
+
"skip-tests": {
|
|
776
|
+
"char": "s",
|
|
777
|
+
"name": "skip-tests",
|
|
778
|
+
"summary": "Skip running tests during deployment",
|
|
779
|
+
"allowNo": false,
|
|
780
|
+
"type": "boolean"
|
|
781
|
+
},
|
|
782
|
+
"source-path": {
|
|
783
|
+
"description": "Defaults to the current working directory when omitted",
|
|
784
|
+
"name": "source-path",
|
|
785
|
+
"summary": "Path to the Salesforce project to analyze and deploy",
|
|
786
|
+
"hasDynamicHelp": false,
|
|
787
|
+
"multiple": false,
|
|
788
|
+
"type": "option"
|
|
789
|
+
},
|
|
790
|
+
"report-dir": {
|
|
791
|
+
"description": "Defaults to .smart-deployment/reports/start-dry-run under the scanned project root",
|
|
792
|
+
"name": "report-dir",
|
|
793
|
+
"summary": "Directory for dry-run deployment plan reports",
|
|
794
|
+
"hasDynamicHelp": false,
|
|
795
|
+
"multiple": false,
|
|
796
|
+
"type": "option"
|
|
797
|
+
},
|
|
798
|
+
"allow-cycle-remediation": {
|
|
799
|
+
"description": "Applies temporary reversible source edits for simple cycles only",
|
|
800
|
+
"name": "allow-cycle-remediation",
|
|
801
|
+
"summary": "Allow conservative cycle remediation for supported ApexClass cycles",
|
|
802
|
+
"allowNo": false,
|
|
803
|
+
"type": "boolean"
|
|
804
|
+
},
|
|
805
|
+
"use-ai": {
|
|
806
|
+
"description": "Enables provider-backed analysis for deployment prioritization",
|
|
807
|
+
"name": "use-ai",
|
|
808
|
+
"summary": "Use AI for intelligent priority weighting and dependency inference",
|
|
809
|
+
"allowNo": false,
|
|
810
|
+
"type": "boolean"
|
|
811
|
+
},
|
|
812
|
+
"org-type": {
|
|
813
|
+
"description": "Helps AI provide context-aware recommendations",
|
|
814
|
+
"name": "org-type",
|
|
815
|
+
"summary": "Organization type context for AI analysis",
|
|
816
|
+
"hasDynamicHelp": false,
|
|
817
|
+
"multiple": false,
|
|
818
|
+
"options": [
|
|
819
|
+
"Production",
|
|
820
|
+
"Sandbox",
|
|
821
|
+
"Developer"
|
|
822
|
+
],
|
|
823
|
+
"type": "option"
|
|
824
|
+
},
|
|
825
|
+
"industry": {
|
|
826
|
+
"description": "Provides business context to AI for better prioritization",
|
|
827
|
+
"name": "industry",
|
|
828
|
+
"summary": "Industry context for AI analysis",
|
|
829
|
+
"hasDynamicHelp": false,
|
|
830
|
+
"multiple": false,
|
|
831
|
+
"type": "option"
|
|
832
|
+
},
|
|
833
|
+
"scope-commits": {
|
|
834
|
+
"description": "Limits the deployment plan to metadata changed by these commits plus required dependencies.",
|
|
835
|
+
"name": "scope-commits",
|
|
836
|
+
"summary": "Comma-separated commit SHAs or refs to include in the deployment scope",
|
|
837
|
+
"hasDynamicHelp": false,
|
|
838
|
+
"multiple": false,
|
|
839
|
+
"type": "option"
|
|
840
|
+
},
|
|
841
|
+
"scope-manifest": {
|
|
842
|
+
"description": "Reads commits from { commits: [] } and { stories: [{ commits: [] }] } to scope validation and deployment planning.",
|
|
843
|
+
"name": "scope-manifest",
|
|
844
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
845
|
+
"hasDynamicHelp": false,
|
|
846
|
+
"multiple": false,
|
|
847
|
+
"type": "option"
|
|
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
|
+
},
|
|
857
|
+
"destructive": {
|
|
858
|
+
"description": "Runs the normal analysis path, then executes destructiveChanges manifests in reverse wave order.",
|
|
859
|
+
"name": "destructive",
|
|
860
|
+
"summary": "Delete metadata components using destructive wave manifests",
|
|
861
|
+
"allowNo": false,
|
|
862
|
+
"type": "boolean"
|
|
863
|
+
},
|
|
864
|
+
"rollback-from": {
|
|
865
|
+
"description": "Use with --rollback-to. Modified or deleted metadata is restored from this ref using normal deploy waves.",
|
|
866
|
+
"name": "rollback-from",
|
|
867
|
+
"summary": "Git ref or release tag that represents the rollback target state",
|
|
868
|
+
"hasDynamicHelp": false,
|
|
869
|
+
"multiple": false,
|
|
870
|
+
"type": "option"
|
|
871
|
+
},
|
|
872
|
+
"rollback-to": {
|
|
873
|
+
"description": "Use with --rollback-from. Metadata added between refs is deleted using destructive waves.",
|
|
874
|
+
"name": "rollback-to",
|
|
875
|
+
"summary": "Git ref or release tag that represents the release being rolled back",
|
|
876
|
+
"hasDynamicHelp": false,
|
|
877
|
+
"multiple": false,
|
|
878
|
+
"type": "option"
|
|
879
|
+
}
|
|
880
|
+
},
|
|
881
|
+
"hasDynamicHelp": false,
|
|
882
|
+
"hiddenAliases": [],
|
|
883
|
+
"id": "start",
|
|
884
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
885
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
886
|
+
"pluginType": "core",
|
|
887
|
+
"strict": true,
|
|
888
|
+
"summary": "Deploy Salesforce metadata intelligently with automatic wave generation",
|
|
889
|
+
"enableJsonFlag": true,
|
|
890
|
+
"isESM": true,
|
|
891
|
+
"relativePath": [
|
|
892
|
+
"lib",
|
|
893
|
+
"commands",
|
|
894
|
+
"start.js"
|
|
895
|
+
],
|
|
896
|
+
"aliasPermutations": [
|
|
897
|
+
"smart-deployment:start",
|
|
898
|
+
"start:smart-deployment"
|
|
899
|
+
],
|
|
900
|
+
"permutations": [
|
|
901
|
+
"start"
|
|
902
|
+
]
|
|
903
|
+
},
|
|
904
|
+
"status": {
|
|
905
|
+
"aliases": [
|
|
906
|
+
"smart-deployment:status"
|
|
907
|
+
],
|
|
908
|
+
"args": {},
|
|
909
|
+
"examples": [
|
|
910
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
911
|
+
"<%= config.bin %> <%= command.id %> --target-org myorg --source-path force-app"
|
|
912
|
+
],
|
|
913
|
+
"flags": {
|
|
914
|
+
"json": {
|
|
915
|
+
"description": "Format output as json.",
|
|
916
|
+
"helpGroup": "GLOBAL",
|
|
917
|
+
"name": "json",
|
|
918
|
+
"allowNo": false,
|
|
919
|
+
"type": "boolean"
|
|
920
|
+
},
|
|
921
|
+
"flags-dir": {
|
|
922
|
+
"helpGroup": "GLOBAL",
|
|
923
|
+
"name": "flags-dir",
|
|
924
|
+
"summary": "Import flag values from a directory.",
|
|
925
|
+
"hasDynamicHelp": false,
|
|
926
|
+
"multiple": false,
|
|
927
|
+
"type": "option"
|
|
928
|
+
},
|
|
929
|
+
"target-org": {
|
|
930
|
+
"char": "o",
|
|
931
|
+
"name": "target-org",
|
|
932
|
+
"summary": "Target Salesforce org alias or username for remote deployment status refresh",
|
|
933
|
+
"hasDynamicHelp": false,
|
|
934
|
+
"multiple": false,
|
|
935
|
+
"type": "option"
|
|
936
|
+
},
|
|
937
|
+
"source-path": {
|
|
938
|
+
"name": "source-path",
|
|
939
|
+
"summary": "Path to the Salesforce project containing deployment state",
|
|
940
|
+
"hasDynamicHelp": false,
|
|
941
|
+
"multiple": false,
|
|
942
|
+
"type": "option"
|
|
943
|
+
}
|
|
944
|
+
},
|
|
945
|
+
"hasDynamicHelp": false,
|
|
946
|
+
"hiddenAliases": [],
|
|
947
|
+
"id": "status",
|
|
948
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
949
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
950
|
+
"pluginType": "core",
|
|
951
|
+
"strict": true,
|
|
952
|
+
"summary": "Show deployment status",
|
|
953
|
+
"enableJsonFlag": true,
|
|
954
|
+
"isESM": true,
|
|
955
|
+
"relativePath": [
|
|
956
|
+
"lib",
|
|
957
|
+
"commands",
|
|
958
|
+
"status.js"
|
|
959
|
+
],
|
|
960
|
+
"aliasPermutations": [
|
|
961
|
+
"smart-deployment:status",
|
|
962
|
+
"status:smart-deployment"
|
|
963
|
+
],
|
|
964
|
+
"permutations": [
|
|
965
|
+
"status"
|
|
966
|
+
]
|
|
967
|
+
},
|
|
968
|
+
"validate": {
|
|
969
|
+
"aliases": [
|
|
970
|
+
"smart-deployment:validate"
|
|
971
|
+
],
|
|
972
|
+
"args": {},
|
|
973
|
+
"examples": [
|
|
974
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
975
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --use-ai"
|
|
976
|
+
],
|
|
977
|
+
"flags": {
|
|
978
|
+
"json": {
|
|
979
|
+
"description": "Format output as json.",
|
|
980
|
+
"helpGroup": "GLOBAL",
|
|
981
|
+
"name": "json",
|
|
982
|
+
"allowNo": false,
|
|
983
|
+
"type": "boolean"
|
|
984
|
+
},
|
|
985
|
+
"flags-dir": {
|
|
986
|
+
"helpGroup": "GLOBAL",
|
|
987
|
+
"name": "flags-dir",
|
|
988
|
+
"summary": "Import flag values from a directory.",
|
|
989
|
+
"hasDynamicHelp": false,
|
|
990
|
+
"multiple": false,
|
|
991
|
+
"type": "option"
|
|
992
|
+
},
|
|
993
|
+
"target-org": {
|
|
994
|
+
"aliases": [
|
|
995
|
+
"targetusername",
|
|
996
|
+
"u"
|
|
997
|
+
],
|
|
998
|
+
"char": "o",
|
|
999
|
+
"deprecateAliases": true,
|
|
1000
|
+
"name": "target-org",
|
|
1001
|
+
"noCacheDefault": true,
|
|
1002
|
+
"summary": "Username or alias of the target org.",
|
|
1003
|
+
"hasDynamicHelp": true,
|
|
1004
|
+
"multiple": false,
|
|
1005
|
+
"type": "option"
|
|
1006
|
+
},
|
|
1007
|
+
"source-path": {
|
|
1008
|
+
"name": "source-path",
|
|
1009
|
+
"summary": "Path to the Salesforce project to validate",
|
|
1010
|
+
"hasDynamicHelp": false,
|
|
1011
|
+
"multiple": false,
|
|
1012
|
+
"type": "option"
|
|
1013
|
+
},
|
|
1014
|
+
"use-ai": {
|
|
1015
|
+
"name": "use-ai",
|
|
1016
|
+
"summary": "Use configured provider AI validation when available",
|
|
1017
|
+
"allowNo": false,
|
|
1018
|
+
"type": "boolean"
|
|
1019
|
+
},
|
|
1020
|
+
"scope-commits": {
|
|
1021
|
+
"name": "scope-commits",
|
|
1022
|
+
"summary": "Comma-separated commit SHAs or refs to include in validation",
|
|
1023
|
+
"hasDynamicHelp": false,
|
|
1024
|
+
"multiple": false,
|
|
1025
|
+
"type": "option"
|
|
1026
|
+
},
|
|
1027
|
+
"scope-manifest": {
|
|
1028
|
+
"name": "scope-manifest",
|
|
1029
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
1030
|
+
"hasDynamicHelp": false,
|
|
1031
|
+
"multiple": false,
|
|
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"
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
1043
|
+
"hasDynamicHelp": true,
|
|
1044
|
+
"hiddenAliases": [],
|
|
1045
|
+
"id": "validate",
|
|
1046
|
+
"pluginAlias": "@jterrats/smart-deployment",
|
|
1047
|
+
"pluginName": "@jterrats/smart-deployment",
|
|
1048
|
+
"pluginType": "core",
|
|
1049
|
+
"strict": true,
|
|
1050
|
+
"summary": "Validate the local wave plan without deploying",
|
|
1051
|
+
"enableJsonFlag": true,
|
|
1052
|
+
"isESM": true,
|
|
1053
|
+
"relativePath": [
|
|
1054
|
+
"lib",
|
|
1055
|
+
"commands",
|
|
1056
|
+
"validate.js"
|
|
1057
|
+
],
|
|
1058
|
+
"aliasPermutations": [
|
|
1059
|
+
"smart-deployment:validate",
|
|
1060
|
+
"validate:smart-deployment"
|
|
1061
|
+
],
|
|
1062
|
+
"permutations": [
|
|
1063
|
+
"validate"
|
|
1064
|
+
]
|
|
1065
|
+
},
|
|
1066
|
+
"ci:preset": {
|
|
1067
|
+
"aliases": [
|
|
1068
|
+
"smart-deployment:ci:preset"
|
|
344
1069
|
],
|
|
345
1070
|
"args": {},
|
|
1071
|
+
"description": "Builds a validation-safe deployment plan, writes JSON and HTML report artifacts, emits GitHub Actions output keys, and returns deterministic CI exit codes.",
|
|
346
1072
|
"examples": [
|
|
347
|
-
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
348
|
-
"<%= config.bin %>
|
|
1073
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org dev --report-dir reports/deployment-plan",
|
|
1074
|
+
"<%= config.bin %> smart-deployment ci preset --validation-mode warn-only --skip-tests"
|
|
349
1075
|
],
|
|
350
1076
|
"flags": {
|
|
351
1077
|
"json": {
|
|
@@ -378,60 +1104,122 @@
|
|
|
378
1104
|
"type": "option"
|
|
379
1105
|
},
|
|
380
1106
|
"source-path": {
|
|
1107
|
+
"description": "Path to the Salesforce source directory used to build the deployment plan.",
|
|
381
1108
|
"name": "source-path",
|
|
382
|
-
"summary": "
|
|
1109
|
+
"summary": "Salesforce source path to analyze",
|
|
383
1110
|
"hasDynamicHelp": false,
|
|
384
1111
|
"multiple": false,
|
|
385
1112
|
"type": "option"
|
|
386
1113
|
},
|
|
387
|
-
"
|
|
388
|
-
"
|
|
389
|
-
"
|
|
390
|
-
"
|
|
1114
|
+
"report-dir": {
|
|
1115
|
+
"description": "Defaults to the deployment plan report service location under the analyzed project.",
|
|
1116
|
+
"name": "report-dir",
|
|
1117
|
+
"summary": "Directory where JSON and HTML deployment plan reports are written",
|
|
1118
|
+
"hasDynamicHelp": false,
|
|
1119
|
+
"multiple": false,
|
|
1120
|
+
"type": "option"
|
|
1121
|
+
},
|
|
1122
|
+
"validation-mode": {
|
|
1123
|
+
"description": "strict exits non-zero for blockers, warn-only reports blockers with exit code 0, and local-only avoids org-dependent validation expectations.",
|
|
1124
|
+
"name": "validation-mode",
|
|
1125
|
+
"summary": "CI exit-code policy for deployment planning blockers",
|
|
1126
|
+
"default": "strict",
|
|
391
1127
|
"hasDynamicHelp": false,
|
|
392
1128
|
"multiple": false,
|
|
393
1129
|
"options": [
|
|
394
|
-
"
|
|
395
|
-
"
|
|
396
|
-
"
|
|
1130
|
+
"strict",
|
|
1131
|
+
"warn-only",
|
|
1132
|
+
"local-only"
|
|
1133
|
+
],
|
|
1134
|
+
"type": "option"
|
|
1135
|
+
},
|
|
1136
|
+
"skip-tests": {
|
|
1137
|
+
"name": "skip-tests",
|
|
1138
|
+
"summary": "Record that Apex tests should be skipped by downstream validation",
|
|
1139
|
+
"allowNo": false,
|
|
1140
|
+
"type": "boolean"
|
|
1141
|
+
},
|
|
1142
|
+
"use-ai": {
|
|
1143
|
+
"name": "use-ai",
|
|
1144
|
+
"summary": "Use configured AI providers for dependency inference and wave priority analysis",
|
|
1145
|
+
"allowNo": false,
|
|
1146
|
+
"type": "boolean"
|
|
1147
|
+
},
|
|
1148
|
+
"org-type": {
|
|
1149
|
+
"name": "org-type",
|
|
1150
|
+
"summary": "Target org type used by AI wave priority analysis",
|
|
1151
|
+
"hasDynamicHelp": false,
|
|
1152
|
+
"multiple": false,
|
|
1153
|
+
"options": [
|
|
1154
|
+
"Production",
|
|
1155
|
+
"Sandbox",
|
|
1156
|
+
"Developer"
|
|
397
1157
|
],
|
|
398
1158
|
"type": "option"
|
|
1159
|
+
},
|
|
1160
|
+
"industry": {
|
|
1161
|
+
"name": "industry",
|
|
1162
|
+
"summary": "Industry context used by AI wave priority analysis",
|
|
1163
|
+
"hasDynamicHelp": false,
|
|
1164
|
+
"multiple": false,
|
|
1165
|
+
"type": "option"
|
|
1166
|
+
},
|
|
1167
|
+
"scope-commits": {
|
|
1168
|
+
"description": "Limits CI plan artifacts to metadata changed by these commits plus required dependencies.",
|
|
1169
|
+
"name": "scope-commits",
|
|
1170
|
+
"summary": "Comma-separated commit SHAs or refs to include in the CI deployment scope",
|
|
1171
|
+
"hasDynamicHelp": false,
|
|
1172
|
+
"multiple": false,
|
|
1173
|
+
"type": "option"
|
|
1174
|
+
},
|
|
1175
|
+
"scope-manifest": {
|
|
1176
|
+
"description": "Reads commits from { commits: [] } and { stories: [{ commits: [] }] } for trunk-based validation.",
|
|
1177
|
+
"name": "scope-manifest",
|
|
1178
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
1179
|
+
"hasDynamicHelp": false,
|
|
1180
|
+
"multiple": false,
|
|
1181
|
+
"type": "option"
|
|
399
1182
|
}
|
|
400
1183
|
},
|
|
401
1184
|
"hasDynamicHelp": true,
|
|
402
1185
|
"hiddenAliases": [],
|
|
403
|
-
"id": "
|
|
1186
|
+
"id": "ci:preset",
|
|
404
1187
|
"pluginAlias": "@jterrats/smart-deployment",
|
|
405
1188
|
"pluginName": "@jterrats/smart-deployment",
|
|
406
1189
|
"pluginType": "core",
|
|
407
1190
|
"strict": true,
|
|
408
|
-
"summary": "
|
|
1191
|
+
"summary": "Run the CI deployment planning preset",
|
|
409
1192
|
"enableJsonFlag": true,
|
|
410
1193
|
"isESM": true,
|
|
411
1194
|
"relativePath": [
|
|
412
1195
|
"lib",
|
|
413
1196
|
"commands",
|
|
414
|
-
"
|
|
1197
|
+
"ci",
|
|
1198
|
+
"preset.js"
|
|
415
1199
|
],
|
|
416
1200
|
"aliasPermutations": [
|
|
417
|
-
"smart-deployment:
|
|
418
|
-
"
|
|
1201
|
+
"smart-deployment:ci:preset",
|
|
1202
|
+
"ci:smart-deployment:preset",
|
|
1203
|
+
"ci:preset:smart-deployment",
|
|
1204
|
+
"smart-deployment:preset:ci",
|
|
1205
|
+
"preset:smart-deployment:ci",
|
|
1206
|
+
"preset:ci:smart-deployment"
|
|
419
1207
|
],
|
|
420
1208
|
"permutations": [
|
|
421
|
-
"
|
|
1209
|
+
"ci:preset",
|
|
1210
|
+
"preset:ci"
|
|
422
1211
|
]
|
|
423
1212
|
},
|
|
424
|
-
"
|
|
1213
|
+
"graph:export": {
|
|
425
1214
|
"aliases": [
|
|
426
|
-
"smart-deployment:
|
|
1215
|
+
"smart-deployment:graph:export"
|
|
427
1216
|
],
|
|
428
1217
|
"args": {},
|
|
429
|
-
"description": "
|
|
1218
|
+
"description": "Builds the local dependency graph and deployment waves, then exports review-ready graph artifacts in Mermaid, DOT, JSON, or HTML format.",
|
|
430
1219
|
"examples": [
|
|
431
|
-
"<%= config.bin %> <%= command.id %> --source-path force-app --
|
|
432
|
-
"<%= config.bin %>
|
|
433
|
-
"<%= config.bin %>
|
|
434
|
-
"<%= config.bin %> <%= command.id %> --source-path force-app --target-org myorg --skip-tests"
|
|
1220
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --format mermaid --report-dir reports/graphs",
|
|
1221
|
+
"<%= config.bin %> smart-deployment graph export --format html --output reports/dependency-graph.html",
|
|
1222
|
+
"<%= config.bin %> smart-deployment graph export --json --format json"
|
|
435
1223
|
],
|
|
436
1224
|
"flags": {
|
|
437
1225
|
"json": {
|
|
@@ -449,67 +1237,55 @@
|
|
|
449
1237
|
"multiple": false,
|
|
450
1238
|
"type": "option"
|
|
451
1239
|
},
|
|
452
|
-
"
|
|
453
|
-
"
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
"char": "o",
|
|
458
|
-
"deprecateAliases": true,
|
|
459
|
-
"name": "target-org",
|
|
460
|
-
"noCacheDefault": true,
|
|
461
|
-
"summary": "Username or alias of the target org.",
|
|
462
|
-
"hasDynamicHelp": true,
|
|
1240
|
+
"source-path": {
|
|
1241
|
+
"description": "Path to the Salesforce source directory used to build the dependency and wave graph.",
|
|
1242
|
+
"name": "source-path",
|
|
1243
|
+
"summary": "Salesforce source path to analyze",
|
|
1244
|
+
"hasDynamicHelp": false,
|
|
463
1245
|
"multiple": false,
|
|
464
1246
|
"type": "option"
|
|
465
1247
|
},
|
|
466
|
-
"
|
|
467
|
-
"
|
|
468
|
-
"name": "
|
|
469
|
-
"summary": "
|
|
470
|
-
"
|
|
471
|
-
"
|
|
472
|
-
|
|
473
|
-
"validate-only": {
|
|
474
|
-
"char": "v",
|
|
475
|
-
"name": "validate-only",
|
|
476
|
-
"summary": "Validate the local wave plan without deploying",
|
|
477
|
-
"allowNo": false,
|
|
478
|
-
"type": "boolean"
|
|
479
|
-
},
|
|
480
|
-
"skip-tests": {
|
|
481
|
-
"char": "s",
|
|
482
|
-
"name": "skip-tests",
|
|
483
|
-
"summary": "Skip running tests during deployment",
|
|
484
|
-
"allowNo": false,
|
|
485
|
-
"type": "boolean"
|
|
1248
|
+
"report-dir": {
|
|
1249
|
+
"description": "Defaults to .smart-deployment/reports/graph-export under the analyzed project root.",
|
|
1250
|
+
"name": "report-dir",
|
|
1251
|
+
"summary": "Directory where the selected graph artifact is written",
|
|
1252
|
+
"hasDynamicHelp": false,
|
|
1253
|
+
"multiple": false,
|
|
1254
|
+
"type": "option"
|
|
486
1255
|
},
|
|
487
|
-
"
|
|
488
|
-
"description": "
|
|
489
|
-
"name": "
|
|
490
|
-
"summary": "
|
|
1256
|
+
"output": {
|
|
1257
|
+
"description": "Overrides --report-dir and writes the selected graph artifact to this file.",
|
|
1258
|
+
"name": "output",
|
|
1259
|
+
"summary": "Exact output file path for the selected graph format",
|
|
491
1260
|
"hasDynamicHelp": false,
|
|
492
1261
|
"multiple": false,
|
|
493
1262
|
"type": "option"
|
|
494
1263
|
},
|
|
495
|
-
"
|
|
496
|
-
"
|
|
497
|
-
"
|
|
498
|
-
"
|
|
499
|
-
"
|
|
500
|
-
"
|
|
1264
|
+
"format": {
|
|
1265
|
+
"char": "f",
|
|
1266
|
+
"description": "Supported formats are mermaid, dot, json, and html.",
|
|
1267
|
+
"name": "format",
|
|
1268
|
+
"summary": "Graph export format",
|
|
1269
|
+
"default": "json",
|
|
1270
|
+
"hasDynamicHelp": false,
|
|
1271
|
+
"multiple": false,
|
|
1272
|
+
"options": [
|
|
1273
|
+
"mermaid",
|
|
1274
|
+
"dot",
|
|
1275
|
+
"json",
|
|
1276
|
+
"html"
|
|
1277
|
+
],
|
|
1278
|
+
"type": "option"
|
|
501
1279
|
},
|
|
502
1280
|
"use-ai": {
|
|
503
|
-
"description": "Enables provider-backed analysis for deployment prioritization",
|
|
504
1281
|
"name": "use-ai",
|
|
505
|
-
"summary": "Use AI for
|
|
1282
|
+
"summary": "Use configured AI providers for dependency inference and wave priority analysis before exporting",
|
|
506
1283
|
"allowNo": false,
|
|
507
1284
|
"type": "boolean"
|
|
508
1285
|
},
|
|
509
1286
|
"org-type": {
|
|
510
|
-
"description": "Helps AI provide context-aware recommendations",
|
|
511
1287
|
"name": "org-type",
|
|
512
|
-
"summary": "
|
|
1288
|
+
"summary": "Target org type used by AI wave priority analysis",
|
|
513
1289
|
"hasDynamicHelp": false,
|
|
514
1290
|
"multiple": false,
|
|
515
1291
|
"options": [
|
|
@@ -520,45 +1296,51 @@
|
|
|
520
1296
|
"type": "option"
|
|
521
1297
|
},
|
|
522
1298
|
"industry": {
|
|
523
|
-
"description": "Provides business context to AI for better prioritization",
|
|
524
1299
|
"name": "industry",
|
|
525
|
-
"summary": "Industry context
|
|
1300
|
+
"summary": "Industry context used by AI wave priority analysis",
|
|
526
1301
|
"hasDynamicHelp": false,
|
|
527
1302
|
"multiple": false,
|
|
528
1303
|
"type": "option"
|
|
529
1304
|
}
|
|
530
1305
|
},
|
|
531
|
-
"hasDynamicHelp":
|
|
1306
|
+
"hasDynamicHelp": false,
|
|
532
1307
|
"hiddenAliases": [],
|
|
533
|
-
"id": "
|
|
1308
|
+
"id": "graph:export",
|
|
534
1309
|
"pluginAlias": "@jterrats/smart-deployment",
|
|
535
1310
|
"pluginName": "@jterrats/smart-deployment",
|
|
536
1311
|
"pluginType": "core",
|
|
537
1312
|
"strict": true,
|
|
538
|
-
"summary": "
|
|
1313
|
+
"summary": "Export dependency and deployment wave graphs",
|
|
539
1314
|
"enableJsonFlag": true,
|
|
540
1315
|
"isESM": true,
|
|
541
1316
|
"relativePath": [
|
|
542
1317
|
"lib",
|
|
543
1318
|
"commands",
|
|
544
|
-
"
|
|
1319
|
+
"graph",
|
|
1320
|
+
"export.js"
|
|
545
1321
|
],
|
|
546
1322
|
"aliasPermutations": [
|
|
547
|
-
"smart-deployment:
|
|
548
|
-
"
|
|
1323
|
+
"smart-deployment:graph:export",
|
|
1324
|
+
"graph:smart-deployment:export",
|
|
1325
|
+
"graph:export:smart-deployment",
|
|
1326
|
+
"smart-deployment:export:graph",
|
|
1327
|
+
"export:smart-deployment:graph",
|
|
1328
|
+
"export:graph:smart-deployment"
|
|
549
1329
|
],
|
|
550
1330
|
"permutations": [
|
|
551
|
-
"
|
|
1331
|
+
"graph:export",
|
|
1332
|
+
"export:graph"
|
|
552
1333
|
]
|
|
553
1334
|
},
|
|
554
|
-
"
|
|
1335
|
+
"metadata:gaps": {
|
|
555
1336
|
"aliases": [
|
|
556
|
-
"smart-deployment:
|
|
1337
|
+
"smart-deployment:metadata:gaps"
|
|
557
1338
|
],
|
|
558
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.",
|
|
559
1341
|
"examples": [
|
|
560
|
-
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
561
|
-
"<%= config.bin %>
|
|
1342
|
+
"<%= config.bin %> <%= command.id %> --source-path force-app --json",
|
|
1343
|
+
"<%= config.bin %> smart-deployment metadata gaps --ai-explain"
|
|
562
1344
|
],
|
|
563
1345
|
"flags": {
|
|
564
1346
|
"json": {
|
|
@@ -576,59 +1358,60 @@
|
|
|
576
1358
|
"multiple": false,
|
|
577
1359
|
"type": "option"
|
|
578
1360
|
},
|
|
579
|
-
"target-org": {
|
|
580
|
-
"aliases": [
|
|
581
|
-
"targetusername",
|
|
582
|
-
"u"
|
|
583
|
-
],
|
|
584
|
-
"char": "o",
|
|
585
|
-
"deprecateAliases": true,
|
|
586
|
-
"name": "target-org",
|
|
587
|
-
"noCacheDefault": true,
|
|
588
|
-
"summary": "Username or alias of the target org.",
|
|
589
|
-
"hasDynamicHelp": true,
|
|
590
|
-
"multiple": false,
|
|
591
|
-
"type": "option"
|
|
592
|
-
},
|
|
593
1361
|
"source-path": {
|
|
1362
|
+
"description": "Path used to locate sfdx-project.json and scan configured package directories.",
|
|
594
1363
|
"name": "source-path",
|
|
595
|
-
"summary": "
|
|
1364
|
+
"summary": "Salesforce project or source path to scan",
|
|
596
1365
|
"hasDynamicHelp": false,
|
|
597
1366
|
"multiple": false,
|
|
598
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"
|
|
599
1375
|
}
|
|
600
1376
|
},
|
|
601
|
-
"hasDynamicHelp":
|
|
1377
|
+
"hasDynamicHelp": false,
|
|
602
1378
|
"hiddenAliases": [],
|
|
603
|
-
"id": "
|
|
1379
|
+
"id": "metadata:gaps",
|
|
604
1380
|
"pluginAlias": "@jterrats/smart-deployment",
|
|
605
1381
|
"pluginName": "@jterrats/smart-deployment",
|
|
606
1382
|
"pluginType": "core",
|
|
607
1383
|
"strict": true,
|
|
608
|
-
"summary": "
|
|
1384
|
+
"summary": "Analyze unsupported Salesforce metadata types",
|
|
609
1385
|
"enableJsonFlag": true,
|
|
610
1386
|
"isESM": true,
|
|
611
1387
|
"relativePath": [
|
|
612
1388
|
"lib",
|
|
613
1389
|
"commands",
|
|
614
|
-
"
|
|
1390
|
+
"metadata",
|
|
1391
|
+
"gaps.js"
|
|
615
1392
|
],
|
|
616
1393
|
"aliasPermutations": [
|
|
617
|
-
"smart-deployment:
|
|
618
|
-
"
|
|
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"
|
|
619
1400
|
],
|
|
620
1401
|
"permutations": [
|
|
621
|
-
"
|
|
1402
|
+
"metadata:gaps",
|
|
1403
|
+
"gaps:metadata"
|
|
622
1404
|
]
|
|
623
1405
|
},
|
|
624
|
-
"
|
|
1406
|
+
"plan:explain": {
|
|
625
1407
|
"aliases": [
|
|
626
|
-
"smart-deployment:
|
|
1408
|
+
"smart-deployment:plan:explain"
|
|
627
1409
|
],
|
|
628
1410
|
"args": {},
|
|
1411
|
+
"description": "Builds the same local plan used by start dry-run and explains wave placement, dependency edges, unresolved references, and provider-owned deployment decisions.",
|
|
629
1412
|
"examples": [
|
|
630
1413
|
"<%= config.bin %> <%= command.id %> --source-path force-app",
|
|
631
|
-
"<%= config.bin %>
|
|
1414
|
+
"<%= config.bin %> smart-deployment plan explain --use-ai --org-type Sandbox --target-org dev"
|
|
632
1415
|
],
|
|
633
1416
|
"flags": {
|
|
634
1417
|
"json": {
|
|
@@ -662,41 +1445,117 @@
|
|
|
662
1445
|
},
|
|
663
1446
|
"source-path": {
|
|
664
1447
|
"name": "source-path",
|
|
665
|
-
"summary": "
|
|
1448
|
+
"summary": "Salesforce source path to analyze",
|
|
666
1449
|
"hasDynamicHelp": false,
|
|
667
1450
|
"multiple": false,
|
|
668
1451
|
"type": "option"
|
|
669
1452
|
},
|
|
1453
|
+
"dry-run": {
|
|
1454
|
+
"name": "dry-run",
|
|
1455
|
+
"summary": "Accepted for parity with start dry-run; explain never deploys metadata",
|
|
1456
|
+
"allowNo": true,
|
|
1457
|
+
"type": "boolean"
|
|
1458
|
+
},
|
|
1459
|
+
"validate-only": {
|
|
1460
|
+
"name": "validate-only",
|
|
1461
|
+
"summary": "Accepted for parity with start validate-only; explain never deploys metadata",
|
|
1462
|
+
"allowNo": false,
|
|
1463
|
+
"type": "boolean"
|
|
1464
|
+
},
|
|
1465
|
+
"skip-tests": {
|
|
1466
|
+
"name": "skip-tests",
|
|
1467
|
+
"summary": "Accepted for parity with start dry-run inputs; explain never runs tests",
|
|
1468
|
+
"allowNo": false,
|
|
1469
|
+
"type": "boolean"
|
|
1470
|
+
},
|
|
1471
|
+
"allow-cycle-remediation": {
|
|
1472
|
+
"name": "allow-cycle-remediation",
|
|
1473
|
+
"summary": "Accepted for parity with start dry-run inputs; explain does not modify sources",
|
|
1474
|
+
"allowNo": false,
|
|
1475
|
+
"type": "boolean"
|
|
1476
|
+
},
|
|
670
1477
|
"use-ai": {
|
|
671
1478
|
"name": "use-ai",
|
|
672
|
-
"summary": "Use AI
|
|
1479
|
+
"summary": "Use configured AI providers for dependency inference and wave priority analysis",
|
|
1480
|
+
"allowNo": false,
|
|
1481
|
+
"type": "boolean"
|
|
1482
|
+
},
|
|
1483
|
+
"org-type": {
|
|
1484
|
+
"name": "org-type",
|
|
1485
|
+
"summary": "Target org type used by AI wave priority analysis",
|
|
1486
|
+
"hasDynamicHelp": false,
|
|
1487
|
+
"multiple": false,
|
|
1488
|
+
"options": [
|
|
1489
|
+
"Production",
|
|
1490
|
+
"Sandbox",
|
|
1491
|
+
"Developer"
|
|
1492
|
+
],
|
|
1493
|
+
"type": "option"
|
|
1494
|
+
},
|
|
1495
|
+
"industry": {
|
|
1496
|
+
"name": "industry",
|
|
1497
|
+
"summary": "Industry context used by AI wave priority analysis",
|
|
1498
|
+
"hasDynamicHelp": false,
|
|
1499
|
+
"multiple": false,
|
|
1500
|
+
"type": "option"
|
|
1501
|
+
},
|
|
1502
|
+
"since": {
|
|
1503
|
+
"name": "since",
|
|
1504
|
+
"summary": "Git ref used to explain changed provider-owned metadata decisions",
|
|
1505
|
+
"hasDynamicHelp": false,
|
|
1506
|
+
"multiple": false,
|
|
1507
|
+
"type": "option"
|
|
1508
|
+
},
|
|
1509
|
+
"auto-activate": {
|
|
1510
|
+
"name": "auto-activate",
|
|
1511
|
+
"summary": "Include Agentforce activation decisions in provider-owned metadata planning",
|
|
673
1512
|
"allowNo": false,
|
|
674
1513
|
"type": "boolean"
|
|
1514
|
+
},
|
|
1515
|
+
"scope-commits": {
|
|
1516
|
+
"name": "scope-commits",
|
|
1517
|
+
"summary": "Comma-separated commit SHAs or refs to include in the explained plan",
|
|
1518
|
+
"hasDynamicHelp": false,
|
|
1519
|
+
"multiple": false,
|
|
1520
|
+
"type": "option"
|
|
1521
|
+
},
|
|
1522
|
+
"scope-manifest": {
|
|
1523
|
+
"name": "scope-manifest",
|
|
1524
|
+
"summary": "Path to a JSON commit or story scope manifest",
|
|
1525
|
+
"hasDynamicHelp": false,
|
|
1526
|
+
"multiple": false,
|
|
1527
|
+
"type": "option"
|
|
675
1528
|
}
|
|
676
1529
|
},
|
|
677
1530
|
"hasDynamicHelp": true,
|
|
678
1531
|
"hiddenAliases": [],
|
|
679
|
-
"id": "
|
|
1532
|
+
"id": "plan:explain",
|
|
680
1533
|
"pluginAlias": "@jterrats/smart-deployment",
|
|
681
1534
|
"pluginName": "@jterrats/smart-deployment",
|
|
682
1535
|
"pluginType": "core",
|
|
683
1536
|
"strict": true,
|
|
684
|
-
"summary": "
|
|
1537
|
+
"summary": "Explain why metadata components are placed in deployment waves",
|
|
685
1538
|
"enableJsonFlag": true,
|
|
686
1539
|
"isESM": true,
|
|
687
1540
|
"relativePath": [
|
|
688
1541
|
"lib",
|
|
689
1542
|
"commands",
|
|
690
|
-
"
|
|
1543
|
+
"plan",
|
|
1544
|
+
"explain.js"
|
|
691
1545
|
],
|
|
692
1546
|
"aliasPermutations": [
|
|
693
|
-
"smart-deployment:
|
|
694
|
-
"
|
|
1547
|
+
"smart-deployment:plan:explain",
|
|
1548
|
+
"plan:smart-deployment:explain",
|
|
1549
|
+
"plan:explain:smart-deployment",
|
|
1550
|
+
"smart-deployment:explain:plan",
|
|
1551
|
+
"explain:smart-deployment:plan",
|
|
1552
|
+
"explain:plan:smart-deployment"
|
|
695
1553
|
],
|
|
696
1554
|
"permutations": [
|
|
697
|
-
"
|
|
1555
|
+
"plan:explain",
|
|
1556
|
+
"explain:plan"
|
|
698
1557
|
]
|
|
699
1558
|
}
|
|
700
1559
|
},
|
|
701
|
-
"version": "1.
|
|
1560
|
+
"version": "1.4.0"
|
|
702
1561
|
}
|