@memberjunction/cli 6.1.0-edge.5 → 6.1.0-edge.6
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 +23 -0
- package/dist/config.d.ts +127 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -2
- package/dist/config.js.map +1 -1
- package/dist/hooks/prerun.d.ts +6 -0
- package/dist/hooks/prerun.d.ts.map +1 -1
- package/dist/hooks/prerun.js +29 -3
- package/dist/hooks/prerun.js.map +1 -1
- package/dist/lib/dynamic-packages.d.ts +31 -0
- package/dist/lib/dynamic-packages.d.ts.map +1 -0
- package/dist/lib/dynamic-packages.js +56 -0
- package/dist/lib/dynamic-packages.js.map +1 -0
- package/oclif.manifest.json +1547 -1494
- package/package.json +22 -21
package/oclif.manifest.json
CHANGED
|
@@ -457,92 +457,65 @@
|
|
|
457
457
|
"usage.js"
|
|
458
458
|
]
|
|
459
459
|
},
|
|
460
|
-
"
|
|
460
|
+
"bump": {
|
|
461
461
|
"aliases": [],
|
|
462
462
|
"args": {},
|
|
463
|
-
"description": "
|
|
463
|
+
"description": "Bumps MemberJunction dependency versions",
|
|
464
464
|
"examples": [
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
469
|
-
],
|
|
470
|
-
"flags": {
|
|
471
|
-
"baseline-version": {
|
|
472
|
-
"description": "Baseline version stamp in Major.Minor format (literal x is appended for patch, matching the V-file convention). Omit to auto-detect from --source-dir (within-major rebaseline mode).",
|
|
473
|
-
"name": "baseline-version",
|
|
474
|
-
"hasDynamicHelp": false,
|
|
475
|
-
"multiple": false,
|
|
476
|
-
"type": "option"
|
|
477
|
-
},
|
|
478
|
-
"source-dir": {
|
|
479
|
-
"description": "Migrations source directory (e.g. ./migrations/v5). Used to auto-detect the next baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ directory walked up from cwd.",
|
|
480
|
-
"name": "source-dir",
|
|
481
|
-
"hasDynamicHelp": false,
|
|
482
|
-
"multiple": false,
|
|
483
|
-
"type": "option"
|
|
484
|
-
},
|
|
485
|
-
"description": {
|
|
486
|
-
"description": "Human-readable description embedded in the file header.",
|
|
487
|
-
"name": "description",
|
|
488
|
-
"default": "MemberJunction Baseline",
|
|
489
|
-
"hasDynamicHelp": false,
|
|
490
|
-
"multiple": false,
|
|
491
|
-
"type": "option"
|
|
465
|
+
{
|
|
466
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
467
|
+
"description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
|
|
492
468
|
},
|
|
493
|
-
|
|
494
|
-
"
|
|
495
|
-
"
|
|
496
|
-
"hasDynamicHelp": false,
|
|
497
|
-
"multiple": false,
|
|
498
|
-
"type": "option"
|
|
469
|
+
{
|
|
470
|
+
"command": "<%= config.bin %> <%= command.id %> -rdv",
|
|
471
|
+
"description": "Preview all recursive packages bumps without writing any changes."
|
|
499
472
|
},
|
|
500
|
-
|
|
501
|
-
"
|
|
502
|
-
"
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
473
|
+
{
|
|
474
|
+
"command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
|
|
475
|
+
"description": "Recursively bump all @memberjunction/* dependencies in all packages to version v2.10.0 and output only the paths containing the updated package.json files. Pipe the output to xargs to run npm install in each directory and update the package-lock.json files as well."
|
|
476
|
+
}
|
|
477
|
+
],
|
|
478
|
+
"flags": {
|
|
479
|
+
"verbose": {
|
|
480
|
+
"char": "v",
|
|
481
|
+
"description": "Enable additional logging",
|
|
482
|
+
"name": "verbose",
|
|
483
|
+
"allowNo": false,
|
|
484
|
+
"type": "boolean"
|
|
507
485
|
},
|
|
508
|
-
"
|
|
509
|
-
"
|
|
510
|
-
"
|
|
511
|
-
"
|
|
512
|
-
"
|
|
513
|
-
"
|
|
514
|
-
"type": "option"
|
|
486
|
+
"recursive": {
|
|
487
|
+
"char": "r",
|
|
488
|
+
"description": "Bump version in current directory and all subdirectories",
|
|
489
|
+
"name": "recursive",
|
|
490
|
+
"allowNo": false,
|
|
491
|
+
"type": "boolean"
|
|
515
492
|
},
|
|
516
|
-
"
|
|
517
|
-
"
|
|
518
|
-
"
|
|
519
|
-
"
|
|
493
|
+
"tag": {
|
|
494
|
+
"char": "t",
|
|
495
|
+
"description": "Version tag to bump target for bump (e.g. v2.10.0), defaults to the CLI version",
|
|
496
|
+
"name": "tag",
|
|
520
497
|
"hasDynamicHelp": false,
|
|
521
498
|
"multiple": false,
|
|
522
499
|
"type": "option"
|
|
523
500
|
},
|
|
524
|
-
"
|
|
525
|
-
"
|
|
526
|
-
"
|
|
527
|
-
"
|
|
528
|
-
"type": "boolean"
|
|
529
|
-
},
|
|
530
|
-
"verbose": {
|
|
531
|
-
"description": "Print per-object progress.",
|
|
532
|
-
"name": "verbose",
|
|
501
|
+
"quiet": {
|
|
502
|
+
"char": "q",
|
|
503
|
+
"description": "Only output paths for updated packages",
|
|
504
|
+
"name": "quiet",
|
|
533
505
|
"allowNo": false,
|
|
534
506
|
"type": "boolean"
|
|
535
507
|
},
|
|
536
|
-
"dry
|
|
537
|
-
"
|
|
538
|
-
"
|
|
508
|
+
"dry": {
|
|
509
|
+
"char": "d",
|
|
510
|
+
"description": "Dry run, do not write changes to package.json files",
|
|
511
|
+
"name": "dry",
|
|
539
512
|
"allowNo": false,
|
|
540
513
|
"type": "boolean"
|
|
541
514
|
}
|
|
542
515
|
},
|
|
543
516
|
"hasDynamicHelp": false,
|
|
544
517
|
"hiddenAliases": [],
|
|
545
|
-
"id": "
|
|
518
|
+
"id": "bump",
|
|
546
519
|
"pluginAlias": "@memberjunction/cli",
|
|
547
520
|
"pluginName": "@memberjunction/cli",
|
|
548
521
|
"pluginType": "core",
|
|
@@ -552,106 +525,109 @@
|
|
|
552
525
|
"relativePath": [
|
|
553
526
|
"dist",
|
|
554
527
|
"commands",
|
|
555
|
-
"
|
|
556
|
-
"
|
|
528
|
+
"bump",
|
|
529
|
+
"index.js"
|
|
557
530
|
]
|
|
558
531
|
},
|
|
559
|
-
"
|
|
532
|
+
"bump:usage": {
|
|
560
533
|
"aliases": [],
|
|
561
534
|
"args": {},
|
|
562
|
-
"description": "
|
|
563
|
-
"examples": [
|
|
564
|
-
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
565
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
566
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
567
|
-
],
|
|
535
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj bump` command.",
|
|
568
536
|
"flags": {
|
|
569
|
-
"
|
|
570
|
-
"description": "
|
|
571
|
-
"name": "
|
|
572
|
-
"required": true,
|
|
573
|
-
"hasDynamicHelp": false,
|
|
574
|
-
"multiple": false,
|
|
575
|
-
"type": "option"
|
|
576
|
-
},
|
|
577
|
-
"right": {
|
|
578
|
-
"description": "Right database name (override).",
|
|
579
|
-
"name": "right",
|
|
580
|
-
"required": true,
|
|
581
|
-
"hasDynamicHelp": false,
|
|
582
|
-
"multiple": false,
|
|
583
|
-
"type": "option"
|
|
584
|
-
},
|
|
585
|
-
"dialect": {
|
|
586
|
-
"description": "Dialect of both DBs (must match).",
|
|
587
|
-
"name": "dialect",
|
|
588
|
-
"default": "mssql",
|
|
537
|
+
"format": {
|
|
538
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
539
|
+
"name": "format",
|
|
589
540
|
"hasDynamicHelp": false,
|
|
590
541
|
"multiple": false,
|
|
591
542
|
"options": [
|
|
592
|
-
"
|
|
593
|
-
"
|
|
543
|
+
"text",
|
|
544
|
+
"json",
|
|
545
|
+
"md"
|
|
594
546
|
],
|
|
595
547
|
"type": "option"
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
"hasDynamicHelp": false,
|
|
551
|
+
"hiddenAliases": [],
|
|
552
|
+
"id": "bump:usage",
|
|
553
|
+
"pluginAlias": "@memberjunction/cli",
|
|
554
|
+
"pluginName": "@memberjunction/cli",
|
|
555
|
+
"pluginType": "core",
|
|
556
|
+
"strict": true,
|
|
557
|
+
"enableJsonFlag": false,
|
|
558
|
+
"isESM": true,
|
|
559
|
+
"relativePath": [
|
|
560
|
+
"dist",
|
|
561
|
+
"commands",
|
|
562
|
+
"bump",
|
|
563
|
+
"usage.js"
|
|
564
|
+
]
|
|
565
|
+
},
|
|
566
|
+
"bundle": {
|
|
567
|
+
"aliases": [],
|
|
568
|
+
"args": {},
|
|
569
|
+
"description": "Create a self-contained MemberJunction distribution zip for offline/air-gapped installs",
|
|
570
|
+
"examples": [
|
|
571
|
+
"<%= config.bin %> <%= command.id %> --out ./mj-install.zip",
|
|
572
|
+
"<%= config.bin %> <%= command.id %> --tag v5.38.0 --out ./mj-install.zip",
|
|
573
|
+
"<%= config.bin %> <%= command.id %> --source . --out ./mj-install.zip",
|
|
574
|
+
"<%= config.bin %> <%= command.id %> --tag v5.38.0 --with-migrations --out ./mj-install.zip",
|
|
575
|
+
"<%= config.bin %> <%= command.id %> --with-migrations --db-platform postgresql --out ./mj-install.zip"
|
|
576
|
+
],
|
|
577
|
+
"flags": {
|
|
578
|
+
"out": {
|
|
579
|
+
"char": "o",
|
|
580
|
+
"description": "Output zip path",
|
|
581
|
+
"name": "out",
|
|
582
|
+
"required": true,
|
|
601
583
|
"hasDynamicHelp": false,
|
|
602
584
|
"multiple": false,
|
|
603
|
-
"options": [
|
|
604
|
-
"full",
|
|
605
|
-
"hash",
|
|
606
|
-
"counts",
|
|
607
|
-
"none"
|
|
608
|
-
],
|
|
609
585
|
"type": "option"
|
|
610
586
|
},
|
|
611
|
-
"
|
|
612
|
-
"
|
|
613
|
-
"
|
|
614
|
-
"
|
|
587
|
+
"tag": {
|
|
588
|
+
"char": "t",
|
|
589
|
+
"description": "Release tag to bundle (e.g. v5.38.0). Defaults to the latest branch tip.",
|
|
590
|
+
"name": "tag",
|
|
615
591
|
"hasDynamicHelp": false,
|
|
616
592
|
"multiple": false,
|
|
617
|
-
"options": [
|
|
618
|
-
"sha256",
|
|
619
|
-
"md5",
|
|
620
|
-
"checksum_agg"
|
|
621
|
-
],
|
|
622
593
|
"type": "option"
|
|
623
594
|
},
|
|
624
|
-
"
|
|
625
|
-
"description": "
|
|
626
|
-
"name": "
|
|
627
|
-
"default": "^flyway_schema_history$",
|
|
595
|
+
"source": {
|
|
596
|
+
"description": "Bundle from a local working-tree directory instead of fetching from the repo",
|
|
597
|
+
"name": "source",
|
|
628
598
|
"hasDynamicHelp": false,
|
|
629
599
|
"multiple": false,
|
|
630
600
|
"type": "option"
|
|
631
601
|
},
|
|
632
|
-
"
|
|
633
|
-
"description": "
|
|
634
|
-
"name": "
|
|
635
|
-
"
|
|
636
|
-
"
|
|
637
|
-
"multiple": false,
|
|
638
|
-
"type": "option"
|
|
602
|
+
"with-migrations": {
|
|
603
|
+
"description": "Include the migration tree(s) so an air-gapped \"mj migrate\" can run offline. Ships both SQL Server and PostgreSQL trees by default.",
|
|
604
|
+
"name": "with-migrations",
|
|
605
|
+
"allowNo": false,
|
|
606
|
+
"type": "boolean"
|
|
639
607
|
},
|
|
640
|
-
"
|
|
641
|
-
"
|
|
642
|
-
|
|
608
|
+
"db-platform": {
|
|
609
|
+
"dependsOn": [
|
|
610
|
+
"with-migrations"
|
|
611
|
+
],
|
|
612
|
+
"description": "With --with-migrations, ship only this platform's migration tree instead of both",
|
|
613
|
+
"name": "db-platform",
|
|
643
614
|
"hasDynamicHelp": false,
|
|
644
615
|
"multiple": false,
|
|
616
|
+
"options": [
|
|
617
|
+
"sqlserver",
|
|
618
|
+
"postgresql"
|
|
619
|
+
],
|
|
645
620
|
"type": "option"
|
|
646
621
|
},
|
|
647
|
-
"
|
|
648
|
-
"description": "
|
|
649
|
-
"name": "
|
|
622
|
+
"no-claude-pack": {
|
|
623
|
+
"description": "Exclude the Claude Code pack (CLAUDE.md + .claude/) from the bundle. By default the pack is included so air-gapped installs get the same out-of-the-box Claude experience as online installs.",
|
|
624
|
+
"name": "no-claude-pack",
|
|
650
625
|
"allowNo": false,
|
|
651
626
|
"type": "boolean"
|
|
652
627
|
},
|
|
653
628
|
"verbose": {
|
|
654
|
-
"
|
|
629
|
+
"char": "v",
|
|
630
|
+
"description": "Show detailed output",
|
|
655
631
|
"name": "verbose",
|
|
656
632
|
"allowNo": false,
|
|
657
633
|
"type": "boolean"
|
|
@@ -659,7 +635,7 @@
|
|
|
659
635
|
},
|
|
660
636
|
"hasDynamicHelp": false,
|
|
661
637
|
"hiddenAliases": [],
|
|
662
|
-
"id": "
|
|
638
|
+
"id": "bundle",
|
|
663
639
|
"pluginAlias": "@memberjunction/cli",
|
|
664
640
|
"pluginName": "@memberjunction/cli",
|
|
665
641
|
"pluginType": "core",
|
|
@@ -669,111 +645,55 @@
|
|
|
669
645
|
"relativePath": [
|
|
670
646
|
"dist",
|
|
671
647
|
"commands",
|
|
672
|
-
"
|
|
673
|
-
"
|
|
648
|
+
"bundle",
|
|
649
|
+
"index.js"
|
|
674
650
|
]
|
|
675
651
|
},
|
|
676
|
-
"
|
|
652
|
+
"bundle:usage": {
|
|
677
653
|
"aliases": [],
|
|
678
654
|
"args": {},
|
|
679
|
-
"description": "
|
|
680
|
-
"examples": [
|
|
681
|
-
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
682
|
-
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
683
|
-
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
684
|
-
],
|
|
655
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj bundle` command.",
|
|
685
656
|
"flags": {
|
|
686
|
-
"
|
|
687
|
-
"description": "
|
|
688
|
-
"name": "
|
|
689
|
-
"hasDynamicHelp": false,
|
|
690
|
-
"multiple": false,
|
|
691
|
-
"type": "option"
|
|
692
|
-
},
|
|
693
|
-
"source-dir": {
|
|
694
|
-
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
695
|
-
"name": "source-dir",
|
|
696
|
-
"hasDynamicHelp": false,
|
|
697
|
-
"multiple": false,
|
|
698
|
-
"type": "option"
|
|
699
|
-
},
|
|
700
|
-
"description": {
|
|
701
|
-
"description": "Header description.",
|
|
702
|
-
"name": "description",
|
|
703
|
-
"default": "MemberJunction Baseline",
|
|
704
|
-
"hasDynamicHelp": false,
|
|
705
|
-
"multiple": false,
|
|
706
|
-
"type": "option"
|
|
707
|
-
},
|
|
708
|
-
"dialect": {
|
|
709
|
-
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
710
|
-
"name": "dialect",
|
|
711
|
-
"default": "mssql",
|
|
712
|
-
"hasDynamicHelp": false,
|
|
713
|
-
"multiple": false,
|
|
714
|
-
"options": [
|
|
715
|
-
"mssql",
|
|
716
|
-
"postgres"
|
|
717
|
-
],
|
|
718
|
-
"type": "option"
|
|
719
|
-
},
|
|
720
|
-
"source": {
|
|
721
|
-
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
722
|
-
"name": "source",
|
|
723
|
-
"required": true,
|
|
724
|
-
"hasDynamicHelp": false,
|
|
725
|
-
"multiple": false,
|
|
726
|
-
"type": "option"
|
|
727
|
-
},
|
|
728
|
-
"target": {
|
|
729
|
-
"description": "Empty database name to apply the new baseline to.",
|
|
730
|
-
"name": "target",
|
|
731
|
-
"required": true,
|
|
732
|
-
"hasDynamicHelp": false,
|
|
733
|
-
"multiple": false,
|
|
734
|
-
"type": "option"
|
|
735
|
-
},
|
|
736
|
-
"out": {
|
|
737
|
-
"description": "Output directory for baseline file + reports.",
|
|
738
|
-
"name": "out",
|
|
739
|
-
"default": ".",
|
|
740
|
-
"hasDynamicHelp": false,
|
|
741
|
-
"multiple": false,
|
|
742
|
-
"type": "option"
|
|
743
|
-
},
|
|
744
|
-
"apply-cmd": {
|
|
745
|
-
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
746
|
-
"name": "apply-cmd",
|
|
747
|
-
"hasDynamicHelp": false,
|
|
748
|
-
"multiple": false,
|
|
749
|
-
"type": "option"
|
|
750
|
-
},
|
|
751
|
-
"row-compare": {
|
|
752
|
-
"description": "Row compare mode passed to the comparator.",
|
|
753
|
-
"name": "row-compare",
|
|
754
|
-
"default": "full",
|
|
657
|
+
"format": {
|
|
658
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
659
|
+
"name": "format",
|
|
755
660
|
"hasDynamicHelp": false,
|
|
756
661
|
"multiple": false,
|
|
757
662
|
"options": [
|
|
758
|
-
"
|
|
759
|
-
"
|
|
760
|
-
"
|
|
761
|
-
"none"
|
|
663
|
+
"text",
|
|
664
|
+
"json",
|
|
665
|
+
"md"
|
|
762
666
|
],
|
|
763
667
|
"type": "option"
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
"hasDynamicHelp": false,
|
|
671
|
+
"hiddenAliases": [],
|
|
672
|
+
"id": "bundle:usage",
|
|
673
|
+
"pluginAlias": "@memberjunction/cli",
|
|
674
|
+
"pluginName": "@memberjunction/cli",
|
|
675
|
+
"pluginType": "core",
|
|
676
|
+
"strict": true,
|
|
677
|
+
"enableJsonFlag": false,
|
|
678
|
+
"isESM": true,
|
|
679
|
+
"relativePath": [
|
|
680
|
+
"dist",
|
|
681
|
+
"commands",
|
|
682
|
+
"bundle",
|
|
683
|
+
"usage.js"
|
|
684
|
+
]
|
|
685
|
+
},
|
|
686
|
+
"clean": {
|
|
687
|
+
"aliases": [],
|
|
688
|
+
"args": {},
|
|
689
|
+
"description": "Resets the MemberJunction database to a pre-installation state",
|
|
690
|
+
"examples": [
|
|
691
|
+
"<%= config.bin %> <%= command.id %>\n"
|
|
692
|
+
],
|
|
693
|
+
"flags": {
|
|
776
694
|
"verbose": {
|
|
695
|
+
"char": "v",
|
|
696
|
+
"description": "Enable additional logging",
|
|
777
697
|
"name": "verbose",
|
|
778
698
|
"allowNo": false,
|
|
779
699
|
"type": "boolean"
|
|
@@ -781,7 +701,7 @@
|
|
|
781
701
|
},
|
|
782
702
|
"hasDynamicHelp": false,
|
|
783
703
|
"hiddenAliases": [],
|
|
784
|
-
"id": "
|
|
704
|
+
"id": "clean",
|
|
785
705
|
"pluginAlias": "@memberjunction/cli",
|
|
786
706
|
"pluginName": "@memberjunction/cli",
|
|
787
707
|
"pluginType": "core",
|
|
@@ -791,14 +711,14 @@
|
|
|
791
711
|
"relativePath": [
|
|
792
712
|
"dist",
|
|
793
713
|
"commands",
|
|
794
|
-
"
|
|
795
|
-
"
|
|
714
|
+
"clean",
|
|
715
|
+
"index.js"
|
|
796
716
|
]
|
|
797
717
|
},
|
|
798
|
-
"
|
|
718
|
+
"clean:usage": {
|
|
799
719
|
"aliases": [],
|
|
800
720
|
"args": {},
|
|
801
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
721
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj clean` command.",
|
|
802
722
|
"flags": {
|
|
803
723
|
"format": {
|
|
804
724
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -815,7 +735,7 @@
|
|
|
815
735
|
},
|
|
816
736
|
"hasDynamicHelp": false,
|
|
817
737
|
"hiddenAliases": [],
|
|
818
|
-
"id": "
|
|
738
|
+
"id": "clean:usage",
|
|
819
739
|
"pluginAlias": "@memberjunction/cli",
|
|
820
740
|
"pluginName": "@memberjunction/cli",
|
|
821
741
|
"pluginType": "core",
|
|
@@ -825,58 +745,96 @@
|
|
|
825
745
|
"relativePath": [
|
|
826
746
|
"dist",
|
|
827
747
|
"commands",
|
|
828
|
-
"
|
|
748
|
+
"clean",
|
|
829
749
|
"usage.js"
|
|
830
750
|
]
|
|
831
751
|
},
|
|
832
|
-
"
|
|
752
|
+
"baseline:build": {
|
|
833
753
|
"aliases": [],
|
|
834
754
|
"args": {},
|
|
835
|
-
"description": "
|
|
755
|
+
"description": "Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.",
|
|
836
756
|
"examples": [
|
|
837
|
-
"<%= config.bin %> <%= command.id %>",
|
|
838
|
-
"<%= config.bin %> <%= command.id %> --
|
|
757
|
+
"<%= config.bin %> <%= command.id %> --out ./migrations/v5/ # auto: within-major rebaseline",
|
|
758
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --out ./migrations/v5/",
|
|
759
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --out ./migrations/v6/ # explicit major-boundary",
|
|
760
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
839
761
|
],
|
|
840
762
|
"flags": {
|
|
841
|
-
"
|
|
842
|
-
"description": "
|
|
843
|
-
"name": "
|
|
763
|
+
"baseline-version": {
|
|
764
|
+
"description": "Baseline version stamp in Major.Minor format (literal x is appended for patch, matching the V-file convention). Omit to auto-detect from --source-dir (within-major rebaseline mode).",
|
|
765
|
+
"name": "baseline-version",
|
|
844
766
|
"hasDynamicHelp": false,
|
|
845
767
|
"multiple": false,
|
|
846
768
|
"type": "option"
|
|
847
769
|
},
|
|
848
|
-
"
|
|
849
|
-
"description": "
|
|
850
|
-
"name": "
|
|
770
|
+
"source-dir": {
|
|
771
|
+
"description": "Migrations source directory (e.g. ./migrations/v5). Used to auto-detect the next baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ directory walked up from cwd.",
|
|
772
|
+
"name": "source-dir",
|
|
851
773
|
"hasDynamicHelp": false,
|
|
852
774
|
"multiple": false,
|
|
853
775
|
"type": "option"
|
|
854
776
|
},
|
|
855
|
-
"
|
|
856
|
-
"description": "
|
|
857
|
-
"name": "
|
|
858
|
-
"default":
|
|
777
|
+
"description": {
|
|
778
|
+
"description": "Human-readable description embedded in the file header.",
|
|
779
|
+
"name": "description",
|
|
780
|
+
"default": "MemberJunction Baseline",
|
|
859
781
|
"hasDynamicHelp": false,
|
|
860
782
|
"multiple": false,
|
|
861
783
|
"type": "option"
|
|
862
784
|
},
|
|
863
|
-
"
|
|
864
|
-
"description": "
|
|
865
|
-
"name": "
|
|
785
|
+
"database": {
|
|
786
|
+
"description": "Override database name (host/user/password come from MJ config).",
|
|
787
|
+
"name": "database",
|
|
788
|
+
"hasDynamicHelp": false,
|
|
789
|
+
"multiple": false,
|
|
790
|
+
"type": "option"
|
|
791
|
+
},
|
|
792
|
+
"out": {
|
|
793
|
+
"description": "Output directory. Filename is auto-generated.",
|
|
794
|
+
"name": "out",
|
|
795
|
+
"default": ".",
|
|
796
|
+
"hasDynamicHelp": false,
|
|
797
|
+
"multiple": false,
|
|
798
|
+
"type": "option"
|
|
799
|
+
},
|
|
800
|
+
"exclude-data": {
|
|
801
|
+
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
802
|
+
"name": "exclude-data",
|
|
803
|
+
"default": "",
|
|
804
|
+
"hasDynamicHelp": false,
|
|
805
|
+
"multiple": false,
|
|
806
|
+
"type": "option"
|
|
807
|
+
},
|
|
808
|
+
"batch-size": {
|
|
809
|
+
"description": "Rows per INSERT batch.",
|
|
810
|
+
"name": "batch-size",
|
|
811
|
+
"default": 1000,
|
|
812
|
+
"hasDynamicHelp": false,
|
|
813
|
+
"multiple": false,
|
|
814
|
+
"type": "option"
|
|
815
|
+
},
|
|
816
|
+
"no-data": {
|
|
817
|
+
"description": "Emit schema only, no data inserts.",
|
|
818
|
+
"name": "no-data",
|
|
866
819
|
"allowNo": false,
|
|
867
820
|
"type": "boolean"
|
|
868
821
|
},
|
|
869
822
|
"verbose": {
|
|
870
|
-
"
|
|
871
|
-
"description": "Print every candidate row, not just the summary.",
|
|
823
|
+
"description": "Print per-object progress.",
|
|
872
824
|
"name": "verbose",
|
|
873
825
|
"allowNo": false,
|
|
874
826
|
"type": "boolean"
|
|
827
|
+
},
|
|
828
|
+
"dry-run": {
|
|
829
|
+
"description": "Print to stdout instead of writing a file.",
|
|
830
|
+
"name": "dry-run",
|
|
831
|
+
"allowNo": false,
|
|
832
|
+
"type": "boolean"
|
|
875
833
|
}
|
|
876
834
|
},
|
|
877
835
|
"hasDynamicHelp": false,
|
|
878
836
|
"hiddenAliases": [],
|
|
879
|
-
"id": "
|
|
837
|
+
"id": "baseline:build",
|
|
880
838
|
"pluginAlias": "@memberjunction/cli",
|
|
881
839
|
"pluginName": "@memberjunction/cli",
|
|
882
840
|
"pluginType": "core",
|
|
@@ -886,103 +844,236 @@
|
|
|
886
844
|
"relativePath": [
|
|
887
845
|
"dist",
|
|
888
846
|
"commands",
|
|
889
|
-
"
|
|
890
|
-
"
|
|
847
|
+
"baseline",
|
|
848
|
+
"build.js"
|
|
891
849
|
]
|
|
892
850
|
},
|
|
893
|
-
"
|
|
851
|
+
"baseline:compare": {
|
|
894
852
|
"aliases": [],
|
|
895
853
|
"args": {},
|
|
896
|
-
"description": "
|
|
854
|
+
"description": "Deterministically compare two databases object-by-object and row-by-row.",
|
|
855
|
+
"examples": [
|
|
856
|
+
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
857
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
858
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
859
|
+
],
|
|
897
860
|
"flags": {
|
|
898
|
-
"
|
|
899
|
-
"description": "
|
|
900
|
-
"name": "
|
|
861
|
+
"left": {
|
|
862
|
+
"description": "Left database name (override).",
|
|
863
|
+
"name": "left",
|
|
864
|
+
"required": true,
|
|
901
865
|
"hasDynamicHelp": false,
|
|
902
866
|
"multiple": false,
|
|
903
|
-
"options": [
|
|
904
|
-
"text",
|
|
905
|
-
"json",
|
|
906
|
-
"md"
|
|
907
|
-
],
|
|
908
867
|
"type": "option"
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
868
|
+
},
|
|
869
|
+
"right": {
|
|
870
|
+
"description": "Right database name (override).",
|
|
871
|
+
"name": "right",
|
|
872
|
+
"required": true,
|
|
873
|
+
"hasDynamicHelp": false,
|
|
874
|
+
"multiple": false,
|
|
875
|
+
"type": "option"
|
|
876
|
+
},
|
|
877
|
+
"dialect": {
|
|
878
|
+
"description": "Dialect of both DBs (must match).",
|
|
879
|
+
"name": "dialect",
|
|
880
|
+
"default": "mssql",
|
|
881
|
+
"hasDynamicHelp": false,
|
|
882
|
+
"multiple": false,
|
|
883
|
+
"options": [
|
|
884
|
+
"mssql",
|
|
885
|
+
"postgres"
|
|
886
|
+
],
|
|
887
|
+
"type": "option"
|
|
888
|
+
},
|
|
889
|
+
"row-compare": {
|
|
890
|
+
"description": "Row comparison mode.",
|
|
891
|
+
"name": "row-compare",
|
|
892
|
+
"default": "full",
|
|
893
|
+
"hasDynamicHelp": false,
|
|
894
|
+
"multiple": false,
|
|
895
|
+
"options": [
|
|
896
|
+
"full",
|
|
897
|
+
"hash",
|
|
898
|
+
"counts",
|
|
899
|
+
"none"
|
|
900
|
+
],
|
|
901
|
+
"type": "option"
|
|
902
|
+
},
|
|
903
|
+
"row-hash-algo": {
|
|
904
|
+
"description": "Hash algorithm when --row-compare hash.",
|
|
905
|
+
"name": "row-hash-algo",
|
|
906
|
+
"default": "sha256",
|
|
907
|
+
"hasDynamicHelp": false,
|
|
908
|
+
"multiple": false,
|
|
909
|
+
"options": [
|
|
910
|
+
"sha256",
|
|
911
|
+
"md5",
|
|
912
|
+
"checksum_agg"
|
|
913
|
+
],
|
|
914
|
+
"type": "option"
|
|
915
|
+
},
|
|
916
|
+
"ignore": {
|
|
917
|
+
"description": "Regex of object names to skip.",
|
|
918
|
+
"name": "ignore",
|
|
919
|
+
"default": "^flyway_schema_history$",
|
|
920
|
+
"hasDynamicHelp": false,
|
|
921
|
+
"multiple": false,
|
|
922
|
+
"type": "option"
|
|
923
|
+
},
|
|
924
|
+
"sample-limit": {
|
|
925
|
+
"description": "Maximum row diffs to capture per table.",
|
|
926
|
+
"name": "sample-limit",
|
|
927
|
+
"default": 100,
|
|
928
|
+
"hasDynamicHelp": false,
|
|
929
|
+
"multiple": false,
|
|
930
|
+
"type": "option"
|
|
931
|
+
},
|
|
932
|
+
"out": {
|
|
933
|
+
"description": "Directory to write JSON + Markdown reports.",
|
|
934
|
+
"name": "out",
|
|
935
|
+
"hasDynamicHelp": false,
|
|
936
|
+
"multiple": false,
|
|
937
|
+
"type": "option"
|
|
938
|
+
},
|
|
939
|
+
"fail-on-diff": {
|
|
940
|
+
"description": "Exit non-zero if any diff is found.",
|
|
941
|
+
"name": "fail-on-diff",
|
|
942
|
+
"allowNo": false,
|
|
943
|
+
"type": "boolean"
|
|
944
|
+
},
|
|
945
|
+
"verbose": {
|
|
946
|
+
"description": "Print per-phase progress.",
|
|
947
|
+
"name": "verbose",
|
|
948
|
+
"allowNo": false,
|
|
949
|
+
"type": "boolean"
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
"hasDynamicHelp": false,
|
|
953
|
+
"hiddenAliases": [],
|
|
954
|
+
"id": "baseline:compare",
|
|
955
|
+
"pluginAlias": "@memberjunction/cli",
|
|
956
|
+
"pluginName": "@memberjunction/cli",
|
|
957
|
+
"pluginType": "core",
|
|
958
|
+
"strict": true,
|
|
959
|
+
"enableJsonFlag": false,
|
|
960
|
+
"isESM": true,
|
|
961
|
+
"relativePath": [
|
|
962
|
+
"dist",
|
|
963
|
+
"commands",
|
|
964
|
+
"baseline",
|
|
965
|
+
"compare.js"
|
|
925
966
|
]
|
|
926
967
|
},
|
|
927
|
-
"
|
|
968
|
+
"baseline:roundtrip": {
|
|
928
969
|
"aliases": [],
|
|
929
970
|
"args": {},
|
|
930
|
-
"description": "
|
|
971
|
+
"description": "Build a baseline from a V-stack database, apply it to a fresh DB, and prove byte-equivalence.",
|
|
931
972
|
"examples": [
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
},
|
|
936
|
-
{
|
|
937
|
-
"command": "<%= config.bin %> <%= command.id %> -rdv",
|
|
938
|
-
"description": "Preview all recursive packages bumps without writing any changes."
|
|
939
|
-
},
|
|
940
|
-
{
|
|
941
|
-
"command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
|
|
942
|
-
"description": "Recursively bump all @memberjunction/* dependencies in all packages to version v2.10.0 and output only the paths containing the updated package.json files. Pipe the output to xargs to run npm install in each directory and update the package-lock.json files as well."
|
|
943
|
-
}
|
|
973
|
+
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
974
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
975
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
944
976
|
],
|
|
945
977
|
"flags": {
|
|
946
|
-
"
|
|
947
|
-
"
|
|
948
|
-
"
|
|
949
|
-
"
|
|
950
|
-
"
|
|
951
|
-
"type": "
|
|
978
|
+
"baseline-version": {
|
|
979
|
+
"description": "Major.Minor version stamp. Omit to auto-detect from --source-dir (within-major rebaseline).",
|
|
980
|
+
"name": "baseline-version",
|
|
981
|
+
"hasDynamicHelp": false,
|
|
982
|
+
"multiple": false,
|
|
983
|
+
"type": "option"
|
|
952
984
|
},
|
|
953
|
-
"
|
|
954
|
-
"
|
|
955
|
-
"
|
|
956
|
-
"
|
|
957
|
-
"
|
|
958
|
-
"type": "
|
|
985
|
+
"source-dir": {
|
|
986
|
+
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
987
|
+
"name": "source-dir",
|
|
988
|
+
"hasDynamicHelp": false,
|
|
989
|
+
"multiple": false,
|
|
990
|
+
"type": "option"
|
|
959
991
|
},
|
|
960
|
-
"
|
|
961
|
-
"
|
|
962
|
-
"
|
|
963
|
-
"
|
|
992
|
+
"description": {
|
|
993
|
+
"description": "Header description.",
|
|
994
|
+
"name": "description",
|
|
995
|
+
"default": "MemberJunction Baseline",
|
|
964
996
|
"hasDynamicHelp": false,
|
|
965
997
|
"multiple": false,
|
|
966
998
|
"type": "option"
|
|
967
999
|
},
|
|
968
|
-
"
|
|
969
|
-
"
|
|
970
|
-
"
|
|
971
|
-
"
|
|
1000
|
+
"dialect": {
|
|
1001
|
+
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
1002
|
+
"name": "dialect",
|
|
1003
|
+
"default": "mssql",
|
|
1004
|
+
"hasDynamicHelp": false,
|
|
1005
|
+
"multiple": false,
|
|
1006
|
+
"options": [
|
|
1007
|
+
"mssql",
|
|
1008
|
+
"postgres"
|
|
1009
|
+
],
|
|
1010
|
+
"type": "option"
|
|
1011
|
+
},
|
|
1012
|
+
"source": {
|
|
1013
|
+
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
1014
|
+
"name": "source",
|
|
1015
|
+
"required": true,
|
|
1016
|
+
"hasDynamicHelp": false,
|
|
1017
|
+
"multiple": false,
|
|
1018
|
+
"type": "option"
|
|
1019
|
+
},
|
|
1020
|
+
"target": {
|
|
1021
|
+
"description": "Empty database name to apply the new baseline to.",
|
|
1022
|
+
"name": "target",
|
|
1023
|
+
"required": true,
|
|
1024
|
+
"hasDynamicHelp": false,
|
|
1025
|
+
"multiple": false,
|
|
1026
|
+
"type": "option"
|
|
1027
|
+
},
|
|
1028
|
+
"out": {
|
|
1029
|
+
"description": "Output directory for baseline file + reports.",
|
|
1030
|
+
"name": "out",
|
|
1031
|
+
"default": ".",
|
|
1032
|
+
"hasDynamicHelp": false,
|
|
1033
|
+
"multiple": false,
|
|
1034
|
+
"type": "option"
|
|
1035
|
+
},
|
|
1036
|
+
"apply-cmd": {
|
|
1037
|
+
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
1038
|
+
"name": "apply-cmd",
|
|
1039
|
+
"hasDynamicHelp": false,
|
|
1040
|
+
"multiple": false,
|
|
1041
|
+
"type": "option"
|
|
1042
|
+
},
|
|
1043
|
+
"row-compare": {
|
|
1044
|
+
"description": "Row compare mode passed to the comparator.",
|
|
1045
|
+
"name": "row-compare",
|
|
1046
|
+
"default": "full",
|
|
1047
|
+
"hasDynamicHelp": false,
|
|
1048
|
+
"multiple": false,
|
|
1049
|
+
"options": [
|
|
1050
|
+
"full",
|
|
1051
|
+
"hash",
|
|
1052
|
+
"counts",
|
|
1053
|
+
"none"
|
|
1054
|
+
],
|
|
1055
|
+
"type": "option"
|
|
1056
|
+
},
|
|
1057
|
+
"fail-on-diff": {
|
|
1058
|
+
"name": "fail-on-diff",
|
|
972
1059
|
"allowNo": false,
|
|
973
1060
|
"type": "boolean"
|
|
974
1061
|
},
|
|
975
|
-
"
|
|
976
|
-
"
|
|
977
|
-
"
|
|
978
|
-
"
|
|
1062
|
+
"keep-target": {
|
|
1063
|
+
"description": "Do not drop the target database after run (useful for debugging diffs).",
|
|
1064
|
+
"name": "keep-target",
|
|
1065
|
+
"allowNo": false,
|
|
1066
|
+
"type": "boolean"
|
|
1067
|
+
},
|
|
1068
|
+
"verbose": {
|
|
1069
|
+
"name": "verbose",
|
|
979
1070
|
"allowNo": false,
|
|
980
1071
|
"type": "boolean"
|
|
981
1072
|
}
|
|
982
1073
|
},
|
|
983
1074
|
"hasDynamicHelp": false,
|
|
984
1075
|
"hiddenAliases": [],
|
|
985
|
-
"id": "
|
|
1076
|
+
"id": "baseline:roundtrip",
|
|
986
1077
|
"pluginAlias": "@memberjunction/cli",
|
|
987
1078
|
"pluginName": "@memberjunction/cli",
|
|
988
1079
|
"pluginType": "core",
|
|
@@ -992,14 +1083,14 @@
|
|
|
992
1083
|
"relativePath": [
|
|
993
1084
|
"dist",
|
|
994
1085
|
"commands",
|
|
995
|
-
"
|
|
996
|
-
"
|
|
1086
|
+
"baseline",
|
|
1087
|
+
"roundtrip.js"
|
|
997
1088
|
]
|
|
998
1089
|
},
|
|
999
|
-
"
|
|
1090
|
+
"baseline:usage": {
|
|
1000
1091
|
"aliases": [],
|
|
1001
1092
|
"args": {},
|
|
1002
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
1093
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj baseline` command.",
|
|
1003
1094
|
"flags": {
|
|
1004
1095
|
"format": {
|
|
1005
1096
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -1016,7 +1107,7 @@
|
|
|
1016
1107
|
},
|
|
1017
1108
|
"hasDynamicHelp": false,
|
|
1018
1109
|
"hiddenAliases": [],
|
|
1019
|
-
"id": "
|
|
1110
|
+
"id": "baseline:usage",
|
|
1020
1111
|
"pluginAlias": "@memberjunction/cli",
|
|
1021
1112
|
"pluginName": "@memberjunction/cli",
|
|
1022
1113
|
"pluginType": "core",
|
|
@@ -1026,141 +1117,50 @@
|
|
|
1026
1117
|
"relativePath": [
|
|
1027
1118
|
"dist",
|
|
1028
1119
|
"commands",
|
|
1029
|
-
"
|
|
1120
|
+
"baseline",
|
|
1030
1121
|
"usage.js"
|
|
1031
1122
|
]
|
|
1032
1123
|
},
|
|
1033
|
-
"
|
|
1124
|
+
"artifacts:reclassify": {
|
|
1034
1125
|
"aliases": [],
|
|
1035
1126
|
"args": {},
|
|
1036
|
-
"description": "
|
|
1127
|
+
"description": "Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. Normally a no-op: the v5.35 backfill migration handles this automatically. This command is only relevant when the migration ran BEFORE the artifact-type metadata (Generic Text / Generic Binary) was pushed via `mj sync push`, in which case the migration prints a notice telling you to run this. Reports \"no candidates\" once everything is reconciled. Dry-run by default; --apply writes through Record Changes.",
|
|
1037
1128
|
"examples": [
|
|
1038
|
-
"<%= config.bin %> <%= command.id %>
|
|
1039
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1040
|
-
"<%= config.bin %> <%= command.id %> --source . --out ./mj-install.zip",
|
|
1041
|
-
"<%= config.bin %> <%= command.id %> --tag v5.38.0 --with-migrations --out ./mj-install.zip",
|
|
1042
|
-
"<%= config.bin %> <%= command.id %> --with-migrations --db-platform postgresql --out ./mj-install.zip"
|
|
1129
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1130
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
1043
1131
|
],
|
|
1044
1132
|
"flags": {
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
1047
|
-
"
|
|
1048
|
-
"name": "out",
|
|
1049
|
-
"required": true,
|
|
1050
|
-
"hasDynamicHelp": false,
|
|
1051
|
-
"multiple": false,
|
|
1052
|
-
"type": "option"
|
|
1053
|
-
},
|
|
1054
|
-
"tag": {
|
|
1055
|
-
"char": "t",
|
|
1056
|
-
"description": "Release tag to bundle (e.g. v5.38.0). Defaults to the latest branch tip.",
|
|
1057
|
-
"name": "tag",
|
|
1133
|
+
"conversation-id": {
|
|
1134
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
1135
|
+
"name": "conversation-id",
|
|
1058
1136
|
"hasDynamicHelp": false,
|
|
1059
1137
|
"multiple": false,
|
|
1060
1138
|
"type": "option"
|
|
1061
1139
|
},
|
|
1062
|
-
"
|
|
1063
|
-
"description": "
|
|
1064
|
-
"name": "
|
|
1140
|
+
"since": {
|
|
1141
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
1142
|
+
"name": "since",
|
|
1065
1143
|
"hasDynamicHelp": false,
|
|
1066
1144
|
"multiple": false,
|
|
1067
1145
|
"type": "option"
|
|
1068
1146
|
},
|
|
1069
|
-
"
|
|
1070
|
-
"description": "
|
|
1071
|
-
"name": "
|
|
1072
|
-
"
|
|
1073
|
-
"type": "boolean"
|
|
1074
|
-
},
|
|
1075
|
-
"db-platform": {
|
|
1076
|
-
"dependsOn": [
|
|
1077
|
-
"with-migrations"
|
|
1078
|
-
],
|
|
1079
|
-
"description": "With --with-migrations, ship only this platform's migration tree instead of both",
|
|
1080
|
-
"name": "db-platform",
|
|
1147
|
+
"limit": {
|
|
1148
|
+
"description": "Maximum number of rows to inspect.",
|
|
1149
|
+
"name": "limit",
|
|
1150
|
+
"default": 100,
|
|
1081
1151
|
"hasDynamicHelp": false,
|
|
1082
1152
|
"multiple": false,
|
|
1083
|
-
"options": [
|
|
1084
|
-
"sqlserver",
|
|
1085
|
-
"postgresql"
|
|
1086
|
-
],
|
|
1087
1153
|
"type": "option"
|
|
1088
1154
|
},
|
|
1089
|
-
"
|
|
1090
|
-
"description": "
|
|
1091
|
-
"name": "
|
|
1155
|
+
"apply": {
|
|
1156
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
1157
|
+
"name": "apply",
|
|
1092
1158
|
"allowNo": false,
|
|
1093
1159
|
"type": "boolean"
|
|
1094
1160
|
},
|
|
1095
1161
|
"verbose": {
|
|
1096
1162
|
"char": "v",
|
|
1097
|
-
"description": "
|
|
1098
|
-
"name": "verbose",
|
|
1099
|
-
"allowNo": false,
|
|
1100
|
-
"type": "boolean"
|
|
1101
|
-
}
|
|
1102
|
-
},
|
|
1103
|
-
"hasDynamicHelp": false,
|
|
1104
|
-
"hiddenAliases": [],
|
|
1105
|
-
"id": "bundle",
|
|
1106
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1107
|
-
"pluginName": "@memberjunction/cli",
|
|
1108
|
-
"pluginType": "core",
|
|
1109
|
-
"strict": true,
|
|
1110
|
-
"enableJsonFlag": false,
|
|
1111
|
-
"isESM": true,
|
|
1112
|
-
"relativePath": [
|
|
1113
|
-
"dist",
|
|
1114
|
-
"commands",
|
|
1115
|
-
"bundle",
|
|
1116
|
-
"index.js"
|
|
1117
|
-
]
|
|
1118
|
-
},
|
|
1119
|
-
"bundle:usage": {
|
|
1120
|
-
"aliases": [],
|
|
1121
|
-
"args": {},
|
|
1122
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj bundle` command.",
|
|
1123
|
-
"flags": {
|
|
1124
|
-
"format": {
|
|
1125
|
-
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
1126
|
-
"name": "format",
|
|
1127
|
-
"hasDynamicHelp": false,
|
|
1128
|
-
"multiple": false,
|
|
1129
|
-
"options": [
|
|
1130
|
-
"text",
|
|
1131
|
-
"json",
|
|
1132
|
-
"md"
|
|
1133
|
-
],
|
|
1134
|
-
"type": "option"
|
|
1135
|
-
}
|
|
1136
|
-
},
|
|
1137
|
-
"hasDynamicHelp": false,
|
|
1138
|
-
"hiddenAliases": [],
|
|
1139
|
-
"id": "bundle:usage",
|
|
1140
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1141
|
-
"pluginName": "@memberjunction/cli",
|
|
1142
|
-
"pluginType": "core",
|
|
1143
|
-
"strict": true,
|
|
1144
|
-
"enableJsonFlag": false,
|
|
1145
|
-
"isESM": true,
|
|
1146
|
-
"relativePath": [
|
|
1147
|
-
"dist",
|
|
1148
|
-
"commands",
|
|
1149
|
-
"bundle",
|
|
1150
|
-
"usage.js"
|
|
1151
|
-
]
|
|
1152
|
-
},
|
|
1153
|
-
"clean": {
|
|
1154
|
-
"aliases": [],
|
|
1155
|
-
"args": {},
|
|
1156
|
-
"description": "Resets the MemberJunction database to a pre-installation state",
|
|
1157
|
-
"examples": [
|
|
1158
|
-
"<%= config.bin %> <%= command.id %>\n"
|
|
1159
|
-
],
|
|
1160
|
-
"flags": {
|
|
1161
|
-
"verbose": {
|
|
1162
|
-
"char": "v",
|
|
1163
|
-
"description": "Enable additional logging",
|
|
1163
|
+
"description": "Print every candidate row, not just the summary.",
|
|
1164
1164
|
"name": "verbose",
|
|
1165
1165
|
"allowNo": false,
|
|
1166
1166
|
"type": "boolean"
|
|
@@ -1168,7 +1168,7 @@
|
|
|
1168
1168
|
},
|
|
1169
1169
|
"hasDynamicHelp": false,
|
|
1170
1170
|
"hiddenAliases": [],
|
|
1171
|
-
"id": "
|
|
1171
|
+
"id": "artifacts:reclassify",
|
|
1172
1172
|
"pluginAlias": "@memberjunction/cli",
|
|
1173
1173
|
"pluginName": "@memberjunction/cli",
|
|
1174
1174
|
"pluginType": "core",
|
|
@@ -1178,14 +1178,14 @@
|
|
|
1178
1178
|
"relativePath": [
|
|
1179
1179
|
"dist",
|
|
1180
1180
|
"commands",
|
|
1181
|
-
"
|
|
1182
|
-
"
|
|
1181
|
+
"artifacts",
|
|
1182
|
+
"reclassify.js"
|
|
1183
1183
|
]
|
|
1184
1184
|
},
|
|
1185
|
-
"
|
|
1185
|
+
"artifacts:usage": {
|
|
1186
1186
|
"aliases": [],
|
|
1187
1187
|
"args": {},
|
|
1188
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
1188
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj artifacts` command.",
|
|
1189
1189
|
"flags": {
|
|
1190
1190
|
"format": {
|
|
1191
1191
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -1202,7 +1202,7 @@
|
|
|
1202
1202
|
},
|
|
1203
1203
|
"hasDynamicHelp": false,
|
|
1204
1204
|
"hiddenAliases": [],
|
|
1205
|
-
"id": "
|
|
1205
|
+
"id": "artifacts:usage",
|
|
1206
1206
|
"pluginAlias": "@memberjunction/cli",
|
|
1207
1207
|
"pluginName": "@memberjunction/cli",
|
|
1208
1208
|
"pluginType": "core",
|
|
@@ -1212,7 +1212,7 @@
|
|
|
1212
1212
|
"relativePath": [
|
|
1213
1213
|
"dist",
|
|
1214
1214
|
"commands",
|
|
1215
|
-
"
|
|
1215
|
+
"artifacts",
|
|
1216
1216
|
"usage.js"
|
|
1217
1217
|
]
|
|
1218
1218
|
},
|
|
@@ -1488,6 +1488,12 @@
|
|
|
1488
1488
|
"allowNo": false,
|
|
1489
1489
|
"type": "boolean"
|
|
1490
1490
|
},
|
|
1491
|
+
"no-app-packages": {
|
|
1492
|
+
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
1493
|
+
"name": "no-app-packages",
|
|
1494
|
+
"allowNo": false,
|
|
1495
|
+
"type": "boolean"
|
|
1496
|
+
},
|
|
1491
1497
|
"interactive": {
|
|
1492
1498
|
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
1493
1499
|
"name": "interactive",
|
|
@@ -1511,6 +1517,25 @@
|
|
|
1511
1517
|
"name": "force-advanced-gen",
|
|
1512
1518
|
"allowNo": false,
|
|
1513
1519
|
"type": "boolean"
|
|
1520
|
+
},
|
|
1521
|
+
"no-ai": {
|
|
1522
|
+
"description": "Disable AI-driven advanced generation (descriptions, categories, search ranking). Overrides config and credential checks. Can also be set with MJ_CODEGEN_NO_AI=1.",
|
|
1523
|
+
"name": "no-ai",
|
|
1524
|
+
"allowNo": false,
|
|
1525
|
+
"type": "boolean"
|
|
1526
|
+
},
|
|
1527
|
+
"sql-output-dir": {
|
|
1528
|
+
"description": "Directory for CodeGen_Run_*.sql (EntityField INSERTs and other metadata SQL). Open Apps default to ./migrations/codegen. Do not point this at MJ/migrations/v*.",
|
|
1529
|
+
"name": "sql-output-dir",
|
|
1530
|
+
"hasDynamicHelp": false,
|
|
1531
|
+
"multiple": false,
|
|
1532
|
+
"type": "option"
|
|
1533
|
+
},
|
|
1534
|
+
"skip-commands": {
|
|
1535
|
+
"description": "Skip running BEFORE and AFTER shell commands configured in mj.config. Can also be set with MJ_CODEGEN_SKIP_COMMANDS=1.",
|
|
1536
|
+
"name": "skip-commands",
|
|
1537
|
+
"allowNo": false,
|
|
1538
|
+
"type": "boolean"
|
|
1514
1539
|
}
|
|
1515
1540
|
},
|
|
1516
1541
|
"hasDynamicHelp": false,
|
|
@@ -1542,6 +1567,21 @@
|
|
|
1542
1567
|
"type": "boolean",
|
|
1543
1568
|
"description": "Re-run advanced generation for all entities"
|
|
1544
1569
|
},
|
|
1570
|
+
{
|
|
1571
|
+
"name": "--no-ai",
|
|
1572
|
+
"type": "boolean",
|
|
1573
|
+
"description": "Disable AI-driven advanced generation (same as MJ_CODEGEN_NO_AI=1)"
|
|
1574
|
+
},
|
|
1575
|
+
{
|
|
1576
|
+
"name": "--skip-commands",
|
|
1577
|
+
"type": "boolean",
|
|
1578
|
+
"description": "Skip running BEFORE/AFTER commands (same as MJ_CODEGEN_SKIP_COMMANDS=1)"
|
|
1579
|
+
},
|
|
1580
|
+
{
|
|
1581
|
+
"name": "--sql-output-dir",
|
|
1582
|
+
"type": "string",
|
|
1583
|
+
"description": "Directory for CodeGen_Run metadata SQL (Open Apps: ./migrations/codegen)"
|
|
1584
|
+
},
|
|
1545
1585
|
{
|
|
1546
1586
|
"name": "--format",
|
|
1547
1587
|
"type": "text|json|md",
|
|
@@ -1551,6 +1591,7 @@
|
|
|
1551
1591
|
"examples": [
|
|
1552
1592
|
"mj codegen",
|
|
1553
1593
|
"mj codegen --skipdb",
|
|
1594
|
+
"mj codegen --skip-commands",
|
|
1554
1595
|
"mj codegen --format=json"
|
|
1555
1596
|
],
|
|
1556
1597
|
"runtime": {
|
|
@@ -2613,84 +2654,6 @@
|
|
|
2613
2654
|
"usage.js"
|
|
2614
2655
|
]
|
|
2615
2656
|
},
|
|
2616
|
-
"plugin:add": {
|
|
2617
|
-
"aliases": [],
|
|
2618
|
-
"args": {
|
|
2619
|
-
"package": {
|
|
2620
|
-
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
2621
|
-
"name": "package",
|
|
2622
|
-
"required": true
|
|
2623
|
-
}
|
|
2624
|
-
},
|
|
2625
|
-
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
2626
|
-
"examples": [
|
|
2627
|
-
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
2628
|
-
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
2629
|
-
],
|
|
2630
|
-
"flags": {
|
|
2631
|
-
"format": {
|
|
2632
|
-
"description": "Output format",
|
|
2633
|
-
"name": "format",
|
|
2634
|
-
"default": "text",
|
|
2635
|
-
"hasDynamicHelp": false,
|
|
2636
|
-
"multiple": false,
|
|
2637
|
-
"options": [
|
|
2638
|
-
"text",
|
|
2639
|
-
"json"
|
|
2640
|
-
],
|
|
2641
|
-
"type": "option"
|
|
2642
|
-
}
|
|
2643
|
-
},
|
|
2644
|
-
"hasDynamicHelp": false,
|
|
2645
|
-
"hiddenAliases": [],
|
|
2646
|
-
"id": "plugin:add",
|
|
2647
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2648
|
-
"pluginName": "@memberjunction/cli",
|
|
2649
|
-
"pluginType": "core",
|
|
2650
|
-
"strict": true,
|
|
2651
|
-
"enableJsonFlag": false,
|
|
2652
|
-
"isESM": true,
|
|
2653
|
-
"relativePath": [
|
|
2654
|
-
"dist",
|
|
2655
|
-
"commands",
|
|
2656
|
-
"plugin",
|
|
2657
|
-
"add.js"
|
|
2658
|
-
]
|
|
2659
|
-
},
|
|
2660
|
-
"plugin:usage": {
|
|
2661
|
-
"aliases": [],
|
|
2662
|
-
"args": {},
|
|
2663
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj plugin` command.",
|
|
2664
|
-
"flags": {
|
|
2665
|
-
"format": {
|
|
2666
|
-
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
2667
|
-
"name": "format",
|
|
2668
|
-
"hasDynamicHelp": false,
|
|
2669
|
-
"multiple": false,
|
|
2670
|
-
"options": [
|
|
2671
|
-
"text",
|
|
2672
|
-
"json",
|
|
2673
|
-
"md"
|
|
2674
|
-
],
|
|
2675
|
-
"type": "option"
|
|
2676
|
-
}
|
|
2677
|
-
},
|
|
2678
|
-
"hasDynamicHelp": false,
|
|
2679
|
-
"hiddenAliases": [],
|
|
2680
|
-
"id": "plugin:usage",
|
|
2681
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2682
|
-
"pluginName": "@memberjunction/cli",
|
|
2683
|
-
"pluginType": "core",
|
|
2684
|
-
"strict": true,
|
|
2685
|
-
"enableJsonFlag": false,
|
|
2686
|
-
"isESM": true,
|
|
2687
|
-
"relativePath": [
|
|
2688
|
-
"dist",
|
|
2689
|
-
"commands",
|
|
2690
|
-
"plugin",
|
|
2691
|
-
"usage.js"
|
|
2692
|
-
]
|
|
2693
|
-
},
|
|
2694
2657
|
"migrate:convert": {
|
|
2695
2658
|
"aliases": [],
|
|
2696
2659
|
"args": {},
|
|
@@ -3030,21 +2993,99 @@
|
|
|
3030
2993
|
"usage.js"
|
|
3031
2994
|
]
|
|
3032
2995
|
},
|
|
3033
|
-
"
|
|
2996
|
+
"plugin:add": {
|
|
3034
2997
|
"aliases": [],
|
|
3035
|
-
"args": {
|
|
3036
|
-
|
|
2998
|
+
"args": {
|
|
2999
|
+
"package": {
|
|
3000
|
+
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
3001
|
+
"name": "package",
|
|
3002
|
+
"required": true
|
|
3003
|
+
}
|
|
3004
|
+
},
|
|
3005
|
+
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
3037
3006
|
"examples": [
|
|
3038
|
-
"<%= config.bin %> <%= command.id %>",
|
|
3039
|
-
"<%= config.bin %> <%= command.id %>
|
|
3040
|
-
"<%= config.bin %> <%= command.id %> --verbose"
|
|
3007
|
+
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
3008
|
+
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
3041
3009
|
],
|
|
3042
3010
|
"flags": {
|
|
3043
|
-
"
|
|
3044
|
-
"
|
|
3045
|
-
"
|
|
3046
|
-
"
|
|
3047
|
-
"
|
|
3011
|
+
"format": {
|
|
3012
|
+
"description": "Output format",
|
|
3013
|
+
"name": "format",
|
|
3014
|
+
"default": "text",
|
|
3015
|
+
"hasDynamicHelp": false,
|
|
3016
|
+
"multiple": false,
|
|
3017
|
+
"options": [
|
|
3018
|
+
"text",
|
|
3019
|
+
"json"
|
|
3020
|
+
],
|
|
3021
|
+
"type": "option"
|
|
3022
|
+
}
|
|
3023
|
+
},
|
|
3024
|
+
"hasDynamicHelp": false,
|
|
3025
|
+
"hiddenAliases": [],
|
|
3026
|
+
"id": "plugin:add",
|
|
3027
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3028
|
+
"pluginName": "@memberjunction/cli",
|
|
3029
|
+
"pluginType": "core",
|
|
3030
|
+
"strict": true,
|
|
3031
|
+
"enableJsonFlag": false,
|
|
3032
|
+
"isESM": true,
|
|
3033
|
+
"relativePath": [
|
|
3034
|
+
"dist",
|
|
3035
|
+
"commands",
|
|
3036
|
+
"plugin",
|
|
3037
|
+
"add.js"
|
|
3038
|
+
]
|
|
3039
|
+
},
|
|
3040
|
+
"plugin:usage": {
|
|
3041
|
+
"aliases": [],
|
|
3042
|
+
"args": {},
|
|
3043
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj plugin` command.",
|
|
3044
|
+
"flags": {
|
|
3045
|
+
"format": {
|
|
3046
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
3047
|
+
"name": "format",
|
|
3048
|
+
"hasDynamicHelp": false,
|
|
3049
|
+
"multiple": false,
|
|
3050
|
+
"options": [
|
|
3051
|
+
"text",
|
|
3052
|
+
"json",
|
|
3053
|
+
"md"
|
|
3054
|
+
],
|
|
3055
|
+
"type": "option"
|
|
3056
|
+
}
|
|
3057
|
+
},
|
|
3058
|
+
"hasDynamicHelp": false,
|
|
3059
|
+
"hiddenAliases": [],
|
|
3060
|
+
"id": "plugin:usage",
|
|
3061
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3062
|
+
"pluginName": "@memberjunction/cli",
|
|
3063
|
+
"pluginType": "core",
|
|
3064
|
+
"strict": true,
|
|
3065
|
+
"enableJsonFlag": false,
|
|
3066
|
+
"isESM": true,
|
|
3067
|
+
"relativePath": [
|
|
3068
|
+
"dist",
|
|
3069
|
+
"commands",
|
|
3070
|
+
"plugin",
|
|
3071
|
+
"usage.js"
|
|
3072
|
+
]
|
|
3073
|
+
},
|
|
3074
|
+
"querygen:export": {
|
|
3075
|
+
"aliases": [],
|
|
3076
|
+
"args": {},
|
|
3077
|
+
"description": "Export queries from database to metadata files",
|
|
3078
|
+
"examples": [
|
|
3079
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3080
|
+
"<%= config.bin %> <%= command.id %> --output ./metadata/queries",
|
|
3081
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
3082
|
+
],
|
|
3083
|
+
"flags": {
|
|
3084
|
+
"output": {
|
|
3085
|
+
"char": "o",
|
|
3086
|
+
"description": "Output directory",
|
|
3087
|
+
"name": "output",
|
|
3088
|
+
"default": "./metadata/queries",
|
|
3048
3089
|
"hasDynamicHelp": false,
|
|
3049
3090
|
"multiple": false,
|
|
3050
3091
|
"type": "option"
|
|
@@ -3721,110 +3762,60 @@
|
|
|
3721
3762
|
"usage.js"
|
|
3722
3763
|
]
|
|
3723
3764
|
},
|
|
3724
|
-
"
|
|
3765
|
+
"sync:file-reset": {
|
|
3725
3766
|
"aliases": [],
|
|
3726
|
-
"args": {
|
|
3727
|
-
|
|
3728
|
-
"description": "First test run ID to compare",
|
|
3729
|
-
"name": "runId1",
|
|
3730
|
-
"required": false
|
|
3731
|
-
},
|
|
3732
|
-
"runId2": {
|
|
3733
|
-
"description": "Second test run ID to compare",
|
|
3734
|
-
"name": "runId2",
|
|
3735
|
-
"required": false
|
|
3736
|
-
}
|
|
3737
|
-
},
|
|
3738
|
-
"description": "Compare test runs for regression detection",
|
|
3767
|
+
"args": {},
|
|
3768
|
+
"description": "Reset file metadata sections",
|
|
3739
3769
|
"examples": [
|
|
3740
3770
|
"<%= config.bin %> <%= command.id %>",
|
|
3741
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3742
|
-
"<%= config.bin %> <%= command.id %>
|
|
3743
|
-
"<%= config.bin %> <%= command.id %>
|
|
3744
|
-
"<%= config.bin %> <%= command.id %> -c abc1234 -c def5678",
|
|
3745
|
-
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
3746
|
-
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
3771
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
3772
|
+
"<%= config.bin %> <%= command.id %> --sections=\"dependencies,references\"",
|
|
3773
|
+
"<%= config.bin %> <%= command.id %> --all"
|
|
3747
3774
|
],
|
|
3748
3775
|
"flags": {
|
|
3749
|
-
"
|
|
3750
|
-
"
|
|
3751
|
-
"
|
|
3752
|
-
"name": "version",
|
|
3776
|
+
"dir": {
|
|
3777
|
+
"description": "Specific entity directory to reset",
|
|
3778
|
+
"name": "dir",
|
|
3753
3779
|
"hasDynamicHelp": false,
|
|
3754
|
-
"multiple":
|
|
3780
|
+
"multiple": false,
|
|
3755
3781
|
"type": "option"
|
|
3756
3782
|
},
|
|
3757
|
-
"
|
|
3758
|
-
"
|
|
3759
|
-
"
|
|
3760
|
-
"name": "commit",
|
|
3783
|
+
"sections": {
|
|
3784
|
+
"description": "Comma-separated list of sections to reset (dependencies,references,related,lookup)",
|
|
3785
|
+
"name": "sections",
|
|
3761
3786
|
"hasDynamicHelp": false,
|
|
3762
|
-
"multiple":
|
|
3787
|
+
"multiple": false,
|
|
3763
3788
|
"type": "option"
|
|
3764
3789
|
},
|
|
3765
|
-
"
|
|
3766
|
-
"description": "
|
|
3767
|
-
"name": "
|
|
3790
|
+
"all": {
|
|
3791
|
+
"description": "Reset all metadata sections",
|
|
3792
|
+
"name": "all",
|
|
3768
3793
|
"allowNo": false,
|
|
3769
3794
|
"type": "boolean"
|
|
3770
3795
|
},
|
|
3771
|
-
"
|
|
3772
|
-
"
|
|
3773
|
-
"
|
|
3774
|
-
"name": "latest",
|
|
3796
|
+
"dry-run": {
|
|
3797
|
+
"description": "Show what would be reset without actually resetting",
|
|
3798
|
+
"name": "dry-run",
|
|
3775
3799
|
"allowNo": false,
|
|
3776
3800
|
"type": "boolean"
|
|
3777
3801
|
},
|
|
3778
|
-
"
|
|
3779
|
-
"description": "
|
|
3780
|
-
"name": "
|
|
3781
|
-
"
|
|
3782
|
-
"
|
|
3783
|
-
"type": "option"
|
|
3784
|
-
},
|
|
3785
|
-
"format": {
|
|
3786
|
-
"char": "f",
|
|
3787
|
-
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
3788
|
-
"name": "format",
|
|
3789
|
-
"hasDynamicHelp": false,
|
|
3790
|
-
"multiple": false,
|
|
3791
|
-
"options": [
|
|
3792
|
-
"text",
|
|
3793
|
-
"json",
|
|
3794
|
-
"md",
|
|
3795
|
-
"human",
|
|
3796
|
-
"console",
|
|
3797
|
-
"markdown",
|
|
3798
|
-
"compact",
|
|
3799
|
-
"table"
|
|
3800
|
-
],
|
|
3801
|
-
"type": "option"
|
|
3802
|
-
},
|
|
3803
|
-
"output": {
|
|
3804
|
-
"char": "o",
|
|
3805
|
-
"description": "Output file path",
|
|
3806
|
-
"name": "output",
|
|
3807
|
-
"hasDynamicHelp": false,
|
|
3808
|
-
"multiple": false,
|
|
3809
|
-
"type": "option"
|
|
3802
|
+
"force": {
|
|
3803
|
+
"description": "Skip confirmation prompts",
|
|
3804
|
+
"name": "force",
|
|
3805
|
+
"allowNo": false,
|
|
3806
|
+
"type": "boolean"
|
|
3810
3807
|
},
|
|
3811
3808
|
"verbose": {
|
|
3812
|
-
"
|
|
3809
|
+
"char": "v",
|
|
3810
|
+
"description": "Show detailed output",
|
|
3813
3811
|
"name": "verbose",
|
|
3814
3812
|
"allowNo": false,
|
|
3815
3813
|
"type": "boolean"
|
|
3816
|
-
},
|
|
3817
|
-
"tag": {
|
|
3818
|
-
"description": "Filter suite runs by tag (matches against MJTestSuiteRunEntity.Tags). Useful for isolating runs from a specific source environment in an archive MJ. DB mode only — --from-json ignores this flag.",
|
|
3819
|
-
"name": "tag",
|
|
3820
|
-
"hasDynamicHelp": false,
|
|
3821
|
-
"multiple": false,
|
|
3822
|
-
"type": "option"
|
|
3823
3814
|
}
|
|
3824
3815
|
},
|
|
3825
3816
|
"hasDynamicHelp": false,
|
|
3826
3817
|
"hiddenAliases": [],
|
|
3827
|
-
"id": "
|
|
3818
|
+
"id": "sync:file-reset",
|
|
3828
3819
|
"pluginAlias": "@memberjunction/cli",
|
|
3829
3820
|
"pluginName": "@memberjunction/cli",
|
|
3830
3821
|
"pluginType": "core",
|
|
@@ -3834,119 +3825,69 @@
|
|
|
3834
3825
|
"relativePath": [
|
|
3835
3826
|
"dist",
|
|
3836
3827
|
"commands",
|
|
3837
|
-
"
|
|
3838
|
-
"
|
|
3828
|
+
"sync",
|
|
3829
|
+
"file-reset.js"
|
|
3839
3830
|
]
|
|
3840
3831
|
},
|
|
3841
|
-
"
|
|
3832
|
+
"sync:init": {
|
|
3842
3833
|
"aliases": [],
|
|
3843
3834
|
"args": {},
|
|
3844
|
-
"description": "
|
|
3835
|
+
"description": "Initialize a directory for metadata synchronization.\n\nPrompts at a terminal; runs unattended when piped, spawned, or in CI. To script it,\npass --setup-entity (and --entity/--dir when setting up \"other\").",
|
|
3845
3836
|
"examples": [
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
"<%= config.bin %> <%= command.id %> --since=\"2024-01-01\"",
|
|
3850
|
-
"<%= config.bin %> <%= command.id %> --limit=50"
|
|
3851
|
-
],
|
|
3852
|
-
"flags": {
|
|
3853
|
-
"test": {
|
|
3854
|
-
"char": "t",
|
|
3855
|
-
"description": "Filter by test ID",
|
|
3856
|
-
"name": "test",
|
|
3857
|
-
"hasDynamicHelp": false,
|
|
3858
|
-
"multiple": false,
|
|
3859
|
-
"type": "option"
|
|
3837
|
+
{
|
|
3838
|
+
"command": "<%= config.bin %> <%= command.id %> --setup-entity=no",
|
|
3839
|
+
"description": "Initialize with no entity directory"
|
|
3860
3840
|
},
|
|
3861
|
-
|
|
3862
|
-
"
|
|
3863
|
-
"description": "
|
|
3864
|
-
"name": "recent",
|
|
3865
|
-
"hasDynamicHelp": false,
|
|
3866
|
-
"multiple": false,
|
|
3867
|
-
"type": "option"
|
|
3841
|
+
{
|
|
3842
|
+
"command": "<%= config.bin %> <%= command.id %> --setup-entity=ai-prompts",
|
|
3843
|
+
"description": "Initialize and set up the AI Prompts directory"
|
|
3868
3844
|
},
|
|
3869
|
-
|
|
3870
|
-
"
|
|
3871
|
-
"
|
|
3845
|
+
{
|
|
3846
|
+
"command": "<%= config.bin %> <%= command.id %> --setup-entity=other --entity=\"MJ: AI Models\" --dir=ai-models",
|
|
3847
|
+
"description": "Initialize for an arbitrary entity"
|
|
3848
|
+
},
|
|
3849
|
+
{
|
|
3850
|
+
"command": "<%= config.bin %> <%= command.id %> --no-interactive --setup-entity=no",
|
|
3851
|
+
"description": "Never prompt, even at a terminal"
|
|
3852
|
+
}
|
|
3853
|
+
],
|
|
3854
|
+
"flags": {
|
|
3855
|
+
"setup-entity": {
|
|
3856
|
+
"description": "Which entity directory to set up. Use \"no\" to skip.",
|
|
3857
|
+
"name": "setup-entity",
|
|
3872
3858
|
"hasDynamicHelp": false,
|
|
3873
3859
|
"multiple": false,
|
|
3860
|
+
"options": [
|
|
3861
|
+
"ai-prompts",
|
|
3862
|
+
"other",
|
|
3863
|
+
"no"
|
|
3864
|
+
],
|
|
3874
3865
|
"type": "option"
|
|
3875
3866
|
},
|
|
3876
|
-
"
|
|
3877
|
-
"
|
|
3878
|
-
"
|
|
3879
|
-
"name": "status",
|
|
3867
|
+
"entity": {
|
|
3868
|
+
"description": "Entity name when --setup-entity=other (e.g. \"MJ: AI Models\").",
|
|
3869
|
+
"name": "entity",
|
|
3880
3870
|
"hasDynamicHelp": false,
|
|
3881
3871
|
"multiple": false,
|
|
3882
3872
|
"type": "option"
|
|
3883
3873
|
},
|
|
3884
|
-
"
|
|
3885
|
-
"
|
|
3886
|
-
"
|
|
3887
|
-
"name": "format",
|
|
3874
|
+
"dir": {
|
|
3875
|
+
"description": "Directory name when --setup-entity=other. Defaults to a slug of --entity.",
|
|
3876
|
+
"name": "dir",
|
|
3888
3877
|
"hasDynamicHelp": false,
|
|
3889
3878
|
"multiple": false,
|
|
3890
|
-
"options": [
|
|
3891
|
-
"text",
|
|
3892
|
-
"json",
|
|
3893
|
-
"md",
|
|
3894
|
-
"human",
|
|
3895
|
-
"console",
|
|
3896
|
-
"markdown",
|
|
3897
|
-
"compact",
|
|
3898
|
-
"table"
|
|
3899
|
-
],
|
|
3900
3879
|
"type": "option"
|
|
3901
3880
|
},
|
|
3902
|
-
"
|
|
3903
|
-
"
|
|
3904
|
-
"
|
|
3905
|
-
"
|
|
3906
|
-
"hasDynamicHelp": false,
|
|
3907
|
-
"multiple": false,
|
|
3908
|
-
"type": "option"
|
|
3909
|
-
},
|
|
3910
|
-
"verbose": {
|
|
3911
|
-
"char": "v",
|
|
3912
|
-
"description": "Show detailed information",
|
|
3913
|
-
"name": "verbose",
|
|
3914
|
-
"allowNo": false,
|
|
3881
|
+
"overwrite": {
|
|
3882
|
+
"description": "Overwrite an existing configuration. Without this, an initialized directory is left untouched.",
|
|
3883
|
+
"name": "overwrite",
|
|
3884
|
+
"allowNo": true,
|
|
3915
3885
|
"type": "boolean"
|
|
3916
3886
|
}
|
|
3917
3887
|
},
|
|
3918
3888
|
"hasDynamicHelp": false,
|
|
3919
3889
|
"hiddenAliases": [],
|
|
3920
|
-
"id": "
|
|
3921
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3922
|
-
"pluginName": "@memberjunction/cli",
|
|
3923
|
-
"pluginType": "core",
|
|
3924
|
-
"strict": true,
|
|
3925
|
-
"enableJsonFlag": false,
|
|
3926
|
-
"isESM": true,
|
|
3927
|
-
"relativePath": [
|
|
3928
|
-
"dist",
|
|
3929
|
-
"commands",
|
|
3930
|
-
"test",
|
|
3931
|
-
"history.js"
|
|
3932
|
-
]
|
|
3933
|
-
},
|
|
3934
|
-
"test": {
|
|
3935
|
-
"aliases": [],
|
|
3936
|
-
"args": {},
|
|
3937
|
-
"description": "MemberJunction Testing Framework - Execute and manage tests",
|
|
3938
|
-
"examples": [
|
|
3939
|
-
"<%= config.bin %> <%= command.id %> run <test-id>",
|
|
3940
|
-
"<%= config.bin %> <%= command.id %> run --name=\"Active Members Count\"",
|
|
3941
|
-
"<%= config.bin %> <%= command.id %> suite <suite-id>",
|
|
3942
|
-
"<%= config.bin %> <%= command.id %> list",
|
|
3943
|
-
"<%= config.bin %> <%= command.id %> list --suites",
|
|
3944
|
-
"<%= config.bin %> <%= command.id %> validate --all"
|
|
3945
|
-
],
|
|
3946
|
-
"flags": {},
|
|
3947
|
-
"hasDynamicHelp": false,
|
|
3948
|
-
"hiddenAliases": [],
|
|
3949
|
-
"id": "test",
|
|
3890
|
+
"id": "sync:init",
|
|
3950
3891
|
"pluginAlias": "@memberjunction/cli",
|
|
3951
3892
|
"pluginName": "@memberjunction/cli",
|
|
3952
3893
|
"pluginType": "core",
|
|
@@ -3956,61 +3897,22 @@
|
|
|
3956
3897
|
"relativePath": [
|
|
3957
3898
|
"dist",
|
|
3958
3899
|
"commands",
|
|
3959
|
-
"
|
|
3960
|
-
"
|
|
3900
|
+
"sync",
|
|
3901
|
+
"init.js"
|
|
3961
3902
|
]
|
|
3962
3903
|
},
|
|
3963
|
-
"
|
|
3904
|
+
"sync:pull": {
|
|
3964
3905
|
"aliases": [],
|
|
3965
3906
|
"args": {},
|
|
3966
|
-
"description": "
|
|
3907
|
+
"description": "Pull metadata from database to local files",
|
|
3967
3908
|
"examples": [
|
|
3968
|
-
"<%= config.bin %> <%= command.id %>",
|
|
3969
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3970
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3971
|
-
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
3972
|
-
"<%= config.bin %> <%= command.id %> --tag=smoke",
|
|
3973
|
-
"<%= config.bin %> <%= command.id %> --status=active --verbose"
|
|
3909
|
+
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Prompts\"",
|
|
3910
|
+
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Agents\" --merge-strategy=overwrite",
|
|
3911
|
+
"<%= config.bin %> <%= command.id %> --entity=\"Templates\" --dry-run --verbose"
|
|
3974
3912
|
],
|
|
3975
3913
|
"flags": {
|
|
3976
|
-
"suites": {
|
|
3977
|
-
"description": "List test suites instead of tests",
|
|
3978
|
-
"name": "suites",
|
|
3979
|
-
"allowNo": false,
|
|
3980
|
-
"type": "boolean"
|
|
3981
|
-
},
|
|
3982
|
-
"types": {
|
|
3983
|
-
"description": "List test types",
|
|
3984
|
-
"name": "types",
|
|
3985
|
-
"allowNo": false,
|
|
3986
|
-
"type": "boolean"
|
|
3987
|
-
},
|
|
3988
|
-
"type": {
|
|
3989
|
-
"char": "t",
|
|
3990
|
-
"description": "Filter by test type",
|
|
3991
|
-
"name": "type",
|
|
3992
|
-
"hasDynamicHelp": false,
|
|
3993
|
-
"multiple": false,
|
|
3994
|
-
"type": "option"
|
|
3995
|
-
},
|
|
3996
|
-
"tag": {
|
|
3997
|
-
"description": "Filter by tag",
|
|
3998
|
-
"name": "tag",
|
|
3999
|
-
"hasDynamicHelp": false,
|
|
4000
|
-
"multiple": false,
|
|
4001
|
-
"type": "option"
|
|
4002
|
-
},
|
|
4003
|
-
"status": {
|
|
4004
|
-
"char": "s",
|
|
4005
|
-
"description": "Filter by status",
|
|
4006
|
-
"name": "status",
|
|
4007
|
-
"hasDynamicHelp": false,
|
|
4008
|
-
"multiple": false,
|
|
4009
|
-
"type": "option"
|
|
4010
|
-
},
|
|
4011
3914
|
"format": {
|
|
4012
|
-
"
|
|
4013
|
-
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
3915
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced). Defaults to text on a terminal and json when stdout is piped.",
|
|
4014
3916
|
"name": "format",
|
|
4015
3917
|
"hasDynamicHelp": false,
|
|
4016
3918
|
"multiple": false,
|
|
@@ -4020,127 +3922,137 @@
|
|
|
4020
3922
|
"md",
|
|
4021
3923
|
"human",
|
|
4022
3924
|
"console",
|
|
4023
|
-
"markdown"
|
|
4024
|
-
"compact",
|
|
4025
|
-
"table"
|
|
3925
|
+
"markdown"
|
|
4026
3926
|
],
|
|
4027
3927
|
"type": "option"
|
|
4028
3928
|
},
|
|
4029
|
-
"output": {
|
|
4030
|
-
"char": "o",
|
|
4031
|
-
"description": "Output file path",
|
|
4032
|
-
"name": "output",
|
|
4033
|
-
"hasDynamicHelp": false,
|
|
4034
|
-
"multiple": false,
|
|
4035
|
-
"type": "option"
|
|
4036
|
-
},
|
|
4037
3929
|
"verbose": {
|
|
4038
3930
|
"char": "v",
|
|
4039
|
-
"description": "Show detailed
|
|
3931
|
+
"description": "Show detailed output",
|
|
4040
3932
|
"name": "verbose",
|
|
4041
3933
|
"allowNo": false,
|
|
4042
3934
|
"type": "boolean"
|
|
4043
|
-
}
|
|
4044
|
-
},
|
|
4045
|
-
"hasDynamicHelp": false,
|
|
4046
|
-
"hiddenAliases": [],
|
|
4047
|
-
"id": "test:list",
|
|
4048
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4049
|
-
"pluginName": "@memberjunction/cli",
|
|
4050
|
-
"pluginType": "core",
|
|
4051
|
-
"strict": true,
|
|
4052
|
-
"enableJsonFlag": false,
|
|
4053
|
-
"isESM": true,
|
|
4054
|
-
"relativePath": [
|
|
4055
|
-
"dist",
|
|
4056
|
-
"commands",
|
|
4057
|
-
"test",
|
|
4058
|
-
"list.js"
|
|
4059
|
-
]
|
|
4060
|
-
},
|
|
4061
|
-
"test:run": {
|
|
4062
|
-
"aliases": [],
|
|
4063
|
-
"args": {
|
|
4064
|
-
"testId": {
|
|
4065
|
-
"description": "Test ID to execute",
|
|
4066
|
-
"name": "testId",
|
|
4067
|
-
"required": false
|
|
4068
|
-
}
|
|
4069
|
-
},
|
|
4070
|
-
"description": "Execute a single test by ID or name",
|
|
4071
|
-
"examples": [
|
|
4072
|
-
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
4073
|
-
"<%= config.bin %> <%= command.id %> --name=\"Active Members Count\"",
|
|
4074
|
-
"<%= config.bin %> <%= command.id %> <test-id> --environment=staging",
|
|
4075
|
-
"<%= config.bin %> <%= command.id %> <test-id> --format=json --output=results.json",
|
|
4076
|
-
"<%= config.bin %> <%= command.id %> <test-id> --dry-run"
|
|
4077
|
-
],
|
|
4078
|
-
"flags": {
|
|
4079
|
-
"name": {
|
|
4080
|
-
"char": "n",
|
|
4081
|
-
"description": "Test name to execute",
|
|
4082
|
-
"name": "name",
|
|
4083
|
-
"hasDynamicHelp": false,
|
|
4084
|
-
"multiple": false,
|
|
4085
|
-
"type": "option"
|
|
4086
3935
|
},
|
|
4087
|
-
"
|
|
4088
|
-
"
|
|
4089
|
-
"
|
|
4090
|
-
"
|
|
3936
|
+
"no-banner": {
|
|
3937
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
3938
|
+
"name": "no-banner",
|
|
3939
|
+
"allowNo": false,
|
|
3940
|
+
"type": "boolean"
|
|
3941
|
+
},
|
|
3942
|
+
"no-app-packages": {
|
|
3943
|
+
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
3944
|
+
"name": "no-app-packages",
|
|
3945
|
+
"allowNo": false,
|
|
3946
|
+
"type": "boolean"
|
|
3947
|
+
},
|
|
3948
|
+
"interactive": {
|
|
3949
|
+
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
3950
|
+
"name": "interactive",
|
|
3951
|
+
"allowNo": true,
|
|
3952
|
+
"type": "boolean"
|
|
3953
|
+
},
|
|
3954
|
+
"entity": {
|
|
3955
|
+
"description": "Entity name to pull",
|
|
3956
|
+
"name": "entity",
|
|
3957
|
+
"required": true,
|
|
4091
3958
|
"hasDynamicHelp": false,
|
|
4092
3959
|
"multiple": false,
|
|
4093
3960
|
"type": "option"
|
|
4094
3961
|
},
|
|
4095
|
-
"
|
|
4096
|
-
"
|
|
4097
|
-
"
|
|
4098
|
-
"name": "format",
|
|
3962
|
+
"filter": {
|
|
3963
|
+
"description": "Additional filter for pulling specific records",
|
|
3964
|
+
"name": "filter",
|
|
4099
3965
|
"hasDynamicHelp": false,
|
|
4100
3966
|
"multiple": false,
|
|
4101
|
-
"options": [
|
|
4102
|
-
"text",
|
|
4103
|
-
"json",
|
|
4104
|
-
"md",
|
|
4105
|
-
"human",
|
|
4106
|
-
"console",
|
|
4107
|
-
"markdown",
|
|
4108
|
-
"compact",
|
|
4109
|
-
"table"
|
|
4110
|
-
],
|
|
4111
3967
|
"type": "option"
|
|
4112
3968
|
},
|
|
4113
|
-
"
|
|
4114
|
-
"
|
|
4115
|
-
"
|
|
4116
|
-
"
|
|
3969
|
+
"dry-run": {
|
|
3970
|
+
"description": "Show what would be pulled without actually pulling",
|
|
3971
|
+
"name": "dry-run",
|
|
3972
|
+
"allowNo": false,
|
|
3973
|
+
"type": "boolean"
|
|
3974
|
+
},
|
|
3975
|
+
"multi-file": {
|
|
3976
|
+
"description": "Create a single file with multiple records (provide filename)",
|
|
3977
|
+
"name": "multi-file",
|
|
4117
3978
|
"hasDynamicHelp": false,
|
|
4118
3979
|
"multiple": false,
|
|
4119
3980
|
"type": "option"
|
|
4120
3981
|
},
|
|
4121
|
-
"
|
|
4122
|
-
"description": "
|
|
4123
|
-
"name": "
|
|
3982
|
+
"no-validate": {
|
|
3983
|
+
"description": "Skip validation before pull",
|
|
3984
|
+
"name": "no-validate",
|
|
4124
3985
|
"allowNo": false,
|
|
4125
3986
|
"type": "boolean"
|
|
4126
3987
|
},
|
|
4127
|
-
"
|
|
4128
|
-
"
|
|
4129
|
-
"
|
|
4130
|
-
"name": "verbose",
|
|
3988
|
+
"update-existing": {
|
|
3989
|
+
"description": "Update existing records during pull",
|
|
3990
|
+
"name": "update-existing",
|
|
4131
3991
|
"allowNo": false,
|
|
4132
3992
|
"type": "boolean"
|
|
4133
3993
|
},
|
|
4134
|
-
"
|
|
4135
|
-
"description": "
|
|
4136
|
-
"name": "
|
|
3994
|
+
"create-new": {
|
|
3995
|
+
"description": "Create new files for records not found locally",
|
|
3996
|
+
"name": "create-new",
|
|
3997
|
+
"allowNo": false,
|
|
3998
|
+
"type": "boolean"
|
|
3999
|
+
},
|
|
4000
|
+
"backup-before-update": {
|
|
4001
|
+
"description": "Create backups before updating files",
|
|
4002
|
+
"name": "backup-before-update",
|
|
4003
|
+
"allowNo": false,
|
|
4004
|
+
"type": "boolean"
|
|
4005
|
+
},
|
|
4006
|
+
"merge-strategy": {
|
|
4007
|
+
"description": "Merge strategy for updates",
|
|
4008
|
+
"name": "merge-strategy",
|
|
4009
|
+
"default": "merge",
|
|
4137
4010
|
"hasDynamicHelp": false,
|
|
4138
4011
|
"multiple": false,
|
|
4012
|
+
"options": [
|
|
4013
|
+
"merge",
|
|
4014
|
+
"overwrite",
|
|
4015
|
+
"skip"
|
|
4016
|
+
],
|
|
4139
4017
|
"type": "option"
|
|
4140
4018
|
},
|
|
4141
|
-
"
|
|
4142
|
-
"description": "
|
|
4143
|
-
"name": "
|
|
4019
|
+
"backup-directory": {
|
|
4020
|
+
"description": "Custom backup directory (default: .backups)",
|
|
4021
|
+
"name": "backup-directory",
|
|
4022
|
+
"hasDynamicHelp": false,
|
|
4023
|
+
"multiple": false,
|
|
4024
|
+
"type": "option"
|
|
4025
|
+
},
|
|
4026
|
+
"preserve-fields": {
|
|
4027
|
+
"description": "Comma-separated list of fields to preserve during updates",
|
|
4028
|
+
"name": "preserve-fields",
|
|
4029
|
+
"hasDynamicHelp": false,
|
|
4030
|
+
"multiple": true,
|
|
4031
|
+
"type": "option"
|
|
4032
|
+
},
|
|
4033
|
+
"exclude-fields": {
|
|
4034
|
+
"description": "Comma-separated list of fields to exclude from pull",
|
|
4035
|
+
"name": "exclude-fields",
|
|
4036
|
+
"hasDynamicHelp": false,
|
|
4037
|
+
"multiple": true,
|
|
4038
|
+
"type": "option"
|
|
4039
|
+
},
|
|
4040
|
+
"target-dir": {
|
|
4041
|
+
"description": "Specific target directory (overrides auto-discovery)",
|
|
4042
|
+
"name": "target-dir",
|
|
4043
|
+
"hasDynamicHelp": false,
|
|
4044
|
+
"multiple": false,
|
|
4045
|
+
"type": "option"
|
|
4046
|
+
},
|
|
4047
|
+
"incremental": {
|
|
4048
|
+
"description": "Only pull records updated since last successful pull",
|
|
4049
|
+
"name": "incremental",
|
|
4050
|
+
"allowNo": false,
|
|
4051
|
+
"type": "boolean"
|
|
4052
|
+
},
|
|
4053
|
+
"since": {
|
|
4054
|
+
"description": "Only pull records updated after this ISO 8601 timestamp",
|
|
4055
|
+
"name": "since",
|
|
4144
4056
|
"hasDynamicHelp": false,
|
|
4145
4057
|
"multiple": false,
|
|
4146
4058
|
"type": "option"
|
|
@@ -4148,48 +4060,75 @@
|
|
|
4148
4060
|
},
|
|
4149
4061
|
"hasDynamicHelp": false,
|
|
4150
4062
|
"hiddenAliases": [],
|
|
4151
|
-
"id": "
|
|
4063
|
+
"id": "sync:pull",
|
|
4152
4064
|
"pluginAlias": "@memberjunction/cli",
|
|
4153
4065
|
"pluginName": "@memberjunction/cli",
|
|
4154
4066
|
"pluginType": "core",
|
|
4155
4067
|
"strict": true,
|
|
4156
4068
|
"enableJsonFlag": false,
|
|
4069
|
+
"Usage": {
|
|
4070
|
+
"domain": "sync",
|
|
4071
|
+
"command": "sync:pull",
|
|
4072
|
+
"summary": "Pull database records into local metadata files.",
|
|
4073
|
+
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
4074
|
+
"flags": [
|
|
4075
|
+
{
|
|
4076
|
+
"name": "--entity",
|
|
4077
|
+
"type": "string",
|
|
4078
|
+
"description": "Entity name to pull (required)"
|
|
4079
|
+
},
|
|
4080
|
+
{
|
|
4081
|
+
"name": "--filter",
|
|
4082
|
+
"type": "string",
|
|
4083
|
+
"description": "Extra SQL filter for which records to pull"
|
|
4084
|
+
},
|
|
4085
|
+
{
|
|
4086
|
+
"name": "--merge-strategy",
|
|
4087
|
+
"type": "merge|overwrite|skip",
|
|
4088
|
+
"description": "How to reconcile existing files"
|
|
4089
|
+
},
|
|
4090
|
+
{
|
|
4091
|
+
"name": "--dry-run",
|
|
4092
|
+
"type": "boolean",
|
|
4093
|
+
"description": "Report what would be pulled without writing"
|
|
4094
|
+
},
|
|
4095
|
+
{
|
|
4096
|
+
"name": "--format",
|
|
4097
|
+
"type": "text|json|md",
|
|
4098
|
+
"description": "Output format (json for machine-readable result)"
|
|
4099
|
+
}
|
|
4100
|
+
],
|
|
4101
|
+
"examples": [
|
|
4102
|
+
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
4103
|
+
"mj sync pull --entity=\"Actions\" --format=json"
|
|
4104
|
+
],
|
|
4105
|
+
"runtime": {
|
|
4106
|
+
"class": "variable",
|
|
4107
|
+
"typicalSeconds": 15,
|
|
4108
|
+
"note": "scales with number of records matched for --entity"
|
|
4109
|
+
}
|
|
4110
|
+
},
|
|
4157
4111
|
"isESM": true,
|
|
4158
4112
|
"relativePath": [
|
|
4159
4113
|
"dist",
|
|
4160
4114
|
"commands",
|
|
4161
|
-
"
|
|
4162
|
-
"
|
|
4115
|
+
"sync",
|
|
4116
|
+
"pull.js"
|
|
4163
4117
|
]
|
|
4164
4118
|
},
|
|
4165
|
-
"
|
|
4119
|
+
"sync:push": {
|
|
4166
4120
|
"aliases": [],
|
|
4167
|
-
"args": {
|
|
4168
|
-
|
|
4169
|
-
"description": "Test suite ID to execute",
|
|
4170
|
-
"name": "suiteId",
|
|
4171
|
-
"required": false
|
|
4172
|
-
}
|
|
4173
|
-
},
|
|
4174
|
-
"description": "Execute a test suite",
|
|
4121
|
+
"args": {},
|
|
4122
|
+
"description": "Push local file changes to the database",
|
|
4175
4123
|
"examples": [
|
|
4176
|
-
"<%= config.bin %> <%= command.id %>
|
|
4177
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4178
|
-
"<%= config.bin %> <%= command.id %>
|
|
4179
|
-
"<%= config.bin %> <%= command.id %>
|
|
4124
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4125
|
+
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
4126
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4127
|
+
"<%= config.bin %> <%= command.id %> --ci --format=json"
|
|
4180
4128
|
],
|
|
4181
4129
|
"flags": {
|
|
4182
|
-
"name": {
|
|
4183
|
-
"char": "n",
|
|
4184
|
-
"description": "Test suite name to execute",
|
|
4185
|
-
"name": "name",
|
|
4186
|
-
"hasDynamicHelp": false,
|
|
4187
|
-
"multiple": false,
|
|
4188
|
-
"type": "option"
|
|
4189
|
-
},
|
|
4190
4130
|
"format": {
|
|
4191
|
-
"
|
|
4192
|
-
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4131
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced). Defaults to text on a terminal and json when stdout is piped.",
|
|
4193
4132
|
"name": "format",
|
|
4194
4133
|
"hasDynamicHelp": false,
|
|
4195
4134
|
"multiple": false,
|
|
@@ -4199,298 +4138,206 @@
|
|
|
4199
4138
|
"md",
|
|
4200
4139
|
"human",
|
|
4201
4140
|
"console",
|
|
4202
|
-
"markdown"
|
|
4203
|
-
"compact",
|
|
4204
|
-
"table"
|
|
4141
|
+
"markdown"
|
|
4205
4142
|
],
|
|
4206
4143
|
"type": "option"
|
|
4207
4144
|
},
|
|
4208
|
-
"output": {
|
|
4209
|
-
"char": "o",
|
|
4210
|
-
"description": "Output file path",
|
|
4211
|
-
"name": "output",
|
|
4212
|
-
"hasDynamicHelp": false,
|
|
4213
|
-
"multiple": false,
|
|
4214
|
-
"type": "option"
|
|
4215
|
-
},
|
|
4216
4145
|
"verbose": {
|
|
4217
4146
|
"char": "v",
|
|
4218
|
-
"description": "Show detailed
|
|
4147
|
+
"description": "Show detailed output",
|
|
4219
4148
|
"name": "verbose",
|
|
4220
4149
|
"allowNo": false,
|
|
4221
4150
|
"type": "boolean"
|
|
4222
4151
|
},
|
|
4223
|
-
"
|
|
4224
|
-
"
|
|
4225
|
-
"
|
|
4226
|
-
"
|
|
4227
|
-
"
|
|
4228
|
-
"hasDynamicHelp": false,
|
|
4229
|
-
"multiple": false,
|
|
4230
|
-
"type": "option"
|
|
4152
|
+
"no-banner": {
|
|
4153
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
4154
|
+
"name": "no-banner",
|
|
4155
|
+
"allowNo": false,
|
|
4156
|
+
"type": "boolean"
|
|
4231
4157
|
},
|
|
4232
|
-
"
|
|
4233
|
-
"
|
|
4234
|
-
"
|
|
4235
|
-
"name": "parallel",
|
|
4158
|
+
"no-app-packages": {
|
|
4159
|
+
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
4160
|
+
"name": "no-app-packages",
|
|
4236
4161
|
"allowNo": false,
|
|
4237
4162
|
"type": "boolean"
|
|
4238
4163
|
},
|
|
4239
|
-
"
|
|
4240
|
-
"description": "
|
|
4241
|
-
"name": "
|
|
4242
|
-
"
|
|
4243
|
-
"
|
|
4244
|
-
"multiple": false,
|
|
4245
|
-
"type": "option"
|
|
4164
|
+
"interactive": {
|
|
4165
|
+
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
4166
|
+
"name": "interactive",
|
|
4167
|
+
"allowNo": true,
|
|
4168
|
+
"type": "boolean"
|
|
4246
4169
|
},
|
|
4247
|
-
"
|
|
4248
|
-
"description": "
|
|
4249
|
-
"name": "
|
|
4170
|
+
"dir": {
|
|
4171
|
+
"description": "Specific entity directory to push",
|
|
4172
|
+
"name": "dir",
|
|
4250
4173
|
"hasDynamicHelp": false,
|
|
4251
4174
|
"multiple": false,
|
|
4252
4175
|
"type": "option"
|
|
4253
4176
|
},
|
|
4254
|
-
"
|
|
4255
|
-
"description": "
|
|
4256
|
-
"name": "
|
|
4177
|
+
"dry-run": {
|
|
4178
|
+
"description": "Show what would be pushed without actually pushing",
|
|
4179
|
+
"name": "dry-run",
|
|
4180
|
+
"allowNo": false,
|
|
4181
|
+
"type": "boolean"
|
|
4182
|
+
},
|
|
4183
|
+
"ci": {
|
|
4184
|
+
"description": "CI mode - no prompts, fail on issues",
|
|
4185
|
+
"name": "ci",
|
|
4186
|
+
"allowNo": false,
|
|
4187
|
+
"type": "boolean"
|
|
4188
|
+
},
|
|
4189
|
+
"no-validate": {
|
|
4190
|
+
"description": "Skip validation before push",
|
|
4191
|
+
"name": "no-validate",
|
|
4192
|
+
"allowNo": false,
|
|
4193
|
+
"type": "boolean"
|
|
4194
|
+
},
|
|
4195
|
+
"delete-db-only": {
|
|
4196
|
+
"description": "Delete database-only records that reference records being deleted (prevents FK errors)",
|
|
4197
|
+
"name": "delete-db-only",
|
|
4198
|
+
"allowNo": false,
|
|
4199
|
+
"type": "boolean"
|
|
4200
|
+
},
|
|
4201
|
+
"parallel-batch-size": {
|
|
4202
|
+
"description": "JSON-root graphs to process in parallel (default: 10, not 1)",
|
|
4203
|
+
"name": "parallel-batch-size",
|
|
4204
|
+
"default": 10,
|
|
4257
4205
|
"hasDynamicHelp": false,
|
|
4258
4206
|
"multiple": false,
|
|
4259
4207
|
"type": "option"
|
|
4260
4208
|
},
|
|
4261
|
-
"
|
|
4262
|
-
"description": "
|
|
4263
|
-
"name": "
|
|
4209
|
+
"include": {
|
|
4210
|
+
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
4211
|
+
"name": "include",
|
|
4264
4212
|
"hasDynamicHelp": false,
|
|
4265
4213
|
"multiple": false,
|
|
4266
4214
|
"type": "option"
|
|
4267
|
-
}
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
"id": "test:suite",
|
|
4272
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4273
|
-
"pluginName": "@memberjunction/cli",
|
|
4274
|
-
"pluginType": "core",
|
|
4275
|
-
"strict": true,
|
|
4276
|
-
"enableJsonFlag": false,
|
|
4277
|
-
"isESM": true,
|
|
4278
|
-
"relativePath": [
|
|
4279
|
-
"dist",
|
|
4280
|
-
"commands",
|
|
4281
|
-
"test",
|
|
4282
|
-
"suite.js"
|
|
4283
|
-
]
|
|
4284
|
-
},
|
|
4285
|
-
"test:usage": {
|
|
4286
|
-
"aliases": [],
|
|
4287
|
-
"args": {},
|
|
4288
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj test` command.",
|
|
4289
|
-
"flags": {
|
|
4290
|
-
"format": {
|
|
4291
|
-
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
4292
|
-
"name": "format",
|
|
4215
|
+
},
|
|
4216
|
+
"exclude": {
|
|
4217
|
+
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
4218
|
+
"name": "exclude",
|
|
4293
4219
|
"hasDynamicHelp": false,
|
|
4294
4220
|
"multiple": false,
|
|
4295
|
-
"options": [
|
|
4296
|
-
"text",
|
|
4297
|
-
"json",
|
|
4298
|
-
"md"
|
|
4299
|
-
],
|
|
4300
4221
|
"type": "option"
|
|
4222
|
+
},
|
|
4223
|
+
"incremental": {
|
|
4224
|
+
"description": "Skip unchanged files using stored checksums from last push",
|
|
4225
|
+
"name": "incremental",
|
|
4226
|
+
"allowNo": false,
|
|
4227
|
+
"type": "boolean"
|
|
4228
|
+
},
|
|
4229
|
+
"change-detail": {
|
|
4230
|
+
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
4231
|
+
"name": "change-detail",
|
|
4232
|
+
"allowNo": false,
|
|
4233
|
+
"type": "boolean"
|
|
4301
4234
|
}
|
|
4302
4235
|
},
|
|
4303
4236
|
"hasDynamicHelp": false,
|
|
4304
4237
|
"hiddenAliases": [],
|
|
4305
|
-
"id": "
|
|
4238
|
+
"id": "sync:push",
|
|
4306
4239
|
"pluginAlias": "@memberjunction/cli",
|
|
4307
4240
|
"pluginName": "@memberjunction/cli",
|
|
4308
4241
|
"pluginType": "core",
|
|
4309
4242
|
"strict": true,
|
|
4310
4243
|
"enableJsonFlag": false,
|
|
4311
|
-
"
|
|
4312
|
-
|
|
4313
|
-
"
|
|
4314
|
-
"
|
|
4315
|
-
"
|
|
4316
|
-
"
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
"
|
|
4350
|
-
"
|
|
4351
|
-
|
|
4352
|
-
"
|
|
4353
|
-
"
|
|
4354
|
-
"
|
|
4355
|
-
"
|
|
4356
|
-
"type": "boolean"
|
|
4357
|
-
},
|
|
4358
|
-
"format": {
|
|
4359
|
-
"char": "f",
|
|
4360
|
-
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4361
|
-
"name": "format",
|
|
4362
|
-
"hasDynamicHelp": false,
|
|
4363
|
-
"multiple": false,
|
|
4364
|
-
"options": [
|
|
4365
|
-
"text",
|
|
4366
|
-
"json",
|
|
4367
|
-
"md",
|
|
4368
|
-
"human",
|
|
4369
|
-
"console",
|
|
4370
|
-
"markdown",
|
|
4371
|
-
"compact",
|
|
4372
|
-
"table"
|
|
4373
|
-
],
|
|
4374
|
-
"type": "option"
|
|
4375
|
-
},
|
|
4376
|
-
"output": {
|
|
4377
|
-
"char": "o",
|
|
4378
|
-
"description": "Output file path",
|
|
4379
|
-
"name": "output",
|
|
4380
|
-
"hasDynamicHelp": false,
|
|
4381
|
-
"multiple": false,
|
|
4382
|
-
"type": "option"
|
|
4383
|
-
},
|
|
4384
|
-
"verbose": {
|
|
4385
|
-
"char": "v",
|
|
4386
|
-
"description": "Show detailed information",
|
|
4387
|
-
"name": "verbose",
|
|
4388
|
-
"allowNo": false,
|
|
4389
|
-
"type": "boolean"
|
|
4244
|
+
"Usage": {
|
|
4245
|
+
"domain": "sync",
|
|
4246
|
+
"command": "sync:push",
|
|
4247
|
+
"summary": "Push local metadata files to the database (upsert).",
|
|
4248
|
+
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
4249
|
+
"flags": [
|
|
4250
|
+
{
|
|
4251
|
+
"name": "--dir",
|
|
4252
|
+
"type": "string",
|
|
4253
|
+
"description": "Entity directory to push"
|
|
4254
|
+
},
|
|
4255
|
+
{
|
|
4256
|
+
"name": "--dry-run",
|
|
4257
|
+
"type": "boolean",
|
|
4258
|
+
"description": "Report what would change without writing"
|
|
4259
|
+
},
|
|
4260
|
+
{
|
|
4261
|
+
"name": "--ci",
|
|
4262
|
+
"type": "boolean",
|
|
4263
|
+
"description": "No prompts; non-zero exit on error"
|
|
4264
|
+
},
|
|
4265
|
+
{
|
|
4266
|
+
"name": "--no-validate",
|
|
4267
|
+
"type": "boolean",
|
|
4268
|
+
"description": "Skip pre-push validation"
|
|
4269
|
+
},
|
|
4270
|
+
{
|
|
4271
|
+
"name": "--incremental",
|
|
4272
|
+
"type": "boolean",
|
|
4273
|
+
"description": "Skip unchanged files using stored checksums"
|
|
4274
|
+
},
|
|
4275
|
+
{
|
|
4276
|
+
"name": "--format",
|
|
4277
|
+
"type": "text|json|md",
|
|
4278
|
+
"description": "Output format (json for machine-readable result)"
|
|
4279
|
+
}
|
|
4280
|
+
],
|
|
4281
|
+
"examples": [
|
|
4282
|
+
"mj sync push --dir=ai-agents",
|
|
4283
|
+
"mj sync push --ci --format=json"
|
|
4284
|
+
],
|
|
4285
|
+
"runtime": {
|
|
4286
|
+
"class": "variable",
|
|
4287
|
+
"typicalSeconds": 20,
|
|
4288
|
+
"note": "scales with number of records in --dir"
|
|
4390
4289
|
}
|
|
4391
4290
|
},
|
|
4392
|
-
"hasDynamicHelp": false,
|
|
4393
|
-
"hiddenAliases": [],
|
|
4394
|
-
"id": "test:validate",
|
|
4395
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4396
|
-
"pluginName": "@memberjunction/cli",
|
|
4397
|
-
"pluginType": "core",
|
|
4398
|
-
"strict": true,
|
|
4399
|
-
"enableJsonFlag": false,
|
|
4400
4291
|
"isESM": true,
|
|
4401
4292
|
"relativePath": [
|
|
4402
4293
|
"dist",
|
|
4403
4294
|
"commands",
|
|
4404
|
-
"
|
|
4405
|
-
"
|
|
4295
|
+
"sync",
|
|
4296
|
+
"push.js"
|
|
4406
4297
|
]
|
|
4407
4298
|
},
|
|
4408
|
-
"
|
|
4299
|
+
"sync:status": {
|
|
4409
4300
|
"aliases": [],
|
|
4410
4301
|
"args": {},
|
|
4411
|
-
"description": "
|
|
4302
|
+
"description": "Show status of local files vs database",
|
|
4412
4303
|
"examples": [
|
|
4413
|
-
"<%= config.bin %>
|
|
4414
|
-
"<%= config.bin %>
|
|
4415
|
-
"<%= config.bin %>
|
|
4416
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
4304
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4305
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4306
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
4417
4307
|
],
|
|
4418
4308
|
"flags": {
|
|
4419
|
-
"
|
|
4420
|
-
"description": "
|
|
4421
|
-
"name": "
|
|
4422
|
-
"required": true,
|
|
4423
|
-
"hasDynamicHelp": false,
|
|
4424
|
-
"multiple": false,
|
|
4425
|
-
"options": [
|
|
4426
|
-
"sqlserver",
|
|
4427
|
-
"postgresql"
|
|
4428
|
-
],
|
|
4429
|
-
"type": "option"
|
|
4430
|
-
},
|
|
4431
|
-
"to": {
|
|
4432
|
-
"description": "Target SQL dialect",
|
|
4433
|
-
"name": "to",
|
|
4434
|
-
"required": true,
|
|
4309
|
+
"dir": {
|
|
4310
|
+
"description": "Specific entity directory to check status",
|
|
4311
|
+
"name": "dir",
|
|
4435
4312
|
"hasDynamicHelp": false,
|
|
4436
4313
|
"multiple": false,
|
|
4437
|
-
"options": [
|
|
4438
|
-
"sqlserver",
|
|
4439
|
-
"postgresql"
|
|
4440
|
-
],
|
|
4441
4314
|
"type": "option"
|
|
4442
4315
|
},
|
|
4443
|
-
"
|
|
4444
|
-
"
|
|
4445
|
-
"
|
|
4446
|
-
"
|
|
4447
|
-
"
|
|
4448
|
-
"
|
|
4449
|
-
"options": [
|
|
4450
|
-
"queries",
|
|
4451
|
-
"views",
|
|
4452
|
-
"filters",
|
|
4453
|
-
"all"
|
|
4454
|
-
],
|
|
4455
|
-
"type": "option"
|
|
4316
|
+
"verbose": {
|
|
4317
|
+
"char": "v",
|
|
4318
|
+
"description": "Show detailed field-level differences",
|
|
4319
|
+
"name": "verbose",
|
|
4320
|
+
"allowNo": false,
|
|
4321
|
+
"type": "boolean"
|
|
4456
4322
|
},
|
|
4457
|
-
"
|
|
4458
|
-
"description": "
|
|
4459
|
-
"name": "
|
|
4323
|
+
"include": {
|
|
4324
|
+
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
4325
|
+
"name": "include",
|
|
4460
4326
|
"hasDynamicHelp": false,
|
|
4461
4327
|
"multiple": false,
|
|
4462
4328
|
"type": "option"
|
|
4463
4329
|
},
|
|
4464
|
-
"
|
|
4465
|
-
"description": "
|
|
4466
|
-
"name": "
|
|
4467
|
-
"allowNo": false,
|
|
4468
|
-
"type": "boolean"
|
|
4469
|
-
},
|
|
4470
|
-
"review": {
|
|
4471
|
-
"description": "Generate review report only (no writes to database)",
|
|
4472
|
-
"name": "review",
|
|
4473
|
-
"allowNo": false,
|
|
4474
|
-
"type": "boolean"
|
|
4475
|
-
},
|
|
4476
|
-
"output": {
|
|
4477
|
-
"char": "o",
|
|
4478
|
-
"description": "Output directory for the translation report",
|
|
4479
|
-
"name": "output",
|
|
4330
|
+
"exclude": {
|
|
4331
|
+
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
4332
|
+
"name": "exclude",
|
|
4480
4333
|
"hasDynamicHelp": false,
|
|
4481
4334
|
"multiple": false,
|
|
4482
4335
|
"type": "option"
|
|
4483
|
-
},
|
|
4484
|
-
"force": {
|
|
4485
|
-
"description": "Re-translate even if platform variants already exist",
|
|
4486
|
-
"name": "force",
|
|
4487
|
-
"allowNo": false,
|
|
4488
|
-
"type": "boolean"
|
|
4489
4336
|
}
|
|
4490
4337
|
},
|
|
4491
4338
|
"hasDynamicHelp": false,
|
|
4492
4339
|
"hiddenAliases": [],
|
|
4493
|
-
"id": "
|
|
4340
|
+
"id": "sync:status",
|
|
4494
4341
|
"pluginAlias": "@memberjunction/cli",
|
|
4495
4342
|
"pluginName": "@memberjunction/cli",
|
|
4496
4343
|
"pluginType": "core",
|
|
@@ -4500,14 +4347,14 @@
|
|
|
4500
4347
|
"relativePath": [
|
|
4501
4348
|
"dist",
|
|
4502
4349
|
"commands",
|
|
4503
|
-
"
|
|
4504
|
-
"
|
|
4350
|
+
"sync",
|
|
4351
|
+
"status.js"
|
|
4505
4352
|
]
|
|
4506
4353
|
},
|
|
4507
|
-
"
|
|
4354
|
+
"sync:usage": {
|
|
4508
4355
|
"aliases": [],
|
|
4509
4356
|
"args": {},
|
|
4510
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
4357
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj sync` command.",
|
|
4511
4358
|
"flags": {
|
|
4512
4359
|
"format": {
|
|
4513
4360
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -4524,7 +4371,7 @@
|
|
|
4524
4371
|
},
|
|
4525
4372
|
"hasDynamicHelp": false,
|
|
4526
4373
|
"hiddenAliases": [],
|
|
4527
|
-
"id": "
|
|
4374
|
+
"id": "sync:usage",
|
|
4528
4375
|
"pluginAlias": "@memberjunction/cli",
|
|
4529
4376
|
"pluginName": "@memberjunction/cli",
|
|
4530
4377
|
"pluginType": "core",
|
|
@@ -4534,64 +4381,52 @@
|
|
|
4534
4381
|
"relativePath": [
|
|
4535
4382
|
"dist",
|
|
4536
4383
|
"commands",
|
|
4537
|
-
"
|
|
4384
|
+
"sync",
|
|
4538
4385
|
"usage.js"
|
|
4539
4386
|
]
|
|
4540
4387
|
},
|
|
4541
|
-
"sync:
|
|
4388
|
+
"sync:validate": {
|
|
4542
4389
|
"aliases": [],
|
|
4543
4390
|
"args": {},
|
|
4544
|
-
"description": "
|
|
4391
|
+
"description": "Validate metadata files",
|
|
4545
4392
|
"examples": [
|
|
4546
4393
|
"<%= config.bin %> <%= command.id %>",
|
|
4547
4394
|
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4548
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4549
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4395
|
+
"<%= config.bin %> <%= command.id %> --save-report",
|
|
4396
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
4550
4397
|
],
|
|
4551
4398
|
"flags": {
|
|
4552
4399
|
"dir": {
|
|
4553
|
-
"description": "Specific entity directory to
|
|
4400
|
+
"description": "Specific entity directory to validate",
|
|
4554
4401
|
"name": "dir",
|
|
4555
4402
|
"hasDynamicHelp": false,
|
|
4556
4403
|
"multiple": false,
|
|
4557
4404
|
"type": "option"
|
|
4558
4405
|
},
|
|
4559
|
-
"
|
|
4560
|
-
"
|
|
4561
|
-
"
|
|
4562
|
-
"
|
|
4563
|
-
"multiple": false,
|
|
4564
|
-
"type": "option"
|
|
4565
|
-
},
|
|
4566
|
-
"all": {
|
|
4567
|
-
"description": "Reset all metadata sections",
|
|
4568
|
-
"name": "all",
|
|
4406
|
+
"verbose": {
|
|
4407
|
+
"char": "v",
|
|
4408
|
+
"description": "Show detailed validation output",
|
|
4409
|
+
"name": "verbose",
|
|
4569
4410
|
"allowNo": false,
|
|
4570
4411
|
"type": "boolean"
|
|
4571
4412
|
},
|
|
4572
|
-
"
|
|
4573
|
-
"description": "
|
|
4574
|
-
"name": "
|
|
4413
|
+
"save-report": {
|
|
4414
|
+
"description": "Save validation report as markdown file",
|
|
4415
|
+
"name": "save-report",
|
|
4575
4416
|
"allowNo": false,
|
|
4576
4417
|
"type": "boolean"
|
|
4577
4418
|
},
|
|
4578
|
-
"
|
|
4579
|
-
"description": "
|
|
4580
|
-
"name": "
|
|
4581
|
-
"
|
|
4582
|
-
"
|
|
4583
|
-
|
|
4584
|
-
"verbose": {
|
|
4585
|
-
"char": "v",
|
|
4586
|
-
"description": "Show detailed output",
|
|
4587
|
-
"name": "verbose",
|
|
4588
|
-
"allowNo": false,
|
|
4589
|
-
"type": "boolean"
|
|
4419
|
+
"output": {
|
|
4420
|
+
"description": "Output file path for validation report (default: validation-report.md)",
|
|
4421
|
+
"name": "output",
|
|
4422
|
+
"hasDynamicHelp": false,
|
|
4423
|
+
"multiple": false,
|
|
4424
|
+
"type": "option"
|
|
4590
4425
|
}
|
|
4591
4426
|
},
|
|
4592
4427
|
"hasDynamicHelp": false,
|
|
4593
4428
|
"hiddenAliases": [],
|
|
4594
|
-
"id": "sync:
|
|
4429
|
+
"id": "sync:validate",
|
|
4595
4430
|
"pluginAlias": "@memberjunction/cli",
|
|
4596
4431
|
"pluginName": "@memberjunction/cli",
|
|
4597
4432
|
"pluginType": "core",
|
|
@@ -4602,68 +4437,51 @@
|
|
|
4602
4437
|
"dist",
|
|
4603
4438
|
"commands",
|
|
4604
4439
|
"sync",
|
|
4605
|
-
"
|
|
4440
|
+
"validate.js"
|
|
4606
4441
|
]
|
|
4607
4442
|
},
|
|
4608
|
-
"sync:
|
|
4443
|
+
"sync:watch": {
|
|
4609
4444
|
"aliases": [],
|
|
4610
4445
|
"args": {},
|
|
4611
|
-
"description": "
|
|
4446
|
+
"description": "Watch for file changes and sync automatically",
|
|
4612
4447
|
"examples": [
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
{
|
|
4618
|
-
"command": "<%= config.bin %> <%= command.id %> --setup-entity=ai-prompts",
|
|
4619
|
-
"description": "Initialize and set up the AI Prompts directory"
|
|
4620
|
-
},
|
|
4621
|
-
{
|
|
4622
|
-
"command": "<%= config.bin %> <%= command.id %> --setup-entity=other --entity=\"MJ: AI Models\" --dir=ai-models",
|
|
4623
|
-
"description": "Initialize for an arbitrary entity"
|
|
4624
|
-
},
|
|
4625
|
-
{
|
|
4626
|
-
"command": "<%= config.bin %> <%= command.id %> --no-interactive --setup-entity=no",
|
|
4627
|
-
"description": "Never prompt, even at a terminal"
|
|
4628
|
-
}
|
|
4448
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4449
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4450
|
+
"<%= config.bin %> <%= command.id %> --debounce=1000",
|
|
4451
|
+
"<%= config.bin %> <%= command.id %> --no-validate"
|
|
4629
4452
|
],
|
|
4630
4453
|
"flags": {
|
|
4631
|
-
"
|
|
4632
|
-
"description": "
|
|
4633
|
-
"name": "
|
|
4454
|
+
"dir": {
|
|
4455
|
+
"description": "Specific entity directory to watch",
|
|
4456
|
+
"name": "dir",
|
|
4634
4457
|
"hasDynamicHelp": false,
|
|
4635
4458
|
"multiple": false,
|
|
4636
|
-
"options": [
|
|
4637
|
-
"ai-prompts",
|
|
4638
|
-
"other",
|
|
4639
|
-
"no"
|
|
4640
|
-
],
|
|
4641
4459
|
"type": "option"
|
|
4642
4460
|
},
|
|
4643
|
-
"
|
|
4644
|
-
"description": "
|
|
4645
|
-
"name": "
|
|
4461
|
+
"debounce": {
|
|
4462
|
+
"description": "Debounce delay in milliseconds (default: 500)",
|
|
4463
|
+
"name": "debounce",
|
|
4646
4464
|
"hasDynamicHelp": false,
|
|
4647
4465
|
"multiple": false,
|
|
4648
4466
|
"type": "option"
|
|
4649
4467
|
},
|
|
4650
|
-
"
|
|
4651
|
-
"description": "
|
|
4652
|
-
"name": "
|
|
4653
|
-
"
|
|
4654
|
-
"
|
|
4655
|
-
"type": "option"
|
|
4468
|
+
"no-validate": {
|
|
4469
|
+
"description": "Skip validation before sync",
|
|
4470
|
+
"name": "no-validate",
|
|
4471
|
+
"allowNo": false,
|
|
4472
|
+
"type": "boolean"
|
|
4656
4473
|
},
|
|
4657
|
-
"
|
|
4658
|
-
"
|
|
4659
|
-
"
|
|
4660
|
-
"
|
|
4474
|
+
"verbose": {
|
|
4475
|
+
"char": "v",
|
|
4476
|
+
"description": "Show detailed output",
|
|
4477
|
+
"name": "verbose",
|
|
4478
|
+
"allowNo": false,
|
|
4661
4479
|
"type": "boolean"
|
|
4662
4480
|
}
|
|
4663
4481
|
},
|
|
4664
4482
|
"hasDynamicHelp": false,
|
|
4665
4483
|
"hiddenAliases": [],
|
|
4666
|
-
"id": "sync:
|
|
4484
|
+
"id": "sync:watch",
|
|
4667
4485
|
"pluginAlias": "@memberjunction/cli",
|
|
4668
4486
|
"pluginName": "@memberjunction/cli",
|
|
4669
4487
|
"pluginType": "core",
|
|
@@ -4674,21 +4492,73 @@
|
|
|
4674
4492
|
"dist",
|
|
4675
4493
|
"commands",
|
|
4676
4494
|
"sync",
|
|
4677
|
-
"
|
|
4495
|
+
"watch.js"
|
|
4678
4496
|
]
|
|
4679
4497
|
},
|
|
4680
|
-
"
|
|
4498
|
+
"test:compare": {
|
|
4681
4499
|
"aliases": [],
|
|
4682
|
-
"args": {
|
|
4683
|
-
|
|
4500
|
+
"args": {
|
|
4501
|
+
"runId1": {
|
|
4502
|
+
"description": "First test run ID to compare",
|
|
4503
|
+
"name": "runId1",
|
|
4504
|
+
"required": false
|
|
4505
|
+
},
|
|
4506
|
+
"runId2": {
|
|
4507
|
+
"description": "Second test run ID to compare",
|
|
4508
|
+
"name": "runId2",
|
|
4509
|
+
"required": false
|
|
4510
|
+
}
|
|
4511
|
+
},
|
|
4512
|
+
"description": "Compare test runs for regression detection",
|
|
4684
4513
|
"examples": [
|
|
4685
|
-
"<%= config.bin %> <%= command.id %>
|
|
4686
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4687
|
-
"<%= config.bin %> <%= command.id %>
|
|
4514
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4515
|
+
"<%= config.bin %> <%= command.id %> --latest",
|
|
4516
|
+
"<%= config.bin %> <%= command.id %> <run-id-1> <run-id-2>",
|
|
4517
|
+
"<%= config.bin %> <%= command.id %> -v 5.17.0 -v 5.18.0",
|
|
4518
|
+
"<%= config.bin %> <%= command.id %> -c abc1234 -c def5678",
|
|
4519
|
+
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
4520
|
+
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
4688
4521
|
],
|
|
4689
4522
|
"flags": {
|
|
4523
|
+
"version": {
|
|
4524
|
+
"char": "v",
|
|
4525
|
+
"description": "Compare runs by version",
|
|
4526
|
+
"name": "version",
|
|
4527
|
+
"hasDynamicHelp": false,
|
|
4528
|
+
"multiple": true,
|
|
4529
|
+
"type": "option"
|
|
4530
|
+
},
|
|
4531
|
+
"commit": {
|
|
4532
|
+
"char": "c",
|
|
4533
|
+
"description": "Compare runs by git commit",
|
|
4534
|
+
"name": "commit",
|
|
4535
|
+
"hasDynamicHelp": false,
|
|
4536
|
+
"multiple": true,
|
|
4537
|
+
"type": "option"
|
|
4538
|
+
},
|
|
4539
|
+
"diff-only": {
|
|
4540
|
+
"description": "Show only differences",
|
|
4541
|
+
"name": "diff-only",
|
|
4542
|
+
"allowNo": false,
|
|
4543
|
+
"type": "boolean"
|
|
4544
|
+
},
|
|
4545
|
+
"latest": {
|
|
4546
|
+
"char": "l",
|
|
4547
|
+
"description": "Compare the two most recent completed suite runs",
|
|
4548
|
+
"name": "latest",
|
|
4549
|
+
"allowNo": false,
|
|
4550
|
+
"type": "boolean"
|
|
4551
|
+
},
|
|
4552
|
+
"from-json": {
|
|
4553
|
+
"description": "Compare two results.json files directly (no DB). Pass twice: --from-json PREV --from-json CURR",
|
|
4554
|
+
"name": "from-json",
|
|
4555
|
+
"hasDynamicHelp": false,
|
|
4556
|
+
"multiple": true,
|
|
4557
|
+
"type": "option"
|
|
4558
|
+
},
|
|
4690
4559
|
"format": {
|
|
4691
|
-
"
|
|
4560
|
+
"char": "f",
|
|
4561
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4692
4562
|
"name": "format",
|
|
4693
4563
|
"hasDynamicHelp": false,
|
|
4694
4564
|
"multiple": false,
|
|
@@ -4698,207 +4568,307 @@
|
|
|
4698
4568
|
"md",
|
|
4699
4569
|
"human",
|
|
4700
4570
|
"console",
|
|
4701
|
-
"markdown"
|
|
4571
|
+
"markdown",
|
|
4572
|
+
"compact",
|
|
4573
|
+
"table"
|
|
4702
4574
|
],
|
|
4703
4575
|
"type": "option"
|
|
4704
4576
|
},
|
|
4577
|
+
"output": {
|
|
4578
|
+
"char": "o",
|
|
4579
|
+
"description": "Output file path",
|
|
4580
|
+
"name": "output",
|
|
4581
|
+
"hasDynamicHelp": false,
|
|
4582
|
+
"multiple": false,
|
|
4583
|
+
"type": "option"
|
|
4584
|
+
},
|
|
4705
4585
|
"verbose": {
|
|
4706
|
-
"
|
|
4707
|
-
"description": "Show detailed output",
|
|
4586
|
+
"description": "Show detailed information",
|
|
4708
4587
|
"name": "verbose",
|
|
4709
4588
|
"allowNo": false,
|
|
4710
4589
|
"type": "boolean"
|
|
4711
4590
|
},
|
|
4712
|
-
"
|
|
4713
|
-
"description": "
|
|
4714
|
-
"name": "
|
|
4715
|
-
"allowNo": false,
|
|
4716
|
-
"type": "boolean"
|
|
4717
|
-
},
|
|
4718
|
-
"interactive": {
|
|
4719
|
-
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
4720
|
-
"name": "interactive",
|
|
4721
|
-
"allowNo": true,
|
|
4722
|
-
"type": "boolean"
|
|
4723
|
-
},
|
|
4724
|
-
"entity": {
|
|
4725
|
-
"description": "Entity name to pull",
|
|
4726
|
-
"name": "entity",
|
|
4727
|
-
"required": true,
|
|
4591
|
+
"tag": {
|
|
4592
|
+
"description": "Filter suite runs by tag (matches against MJTestSuiteRunEntity.Tags). Useful for isolating runs from a specific source environment in an archive MJ. DB mode only — --from-json ignores this flag.",
|
|
4593
|
+
"name": "tag",
|
|
4728
4594
|
"hasDynamicHelp": false,
|
|
4729
4595
|
"multiple": false,
|
|
4730
4596
|
"type": "option"
|
|
4731
|
-
}
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4597
|
+
}
|
|
4598
|
+
},
|
|
4599
|
+
"hasDynamicHelp": false,
|
|
4600
|
+
"hiddenAliases": [],
|
|
4601
|
+
"id": "test:compare",
|
|
4602
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4603
|
+
"pluginName": "@memberjunction/cli",
|
|
4604
|
+
"pluginType": "core",
|
|
4605
|
+
"strict": true,
|
|
4606
|
+
"enableJsonFlag": false,
|
|
4607
|
+
"isESM": true,
|
|
4608
|
+
"relativePath": [
|
|
4609
|
+
"dist",
|
|
4610
|
+
"commands",
|
|
4611
|
+
"test",
|
|
4612
|
+
"compare.js"
|
|
4613
|
+
]
|
|
4614
|
+
},
|
|
4615
|
+
"test:history": {
|
|
4616
|
+
"aliases": [],
|
|
4617
|
+
"args": {},
|
|
4618
|
+
"description": "View test execution history",
|
|
4619
|
+
"examples": [
|
|
4620
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4621
|
+
"<%= config.bin %> <%= command.id %> --test=<test-id>",
|
|
4622
|
+
"<%= config.bin %> <%= command.id %> --suite=<suite-id>",
|
|
4623
|
+
"<%= config.bin %> <%= command.id %> --since=\"2024-01-01\"",
|
|
4624
|
+
"<%= config.bin %> <%= command.id %> --limit=50"
|
|
4625
|
+
],
|
|
4626
|
+
"flags": {
|
|
4627
|
+
"test": {
|
|
4628
|
+
"char": "t",
|
|
4629
|
+
"description": "Filter by test ID",
|
|
4630
|
+
"name": "test",
|
|
4735
4631
|
"hasDynamicHelp": false,
|
|
4736
4632
|
"multiple": false,
|
|
4737
4633
|
"type": "option"
|
|
4738
4634
|
},
|
|
4739
|
-
"
|
|
4740
|
-
"
|
|
4741
|
-
"
|
|
4742
|
-
"
|
|
4743
|
-
"
|
|
4635
|
+
"recent": {
|
|
4636
|
+
"char": "r",
|
|
4637
|
+
"description": "Number of recent runs to show",
|
|
4638
|
+
"name": "recent",
|
|
4639
|
+
"hasDynamicHelp": false,
|
|
4640
|
+
"multiple": false,
|
|
4641
|
+
"type": "option"
|
|
4744
4642
|
},
|
|
4745
|
-
"
|
|
4746
|
-
"description": "
|
|
4747
|
-
"name": "
|
|
4643
|
+
"from": {
|
|
4644
|
+
"description": "Show history from date (YYYY-MM-DD)",
|
|
4645
|
+
"name": "from",
|
|
4748
4646
|
"hasDynamicHelp": false,
|
|
4749
4647
|
"multiple": false,
|
|
4750
4648
|
"type": "option"
|
|
4751
4649
|
},
|
|
4752
|
-
"
|
|
4753
|
-
"
|
|
4754
|
-
"
|
|
4755
|
-
"
|
|
4756
|
-
"
|
|
4650
|
+
"status": {
|
|
4651
|
+
"char": "s",
|
|
4652
|
+
"description": "Filter by status",
|
|
4653
|
+
"name": "status",
|
|
4654
|
+
"hasDynamicHelp": false,
|
|
4655
|
+
"multiple": false,
|
|
4656
|
+
"type": "option"
|
|
4757
4657
|
},
|
|
4758
|
-
"
|
|
4759
|
-
"
|
|
4760
|
-
"
|
|
4658
|
+
"format": {
|
|
4659
|
+
"char": "f",
|
|
4660
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4661
|
+
"name": "format",
|
|
4662
|
+
"hasDynamicHelp": false,
|
|
4663
|
+
"multiple": false,
|
|
4664
|
+
"options": [
|
|
4665
|
+
"text",
|
|
4666
|
+
"json",
|
|
4667
|
+
"md",
|
|
4668
|
+
"human",
|
|
4669
|
+
"console",
|
|
4670
|
+
"markdown",
|
|
4671
|
+
"compact",
|
|
4672
|
+
"table"
|
|
4673
|
+
],
|
|
4674
|
+
"type": "option"
|
|
4675
|
+
},
|
|
4676
|
+
"output": {
|
|
4677
|
+
"char": "o",
|
|
4678
|
+
"description": "Output file path",
|
|
4679
|
+
"name": "output",
|
|
4680
|
+
"hasDynamicHelp": false,
|
|
4681
|
+
"multiple": false,
|
|
4682
|
+
"type": "option"
|
|
4683
|
+
},
|
|
4684
|
+
"verbose": {
|
|
4685
|
+
"char": "v",
|
|
4686
|
+
"description": "Show detailed information",
|
|
4687
|
+
"name": "verbose",
|
|
4761
4688
|
"allowNo": false,
|
|
4762
4689
|
"type": "boolean"
|
|
4763
|
-
}
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
|
|
4690
|
+
}
|
|
4691
|
+
},
|
|
4692
|
+
"hasDynamicHelp": false,
|
|
4693
|
+
"hiddenAliases": [],
|
|
4694
|
+
"id": "test:history",
|
|
4695
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4696
|
+
"pluginName": "@memberjunction/cli",
|
|
4697
|
+
"pluginType": "core",
|
|
4698
|
+
"strict": true,
|
|
4699
|
+
"enableJsonFlag": false,
|
|
4700
|
+
"isESM": true,
|
|
4701
|
+
"relativePath": [
|
|
4702
|
+
"dist",
|
|
4703
|
+
"commands",
|
|
4704
|
+
"test",
|
|
4705
|
+
"history.js"
|
|
4706
|
+
]
|
|
4707
|
+
},
|
|
4708
|
+
"test": {
|
|
4709
|
+
"aliases": [],
|
|
4710
|
+
"args": {},
|
|
4711
|
+
"description": "MemberJunction Testing Framework - Execute and manage tests",
|
|
4712
|
+
"examples": [
|
|
4713
|
+
"<%= config.bin %> <%= command.id %> run <test-id>",
|
|
4714
|
+
"<%= config.bin %> <%= command.id %> run --name=\"Active Members Count\"",
|
|
4715
|
+
"<%= config.bin %> <%= command.id %> suite <suite-id>",
|
|
4716
|
+
"<%= config.bin %> <%= command.id %> list",
|
|
4717
|
+
"<%= config.bin %> <%= command.id %> list --suites",
|
|
4718
|
+
"<%= config.bin %> <%= command.id %> validate --all"
|
|
4719
|
+
],
|
|
4720
|
+
"flags": {},
|
|
4721
|
+
"hasDynamicHelp": false,
|
|
4722
|
+
"hiddenAliases": [],
|
|
4723
|
+
"id": "test",
|
|
4724
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4725
|
+
"pluginName": "@memberjunction/cli",
|
|
4726
|
+
"pluginType": "core",
|
|
4727
|
+
"strict": true,
|
|
4728
|
+
"enableJsonFlag": false,
|
|
4729
|
+
"isESM": true,
|
|
4730
|
+
"relativePath": [
|
|
4731
|
+
"dist",
|
|
4732
|
+
"commands",
|
|
4733
|
+
"test",
|
|
4734
|
+
"index.js"
|
|
4735
|
+
]
|
|
4736
|
+
},
|
|
4737
|
+
"test:list": {
|
|
4738
|
+
"aliases": [],
|
|
4739
|
+
"args": {},
|
|
4740
|
+
"description": "List available tests, suites, and types",
|
|
4741
|
+
"examples": [
|
|
4742
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4743
|
+
"<%= config.bin %> <%= command.id %> --suites",
|
|
4744
|
+
"<%= config.bin %> <%= command.id %> --types",
|
|
4745
|
+
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
4746
|
+
"<%= config.bin %> <%= command.id %> --tag=smoke",
|
|
4747
|
+
"<%= config.bin %> <%= command.id %> --status=active --verbose"
|
|
4748
|
+
],
|
|
4749
|
+
"flags": {
|
|
4750
|
+
"suites": {
|
|
4751
|
+
"description": "List test suites instead of tests",
|
|
4752
|
+
"name": "suites",
|
|
4767
4753
|
"allowNo": false,
|
|
4768
4754
|
"type": "boolean"
|
|
4769
4755
|
},
|
|
4770
|
-
"
|
|
4771
|
-
"description": "
|
|
4772
|
-
"name": "
|
|
4756
|
+
"types": {
|
|
4757
|
+
"description": "List test types",
|
|
4758
|
+
"name": "types",
|
|
4773
4759
|
"allowNo": false,
|
|
4774
4760
|
"type": "boolean"
|
|
4775
4761
|
},
|
|
4776
|
-
"
|
|
4777
|
-
"
|
|
4778
|
-
"
|
|
4779
|
-
"
|
|
4762
|
+
"type": {
|
|
4763
|
+
"char": "t",
|
|
4764
|
+
"description": "Filter by test type",
|
|
4765
|
+
"name": "type",
|
|
4780
4766
|
"hasDynamicHelp": false,
|
|
4781
4767
|
"multiple": false,
|
|
4782
|
-
"options": [
|
|
4783
|
-
"merge",
|
|
4784
|
-
"overwrite",
|
|
4785
|
-
"skip"
|
|
4786
|
-
],
|
|
4787
4768
|
"type": "option"
|
|
4788
4769
|
},
|
|
4789
|
-
"
|
|
4790
|
-
"description": "
|
|
4791
|
-
"name": "
|
|
4770
|
+
"tag": {
|
|
4771
|
+
"description": "Filter by tag",
|
|
4772
|
+
"name": "tag",
|
|
4792
4773
|
"hasDynamicHelp": false,
|
|
4793
4774
|
"multiple": false,
|
|
4794
4775
|
"type": "option"
|
|
4795
4776
|
},
|
|
4796
|
-
"
|
|
4797
|
-
"
|
|
4798
|
-
"
|
|
4777
|
+
"status": {
|
|
4778
|
+
"char": "s",
|
|
4779
|
+
"description": "Filter by status",
|
|
4780
|
+
"name": "status",
|
|
4799
4781
|
"hasDynamicHelp": false,
|
|
4800
|
-
"multiple":
|
|
4782
|
+
"multiple": false,
|
|
4801
4783
|
"type": "option"
|
|
4802
4784
|
},
|
|
4803
|
-
"
|
|
4804
|
-
"
|
|
4805
|
-
"
|
|
4785
|
+
"format": {
|
|
4786
|
+
"char": "f",
|
|
4787
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4788
|
+
"name": "format",
|
|
4806
4789
|
"hasDynamicHelp": false,
|
|
4807
|
-
"multiple":
|
|
4790
|
+
"multiple": false,
|
|
4791
|
+
"options": [
|
|
4792
|
+
"text",
|
|
4793
|
+
"json",
|
|
4794
|
+
"md",
|
|
4795
|
+
"human",
|
|
4796
|
+
"console",
|
|
4797
|
+
"markdown",
|
|
4798
|
+
"compact",
|
|
4799
|
+
"table"
|
|
4800
|
+
],
|
|
4808
4801
|
"type": "option"
|
|
4809
4802
|
},
|
|
4810
|
-
"
|
|
4811
|
-
"
|
|
4812
|
-
"
|
|
4803
|
+
"output": {
|
|
4804
|
+
"char": "o",
|
|
4805
|
+
"description": "Output file path",
|
|
4806
|
+
"name": "output",
|
|
4813
4807
|
"hasDynamicHelp": false,
|
|
4814
4808
|
"multiple": false,
|
|
4815
4809
|
"type": "option"
|
|
4816
4810
|
},
|
|
4817
|
-
"
|
|
4818
|
-
"
|
|
4819
|
-
"
|
|
4811
|
+
"verbose": {
|
|
4812
|
+
"char": "v",
|
|
4813
|
+
"description": "Show detailed information",
|
|
4814
|
+
"name": "verbose",
|
|
4820
4815
|
"allowNo": false,
|
|
4821
4816
|
"type": "boolean"
|
|
4822
|
-
},
|
|
4823
|
-
"since": {
|
|
4824
|
-
"description": "Only pull records updated after this ISO 8601 timestamp",
|
|
4825
|
-
"name": "since",
|
|
4826
|
-
"hasDynamicHelp": false,
|
|
4827
|
-
"multiple": false,
|
|
4828
|
-
"type": "option"
|
|
4829
4817
|
}
|
|
4830
4818
|
},
|
|
4831
4819
|
"hasDynamicHelp": false,
|
|
4832
4820
|
"hiddenAliases": [],
|
|
4833
|
-
"id": "
|
|
4821
|
+
"id": "test:list",
|
|
4834
4822
|
"pluginAlias": "@memberjunction/cli",
|
|
4835
4823
|
"pluginName": "@memberjunction/cli",
|
|
4836
4824
|
"pluginType": "core",
|
|
4837
4825
|
"strict": true,
|
|
4838
4826
|
"enableJsonFlag": false,
|
|
4839
|
-
"Usage": {
|
|
4840
|
-
"domain": "sync",
|
|
4841
|
-
"command": "sync:pull",
|
|
4842
|
-
"summary": "Pull database records into local metadata files.",
|
|
4843
|
-
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
4844
|
-
"flags": [
|
|
4845
|
-
{
|
|
4846
|
-
"name": "--entity",
|
|
4847
|
-
"type": "string",
|
|
4848
|
-
"description": "Entity name to pull (required)"
|
|
4849
|
-
},
|
|
4850
|
-
{
|
|
4851
|
-
"name": "--filter",
|
|
4852
|
-
"type": "string",
|
|
4853
|
-
"description": "Extra SQL filter for which records to pull"
|
|
4854
|
-
},
|
|
4855
|
-
{
|
|
4856
|
-
"name": "--merge-strategy",
|
|
4857
|
-
"type": "merge|overwrite|skip",
|
|
4858
|
-
"description": "How to reconcile existing files"
|
|
4859
|
-
},
|
|
4860
|
-
{
|
|
4861
|
-
"name": "--dry-run",
|
|
4862
|
-
"type": "boolean",
|
|
4863
|
-
"description": "Report what would be pulled without writing"
|
|
4864
|
-
},
|
|
4865
|
-
{
|
|
4866
|
-
"name": "--format",
|
|
4867
|
-
"type": "text|json|md",
|
|
4868
|
-
"description": "Output format (json for machine-readable result)"
|
|
4869
|
-
}
|
|
4870
|
-
],
|
|
4871
|
-
"examples": [
|
|
4872
|
-
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
4873
|
-
"mj sync pull --entity=\"Actions\" --format=json"
|
|
4874
|
-
],
|
|
4875
|
-
"runtime": {
|
|
4876
|
-
"class": "variable",
|
|
4877
|
-
"typicalSeconds": 15,
|
|
4878
|
-
"note": "scales with number of records matched for --entity"
|
|
4879
|
-
}
|
|
4880
|
-
},
|
|
4881
4827
|
"isESM": true,
|
|
4882
4828
|
"relativePath": [
|
|
4883
4829
|
"dist",
|
|
4884
4830
|
"commands",
|
|
4885
|
-
"
|
|
4886
|
-
"
|
|
4831
|
+
"test",
|
|
4832
|
+
"list.js"
|
|
4887
4833
|
]
|
|
4888
4834
|
},
|
|
4889
|
-
"
|
|
4835
|
+
"test:run": {
|
|
4890
4836
|
"aliases": [],
|
|
4891
|
-
"args": {
|
|
4892
|
-
|
|
4837
|
+
"args": {
|
|
4838
|
+
"testId": {
|
|
4839
|
+
"description": "Test ID to execute",
|
|
4840
|
+
"name": "testId",
|
|
4841
|
+
"required": false
|
|
4842
|
+
}
|
|
4843
|
+
},
|
|
4844
|
+
"description": "Execute a single test by ID or name",
|
|
4893
4845
|
"examples": [
|
|
4894
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4895
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4896
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4897
|
-
"<%= config.bin %> <%= command.id %>
|
|
4846
|
+
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
4847
|
+
"<%= config.bin %> <%= command.id %> --name=\"Active Members Count\"",
|
|
4848
|
+
"<%= config.bin %> <%= command.id %> <test-id> --environment=staging",
|
|
4849
|
+
"<%= config.bin %> <%= command.id %> <test-id> --format=json --output=results.json",
|
|
4850
|
+
"<%= config.bin %> <%= command.id %> <test-id> --dry-run"
|
|
4898
4851
|
],
|
|
4899
4852
|
"flags": {
|
|
4853
|
+
"name": {
|
|
4854
|
+
"char": "n",
|
|
4855
|
+
"description": "Test name to execute",
|
|
4856
|
+
"name": "name",
|
|
4857
|
+
"hasDynamicHelp": false,
|
|
4858
|
+
"multiple": false,
|
|
4859
|
+
"type": "option"
|
|
4860
|
+
},
|
|
4861
|
+
"environment": {
|
|
4862
|
+
"char": "e",
|
|
4863
|
+
"description": "Environment context (dev, staging, prod)",
|
|
4864
|
+
"name": "environment",
|
|
4865
|
+
"hasDynamicHelp": false,
|
|
4866
|
+
"multiple": false,
|
|
4867
|
+
"type": "option"
|
|
4868
|
+
},
|
|
4900
4869
|
"format": {
|
|
4901
|
-
"
|
|
4870
|
+
"char": "f",
|
|
4871
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4902
4872
|
"name": "format",
|
|
4903
4873
|
"hasDynamicHelp": false,
|
|
4904
4874
|
"multiple": false,
|
|
@@ -4908,192 +4878,163 @@
|
|
|
4908
4878
|
"md",
|
|
4909
4879
|
"human",
|
|
4910
4880
|
"console",
|
|
4911
|
-
"markdown"
|
|
4881
|
+
"markdown",
|
|
4882
|
+
"compact",
|
|
4883
|
+
"table"
|
|
4912
4884
|
],
|
|
4913
4885
|
"type": "option"
|
|
4914
4886
|
},
|
|
4915
|
-
"
|
|
4916
|
-
"char": "
|
|
4917
|
-
"description": "
|
|
4918
|
-
"name": "
|
|
4919
|
-
"allowNo": false,
|
|
4920
|
-
"type": "boolean"
|
|
4921
|
-
},
|
|
4922
|
-
"no-banner": {
|
|
4923
|
-
"description": "Suppress the startup banner and runtime advisory",
|
|
4924
|
-
"name": "no-banner",
|
|
4925
|
-
"allowNo": false,
|
|
4926
|
-
"type": "boolean"
|
|
4927
|
-
},
|
|
4928
|
-
"interactive": {
|
|
4929
|
-
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
4930
|
-
"name": "interactive",
|
|
4931
|
-
"allowNo": true,
|
|
4932
|
-
"type": "boolean"
|
|
4933
|
-
},
|
|
4934
|
-
"dir": {
|
|
4935
|
-
"description": "Specific entity directory to push",
|
|
4936
|
-
"name": "dir",
|
|
4887
|
+
"output": {
|
|
4888
|
+
"char": "o",
|
|
4889
|
+
"description": "Output file path",
|
|
4890
|
+
"name": "output",
|
|
4937
4891
|
"hasDynamicHelp": false,
|
|
4938
4892
|
"multiple": false,
|
|
4939
4893
|
"type": "option"
|
|
4940
4894
|
},
|
|
4941
4895
|
"dry-run": {
|
|
4942
|
-
"description": "
|
|
4896
|
+
"description": "Validate without executing",
|
|
4943
4897
|
"name": "dry-run",
|
|
4944
4898
|
"allowNo": false,
|
|
4945
4899
|
"type": "boolean"
|
|
4946
4900
|
},
|
|
4947
|
-
"
|
|
4948
|
-
"
|
|
4949
|
-
"
|
|
4950
|
-
"
|
|
4951
|
-
"type": "boolean"
|
|
4952
|
-
},
|
|
4953
|
-
"no-validate": {
|
|
4954
|
-
"description": "Skip validation before push",
|
|
4955
|
-
"name": "no-validate",
|
|
4956
|
-
"allowNo": false,
|
|
4957
|
-
"type": "boolean"
|
|
4958
|
-
},
|
|
4959
|
-
"delete-db-only": {
|
|
4960
|
-
"description": "Delete database-only records that reference records being deleted (prevents FK errors)",
|
|
4961
|
-
"name": "delete-db-only",
|
|
4901
|
+
"verbose": {
|
|
4902
|
+
"char": "v",
|
|
4903
|
+
"description": "Show detailed execution information",
|
|
4904
|
+
"name": "verbose",
|
|
4962
4905
|
"allowNo": false,
|
|
4963
4906
|
"type": "boolean"
|
|
4964
4907
|
},
|
|
4965
|
-
"
|
|
4966
|
-
"description": "
|
|
4967
|
-
"name": "
|
|
4968
|
-
"default": 10,
|
|
4969
|
-
"hasDynamicHelp": false,
|
|
4970
|
-
"multiple": false,
|
|
4971
|
-
"type": "option"
|
|
4972
|
-
},
|
|
4973
|
-
"include": {
|
|
4974
|
-
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
4975
|
-
"name": "include",
|
|
4908
|
+
"checks-module": {
|
|
4909
|
+
"description": "Module specifier (package name or path) side-effect-imported before the run so its integration check bundles register on the IntegrationCheckRegistry. Durable form: mj.config.cjs `testing.checkModules` (this repo loads '@memberjunction/integration-test-suite' that way).",
|
|
4910
|
+
"name": "checks-module",
|
|
4976
4911
|
"hasDynamicHelp": false,
|
|
4977
4912
|
"multiple": false,
|
|
4978
4913
|
"type": "option"
|
|
4979
4914
|
},
|
|
4980
|
-
"
|
|
4981
|
-
"description": "
|
|
4982
|
-
"name": "
|
|
4915
|
+
"oracles-module": {
|
|
4916
|
+
"description": "Path to a JS/TS module that exports custom IOracle classes or instances. Each export is registered on the engine before the test runs — used by non-MJ adopters to plug app-specific oracle types without modifying TestingFramework.",
|
|
4917
|
+
"name": "oracles-module",
|
|
4983
4918
|
"hasDynamicHelp": false,
|
|
4984
4919
|
"multiple": false,
|
|
4985
4920
|
"type": "option"
|
|
4986
|
-
},
|
|
4987
|
-
"incremental": {
|
|
4988
|
-
"description": "Skip unchanged files using stored checksums from last push",
|
|
4989
|
-
"name": "incremental",
|
|
4990
|
-
"allowNo": false,
|
|
4991
|
-
"type": "boolean"
|
|
4992
|
-
},
|
|
4993
|
-
"change-detail": {
|
|
4994
|
-
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
4995
|
-
"name": "change-detail",
|
|
4996
|
-
"allowNo": false,
|
|
4997
|
-
"type": "boolean"
|
|
4998
4921
|
}
|
|
4999
4922
|
},
|
|
5000
4923
|
"hasDynamicHelp": false,
|
|
5001
4924
|
"hiddenAliases": [],
|
|
5002
|
-
"id": "
|
|
4925
|
+
"id": "test:run",
|
|
5003
4926
|
"pluginAlias": "@memberjunction/cli",
|
|
5004
4927
|
"pluginName": "@memberjunction/cli",
|
|
5005
4928
|
"pluginType": "core",
|
|
5006
4929
|
"strict": true,
|
|
5007
4930
|
"enableJsonFlag": false,
|
|
5008
|
-
"Usage": {
|
|
5009
|
-
"domain": "sync",
|
|
5010
|
-
"command": "sync:push",
|
|
5011
|
-
"summary": "Push local metadata files to the database (upsert).",
|
|
5012
|
-
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
5013
|
-
"flags": [
|
|
5014
|
-
{
|
|
5015
|
-
"name": "--dir",
|
|
5016
|
-
"type": "string",
|
|
5017
|
-
"description": "Entity directory to push"
|
|
5018
|
-
},
|
|
5019
|
-
{
|
|
5020
|
-
"name": "--dry-run",
|
|
5021
|
-
"type": "boolean",
|
|
5022
|
-
"description": "Report what would change without writing"
|
|
5023
|
-
},
|
|
5024
|
-
{
|
|
5025
|
-
"name": "--ci",
|
|
5026
|
-
"type": "boolean",
|
|
5027
|
-
"description": "No prompts; non-zero exit on error"
|
|
5028
|
-
},
|
|
5029
|
-
{
|
|
5030
|
-
"name": "--no-validate",
|
|
5031
|
-
"type": "boolean",
|
|
5032
|
-
"description": "Skip pre-push validation"
|
|
5033
|
-
},
|
|
5034
|
-
{
|
|
5035
|
-
"name": "--incremental",
|
|
5036
|
-
"type": "boolean",
|
|
5037
|
-
"description": "Skip unchanged files using stored checksums"
|
|
5038
|
-
},
|
|
5039
|
-
{
|
|
5040
|
-
"name": "--format",
|
|
5041
|
-
"type": "text|json|md",
|
|
5042
|
-
"description": "Output format (json for machine-readable result)"
|
|
5043
|
-
}
|
|
5044
|
-
],
|
|
5045
|
-
"examples": [
|
|
5046
|
-
"mj sync push --dir=ai-agents",
|
|
5047
|
-
"mj sync push --ci --format=json"
|
|
5048
|
-
],
|
|
5049
|
-
"runtime": {
|
|
5050
|
-
"class": "variable",
|
|
5051
|
-
"typicalSeconds": 20,
|
|
5052
|
-
"note": "scales with number of records in --dir"
|
|
5053
|
-
}
|
|
5054
|
-
},
|
|
5055
4931
|
"isESM": true,
|
|
5056
4932
|
"relativePath": [
|
|
5057
4933
|
"dist",
|
|
5058
4934
|
"commands",
|
|
5059
|
-
"
|
|
5060
|
-
"
|
|
4935
|
+
"test",
|
|
4936
|
+
"run.js"
|
|
5061
4937
|
]
|
|
5062
4938
|
},
|
|
5063
|
-
"
|
|
4939
|
+
"test:suite": {
|
|
5064
4940
|
"aliases": [],
|
|
5065
|
-
"args": {
|
|
5066
|
-
|
|
4941
|
+
"args": {
|
|
4942
|
+
"suiteId": {
|
|
4943
|
+
"description": "Test suite ID to execute",
|
|
4944
|
+
"name": "suiteId",
|
|
4945
|
+
"required": false
|
|
4946
|
+
}
|
|
4947
|
+
},
|
|
4948
|
+
"description": "Execute a test suite",
|
|
5067
4949
|
"examples": [
|
|
5068
|
-
"<%= config.bin %> <%= command.id %>",
|
|
5069
|
-
"<%= config.bin %> <%= command.id %> --
|
|
5070
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4950
|
+
"<%= config.bin %> <%= command.id %> <suite-id>",
|
|
4951
|
+
"<%= config.bin %> <%= command.id %> --name=\"Agent Quality Suite\"",
|
|
4952
|
+
"<%= config.bin %> <%= command.id %> <suite-id> --format=json",
|
|
4953
|
+
"<%= config.bin %> <%= command.id %> <suite-id> --output=suite-results.json"
|
|
5071
4954
|
],
|
|
5072
4955
|
"flags": {
|
|
5073
|
-
"
|
|
5074
|
-
"
|
|
5075
|
-
"
|
|
4956
|
+
"name": {
|
|
4957
|
+
"char": "n",
|
|
4958
|
+
"description": "Test suite name to execute",
|
|
4959
|
+
"name": "name",
|
|
4960
|
+
"hasDynamicHelp": false,
|
|
4961
|
+
"multiple": false,
|
|
4962
|
+
"type": "option"
|
|
4963
|
+
},
|
|
4964
|
+
"format": {
|
|
4965
|
+
"char": "f",
|
|
4966
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4967
|
+
"name": "format",
|
|
4968
|
+
"hasDynamicHelp": false,
|
|
4969
|
+
"multiple": false,
|
|
4970
|
+
"options": [
|
|
4971
|
+
"text",
|
|
4972
|
+
"json",
|
|
4973
|
+
"md",
|
|
4974
|
+
"human",
|
|
4975
|
+
"console",
|
|
4976
|
+
"markdown",
|
|
4977
|
+
"compact",
|
|
4978
|
+
"table"
|
|
4979
|
+
],
|
|
4980
|
+
"type": "option"
|
|
4981
|
+
},
|
|
4982
|
+
"output": {
|
|
4983
|
+
"char": "o",
|
|
4984
|
+
"description": "Output file path",
|
|
4985
|
+
"name": "output",
|
|
4986
|
+
"hasDynamicHelp": false,
|
|
4987
|
+
"multiple": false,
|
|
4988
|
+
"type": "option"
|
|
4989
|
+
},
|
|
4990
|
+
"verbose": {
|
|
4991
|
+
"char": "v",
|
|
4992
|
+
"description": "Show detailed execution information",
|
|
4993
|
+
"name": "verbose",
|
|
4994
|
+
"allowNo": false,
|
|
4995
|
+
"type": "boolean"
|
|
4996
|
+
},
|
|
4997
|
+
"delay": {
|
|
4998
|
+
"char": "d",
|
|
4999
|
+
"description": "Delay in milliseconds between test executions (avoids Auth0 rate limits)",
|
|
5000
|
+
"name": "delay",
|
|
5001
|
+
"default": 0,
|
|
5076
5002
|
"hasDynamicHelp": false,
|
|
5077
5003
|
"multiple": false,
|
|
5078
5004
|
"type": "option"
|
|
5079
5005
|
},
|
|
5080
|
-
"
|
|
5081
|
-
"char": "
|
|
5082
|
-
"description": "
|
|
5083
|
-
"name": "
|
|
5006
|
+
"parallel": {
|
|
5007
|
+
"char": "p",
|
|
5008
|
+
"description": "Run tests in parallel with shared browser sessions",
|
|
5009
|
+
"name": "parallel",
|
|
5084
5010
|
"allowNo": false,
|
|
5085
5011
|
"type": "boolean"
|
|
5086
5012
|
},
|
|
5087
|
-
"
|
|
5088
|
-
"description": "
|
|
5089
|
-
"name": "
|
|
5013
|
+
"max-parallel": {
|
|
5014
|
+
"description": "Maximum number of parallel workers (default 4)",
|
|
5015
|
+
"name": "max-parallel",
|
|
5016
|
+
"default": 4,
|
|
5090
5017
|
"hasDynamicHelp": false,
|
|
5091
5018
|
"multiple": false,
|
|
5092
5019
|
"type": "option"
|
|
5093
5020
|
},
|
|
5094
|
-
"
|
|
5095
|
-
"description": "
|
|
5096
|
-
"name": "
|
|
5021
|
+
"flaky-check": {
|
|
5022
|
+
"description": "Run each test N times to detect flakiness (variance > 0.3 or mixed pass/fail = flaky). Recommended: 3 or 5",
|
|
5023
|
+
"name": "flaky-check",
|
|
5024
|
+
"hasDynamicHelp": false,
|
|
5025
|
+
"multiple": false,
|
|
5026
|
+
"type": "option"
|
|
5027
|
+
},
|
|
5028
|
+
"checks-module": {
|
|
5029
|
+
"description": "Module specifier (package name or path) side-effect-imported before the run so its integration check bundles register on the IntegrationCheckRegistry. Durable form: mj.config.cjs `testing.checkModules` (this repo loads '@memberjunction/integration-test-suite' that way).",
|
|
5030
|
+
"name": "checks-module",
|
|
5031
|
+
"hasDynamicHelp": false,
|
|
5032
|
+
"multiple": false,
|
|
5033
|
+
"type": "option"
|
|
5034
|
+
},
|
|
5035
|
+
"oracles-module": {
|
|
5036
|
+
"description": "Path to a JS/TS module that exports custom IOracle classes or instances. Each export is registered on the engine before the suite runs — used by non-MJ adopters to plug app-specific oracle types without modifying TestingFramework.",
|
|
5037
|
+
"name": "oracles-module",
|
|
5097
5038
|
"hasDynamicHelp": false,
|
|
5098
5039
|
"multiple": false,
|
|
5099
5040
|
"type": "option"
|
|
@@ -5101,7 +5042,7 @@
|
|
|
5101
5042
|
},
|
|
5102
5043
|
"hasDynamicHelp": false,
|
|
5103
5044
|
"hiddenAliases": [],
|
|
5104
|
-
"id": "
|
|
5045
|
+
"id": "test:suite",
|
|
5105
5046
|
"pluginAlias": "@memberjunction/cli",
|
|
5106
5047
|
"pluginName": "@memberjunction/cli",
|
|
5107
5048
|
"pluginType": "core",
|
|
@@ -5111,14 +5052,14 @@
|
|
|
5111
5052
|
"relativePath": [
|
|
5112
5053
|
"dist",
|
|
5113
5054
|
"commands",
|
|
5114
|
-
"
|
|
5115
|
-
"
|
|
5055
|
+
"test",
|
|
5056
|
+
"suite.js"
|
|
5116
5057
|
]
|
|
5117
5058
|
},
|
|
5118
|
-
"
|
|
5059
|
+
"test:usage": {
|
|
5119
5060
|
"aliases": [],
|
|
5120
5061
|
"args": {},
|
|
5121
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
5062
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj test` command.",
|
|
5122
5063
|
"flags": {
|
|
5123
5064
|
"format": {
|
|
5124
5065
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -5135,7 +5076,7 @@
|
|
|
5135
5076
|
},
|
|
5136
5077
|
"hasDynamicHelp": false,
|
|
5137
5078
|
"hiddenAliases": [],
|
|
5138
|
-
"id": "
|
|
5079
|
+
"id": "test:usage",
|
|
5139
5080
|
"pluginAlias": "@memberjunction/cli",
|
|
5140
5081
|
"pluginName": "@memberjunction/cli",
|
|
5141
5082
|
"pluginType": "core",
|
|
@@ -5145,52 +5086,86 @@
|
|
|
5145
5086
|
"relativePath": [
|
|
5146
5087
|
"dist",
|
|
5147
5088
|
"commands",
|
|
5148
|
-
"
|
|
5089
|
+
"test",
|
|
5149
5090
|
"usage.js"
|
|
5150
5091
|
]
|
|
5151
5092
|
},
|
|
5152
|
-
"
|
|
5093
|
+
"test:validate": {
|
|
5153
5094
|
"aliases": [],
|
|
5154
|
-
"args": {
|
|
5155
|
-
|
|
5095
|
+
"args": {
|
|
5096
|
+
"testId": {
|
|
5097
|
+
"description": "Test ID to validate",
|
|
5098
|
+
"name": "testId",
|
|
5099
|
+
"required": false
|
|
5100
|
+
}
|
|
5101
|
+
},
|
|
5102
|
+
"description": "Validate test definitions without executing",
|
|
5156
5103
|
"examples": [
|
|
5157
|
-
"<%= config.bin %> <%= command.id %>",
|
|
5158
|
-
"<%= config.bin %> <%= command.id %> --
|
|
5159
|
-
"<%= config.bin %> <%= command.id %> --
|
|
5160
|
-
"<%= config.bin %> <%= command.id %> --
|
|
5104
|
+
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
5105
|
+
"<%= config.bin %> <%= command.id %> --all",
|
|
5106
|
+
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
5107
|
+
"<%= config.bin %> <%= command.id %> --all --save-report",
|
|
5108
|
+
"<%= config.bin %> <%= command.id %> --all --output=validation-report.md"
|
|
5161
5109
|
],
|
|
5162
5110
|
"flags": {
|
|
5163
|
-
"
|
|
5164
|
-
"
|
|
5165
|
-
"
|
|
5111
|
+
"all": {
|
|
5112
|
+
"char": "a",
|
|
5113
|
+
"description": "Validate all tests",
|
|
5114
|
+
"name": "all",
|
|
5115
|
+
"allowNo": false,
|
|
5116
|
+
"type": "boolean"
|
|
5117
|
+
},
|
|
5118
|
+
"type": {
|
|
5119
|
+
"char": "t",
|
|
5120
|
+
"description": "Validate tests by type",
|
|
5121
|
+
"name": "type",
|
|
5166
5122
|
"hasDynamicHelp": false,
|
|
5167
5123
|
"multiple": false,
|
|
5168
5124
|
"type": "option"
|
|
5169
5125
|
},
|
|
5170
|
-
"verbose": {
|
|
5171
|
-
"char": "v",
|
|
5172
|
-
"description": "Show detailed validation output",
|
|
5173
|
-
"name": "verbose",
|
|
5174
|
-
"allowNo": false,
|
|
5175
|
-
"type": "boolean"
|
|
5176
|
-
},
|
|
5177
5126
|
"save-report": {
|
|
5178
|
-
"description": "Save validation report
|
|
5127
|
+
"description": "Save validation report to file",
|
|
5179
5128
|
"name": "save-report",
|
|
5180
5129
|
"allowNo": false,
|
|
5181
5130
|
"type": "boolean"
|
|
5182
5131
|
},
|
|
5132
|
+
"format": {
|
|
5133
|
+
"char": "f",
|
|
5134
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
5135
|
+
"name": "format",
|
|
5136
|
+
"hasDynamicHelp": false,
|
|
5137
|
+
"multiple": false,
|
|
5138
|
+
"options": [
|
|
5139
|
+
"text",
|
|
5140
|
+
"json",
|
|
5141
|
+
"md",
|
|
5142
|
+
"human",
|
|
5143
|
+
"console",
|
|
5144
|
+
"markdown",
|
|
5145
|
+
"compact",
|
|
5146
|
+
"table"
|
|
5147
|
+
],
|
|
5148
|
+
"type": "option"
|
|
5149
|
+
},
|
|
5183
5150
|
"output": {
|
|
5184
|
-
"
|
|
5151
|
+
"char": "o",
|
|
5152
|
+
"description": "Output file path",
|
|
5185
5153
|
"name": "output",
|
|
5186
5154
|
"hasDynamicHelp": false,
|
|
5187
5155
|
"multiple": false,
|
|
5188
5156
|
"type": "option"
|
|
5157
|
+
},
|
|
5158
|
+
"verbose": {
|
|
5159
|
+
"char": "v",
|
|
5160
|
+
"description": "Show detailed information",
|
|
5161
|
+
"name": "verbose",
|
|
5162
|
+
"allowNo": false,
|
|
5163
|
+
"type": "boolean"
|
|
5189
5164
|
}
|
|
5190
5165
|
},
|
|
5191
5166
|
"hasDynamicHelp": false,
|
|
5192
5167
|
"hiddenAliases": [],
|
|
5193
|
-
"id": "
|
|
5168
|
+
"id": "test:validate",
|
|
5194
5169
|
"pluginAlias": "@memberjunction/cli",
|
|
5195
5170
|
"pluginName": "@memberjunction/cli",
|
|
5196
5171
|
"pluginType": "core",
|
|
@@ -5200,52 +5175,96 @@
|
|
|
5200
5175
|
"relativePath": [
|
|
5201
5176
|
"dist",
|
|
5202
5177
|
"commands",
|
|
5203
|
-
"
|
|
5178
|
+
"test",
|
|
5204
5179
|
"validate.js"
|
|
5205
5180
|
]
|
|
5206
5181
|
},
|
|
5207
|
-
"
|
|
5182
|
+
"translate-sql": {
|
|
5208
5183
|
"aliases": [],
|
|
5209
5184
|
"args": {},
|
|
5210
|
-
"description": "
|
|
5185
|
+
"description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
|
|
5211
5186
|
"examples": [
|
|
5212
|
-
"<%= config.bin %>
|
|
5213
|
-
"<%= config.bin %>
|
|
5214
|
-
"<%= config.bin %>
|
|
5215
|
-
"<%= config.bin %>
|
|
5187
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
|
|
5188
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
|
|
5189
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
|
|
5190
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
5216
5191
|
],
|
|
5217
5192
|
"flags": {
|
|
5218
|
-
"
|
|
5219
|
-
"description": "
|
|
5220
|
-
"name": "
|
|
5193
|
+
"from": {
|
|
5194
|
+
"description": "Source SQL dialect",
|
|
5195
|
+
"name": "from",
|
|
5196
|
+
"required": true,
|
|
5221
5197
|
"hasDynamicHelp": false,
|
|
5222
5198
|
"multiple": false,
|
|
5199
|
+
"options": [
|
|
5200
|
+
"sqlserver",
|
|
5201
|
+
"postgresql"
|
|
5202
|
+
],
|
|
5223
5203
|
"type": "option"
|
|
5224
5204
|
},
|
|
5225
|
-
"
|
|
5226
|
-
"description": "
|
|
5227
|
-
"name": "
|
|
5205
|
+
"to": {
|
|
5206
|
+
"description": "Target SQL dialect",
|
|
5207
|
+
"name": "to",
|
|
5208
|
+
"required": true,
|
|
5228
5209
|
"hasDynamicHelp": false,
|
|
5229
5210
|
"multiple": false,
|
|
5211
|
+
"options": [
|
|
5212
|
+
"sqlserver",
|
|
5213
|
+
"postgresql"
|
|
5214
|
+
],
|
|
5230
5215
|
"type": "option"
|
|
5231
5216
|
},
|
|
5232
|
-
"
|
|
5233
|
-
"description": "
|
|
5234
|
-
"name": "
|
|
5217
|
+
"scope": {
|
|
5218
|
+
"description": "What to scan for translation",
|
|
5219
|
+
"name": "scope",
|
|
5220
|
+
"default": "all",
|
|
5221
|
+
"hasDynamicHelp": false,
|
|
5222
|
+
"multiple": false,
|
|
5223
|
+
"options": [
|
|
5224
|
+
"queries",
|
|
5225
|
+
"views",
|
|
5226
|
+
"filters",
|
|
5227
|
+
"all"
|
|
5228
|
+
],
|
|
5229
|
+
"type": "option"
|
|
5230
|
+
},
|
|
5231
|
+
"sql": {
|
|
5232
|
+
"description": "Translate a single SQL fragment (inline mode)",
|
|
5233
|
+
"name": "sql",
|
|
5234
|
+
"hasDynamicHelp": false,
|
|
5235
|
+
"multiple": false,
|
|
5236
|
+
"type": "option"
|
|
5237
|
+
},
|
|
5238
|
+
"dry-run": {
|
|
5239
|
+
"description": "Show what would be translated without making changes",
|
|
5240
|
+
"name": "dry-run",
|
|
5235
5241
|
"allowNo": false,
|
|
5236
5242
|
"type": "boolean"
|
|
5237
5243
|
},
|
|
5238
|
-
"
|
|
5239
|
-
"
|
|
5240
|
-
"
|
|
5241
|
-
"
|
|
5244
|
+
"review": {
|
|
5245
|
+
"description": "Generate review report only (no writes to database)",
|
|
5246
|
+
"name": "review",
|
|
5247
|
+
"allowNo": false,
|
|
5248
|
+
"type": "boolean"
|
|
5249
|
+
},
|
|
5250
|
+
"output": {
|
|
5251
|
+
"char": "o",
|
|
5252
|
+
"description": "Output directory for the translation report",
|
|
5253
|
+
"name": "output",
|
|
5254
|
+
"hasDynamicHelp": false,
|
|
5255
|
+
"multiple": false,
|
|
5256
|
+
"type": "option"
|
|
5257
|
+
},
|
|
5258
|
+
"force": {
|
|
5259
|
+
"description": "Re-translate even if platform variants already exist",
|
|
5260
|
+
"name": "force",
|
|
5242
5261
|
"allowNo": false,
|
|
5243
5262
|
"type": "boolean"
|
|
5244
5263
|
}
|
|
5245
5264
|
},
|
|
5246
5265
|
"hasDynamicHelp": false,
|
|
5247
5266
|
"hiddenAliases": [],
|
|
5248
|
-
"id": "
|
|
5267
|
+
"id": "translate-sql",
|
|
5249
5268
|
"pluginAlias": "@memberjunction/cli",
|
|
5250
5269
|
"pluginName": "@memberjunction/cli",
|
|
5251
5270
|
"pluginType": "core",
|
|
@@ -5255,8 +5274,42 @@
|
|
|
5255
5274
|
"relativePath": [
|
|
5256
5275
|
"dist",
|
|
5257
5276
|
"commands",
|
|
5258
|
-
"
|
|
5259
|
-
"
|
|
5277
|
+
"translate-sql",
|
|
5278
|
+
"index.js"
|
|
5279
|
+
]
|
|
5280
|
+
},
|
|
5281
|
+
"translate-sql:usage": {
|
|
5282
|
+
"aliases": [],
|
|
5283
|
+
"args": {},
|
|
5284
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj translate-sql` command.",
|
|
5285
|
+
"flags": {
|
|
5286
|
+
"format": {
|
|
5287
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
5288
|
+
"name": "format",
|
|
5289
|
+
"hasDynamicHelp": false,
|
|
5290
|
+
"multiple": false,
|
|
5291
|
+
"options": [
|
|
5292
|
+
"text",
|
|
5293
|
+
"json",
|
|
5294
|
+
"md"
|
|
5295
|
+
],
|
|
5296
|
+
"type": "option"
|
|
5297
|
+
}
|
|
5298
|
+
},
|
|
5299
|
+
"hasDynamicHelp": false,
|
|
5300
|
+
"hiddenAliases": [],
|
|
5301
|
+
"id": "translate-sql:usage",
|
|
5302
|
+
"pluginAlias": "@memberjunction/cli",
|
|
5303
|
+
"pluginName": "@memberjunction/cli",
|
|
5304
|
+
"pluginType": "core",
|
|
5305
|
+
"strict": true,
|
|
5306
|
+
"enableJsonFlag": false,
|
|
5307
|
+
"isESM": true,
|
|
5308
|
+
"relativePath": [
|
|
5309
|
+
"dist",
|
|
5310
|
+
"commands",
|
|
5311
|
+
"translate-sql",
|
|
5312
|
+
"usage.js"
|
|
5260
5313
|
]
|
|
5261
5314
|
},
|
|
5262
5315
|
"update:claude": {
|
|
@@ -6787,5 +6840,5 @@
|
|
|
6787
6840
|
]
|
|
6788
6841
|
}
|
|
6789
6842
|
},
|
|
6790
|
-
"version": "6.1.0-edge.
|
|
6843
|
+
"version": "6.1.0-edge.6"
|
|
6791
6844
|
}
|