@memberjunction/cli 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/oclif.manifest.json +722 -722
- package/package.json +13 -13
package/oclif.manifest.json
CHANGED
|
@@ -424,68 +424,38 @@
|
|
|
424
424
|
"index.js"
|
|
425
425
|
]
|
|
426
426
|
},
|
|
427
|
-
"
|
|
427
|
+
"dbdoc:analyze": {
|
|
428
428
|
"aliases": [],
|
|
429
429
|
"args": {},
|
|
430
|
-
"description": "
|
|
430
|
+
"description": "Analyze database and generate documentation (delegates to db-auto-doc analyze)",
|
|
431
431
|
"examples": [
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
},
|
|
436
|
-
{
|
|
437
|
-
"description": "Scan a single file",
|
|
438
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/components/actions-overview.component.ts"
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
"description": "Apply fixes across the codebase",
|
|
442
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ --fix"
|
|
443
|
-
},
|
|
444
|
-
{
|
|
445
|
-
"description": "Quiet mode (summary only)",
|
|
446
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ -q"
|
|
447
|
-
}
|
|
432
|
+
"<%= config.bin %> <%= command.id %>",
|
|
433
|
+
"<%= config.bin %> <%= command.id %> --resume ./output/run-6/state.json",
|
|
434
|
+
"<%= config.bin %> <%= command.id %> --config ./my-config.json"
|
|
448
435
|
],
|
|
449
436
|
"flags": {
|
|
450
|
-
"
|
|
451
|
-
"char": "
|
|
452
|
-
"description": "
|
|
453
|
-
"name": "
|
|
437
|
+
"resume": {
|
|
438
|
+
"char": "r",
|
|
439
|
+
"description": "Resume from an existing state file",
|
|
440
|
+
"name": "resume",
|
|
441
|
+
"required": false,
|
|
454
442
|
"hasDynamicHelp": false,
|
|
455
443
|
"multiple": false,
|
|
456
444
|
"type": "option"
|
|
457
445
|
},
|
|
458
|
-
"
|
|
459
|
-
"
|
|
460
|
-
"
|
|
461
|
-
"
|
|
462
|
-
"
|
|
463
|
-
},
|
|
464
|
-
"entity-subclasses": {
|
|
465
|
-
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
466
|
-
"name": "entity-subclasses",
|
|
446
|
+
"config": {
|
|
447
|
+
"char": "c",
|
|
448
|
+
"description": "Path to config file",
|
|
449
|
+
"name": "config",
|
|
450
|
+
"default": "./config.json",
|
|
467
451
|
"hasDynamicHelp": false,
|
|
468
452
|
"multiple": false,
|
|
469
453
|
"type": "option"
|
|
470
|
-
},
|
|
471
|
-
"quiet": {
|
|
472
|
-
"char": "q",
|
|
473
|
-
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
474
|
-
"name": "quiet",
|
|
475
|
-
"allowNo": false,
|
|
476
|
-
"type": "boolean"
|
|
477
|
-
},
|
|
478
|
-
"verbose": {
|
|
479
|
-
"char": "v",
|
|
480
|
-
"description": "Show detailed progress including each file being scanned.",
|
|
481
|
-
"name": "verbose",
|
|
482
|
-
"allowNo": false,
|
|
483
|
-
"type": "boolean"
|
|
484
454
|
}
|
|
485
455
|
},
|
|
486
456
|
"hasDynamicHelp": false,
|
|
487
457
|
"hiddenAliases": [],
|
|
488
|
-
"id": "
|
|
458
|
+
"id": "dbdoc:analyze",
|
|
489
459
|
"pluginAlias": "@memberjunction/cli",
|
|
490
460
|
"pluginName": "@memberjunction/cli",
|
|
491
461
|
"pluginType": "core",
|
|
@@ -495,72 +465,105 @@
|
|
|
495
465
|
"relativePath": [
|
|
496
466
|
"dist",
|
|
497
467
|
"commands",
|
|
498
|
-
"
|
|
499
|
-
"
|
|
468
|
+
"dbdoc",
|
|
469
|
+
"analyze.js"
|
|
500
470
|
]
|
|
501
471
|
},
|
|
502
|
-
"
|
|
472
|
+
"dbdoc:export-sample-queries": {
|
|
503
473
|
"aliases": [],
|
|
504
474
|
"args": {},
|
|
505
|
-
"description": "
|
|
475
|
+
"description": "Export sample queries to MemberJunction metadata format (delegates to db-auto-doc export-sample-queries)",
|
|
506
476
|
"examples": [
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
{
|
|
512
|
-
"description": "Apply fixes to HTML templates",
|
|
513
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/ --fix"
|
|
514
|
-
},
|
|
515
|
-
{
|
|
516
|
-
"description": "Scan with verbose output",
|
|
517
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ -v"
|
|
518
|
-
},
|
|
519
|
-
{
|
|
520
|
-
"description": "Scan a single template file",
|
|
521
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/actions-dashboard.component.html"
|
|
522
|
-
}
|
|
477
|
+
"<%= config.bin %> <%= command.id %> --input ./output/sample-queries.json --output ./metadata/queries/.queries.json",
|
|
478
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./metadata/queries/.queries.json --separate-sql-files",
|
|
479
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --category \"Database Documentation\"",
|
|
480
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --status Pending --min-confidence 0.8"
|
|
523
481
|
],
|
|
524
482
|
"flags": {
|
|
525
|
-
"
|
|
526
|
-
"char": "
|
|
527
|
-
"description": "
|
|
528
|
-
"name": "
|
|
483
|
+
"input": {
|
|
484
|
+
"char": "i",
|
|
485
|
+
"description": "Path to sample-queries.json file generated by generate-queries command",
|
|
486
|
+
"name": "input",
|
|
487
|
+
"required": true,
|
|
529
488
|
"hasDynamicHelp": false,
|
|
530
489
|
"multiple": false,
|
|
531
490
|
"type": "option"
|
|
532
491
|
},
|
|
533
|
-
"
|
|
534
|
-
"
|
|
535
|
-
"
|
|
492
|
+
"output": {
|
|
493
|
+
"char": "o",
|
|
494
|
+
"description": "Output path for the .queries.json metadata file",
|
|
495
|
+
"name": "output",
|
|
496
|
+
"required": true,
|
|
497
|
+
"hasDynamicHelp": false,
|
|
498
|
+
"multiple": false,
|
|
499
|
+
"type": "option"
|
|
500
|
+
},
|
|
501
|
+
"separate-sql-files": {
|
|
502
|
+
"description": "Write SQL to separate files and use @file: references",
|
|
503
|
+
"name": "separate-sql-files",
|
|
536
504
|
"allowNo": false,
|
|
537
505
|
"type": "boolean"
|
|
538
506
|
},
|
|
539
|
-
"
|
|
540
|
-
"description": "
|
|
541
|
-
"name": "
|
|
507
|
+
"sql-dir": {
|
|
508
|
+
"description": "Directory for SQL files when using --separate-sql-files (relative to output file)",
|
|
509
|
+
"name": "sql-dir",
|
|
510
|
+
"default": "SQL",
|
|
542
511
|
"hasDynamicHelp": false,
|
|
543
512
|
"multiple": false,
|
|
544
513
|
"type": "option"
|
|
545
514
|
},
|
|
546
|
-
"
|
|
547
|
-
"
|
|
548
|
-
"
|
|
549
|
-
"
|
|
515
|
+
"category": {
|
|
516
|
+
"description": "Category name for @lookup reference (e.g., \"Database Documentation\")",
|
|
517
|
+
"name": "category",
|
|
518
|
+
"required": false,
|
|
519
|
+
"hasDynamicHelp": false,
|
|
520
|
+
"multiple": false,
|
|
521
|
+
"type": "option"
|
|
522
|
+
},
|
|
523
|
+
"status": {
|
|
524
|
+
"description": "Status to assign to exported queries",
|
|
525
|
+
"name": "status",
|
|
526
|
+
"default": "Pending",
|
|
527
|
+
"hasDynamicHelp": false,
|
|
528
|
+
"multiple": false,
|
|
529
|
+
"options": [
|
|
530
|
+
"Approved",
|
|
531
|
+
"Pending",
|
|
532
|
+
"Rejected",
|
|
533
|
+
"Expired"
|
|
534
|
+
],
|
|
535
|
+
"type": "option"
|
|
536
|
+
},
|
|
537
|
+
"min-confidence": {
|
|
538
|
+
"description": "Minimum confidence threshold to export (0-1)",
|
|
539
|
+
"name": "min-confidence",
|
|
540
|
+
"default": "0",
|
|
541
|
+
"hasDynamicHelp": false,
|
|
542
|
+
"multiple": false,
|
|
543
|
+
"type": "option"
|
|
544
|
+
},
|
|
545
|
+
"validated-only": {
|
|
546
|
+
"description": "Only export queries that were successfully validated",
|
|
547
|
+
"name": "validated-only",
|
|
550
548
|
"allowNo": false,
|
|
551
549
|
"type": "boolean"
|
|
552
550
|
},
|
|
553
|
-
"
|
|
554
|
-
"
|
|
555
|
-
"
|
|
556
|
-
"
|
|
551
|
+
"append": {
|
|
552
|
+
"description": "Append to existing metadata file instead of overwriting",
|
|
553
|
+
"name": "append",
|
|
554
|
+
"allowNo": false,
|
|
555
|
+
"type": "boolean"
|
|
556
|
+
},
|
|
557
|
+
"include-primary-key": {
|
|
558
|
+
"description": "Include primaryKey and sync fields (for updating existing records)",
|
|
559
|
+
"name": "include-primary-key",
|
|
557
560
|
"allowNo": false,
|
|
558
561
|
"type": "boolean"
|
|
559
562
|
}
|
|
560
563
|
},
|
|
561
564
|
"hasDynamicHelp": false,
|
|
562
565
|
"hiddenAliases": [],
|
|
563
|
-
"id": "
|
|
566
|
+
"id": "dbdoc:export-sample-queries",
|
|
564
567
|
"pluginAlias": "@memberjunction/cli",
|
|
565
568
|
"pluginName": "@memberjunction/cli",
|
|
566
569
|
"pluginType": "core",
|
|
@@ -570,110 +573,100 @@
|
|
|
570
573
|
"relativePath": [
|
|
571
574
|
"dist",
|
|
572
575
|
"commands",
|
|
573
|
-
"
|
|
574
|
-
"
|
|
576
|
+
"dbdoc",
|
|
577
|
+
"export-sample-queries.js"
|
|
575
578
|
]
|
|
576
579
|
},
|
|
577
|
-
"
|
|
580
|
+
"dbdoc:export": {
|
|
578
581
|
"aliases": [],
|
|
579
582
|
"args": {},
|
|
580
|
-
"description": "
|
|
583
|
+
"description": "Export documentation in multiple formats (delegates to db-auto-doc export)",
|
|
581
584
|
"examples": [
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
},
|
|
590
|
-
{
|
|
591
|
-
"description": "Scan a specific subdirectory",
|
|
592
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/resource-types"
|
|
593
|
-
},
|
|
594
|
-
{
|
|
595
|
-
"description": "Scan and fix a single metadata file",
|
|
596
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/entities/.audit-related-entities.json --fix"
|
|
597
|
-
}
|
|
585
|
+
"<%= config.bin %> <%= command.id %> --state-file=./db-doc-state.json",
|
|
586
|
+
"<%= config.bin %> <%= command.id %> --sql",
|
|
587
|
+
"<%= config.bin %> <%= command.id %> --markdown",
|
|
588
|
+
"<%= config.bin %> <%= command.id %> --html",
|
|
589
|
+
"<%= config.bin %> <%= command.id %> --csv",
|
|
590
|
+
"<%= config.bin %> <%= command.id %> --mermaid",
|
|
591
|
+
"<%= config.bin %> <%= command.id %> --sql --markdown --html --csv --mermaid --apply"
|
|
598
592
|
],
|
|
599
593
|
"flags": {
|
|
600
|
-
"
|
|
601
|
-
"char": "
|
|
602
|
-
"description": "
|
|
603
|
-
"name": "
|
|
594
|
+
"state-file": {
|
|
595
|
+
"char": "s",
|
|
596
|
+
"description": "Path to state JSON file",
|
|
597
|
+
"name": "state-file",
|
|
604
598
|
"hasDynamicHelp": false,
|
|
605
599
|
"multiple": false,
|
|
606
600
|
"type": "option"
|
|
607
601
|
},
|
|
608
|
-
"
|
|
609
|
-
"
|
|
610
|
-
"
|
|
611
|
-
"
|
|
612
|
-
"type": "boolean"
|
|
613
|
-
},
|
|
614
|
-
"entity-subclasses": {
|
|
615
|
-
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
616
|
-
"name": "entity-subclasses",
|
|
602
|
+
"output-dir": {
|
|
603
|
+
"char": "o",
|
|
604
|
+
"description": "Output directory for generated files",
|
|
605
|
+
"name": "output-dir",
|
|
617
606
|
"hasDynamicHelp": false,
|
|
618
607
|
"multiple": false,
|
|
619
608
|
"type": "option"
|
|
620
609
|
},
|
|
621
|
-
"
|
|
622
|
-
"
|
|
623
|
-
"
|
|
624
|
-
"name": "quiet",
|
|
610
|
+
"sql": {
|
|
611
|
+
"description": "Generate SQL script",
|
|
612
|
+
"name": "sql",
|
|
625
613
|
"allowNo": false,
|
|
626
614
|
"type": "boolean"
|
|
627
615
|
},
|
|
628
|
-
"
|
|
629
|
-
"
|
|
630
|
-
"
|
|
631
|
-
"name": "verbose",
|
|
616
|
+
"markdown": {
|
|
617
|
+
"description": "Generate Markdown documentation",
|
|
618
|
+
"name": "markdown",
|
|
632
619
|
"allowNo": false,
|
|
633
620
|
"type": "boolean"
|
|
634
|
-
}
|
|
635
|
-
},
|
|
636
|
-
"hasDynamicHelp": false,
|
|
637
|
-
"hiddenAliases": [],
|
|
638
|
-
"id": "codegen:5-0-fix-metadata-names",
|
|
639
|
-
"pluginAlias": "@memberjunction/cli",
|
|
640
|
-
"pluginName": "@memberjunction/cli",
|
|
641
|
-
"pluginType": "core",
|
|
642
|
-
"strict": true,
|
|
643
|
-
"enableJsonFlag": false,
|
|
644
|
-
"isESM": true,
|
|
645
|
-
"relativePath": [
|
|
646
|
-
"dist",
|
|
647
|
-
"commands",
|
|
648
|
-
"codegen",
|
|
649
|
-
"5-0-fix-metadata-names.js"
|
|
650
|
-
]
|
|
651
|
-
},
|
|
652
|
-
"codegen": {
|
|
653
|
-
"aliases": [],
|
|
654
|
-
"args": {},
|
|
655
|
-
"description": "Run the full MemberJunction code generation pipeline.\n\nAnalyzes your SQL Server database schema, updates MemberJunction metadata, and\ngenerates synchronized code across the entire stack:\n\n - SQL views, stored procedures, indexes, and permissions\n - TypeScript entity classes with Zod validation schemas\n - Angular form components with AI-driven layouts\n - GraphQL resolvers and type definitions\n - Action subclasses and DB schema JSON\n\nConfiguration is loaded from mj.config.cjs in the current directory (or parent\ndirectories). Database connection can also be set via environment variables:\nDB_HOST, DB_DATABASE, CODEGEN_DB_USERNAME, CODEGEN_DB_PASSWORD.\n\nUse --skipdb to skip all database operations (metadata sync, SQL object\ngeneration) and only regenerate TypeScript, Angular, and GraphQL output from\nexisting metadata.",
|
|
656
|
-
"examples": [
|
|
657
|
-
{
|
|
658
|
-
"command": "<%= config.bin %> <%= command.id %>",
|
|
659
|
-
"description": "Run the full code generation pipeline"
|
|
660
621
|
},
|
|
661
|
-
{
|
|
662
|
-
"
|
|
663
|
-
"
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
"
|
|
668
|
-
"description": "
|
|
669
|
-
"name": "
|
|
622
|
+
"html": {
|
|
623
|
+
"description": "Generate interactive HTML documentation",
|
|
624
|
+
"name": "html",
|
|
625
|
+
"allowNo": false,
|
|
626
|
+
"type": "boolean"
|
|
627
|
+
},
|
|
628
|
+
"csv": {
|
|
629
|
+
"description": "Generate CSV exports (tables and columns)",
|
|
630
|
+
"name": "csv",
|
|
670
631
|
"allowNo": false,
|
|
671
632
|
"type": "boolean"
|
|
633
|
+
},
|
|
634
|
+
"mermaid": {
|
|
635
|
+
"description": "Generate Mermaid ERD diagram files",
|
|
636
|
+
"name": "mermaid",
|
|
637
|
+
"allowNo": false,
|
|
638
|
+
"type": "boolean"
|
|
639
|
+
},
|
|
640
|
+
"report": {
|
|
641
|
+
"description": "Generate analysis report",
|
|
642
|
+
"name": "report",
|
|
643
|
+
"allowNo": false,
|
|
644
|
+
"type": "boolean"
|
|
645
|
+
},
|
|
646
|
+
"apply": {
|
|
647
|
+
"description": "Apply SQL to database",
|
|
648
|
+
"name": "apply",
|
|
649
|
+
"allowNo": false,
|
|
650
|
+
"type": "boolean"
|
|
651
|
+
},
|
|
652
|
+
"approved-only": {
|
|
653
|
+
"description": "Only export approved items",
|
|
654
|
+
"name": "approved-only",
|
|
655
|
+
"allowNo": false,
|
|
656
|
+
"type": "boolean"
|
|
657
|
+
},
|
|
658
|
+
"confidence-threshold": {
|
|
659
|
+
"description": "Minimum confidence threshold",
|
|
660
|
+
"name": "confidence-threshold",
|
|
661
|
+
"default": "0",
|
|
662
|
+
"hasDynamicHelp": false,
|
|
663
|
+
"multiple": false,
|
|
664
|
+
"type": "option"
|
|
672
665
|
}
|
|
673
666
|
},
|
|
674
667
|
"hasDynamicHelp": false,
|
|
675
668
|
"hiddenAliases": [],
|
|
676
|
-
"id": "
|
|
669
|
+
"id": "dbdoc:export",
|
|
677
670
|
"pluginAlias": "@memberjunction/cli",
|
|
678
671
|
"pluginName": "@memberjunction/cli",
|
|
679
672
|
"pluginType": "core",
|
|
@@ -683,84 +676,65 @@
|
|
|
683
676
|
"relativePath": [
|
|
684
677
|
"dist",
|
|
685
678
|
"commands",
|
|
686
|
-
"
|
|
687
|
-
"
|
|
679
|
+
"dbdoc",
|
|
680
|
+
"export.js"
|
|
688
681
|
]
|
|
689
682
|
},
|
|
690
|
-
"
|
|
683
|
+
"dbdoc:generate-queries": {
|
|
691
684
|
"aliases": [],
|
|
692
685
|
"args": {},
|
|
693
|
-
"description": "Generate
|
|
686
|
+
"description": "Generate sample SQL queries from existing analysis state (delegates to db-auto-doc generate-queries)",
|
|
694
687
|
"examples": [
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
},
|
|
699
|
-
{
|
|
700
|
-
"command": "<%= config.bin %> <%= command.id %> --appDir ./packages/MJAPI --output ./packages/MJAPI/src/generated/class-registrations-manifest.ts",
|
|
701
|
-
"description": "Generate manifest for a specific application directory"
|
|
702
|
-
},
|
|
703
|
-
{
|
|
704
|
-
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction",
|
|
705
|
-
"description": "Exclude MJ packages (use pre-built bootstrap manifests instead)"
|
|
706
|
-
},
|
|
707
|
-
{
|
|
708
|
-
"command": "<%= config.bin %> <%= command.id %> --filter BaseEngine --filter BaseAction --verbose",
|
|
709
|
-
"description": "Only include specific base classes with detailed progress"
|
|
710
|
-
}
|
|
688
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json",
|
|
689
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --output-dir ./queries",
|
|
690
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --queries-per-table 10"
|
|
711
691
|
],
|
|
712
692
|
"flags": {
|
|
713
|
-
"
|
|
714
|
-
"
|
|
715
|
-
"
|
|
716
|
-
"
|
|
717
|
-
"default": "./src/generated/class-registrations-manifest.ts",
|
|
693
|
+
"from-state": {
|
|
694
|
+
"description": "Path to existing state.json file from previous analysis",
|
|
695
|
+
"name": "from-state",
|
|
696
|
+
"required": true,
|
|
718
697
|
"hasDynamicHelp": false,
|
|
719
698
|
"multiple": false,
|
|
720
699
|
"type": "option"
|
|
721
700
|
},
|
|
722
|
-
"
|
|
723
|
-
"
|
|
724
|
-
"
|
|
725
|
-
"
|
|
701
|
+
"output-dir": {
|
|
702
|
+
"description": "Output directory for generated queries",
|
|
703
|
+
"name": "output-dir",
|
|
704
|
+
"required": false,
|
|
726
705
|
"hasDynamicHelp": false,
|
|
727
706
|
"multiple": false,
|
|
728
707
|
"type": "option"
|
|
729
708
|
},
|
|
730
|
-
"
|
|
731
|
-
"char": "
|
|
732
|
-
"description": "
|
|
733
|
-
"name": "
|
|
709
|
+
"config": {
|
|
710
|
+
"char": "c",
|
|
711
|
+
"description": "Path to config file (for database connection and AI settings)",
|
|
712
|
+
"name": "config",
|
|
713
|
+
"default": "./config.json",
|
|
734
714
|
"hasDynamicHelp": false,
|
|
735
|
-
"multiple":
|
|
715
|
+
"multiple": false,
|
|
736
716
|
"type": "option"
|
|
737
717
|
},
|
|
738
|
-
"
|
|
739
|
-
"
|
|
740
|
-
"
|
|
741
|
-
"
|
|
718
|
+
"queries-per-table": {
|
|
719
|
+
"description": "Number of queries to generate per table",
|
|
720
|
+
"name": "queries-per-table",
|
|
721
|
+
"required": false,
|
|
742
722
|
"hasDynamicHelp": false,
|
|
743
|
-
"multiple":
|
|
723
|
+
"multiple": false,
|
|
744
724
|
"type": "option"
|
|
745
725
|
},
|
|
746
|
-
"
|
|
747
|
-
"
|
|
748
|
-
"
|
|
749
|
-
"
|
|
750
|
-
"
|
|
751
|
-
"
|
|
752
|
-
|
|
753
|
-
"verbose": {
|
|
754
|
-
"char": "v",
|
|
755
|
-
"description": "Show detailed progress including per-package scanning info and skipped classes.",
|
|
756
|
-
"name": "verbose",
|
|
757
|
-
"allowNo": false,
|
|
758
|
-
"type": "boolean"
|
|
726
|
+
"max-execution-time": {
|
|
727
|
+
"description": "Maximum execution time for query validation (ms)",
|
|
728
|
+
"name": "max-execution-time",
|
|
729
|
+
"required": false,
|
|
730
|
+
"hasDynamicHelp": false,
|
|
731
|
+
"multiple": false,
|
|
732
|
+
"type": "option"
|
|
759
733
|
}
|
|
760
734
|
},
|
|
761
735
|
"hasDynamicHelp": false,
|
|
762
736
|
"hiddenAliases": [],
|
|
763
|
-
"id": "
|
|
737
|
+
"id": "dbdoc:generate-queries",
|
|
764
738
|
"pluginAlias": "@memberjunction/cli",
|
|
765
739
|
"pluginName": "@memberjunction/cli",
|
|
766
740
|
"pluginType": "core",
|
|
@@ -770,42 +744,43 @@
|
|
|
770
744
|
"relativePath": [
|
|
771
745
|
"dist",
|
|
772
746
|
"commands",
|
|
773
|
-
"
|
|
774
|
-
"
|
|
747
|
+
"dbdoc",
|
|
748
|
+
"generate-queries.js"
|
|
775
749
|
]
|
|
776
750
|
},
|
|
777
|
-
"dbdoc
|
|
751
|
+
"dbdoc": {
|
|
778
752
|
"aliases": [],
|
|
779
753
|
"args": {},
|
|
780
|
-
"description": "
|
|
754
|
+
"description": "AI-powered database documentation generator",
|
|
755
|
+
"flags": {},
|
|
756
|
+
"hasDynamicHelp": false,
|
|
757
|
+
"hidden": false,
|
|
758
|
+
"hiddenAliases": [],
|
|
759
|
+
"id": "dbdoc",
|
|
760
|
+
"pluginAlias": "@memberjunction/cli",
|
|
761
|
+
"pluginName": "@memberjunction/cli",
|
|
762
|
+
"pluginType": "core",
|
|
763
|
+
"strict": true,
|
|
764
|
+
"enableJsonFlag": false,
|
|
765
|
+
"isESM": true,
|
|
766
|
+
"relativePath": [
|
|
767
|
+
"dist",
|
|
768
|
+
"commands",
|
|
769
|
+
"dbdoc",
|
|
770
|
+
"index.js"
|
|
771
|
+
]
|
|
772
|
+
},
|
|
773
|
+
"dbdoc:init": {
|
|
774
|
+
"aliases": [],
|
|
775
|
+
"args": {},
|
|
776
|
+
"description": "Initialize DBAutoDoc project (delegates to db-auto-doc init)",
|
|
781
777
|
"examples": [
|
|
782
|
-
"<%= config.bin %> <%= command.id %>"
|
|
783
|
-
"<%= config.bin %> <%= command.id %> --resume ./output/run-6/state.json",
|
|
784
|
-
"<%= config.bin %> <%= command.id %> --config ./my-config.json"
|
|
778
|
+
"<%= config.bin %> <%= command.id %>"
|
|
785
779
|
],
|
|
786
|
-
"flags": {
|
|
787
|
-
"resume": {
|
|
788
|
-
"char": "r",
|
|
789
|
-
"description": "Resume from an existing state file",
|
|
790
|
-
"name": "resume",
|
|
791
|
-
"required": false,
|
|
792
|
-
"hasDynamicHelp": false,
|
|
793
|
-
"multiple": false,
|
|
794
|
-
"type": "option"
|
|
795
|
-
},
|
|
796
|
-
"config": {
|
|
797
|
-
"char": "c",
|
|
798
|
-
"description": "Path to config file",
|
|
799
|
-
"name": "config",
|
|
800
|
-
"default": "./config.json",
|
|
801
|
-
"hasDynamicHelp": false,
|
|
802
|
-
"multiple": false,
|
|
803
|
-
"type": "option"
|
|
804
|
-
}
|
|
805
|
-
},
|
|
780
|
+
"flags": {},
|
|
806
781
|
"hasDynamicHelp": false,
|
|
807
782
|
"hiddenAliases": [],
|
|
808
|
-
"id": "dbdoc:
|
|
783
|
+
"id": "dbdoc:init",
|
|
809
784
|
"pluginAlias": "@memberjunction/cli",
|
|
810
785
|
"pluginName": "@memberjunction/cli",
|
|
811
786
|
"pluginType": "core",
|
|
@@ -816,104 +791,29 @@
|
|
|
816
791
|
"dist",
|
|
817
792
|
"commands",
|
|
818
793
|
"dbdoc",
|
|
819
|
-
"
|
|
794
|
+
"init.js"
|
|
820
795
|
]
|
|
821
796
|
},
|
|
822
|
-
"dbdoc:
|
|
797
|
+
"dbdoc:reset": {
|
|
823
798
|
"aliases": [],
|
|
824
799
|
"args": {},
|
|
825
|
-
"description": "
|
|
800
|
+
"description": "Reset analysis state (delegates to db-auto-doc reset)",
|
|
826
801
|
"examples": [
|
|
827
|
-
"<%= config.bin %> <%= command.id %>
|
|
828
|
-
"<%= config.bin %> <%= command.id %> --
|
|
829
|
-
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --category \"Database Documentation\"",
|
|
830
|
-
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --status Pending --min-confidence 0.8"
|
|
802
|
+
"<%= config.bin %> <%= command.id %>",
|
|
803
|
+
"<%= config.bin %> <%= command.id %> --force"
|
|
831
804
|
],
|
|
832
805
|
"flags": {
|
|
833
|
-
"
|
|
834
|
-
"char": "
|
|
835
|
-
"description": "
|
|
836
|
-
"name": "
|
|
837
|
-
"required": true,
|
|
838
|
-
"hasDynamicHelp": false,
|
|
839
|
-
"multiple": false,
|
|
840
|
-
"type": "option"
|
|
841
|
-
},
|
|
842
|
-
"output": {
|
|
843
|
-
"char": "o",
|
|
844
|
-
"description": "Output path for the .queries.json metadata file",
|
|
845
|
-
"name": "output",
|
|
846
|
-
"required": true,
|
|
847
|
-
"hasDynamicHelp": false,
|
|
848
|
-
"multiple": false,
|
|
849
|
-
"type": "option"
|
|
850
|
-
},
|
|
851
|
-
"separate-sql-files": {
|
|
852
|
-
"description": "Write SQL to separate files and use @file: references",
|
|
853
|
-
"name": "separate-sql-files",
|
|
854
|
-
"allowNo": false,
|
|
855
|
-
"type": "boolean"
|
|
856
|
-
},
|
|
857
|
-
"sql-dir": {
|
|
858
|
-
"description": "Directory for SQL files when using --separate-sql-files (relative to output file)",
|
|
859
|
-
"name": "sql-dir",
|
|
860
|
-
"default": "SQL",
|
|
861
|
-
"hasDynamicHelp": false,
|
|
862
|
-
"multiple": false,
|
|
863
|
-
"type": "option"
|
|
864
|
-
},
|
|
865
|
-
"category": {
|
|
866
|
-
"description": "Category name for @lookup reference (e.g., \"Database Documentation\")",
|
|
867
|
-
"name": "category",
|
|
868
|
-
"required": false,
|
|
869
|
-
"hasDynamicHelp": false,
|
|
870
|
-
"multiple": false,
|
|
871
|
-
"type": "option"
|
|
872
|
-
},
|
|
873
|
-
"status": {
|
|
874
|
-
"description": "Status to assign to exported queries",
|
|
875
|
-
"name": "status",
|
|
876
|
-
"default": "Pending",
|
|
877
|
-
"hasDynamicHelp": false,
|
|
878
|
-
"multiple": false,
|
|
879
|
-
"options": [
|
|
880
|
-
"Approved",
|
|
881
|
-
"Pending",
|
|
882
|
-
"Rejected",
|
|
883
|
-
"Expired"
|
|
884
|
-
],
|
|
885
|
-
"type": "option"
|
|
886
|
-
},
|
|
887
|
-
"min-confidence": {
|
|
888
|
-
"description": "Minimum confidence threshold to export (0-1)",
|
|
889
|
-
"name": "min-confidence",
|
|
890
|
-
"default": "0",
|
|
891
|
-
"hasDynamicHelp": false,
|
|
892
|
-
"multiple": false,
|
|
893
|
-
"type": "option"
|
|
894
|
-
},
|
|
895
|
-
"validated-only": {
|
|
896
|
-
"description": "Only export queries that were successfully validated",
|
|
897
|
-
"name": "validated-only",
|
|
898
|
-
"allowNo": false,
|
|
899
|
-
"type": "boolean"
|
|
900
|
-
},
|
|
901
|
-
"append": {
|
|
902
|
-
"description": "Append to existing metadata file instead of overwriting",
|
|
903
|
-
"name": "append",
|
|
904
|
-
"allowNo": false,
|
|
905
|
-
"type": "boolean"
|
|
906
|
-
},
|
|
907
|
-
"include-primary-key": {
|
|
908
|
-
"description": "Include primaryKey and sync fields (for updating existing records)",
|
|
909
|
-
"name": "include-primary-key",
|
|
806
|
+
"force": {
|
|
807
|
+
"char": "f",
|
|
808
|
+
"description": "Force reset without confirmation",
|
|
809
|
+
"name": "force",
|
|
910
810
|
"allowNo": false,
|
|
911
811
|
"type": "boolean"
|
|
912
812
|
}
|
|
913
813
|
},
|
|
914
814
|
"hasDynamicHelp": false,
|
|
915
815
|
"hiddenAliases": [],
|
|
916
|
-
"id": "dbdoc:
|
|
816
|
+
"id": "dbdoc:reset",
|
|
917
817
|
"pluginAlias": "@memberjunction/cli",
|
|
918
818
|
"pluginName": "@memberjunction/cli",
|
|
919
819
|
"pluginType": "core",
|
|
@@ -924,21 +824,16 @@
|
|
|
924
824
|
"dist",
|
|
925
825
|
"commands",
|
|
926
826
|
"dbdoc",
|
|
927
|
-
"
|
|
827
|
+
"reset.js"
|
|
928
828
|
]
|
|
929
829
|
},
|
|
930
|
-
"dbdoc:
|
|
830
|
+
"dbdoc:status": {
|
|
931
831
|
"aliases": [],
|
|
932
832
|
"args": {},
|
|
933
|
-
"description": "
|
|
833
|
+
"description": "Show analysis status and progress (delegates to db-auto-doc status)",
|
|
934
834
|
"examples": [
|
|
935
|
-
"<%= config.bin %> <%= command.id %>
|
|
936
|
-
"<%= config.bin %> <%= command.id %> --
|
|
937
|
-
"<%= config.bin %> <%= command.id %> --markdown",
|
|
938
|
-
"<%= config.bin %> <%= command.id %> --html",
|
|
939
|
-
"<%= config.bin %> <%= command.id %> --csv",
|
|
940
|
-
"<%= config.bin %> <%= command.id %> --mermaid",
|
|
941
|
-
"<%= config.bin %> <%= command.id %> --sql --markdown --html --csv --mermaid --apply"
|
|
835
|
+
"<%= config.bin %> <%= command.id %>",
|
|
836
|
+
"<%= config.bin %> <%= command.id %> --state-file ./custom-state.json"
|
|
942
837
|
],
|
|
943
838
|
"flags": {
|
|
944
839
|
"state-file": {
|
|
@@ -948,75 +843,86 @@
|
|
|
948
843
|
"hasDynamicHelp": false,
|
|
949
844
|
"multiple": false,
|
|
950
845
|
"type": "option"
|
|
846
|
+
}
|
|
847
|
+
},
|
|
848
|
+
"hasDynamicHelp": false,
|
|
849
|
+
"hiddenAliases": [],
|
|
850
|
+
"id": "dbdoc:status",
|
|
851
|
+
"pluginAlias": "@memberjunction/cli",
|
|
852
|
+
"pluginName": "@memberjunction/cli",
|
|
853
|
+
"pluginType": "core",
|
|
854
|
+
"strict": true,
|
|
855
|
+
"enableJsonFlag": false,
|
|
856
|
+
"isESM": true,
|
|
857
|
+
"relativePath": [
|
|
858
|
+
"dist",
|
|
859
|
+
"commands",
|
|
860
|
+
"dbdoc",
|
|
861
|
+
"status.js"
|
|
862
|
+
]
|
|
863
|
+
},
|
|
864
|
+
"codegen:5-0-fix-entity-names": {
|
|
865
|
+
"aliases": [],
|
|
866
|
+
"args": {},
|
|
867
|
+
"description": "[v5.0 Migration] Scan TypeScript files for entity names AND class names that need updating.\n\nThree strategies are applied:\n 1. Class name renames (regex) — ActionEntity -> MJActionEntity, ActionSchema -> MJActionSchema,\n ActionEntityExtended -> MJActionEntityExtended (extended subclasses),\n ActionEntityServerEntity -> MJActionEntityServer (server subclass suffix standardization),\n ActionFormComponentExtended -> MJActionFormComponentExtended (Angular form components).\n Explicit subclass mappings (57 entries from subclass-rename-map.json) take priority over\n auto-generated suffix rules, enabling suffix changes (e.g., _Server -> Server, ServerEntity -> Server).\n 2. Multi-word entity name renames (regex) — 'AI Models' -> 'MJ: AI Models'\n 3. Single-word entity name renames (AST) — 'Actions' -> 'MJ: Actions' in GetEntityObject, OpenEntityRecord,\n navigateToEntity, EntityName: assignments, .Name === comparisons, @RegisterClass decorators.\n\nThe rename map (272 entity entries + 57 subclass entries) is built from entity_subclasses.ts @RegisterClass\ndecorators plus embedded rename maps. Runs in dry-run mode by default; use --fix to apply.",
|
|
868
|
+
"examples": [
|
|
869
|
+
{
|
|
870
|
+
"description": "Dry-run scan of the packages directory",
|
|
871
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/"
|
|
951
872
|
},
|
|
952
|
-
|
|
953
|
-
"
|
|
954
|
-
"
|
|
955
|
-
|
|
873
|
+
{
|
|
874
|
+
"description": "Scan a single file",
|
|
875
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/components/actions-overview.component.ts"
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"description": "Apply fixes across the codebase",
|
|
879
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ --fix"
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"description": "Quiet mode (summary only)",
|
|
883
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ -q"
|
|
884
|
+
}
|
|
885
|
+
],
|
|
886
|
+
"flags": {
|
|
887
|
+
"path": {
|
|
888
|
+
"char": "p",
|
|
889
|
+
"description": "File or directory to scan. Accepts a single .ts file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
890
|
+
"name": "path",
|
|
956
891
|
"hasDynamicHelp": false,
|
|
957
892
|
"multiple": false,
|
|
958
893
|
"type": "option"
|
|
959
894
|
},
|
|
960
|
-
"
|
|
961
|
-
"description": "
|
|
962
|
-
"name": "
|
|
963
|
-
"allowNo": false,
|
|
964
|
-
"type": "boolean"
|
|
965
|
-
},
|
|
966
|
-
"markdown": {
|
|
967
|
-
"description": "Generate Markdown documentation",
|
|
968
|
-
"name": "markdown",
|
|
969
|
-
"allowNo": false,
|
|
970
|
-
"type": "boolean"
|
|
971
|
-
},
|
|
972
|
-
"html": {
|
|
973
|
-
"description": "Generate interactive HTML documentation",
|
|
974
|
-
"name": "html",
|
|
975
|
-
"allowNo": false,
|
|
976
|
-
"type": "boolean"
|
|
977
|
-
},
|
|
978
|
-
"csv": {
|
|
979
|
-
"description": "Generate CSV exports (tables and columns)",
|
|
980
|
-
"name": "csv",
|
|
981
|
-
"allowNo": false,
|
|
982
|
-
"type": "boolean"
|
|
983
|
-
},
|
|
984
|
-
"mermaid": {
|
|
985
|
-
"description": "Generate Mermaid ERD diagram files",
|
|
986
|
-
"name": "mermaid",
|
|
895
|
+
"fix": {
|
|
896
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
897
|
+
"name": "fix",
|
|
987
898
|
"allowNo": false,
|
|
988
899
|
"type": "boolean"
|
|
989
900
|
},
|
|
990
|
-
"
|
|
991
|
-
"description": "
|
|
992
|
-
"name": "
|
|
993
|
-
"
|
|
994
|
-
"
|
|
901
|
+
"entity-subclasses": {
|
|
902
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
903
|
+
"name": "entity-subclasses",
|
|
904
|
+
"hasDynamicHelp": false,
|
|
905
|
+
"multiple": false,
|
|
906
|
+
"type": "option"
|
|
995
907
|
},
|
|
996
|
-
"
|
|
997
|
-
"
|
|
998
|
-
"
|
|
908
|
+
"quiet": {
|
|
909
|
+
"char": "q",
|
|
910
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
911
|
+
"name": "quiet",
|
|
999
912
|
"allowNo": false,
|
|
1000
913
|
"type": "boolean"
|
|
1001
914
|
},
|
|
1002
|
-
"
|
|
1003
|
-
"
|
|
1004
|
-
"
|
|
915
|
+
"verbose": {
|
|
916
|
+
"char": "v",
|
|
917
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
918
|
+
"name": "verbose",
|
|
1005
919
|
"allowNo": false,
|
|
1006
920
|
"type": "boolean"
|
|
1007
|
-
},
|
|
1008
|
-
"confidence-threshold": {
|
|
1009
|
-
"description": "Minimum confidence threshold",
|
|
1010
|
-
"name": "confidence-threshold",
|
|
1011
|
-
"default": "0",
|
|
1012
|
-
"hasDynamicHelp": false,
|
|
1013
|
-
"multiple": false,
|
|
1014
|
-
"type": "option"
|
|
1015
921
|
}
|
|
1016
922
|
},
|
|
1017
923
|
"hasDynamicHelp": false,
|
|
1018
924
|
"hiddenAliases": [],
|
|
1019
|
-
"id": "
|
|
925
|
+
"id": "codegen:5-0-fix-entity-names",
|
|
1020
926
|
"pluginAlias": "@memberjunction/cli",
|
|
1021
927
|
"pluginName": "@memberjunction/cli",
|
|
1022
928
|
"pluginType": "core",
|
|
@@ -1026,65 +932,72 @@
|
|
|
1026
932
|
"relativePath": [
|
|
1027
933
|
"dist",
|
|
1028
934
|
"commands",
|
|
1029
|
-
"
|
|
1030
|
-
"
|
|
935
|
+
"codegen",
|
|
936
|
+
"5-0-fix-entity-names.js"
|
|
1031
937
|
]
|
|
1032
938
|
},
|
|
1033
|
-
"
|
|
939
|
+
"codegen:5-0-fix-html-entity-names": {
|
|
1034
940
|
"aliases": [],
|
|
1035
941
|
"args": {},
|
|
1036
|
-
"description": "
|
|
942
|
+
"description": "[v5.0 Migration] Scan Angular HTML template files for hardcoded entity names that need \"MJ: \" prefix updates.\n\nUses targeted regex patterns to find entity name references in template expressions\nand attribute values. Detects method calls like navigateToEntity('Actions'),\nOpenEntityRecord('Entities', id), and attribute values like RowsEntityName=\"Users\".\nRuns in dry-run mode by default; use --fix to apply.\n\nThe rename map is built dynamically from entity_subclasses.ts by parsing all\n@RegisterClass(BaseEntity, 'MJ: XYZ') decorators (~272 entries).",
|
|
1037
943
|
"examples": [
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
944
|
+
{
|
|
945
|
+
"description": "Dry-run scan of Angular templates",
|
|
946
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/"
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"description": "Apply fixes to HTML templates",
|
|
950
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/ --fix"
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
"description": "Scan with verbose output",
|
|
954
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ -v"
|
|
955
|
+
},
|
|
956
|
+
{
|
|
957
|
+
"description": "Scan a single template file",
|
|
958
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/actions-dashboard.component.html"
|
|
959
|
+
}
|
|
1041
960
|
],
|
|
1042
961
|
"flags": {
|
|
1043
|
-
"
|
|
1044
|
-
"
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
962
|
+
"path": {
|
|
963
|
+
"char": "p",
|
|
964
|
+
"description": "File or directory to scan. Accepts a single .html file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
965
|
+
"name": "path",
|
|
1047
966
|
"hasDynamicHelp": false,
|
|
1048
967
|
"multiple": false,
|
|
1049
968
|
"type": "option"
|
|
1050
969
|
},
|
|
1051
|
-
"
|
|
1052
|
-
"description": "
|
|
1053
|
-
"name": "
|
|
1054
|
-
"
|
|
1055
|
-
"
|
|
1056
|
-
"multiple": false,
|
|
1057
|
-
"type": "option"
|
|
970
|
+
"fix": {
|
|
971
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
972
|
+
"name": "fix",
|
|
973
|
+
"allowNo": false,
|
|
974
|
+
"type": "boolean"
|
|
1058
975
|
},
|
|
1059
|
-
"
|
|
1060
|
-
"
|
|
1061
|
-
"
|
|
1062
|
-
"name": "config",
|
|
1063
|
-
"default": "./config.json",
|
|
976
|
+
"entity-subclasses": {
|
|
977
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
978
|
+
"name": "entity-subclasses",
|
|
1064
979
|
"hasDynamicHelp": false,
|
|
1065
980
|
"multiple": false,
|
|
1066
981
|
"type": "option"
|
|
1067
982
|
},
|
|
1068
|
-
"
|
|
1069
|
-
"
|
|
1070
|
-
"
|
|
1071
|
-
"
|
|
1072
|
-
"
|
|
1073
|
-
"
|
|
1074
|
-
"type": "option"
|
|
983
|
+
"quiet": {
|
|
984
|
+
"char": "q",
|
|
985
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
986
|
+
"name": "quiet",
|
|
987
|
+
"allowNo": false,
|
|
988
|
+
"type": "boolean"
|
|
1075
989
|
},
|
|
1076
|
-
"
|
|
1077
|
-
"
|
|
1078
|
-
"
|
|
1079
|
-
"
|
|
1080
|
-
"
|
|
1081
|
-
"
|
|
1082
|
-
"type": "option"
|
|
990
|
+
"verbose": {
|
|
991
|
+
"char": "v",
|
|
992
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
993
|
+
"name": "verbose",
|
|
994
|
+
"allowNo": false,
|
|
995
|
+
"type": "boolean"
|
|
1083
996
|
}
|
|
1084
997
|
},
|
|
1085
998
|
"hasDynamicHelp": false,
|
|
1086
999
|
"hiddenAliases": [],
|
|
1087
|
-
"id": "
|
|
1000
|
+
"id": "codegen:5-0-fix-html-entity-names",
|
|
1088
1001
|
"pluginAlias": "@memberjunction/cli",
|
|
1089
1002
|
"pluginName": "@memberjunction/cli",
|
|
1090
1003
|
"pluginType": "core",
|
|
@@ -1094,19 +1007,72 @@
|
|
|
1094
1007
|
"relativePath": [
|
|
1095
1008
|
"dist",
|
|
1096
1009
|
"commands",
|
|
1097
|
-
"
|
|
1098
|
-
"
|
|
1010
|
+
"codegen",
|
|
1011
|
+
"5-0-fix-html-entity-names.js"
|
|
1099
1012
|
]
|
|
1100
1013
|
},
|
|
1101
|
-
"
|
|
1014
|
+
"codegen:5-0-fix-metadata-names": {
|
|
1102
1015
|
"aliases": [],
|
|
1103
1016
|
"args": {},
|
|
1104
|
-
"description": "
|
|
1105
|
-
"
|
|
1017
|
+
"description": "[v5.0 Migration] Scan metadata JSON files for entity names that need \"MJ: \" prefix updates.\n\nTargets the metadata/ directory used by \"mj sync\". Detects entity name references in\n@lookup: directives (both the entity name and lookup value), .mj-sync.json and\n.mj-folder.json config files (entity/entityName fields), relatedEntities object keys,\nand fields.Name values in Entities-managing folders. Runs in dry-run mode by default;\nuse --fix to apply.\n\nThe rename map is built dynamically from entity_subclasses.ts by parsing all\n@RegisterClass(BaseEntity, 'MJ: XYZ') decorators (~272 entries).",
|
|
1018
|
+
"examples": [
|
|
1019
|
+
{
|
|
1020
|
+
"description": "Dry-run scan of the metadata directory",
|
|
1021
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/"
|
|
1022
|
+
},
|
|
1023
|
+
{
|
|
1024
|
+
"description": "Apply fixes to metadata files",
|
|
1025
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/ --fix"
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
"description": "Scan a specific subdirectory",
|
|
1029
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/resource-types"
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"description": "Scan and fix a single metadata file",
|
|
1033
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/entities/.audit-related-entities.json --fix"
|
|
1034
|
+
}
|
|
1035
|
+
],
|
|
1036
|
+
"flags": {
|
|
1037
|
+
"path": {
|
|
1038
|
+
"char": "p",
|
|
1039
|
+
"description": "File or directory to scan. Accepts a single .json file or a directory (scanned recursively, including dotfiles like .mj-sync.json). Defaults to the current working directory.",
|
|
1040
|
+
"name": "path",
|
|
1041
|
+
"hasDynamicHelp": false,
|
|
1042
|
+
"multiple": false,
|
|
1043
|
+
"type": "option"
|
|
1044
|
+
},
|
|
1045
|
+
"fix": {
|
|
1046
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1047
|
+
"name": "fix",
|
|
1048
|
+
"allowNo": false,
|
|
1049
|
+
"type": "boolean"
|
|
1050
|
+
},
|
|
1051
|
+
"entity-subclasses": {
|
|
1052
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1053
|
+
"name": "entity-subclasses",
|
|
1054
|
+
"hasDynamicHelp": false,
|
|
1055
|
+
"multiple": false,
|
|
1056
|
+
"type": "option"
|
|
1057
|
+
},
|
|
1058
|
+
"quiet": {
|
|
1059
|
+
"char": "q",
|
|
1060
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1061
|
+
"name": "quiet",
|
|
1062
|
+
"allowNo": false,
|
|
1063
|
+
"type": "boolean"
|
|
1064
|
+
},
|
|
1065
|
+
"verbose": {
|
|
1066
|
+
"char": "v",
|
|
1067
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
1068
|
+
"name": "verbose",
|
|
1069
|
+
"allowNo": false,
|
|
1070
|
+
"type": "boolean"
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1106
1073
|
"hasDynamicHelp": false,
|
|
1107
|
-
"hidden": false,
|
|
1108
1074
|
"hiddenAliases": [],
|
|
1109
|
-
"id": "
|
|
1075
|
+
"id": "codegen:5-0-fix-metadata-names",
|
|
1110
1076
|
"pluginAlias": "@memberjunction/cli",
|
|
1111
1077
|
"pluginName": "@memberjunction/cli",
|
|
1112
1078
|
"pluginType": "core",
|
|
@@ -1116,21 +1082,35 @@
|
|
|
1116
1082
|
"relativePath": [
|
|
1117
1083
|
"dist",
|
|
1118
1084
|
"commands",
|
|
1119
|
-
"
|
|
1120
|
-
"
|
|
1085
|
+
"codegen",
|
|
1086
|
+
"5-0-fix-metadata-names.js"
|
|
1121
1087
|
]
|
|
1122
1088
|
},
|
|
1123
|
-
"
|
|
1089
|
+
"codegen": {
|
|
1124
1090
|
"aliases": [],
|
|
1125
1091
|
"args": {},
|
|
1126
|
-
"description": "
|
|
1092
|
+
"description": "Run the full MemberJunction code generation pipeline.\n\nAnalyzes your SQL Server database schema, updates MemberJunction metadata, and\ngenerates synchronized code across the entire stack:\n\n - SQL views, stored procedures, indexes, and permissions\n - TypeScript entity classes with Zod validation schemas\n - Angular form components with AI-driven layouts\n - GraphQL resolvers and type definitions\n - Action subclasses and DB schema JSON\n\nConfiguration is loaded from mj.config.cjs in the current directory (or parent\ndirectories). Database connection can also be set via environment variables:\nDB_HOST, DB_DATABASE, CODEGEN_DB_USERNAME, CODEGEN_DB_PASSWORD.\n\nUse --skipdb to skip all database operations (metadata sync, SQL object\ngeneration) and only regenerate TypeScript, Angular, and GraphQL output from\nexisting metadata.",
|
|
1127
1093
|
"examples": [
|
|
1128
|
-
|
|
1094
|
+
{
|
|
1095
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1096
|
+
"description": "Run the full code generation pipeline"
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
"command": "<%= config.bin %> <%= command.id %> --skipdb",
|
|
1100
|
+
"description": "Regenerate code files without touching the database"
|
|
1101
|
+
}
|
|
1129
1102
|
],
|
|
1130
|
-
"flags": {
|
|
1103
|
+
"flags": {
|
|
1104
|
+
"skipdb": {
|
|
1105
|
+
"description": "Skip database operations (metadata sync, SQL generation). Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.",
|
|
1106
|
+
"name": "skipdb",
|
|
1107
|
+
"allowNo": false,
|
|
1108
|
+
"type": "boolean"
|
|
1109
|
+
}
|
|
1110
|
+
},
|
|
1131
1111
|
"hasDynamicHelp": false,
|
|
1132
1112
|
"hiddenAliases": [],
|
|
1133
|
-
"id": "
|
|
1113
|
+
"id": "codegen",
|
|
1134
1114
|
"pluginAlias": "@memberjunction/cli",
|
|
1135
1115
|
"pluginName": "@memberjunction/cli",
|
|
1136
1116
|
"pluginType": "core",
|
|
@@ -1140,30 +1120,84 @@
|
|
|
1140
1120
|
"relativePath": [
|
|
1141
1121
|
"dist",
|
|
1142
1122
|
"commands",
|
|
1143
|
-
"
|
|
1144
|
-
"
|
|
1123
|
+
"codegen",
|
|
1124
|
+
"index.js"
|
|
1145
1125
|
]
|
|
1146
1126
|
},
|
|
1147
|
-
"
|
|
1127
|
+
"codegen:manifest": {
|
|
1148
1128
|
"aliases": [],
|
|
1149
1129
|
"args": {},
|
|
1150
|
-
"description": "
|
|
1130
|
+
"description": "Generate a class registration manifest to prevent tree-shaking.\n\nMemberJunction uses @RegisterClass decorators with a dynamic class factory.\nModern bundlers (ESBuild, Vite) cannot detect dynamic instantiation and will\ntree-shake these classes out of production builds. This command scans the\ndependency tree for all @RegisterClass-decorated classes and emits a manifest\nfile with static imports that the bundler cannot eliminate.\n\nTypically used as a prebuild/prestart script for MJAPI and MJExplorer. For\nMJ distribution users, pre-built manifests ship inside @memberjunction/server-bootstrap\nand @memberjunction/ng-bootstrap -- use --exclude-packages @memberjunction to\ngenerate a supplemental manifest covering only your own application classes.",
|
|
1151
1131
|
"examples": [
|
|
1152
|
-
|
|
1153
|
-
|
|
1132
|
+
{
|
|
1133
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1134
|
+
"description": "Generate manifest with default output path"
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
"command": "<%= config.bin %> <%= command.id %> --appDir ./packages/MJAPI --output ./packages/MJAPI/src/generated/class-registrations-manifest.ts",
|
|
1138
|
+
"description": "Generate manifest for a specific application directory"
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction",
|
|
1142
|
+
"description": "Exclude MJ packages (use pre-built bootstrap manifests instead)"
|
|
1143
|
+
},
|
|
1144
|
+
{
|
|
1145
|
+
"command": "<%= config.bin %> <%= command.id %> --filter BaseEngine --filter BaseAction --verbose",
|
|
1146
|
+
"description": "Only include specific base classes with detailed progress"
|
|
1147
|
+
}
|
|
1154
1148
|
],
|
|
1155
1149
|
"flags": {
|
|
1156
|
-
"
|
|
1150
|
+
"output": {
|
|
1151
|
+
"char": "o",
|
|
1152
|
+
"description": "Output file path for the generated manifest. The file will contain named imports and a CLASS_REGISTRATIONS array.",
|
|
1153
|
+
"name": "output",
|
|
1154
|
+
"default": "./src/generated/class-registrations-manifest.ts",
|
|
1155
|
+
"hasDynamicHelp": false,
|
|
1156
|
+
"multiple": false,
|
|
1157
|
+
"type": "option"
|
|
1158
|
+
},
|
|
1159
|
+
"appDir": {
|
|
1160
|
+
"char": "a",
|
|
1161
|
+
"description": "Root directory of the application whose package.json dependency tree will be scanned. Defaults to the current working directory.",
|
|
1162
|
+
"name": "appDir",
|
|
1163
|
+
"hasDynamicHelp": false,
|
|
1164
|
+
"multiple": false,
|
|
1165
|
+
"type": "option"
|
|
1166
|
+
},
|
|
1167
|
+
"filter": {
|
|
1157
1168
|
"char": "f",
|
|
1158
|
-
"description": "
|
|
1159
|
-
"name": "
|
|
1169
|
+
"description": "Only include classes extending this base class. Can be repeated (e.g., --filter BaseEngine --filter BaseAction).",
|
|
1170
|
+
"name": "filter",
|
|
1171
|
+
"hasDynamicHelp": false,
|
|
1172
|
+
"multiple": true,
|
|
1173
|
+
"type": "option"
|
|
1174
|
+
},
|
|
1175
|
+
"exclude-packages": {
|
|
1176
|
+
"char": "e",
|
|
1177
|
+
"description": "Skip packages whose name starts with this prefix. Useful for excluding @memberjunction packages when using pre-built bootstrap manifests. Can be repeated.",
|
|
1178
|
+
"name": "exclude-packages",
|
|
1179
|
+
"hasDynamicHelp": false,
|
|
1180
|
+
"multiple": true,
|
|
1181
|
+
"type": "option"
|
|
1182
|
+
},
|
|
1183
|
+
"quiet": {
|
|
1184
|
+
"char": "q",
|
|
1185
|
+
"description": "Suppress all output except errors.",
|
|
1186
|
+
"name": "quiet",
|
|
1187
|
+
"allowNo": false,
|
|
1188
|
+
"type": "boolean"
|
|
1189
|
+
},
|
|
1190
|
+
"verbose": {
|
|
1191
|
+
"char": "v",
|
|
1192
|
+
"description": "Show detailed progress including per-package scanning info and skipped classes.",
|
|
1193
|
+
"name": "verbose",
|
|
1160
1194
|
"allowNo": false,
|
|
1161
1195
|
"type": "boolean"
|
|
1162
1196
|
}
|
|
1163
1197
|
},
|
|
1164
1198
|
"hasDynamicHelp": false,
|
|
1165
1199
|
"hiddenAliases": [],
|
|
1166
|
-
"id": "
|
|
1200
|
+
"id": "codegen:manifest",
|
|
1167
1201
|
"pluginAlias": "@memberjunction/cli",
|
|
1168
1202
|
"pluginName": "@memberjunction/cli",
|
|
1169
1203
|
"pluginType": "core",
|
|
@@ -1173,31 +1207,39 @@
|
|
|
1173
1207
|
"relativePath": [
|
|
1174
1208
|
"dist",
|
|
1175
1209
|
"commands",
|
|
1176
|
-
"
|
|
1177
|
-
"
|
|
1210
|
+
"codegen",
|
|
1211
|
+
"manifest.js"
|
|
1178
1212
|
]
|
|
1179
1213
|
},
|
|
1180
|
-
"
|
|
1214
|
+
"doctor": {
|
|
1181
1215
|
"aliases": [],
|
|
1182
1216
|
"args": {},
|
|
1183
|
-
"description": "
|
|
1217
|
+
"description": "Diagnose a MemberJunction installation",
|
|
1184
1218
|
"examples": [
|
|
1185
1219
|
"<%= config.bin %> <%= command.id %>",
|
|
1186
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1220
|
+
"<%= config.bin %> <%= command.id %> --dir ./my-mj-project",
|
|
1221
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
1187
1222
|
],
|
|
1188
1223
|
"flags": {
|
|
1189
|
-
"
|
|
1190
|
-
"
|
|
1191
|
-
"
|
|
1192
|
-
"
|
|
1224
|
+
"dir": {
|
|
1225
|
+
"description": "Target directory to diagnose",
|
|
1226
|
+
"name": "dir",
|
|
1227
|
+
"default": ".",
|
|
1193
1228
|
"hasDynamicHelp": false,
|
|
1194
1229
|
"multiple": false,
|
|
1195
1230
|
"type": "option"
|
|
1231
|
+
},
|
|
1232
|
+
"verbose": {
|
|
1233
|
+
"char": "v",
|
|
1234
|
+
"description": "Show detailed output including suggested fixes inline",
|
|
1235
|
+
"name": "verbose",
|
|
1236
|
+
"allowNo": false,
|
|
1237
|
+
"type": "boolean"
|
|
1196
1238
|
}
|
|
1197
1239
|
},
|
|
1198
1240
|
"hasDynamicHelp": false,
|
|
1199
1241
|
"hiddenAliases": [],
|
|
1200
|
-
"id": "
|
|
1242
|
+
"id": "doctor",
|
|
1201
1243
|
"pluginAlias": "@memberjunction/cli",
|
|
1202
1244
|
"pluginName": "@memberjunction/cli",
|
|
1203
1245
|
"pluginType": "core",
|
|
@@ -1207,8 +1249,8 @@
|
|
|
1207
1249
|
"relativePath": [
|
|
1208
1250
|
"dist",
|
|
1209
1251
|
"commands",
|
|
1210
|
-
"
|
|
1211
|
-
"
|
|
1252
|
+
"doctor",
|
|
1253
|
+
"index.js"
|
|
1212
1254
|
]
|
|
1213
1255
|
},
|
|
1214
1256
|
"install": {
|
|
@@ -1314,27 +1356,85 @@
|
|
|
1314
1356
|
"index.js"
|
|
1315
1357
|
]
|
|
1316
1358
|
},
|
|
1317
|
-
"
|
|
1359
|
+
"migrate": {
|
|
1318
1360
|
"aliases": [],
|
|
1319
1361
|
"args": {},
|
|
1320
|
-
"description": "
|
|
1362
|
+
"description": "Migrate MemberJunction database to latest version",
|
|
1321
1363
|
"examples": [
|
|
1322
|
-
"<%= config.bin %> <%= command.id
|
|
1323
|
-
"<%= config.bin %> <%= command.id %> --dir ./
|
|
1324
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1364
|
+
"<%= config.bin %> <%= command.id %>\n",
|
|
1365
|
+
"<%= config.bin %> <%= command.id %> --schema __BCSaaS --dir ./migrations/v1\n",
|
|
1366
|
+
"<%= config.bin %> <%= command.id %> --schema __BCSaaS --tag v1.0.0\n"
|
|
1325
1367
|
],
|
|
1326
1368
|
"flags": {
|
|
1369
|
+
"verbose": {
|
|
1370
|
+
"char": "v",
|
|
1371
|
+
"description": "Enable additional logging",
|
|
1372
|
+
"name": "verbose",
|
|
1373
|
+
"allowNo": false,
|
|
1374
|
+
"type": "boolean"
|
|
1375
|
+
},
|
|
1376
|
+
"tag": {
|
|
1377
|
+
"char": "t",
|
|
1378
|
+
"description": "Version tag to use for running remote migrations",
|
|
1379
|
+
"name": "tag",
|
|
1380
|
+
"hasDynamicHelp": false,
|
|
1381
|
+
"multiple": false,
|
|
1382
|
+
"type": "option"
|
|
1383
|
+
},
|
|
1384
|
+
"schema": {
|
|
1385
|
+
"char": "s",
|
|
1386
|
+
"description": "Target schema (overrides coreSchema from config)",
|
|
1387
|
+
"name": "schema",
|
|
1388
|
+
"hasDynamicHelp": false,
|
|
1389
|
+
"multiple": false,
|
|
1390
|
+
"type": "option"
|
|
1391
|
+
},
|
|
1327
1392
|
"dir": {
|
|
1328
|
-
"description": "
|
|
1393
|
+
"description": "Migration source directory (overrides migrationsLocation from config)",
|
|
1329
1394
|
"name": "dir",
|
|
1330
|
-
"
|
|
1395
|
+
"hasDynamicHelp": false,
|
|
1396
|
+
"multiple": false,
|
|
1397
|
+
"type": "option"
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
"hasDynamicHelp": false,
|
|
1401
|
+
"hiddenAliases": [],
|
|
1402
|
+
"id": "migrate",
|
|
1403
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1404
|
+
"pluginName": "@memberjunction/cli",
|
|
1405
|
+
"pluginType": "core",
|
|
1406
|
+
"strict": true,
|
|
1407
|
+
"enableJsonFlag": false,
|
|
1408
|
+
"isESM": true,
|
|
1409
|
+
"relativePath": [
|
|
1410
|
+
"dist",
|
|
1411
|
+
"commands",
|
|
1412
|
+
"migrate",
|
|
1413
|
+
"index.js"
|
|
1414
|
+
]
|
|
1415
|
+
},
|
|
1416
|
+
"querygen:export": {
|
|
1417
|
+
"aliases": [],
|
|
1418
|
+
"args": {},
|
|
1419
|
+
"description": "Export queries from database to metadata files",
|
|
1420
|
+
"examples": [
|
|
1421
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1422
|
+
"<%= config.bin %> <%= command.id %> --output ./metadata/queries",
|
|
1423
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
1424
|
+
],
|
|
1425
|
+
"flags": {
|
|
1426
|
+
"output": {
|
|
1427
|
+
"char": "o",
|
|
1428
|
+
"description": "Output directory",
|
|
1429
|
+
"name": "output",
|
|
1430
|
+
"default": "./metadata/queries",
|
|
1331
1431
|
"hasDynamicHelp": false,
|
|
1332
1432
|
"multiple": false,
|
|
1333
1433
|
"type": "option"
|
|
1334
1434
|
},
|
|
1335
1435
|
"verbose": {
|
|
1336
1436
|
"char": "v",
|
|
1337
|
-
"description": "
|
|
1437
|
+
"description": "Verbose output",
|
|
1338
1438
|
"name": "verbose",
|
|
1339
1439
|
"allowNo": false,
|
|
1340
1440
|
"type": "boolean"
|
|
@@ -1342,7 +1442,7 @@
|
|
|
1342
1442
|
},
|
|
1343
1443
|
"hasDynamicHelp": false,
|
|
1344
1444
|
"hiddenAliases": [],
|
|
1345
|
-
"id": "
|
|
1445
|
+
"id": "querygen:export",
|
|
1346
1446
|
"pluginAlias": "@memberjunction/cli",
|
|
1347
1447
|
"pluginName": "@memberjunction/cli",
|
|
1348
1448
|
"pluginType": "core",
|
|
@@ -1352,54 +1452,169 @@
|
|
|
1352
1452
|
"relativePath": [
|
|
1353
1453
|
"dist",
|
|
1354
1454
|
"commands",
|
|
1355
|
-
"
|
|
1356
|
-
"
|
|
1455
|
+
"querygen",
|
|
1456
|
+
"export.js"
|
|
1357
1457
|
]
|
|
1358
1458
|
},
|
|
1359
|
-
"
|
|
1459
|
+
"querygen:generate": {
|
|
1360
1460
|
"aliases": [],
|
|
1361
1461
|
"args": {},
|
|
1362
|
-
"description": "
|
|
1462
|
+
"description": "Generate SQL query templates for entities using AI",
|
|
1363
1463
|
"examples": [
|
|
1364
|
-
"<%= config.bin %> <%= command.id
|
|
1365
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1366
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1464
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1465
|
+
"<%= config.bin %> <%= command.id %> --entities \"Customers,Orders\"",
|
|
1466
|
+
"<%= config.bin %> <%= command.id %> --max-entities 5 --verbose",
|
|
1467
|
+
"<%= config.bin %> <%= command.id %> --mode database"
|
|
1468
|
+
],
|
|
1469
|
+
"flags": {
|
|
1470
|
+
"entities": {
|
|
1471
|
+
"char": "e",
|
|
1472
|
+
"description": "Specific entities to generate queries for (comma-separated)",
|
|
1473
|
+
"name": "entities",
|
|
1474
|
+
"hasDynamicHelp": false,
|
|
1475
|
+
"multiple": false,
|
|
1476
|
+
"type": "option"
|
|
1477
|
+
},
|
|
1478
|
+
"exclude-entities": {
|
|
1479
|
+
"char": "x",
|
|
1480
|
+
"description": "Entities to exclude (comma-separated)",
|
|
1481
|
+
"name": "exclude-entities",
|
|
1482
|
+
"hasDynamicHelp": false,
|
|
1483
|
+
"multiple": false,
|
|
1484
|
+
"type": "option"
|
|
1485
|
+
},
|
|
1486
|
+
"exclude-schemas": {
|
|
1487
|
+
"char": "s",
|
|
1488
|
+
"description": "Schemas to exclude (comma-separated)",
|
|
1489
|
+
"name": "exclude-schemas",
|
|
1490
|
+
"hasDynamicHelp": false,
|
|
1491
|
+
"multiple": false,
|
|
1492
|
+
"type": "option"
|
|
1493
|
+
},
|
|
1494
|
+
"max-entities": {
|
|
1495
|
+
"char": "m",
|
|
1496
|
+
"description": "Max entities per group",
|
|
1497
|
+
"name": "max-entities",
|
|
1498
|
+
"default": 3,
|
|
1499
|
+
"hasDynamicHelp": false,
|
|
1500
|
+
"multiple": false,
|
|
1501
|
+
"type": "option"
|
|
1502
|
+
},
|
|
1503
|
+
"target-groups": {
|
|
1504
|
+
"char": "t",
|
|
1505
|
+
"description": "Target number of entity groups to generate",
|
|
1506
|
+
"name": "target-groups",
|
|
1507
|
+
"default": 75,
|
|
1508
|
+
"hasDynamicHelp": false,
|
|
1509
|
+
"multiple": false,
|
|
1510
|
+
"type": "option"
|
|
1511
|
+
},
|
|
1512
|
+
"max-refinements": {
|
|
1513
|
+
"char": "r",
|
|
1514
|
+
"description": "Max refinement iterations",
|
|
1515
|
+
"name": "max-refinements",
|
|
1516
|
+
"default": 3,
|
|
1517
|
+
"hasDynamicHelp": false,
|
|
1518
|
+
"multiple": false,
|
|
1519
|
+
"type": "option"
|
|
1520
|
+
},
|
|
1521
|
+
"max-fixes": {
|
|
1522
|
+
"char": "f",
|
|
1523
|
+
"description": "Max error-fixing attempts",
|
|
1524
|
+
"name": "max-fixes",
|
|
1525
|
+
"default": 5,
|
|
1526
|
+
"hasDynamicHelp": false,
|
|
1527
|
+
"multiple": false,
|
|
1528
|
+
"type": "option"
|
|
1529
|
+
},
|
|
1530
|
+
"model": {
|
|
1531
|
+
"description": "Preferred AI model",
|
|
1532
|
+
"name": "model",
|
|
1533
|
+
"hasDynamicHelp": false,
|
|
1534
|
+
"multiple": false,
|
|
1535
|
+
"type": "option"
|
|
1536
|
+
},
|
|
1537
|
+
"vendor": {
|
|
1538
|
+
"description": "Preferred AI vendor",
|
|
1539
|
+
"name": "vendor",
|
|
1540
|
+
"hasDynamicHelp": false,
|
|
1541
|
+
"multiple": false,
|
|
1542
|
+
"type": "option"
|
|
1543
|
+
},
|
|
1544
|
+
"output": {
|
|
1545
|
+
"char": "o",
|
|
1546
|
+
"description": "Output directory",
|
|
1547
|
+
"name": "output",
|
|
1548
|
+
"hasDynamicHelp": false,
|
|
1549
|
+
"multiple": false,
|
|
1550
|
+
"type": "option"
|
|
1551
|
+
},
|
|
1552
|
+
"mode": {
|
|
1553
|
+
"description": "Output mode: metadata|database|both",
|
|
1554
|
+
"name": "mode",
|
|
1555
|
+
"hasDynamicHelp": false,
|
|
1556
|
+
"multiple": false,
|
|
1557
|
+
"options": [
|
|
1558
|
+
"metadata",
|
|
1559
|
+
"database",
|
|
1560
|
+
"both"
|
|
1561
|
+
],
|
|
1562
|
+
"type": "option"
|
|
1563
|
+
},
|
|
1564
|
+
"verbose": {
|
|
1565
|
+
"char": "v",
|
|
1566
|
+
"description": "Verbose output",
|
|
1567
|
+
"name": "verbose",
|
|
1568
|
+
"allowNo": false,
|
|
1569
|
+
"type": "boolean"
|
|
1570
|
+
}
|
|
1571
|
+
},
|
|
1572
|
+
"hasDynamicHelp": false,
|
|
1573
|
+
"hiddenAliases": [],
|
|
1574
|
+
"id": "querygen:generate",
|
|
1575
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1576
|
+
"pluginName": "@memberjunction/cli",
|
|
1577
|
+
"pluginType": "core",
|
|
1578
|
+
"strict": true,
|
|
1579
|
+
"enableJsonFlag": false,
|
|
1580
|
+
"isESM": true,
|
|
1581
|
+
"relativePath": [
|
|
1582
|
+
"dist",
|
|
1583
|
+
"commands",
|
|
1584
|
+
"querygen",
|
|
1585
|
+
"generate.js"
|
|
1586
|
+
]
|
|
1587
|
+
},
|
|
1588
|
+
"querygen:validate": {
|
|
1589
|
+
"aliases": [],
|
|
1590
|
+
"args": {},
|
|
1591
|
+
"description": "Validate existing query templates",
|
|
1592
|
+
"examples": [
|
|
1593
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1594
|
+
"<%= config.bin %> <%= command.id %> --path ./metadata/queries",
|
|
1595
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
1367
1596
|
],
|
|
1368
1597
|
"flags": {
|
|
1598
|
+
"path": {
|
|
1599
|
+
"char": "p",
|
|
1600
|
+
"description": "Path to queries metadata file or directory",
|
|
1601
|
+
"name": "path",
|
|
1602
|
+
"default": "./metadata/queries",
|
|
1603
|
+
"hasDynamicHelp": false,
|
|
1604
|
+
"multiple": false,
|
|
1605
|
+
"type": "option"
|
|
1606
|
+
},
|
|
1369
1607
|
"verbose": {
|
|
1370
1608
|
"char": "v",
|
|
1371
|
-
"description": "
|
|
1609
|
+
"description": "Verbose output",
|
|
1372
1610
|
"name": "verbose",
|
|
1373
1611
|
"allowNo": false,
|
|
1374
1612
|
"type": "boolean"
|
|
1375
|
-
},
|
|
1376
|
-
"tag": {
|
|
1377
|
-
"char": "t",
|
|
1378
|
-
"description": "Version tag to use for running remote migrations",
|
|
1379
|
-
"name": "tag",
|
|
1380
|
-
"hasDynamicHelp": false,
|
|
1381
|
-
"multiple": false,
|
|
1382
|
-
"type": "option"
|
|
1383
|
-
},
|
|
1384
|
-
"schema": {
|
|
1385
|
-
"char": "s",
|
|
1386
|
-
"description": "Target schema (overrides coreSchema from config)",
|
|
1387
|
-
"name": "schema",
|
|
1388
|
-
"hasDynamicHelp": false,
|
|
1389
|
-
"multiple": false,
|
|
1390
|
-
"type": "option"
|
|
1391
|
-
},
|
|
1392
|
-
"dir": {
|
|
1393
|
-
"description": "Migration source directory (overrides migrationsLocation from config)",
|
|
1394
|
-
"name": "dir",
|
|
1395
|
-
"hasDynamicHelp": false,
|
|
1396
|
-
"multiple": false,
|
|
1397
|
-
"type": "option"
|
|
1398
1613
|
}
|
|
1399
1614
|
},
|
|
1400
1615
|
"hasDynamicHelp": false,
|
|
1401
1616
|
"hiddenAliases": [],
|
|
1402
|
-
"id": "
|
|
1617
|
+
"id": "querygen:validate",
|
|
1403
1618
|
"pluginAlias": "@memberjunction/cli",
|
|
1404
1619
|
"pluginName": "@memberjunction/cli",
|
|
1405
1620
|
"pluginType": "core",
|
|
@@ -1409,8 +1624,8 @@
|
|
|
1409
1624
|
"relativePath": [
|
|
1410
1625
|
"dist",
|
|
1411
1626
|
"commands",
|
|
1412
|
-
"
|
|
1413
|
-
"
|
|
1627
|
+
"querygen",
|
|
1628
|
+
"validate.js"
|
|
1414
1629
|
]
|
|
1415
1630
|
},
|
|
1416
1631
|
"sql-audit": {
|
|
@@ -2681,221 +2896,6 @@
|
|
|
2681
2896
|
"index.js"
|
|
2682
2897
|
]
|
|
2683
2898
|
},
|
|
2684
|
-
"querygen:export": {
|
|
2685
|
-
"aliases": [],
|
|
2686
|
-
"args": {},
|
|
2687
|
-
"description": "Export queries from database to metadata files",
|
|
2688
|
-
"examples": [
|
|
2689
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2690
|
-
"<%= config.bin %> <%= command.id %> --output ./metadata/queries",
|
|
2691
|
-
"<%= config.bin %> <%= command.id %> --verbose"
|
|
2692
|
-
],
|
|
2693
|
-
"flags": {
|
|
2694
|
-
"output": {
|
|
2695
|
-
"char": "o",
|
|
2696
|
-
"description": "Output directory",
|
|
2697
|
-
"name": "output",
|
|
2698
|
-
"default": "./metadata/queries",
|
|
2699
|
-
"hasDynamicHelp": false,
|
|
2700
|
-
"multiple": false,
|
|
2701
|
-
"type": "option"
|
|
2702
|
-
},
|
|
2703
|
-
"verbose": {
|
|
2704
|
-
"char": "v",
|
|
2705
|
-
"description": "Verbose output",
|
|
2706
|
-
"name": "verbose",
|
|
2707
|
-
"allowNo": false,
|
|
2708
|
-
"type": "boolean"
|
|
2709
|
-
}
|
|
2710
|
-
},
|
|
2711
|
-
"hasDynamicHelp": false,
|
|
2712
|
-
"hiddenAliases": [],
|
|
2713
|
-
"id": "querygen:export",
|
|
2714
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2715
|
-
"pluginName": "@memberjunction/cli",
|
|
2716
|
-
"pluginType": "core",
|
|
2717
|
-
"strict": true,
|
|
2718
|
-
"enableJsonFlag": false,
|
|
2719
|
-
"isESM": true,
|
|
2720
|
-
"relativePath": [
|
|
2721
|
-
"dist",
|
|
2722
|
-
"commands",
|
|
2723
|
-
"querygen",
|
|
2724
|
-
"export.js"
|
|
2725
|
-
]
|
|
2726
|
-
},
|
|
2727
|
-
"querygen:generate": {
|
|
2728
|
-
"aliases": [],
|
|
2729
|
-
"args": {},
|
|
2730
|
-
"description": "Generate SQL query templates for entities using AI",
|
|
2731
|
-
"examples": [
|
|
2732
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2733
|
-
"<%= config.bin %> <%= command.id %> --entities \"Customers,Orders\"",
|
|
2734
|
-
"<%= config.bin %> <%= command.id %> --max-entities 5 --verbose",
|
|
2735
|
-
"<%= config.bin %> <%= command.id %> --mode database"
|
|
2736
|
-
],
|
|
2737
|
-
"flags": {
|
|
2738
|
-
"entities": {
|
|
2739
|
-
"char": "e",
|
|
2740
|
-
"description": "Specific entities to generate queries for (comma-separated)",
|
|
2741
|
-
"name": "entities",
|
|
2742
|
-
"hasDynamicHelp": false,
|
|
2743
|
-
"multiple": false,
|
|
2744
|
-
"type": "option"
|
|
2745
|
-
},
|
|
2746
|
-
"exclude-entities": {
|
|
2747
|
-
"char": "x",
|
|
2748
|
-
"description": "Entities to exclude (comma-separated)",
|
|
2749
|
-
"name": "exclude-entities",
|
|
2750
|
-
"hasDynamicHelp": false,
|
|
2751
|
-
"multiple": false,
|
|
2752
|
-
"type": "option"
|
|
2753
|
-
},
|
|
2754
|
-
"exclude-schemas": {
|
|
2755
|
-
"char": "s",
|
|
2756
|
-
"description": "Schemas to exclude (comma-separated)",
|
|
2757
|
-
"name": "exclude-schemas",
|
|
2758
|
-
"hasDynamicHelp": false,
|
|
2759
|
-
"multiple": false,
|
|
2760
|
-
"type": "option"
|
|
2761
|
-
},
|
|
2762
|
-
"max-entities": {
|
|
2763
|
-
"char": "m",
|
|
2764
|
-
"description": "Max entities per group",
|
|
2765
|
-
"name": "max-entities",
|
|
2766
|
-
"default": 3,
|
|
2767
|
-
"hasDynamicHelp": false,
|
|
2768
|
-
"multiple": false,
|
|
2769
|
-
"type": "option"
|
|
2770
|
-
},
|
|
2771
|
-
"target-groups": {
|
|
2772
|
-
"char": "t",
|
|
2773
|
-
"description": "Target number of entity groups to generate",
|
|
2774
|
-
"name": "target-groups",
|
|
2775
|
-
"default": 75,
|
|
2776
|
-
"hasDynamicHelp": false,
|
|
2777
|
-
"multiple": false,
|
|
2778
|
-
"type": "option"
|
|
2779
|
-
},
|
|
2780
|
-
"max-refinements": {
|
|
2781
|
-
"char": "r",
|
|
2782
|
-
"description": "Max refinement iterations",
|
|
2783
|
-
"name": "max-refinements",
|
|
2784
|
-
"default": 3,
|
|
2785
|
-
"hasDynamicHelp": false,
|
|
2786
|
-
"multiple": false,
|
|
2787
|
-
"type": "option"
|
|
2788
|
-
},
|
|
2789
|
-
"max-fixes": {
|
|
2790
|
-
"char": "f",
|
|
2791
|
-
"description": "Max error-fixing attempts",
|
|
2792
|
-
"name": "max-fixes",
|
|
2793
|
-
"default": 5,
|
|
2794
|
-
"hasDynamicHelp": false,
|
|
2795
|
-
"multiple": false,
|
|
2796
|
-
"type": "option"
|
|
2797
|
-
},
|
|
2798
|
-
"model": {
|
|
2799
|
-
"description": "Preferred AI model",
|
|
2800
|
-
"name": "model",
|
|
2801
|
-
"hasDynamicHelp": false,
|
|
2802
|
-
"multiple": false,
|
|
2803
|
-
"type": "option"
|
|
2804
|
-
},
|
|
2805
|
-
"vendor": {
|
|
2806
|
-
"description": "Preferred AI vendor",
|
|
2807
|
-
"name": "vendor",
|
|
2808
|
-
"hasDynamicHelp": false,
|
|
2809
|
-
"multiple": false,
|
|
2810
|
-
"type": "option"
|
|
2811
|
-
},
|
|
2812
|
-
"output": {
|
|
2813
|
-
"char": "o",
|
|
2814
|
-
"description": "Output directory",
|
|
2815
|
-
"name": "output",
|
|
2816
|
-
"hasDynamicHelp": false,
|
|
2817
|
-
"multiple": false,
|
|
2818
|
-
"type": "option"
|
|
2819
|
-
},
|
|
2820
|
-
"mode": {
|
|
2821
|
-
"description": "Output mode: metadata|database|both",
|
|
2822
|
-
"name": "mode",
|
|
2823
|
-
"hasDynamicHelp": false,
|
|
2824
|
-
"multiple": false,
|
|
2825
|
-
"options": [
|
|
2826
|
-
"metadata",
|
|
2827
|
-
"database",
|
|
2828
|
-
"both"
|
|
2829
|
-
],
|
|
2830
|
-
"type": "option"
|
|
2831
|
-
},
|
|
2832
|
-
"verbose": {
|
|
2833
|
-
"char": "v",
|
|
2834
|
-
"description": "Verbose output",
|
|
2835
|
-
"name": "verbose",
|
|
2836
|
-
"allowNo": false,
|
|
2837
|
-
"type": "boolean"
|
|
2838
|
-
}
|
|
2839
|
-
},
|
|
2840
|
-
"hasDynamicHelp": false,
|
|
2841
|
-
"hiddenAliases": [],
|
|
2842
|
-
"id": "querygen:generate",
|
|
2843
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2844
|
-
"pluginName": "@memberjunction/cli",
|
|
2845
|
-
"pluginType": "core",
|
|
2846
|
-
"strict": true,
|
|
2847
|
-
"enableJsonFlag": false,
|
|
2848
|
-
"isESM": true,
|
|
2849
|
-
"relativePath": [
|
|
2850
|
-
"dist",
|
|
2851
|
-
"commands",
|
|
2852
|
-
"querygen",
|
|
2853
|
-
"generate.js"
|
|
2854
|
-
]
|
|
2855
|
-
},
|
|
2856
|
-
"querygen:validate": {
|
|
2857
|
-
"aliases": [],
|
|
2858
|
-
"args": {},
|
|
2859
|
-
"description": "Validate existing query templates",
|
|
2860
|
-
"examples": [
|
|
2861
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2862
|
-
"<%= config.bin %> <%= command.id %> --path ./metadata/queries",
|
|
2863
|
-
"<%= config.bin %> <%= command.id %> --verbose"
|
|
2864
|
-
],
|
|
2865
|
-
"flags": {
|
|
2866
|
-
"path": {
|
|
2867
|
-
"char": "p",
|
|
2868
|
-
"description": "Path to queries metadata file or directory",
|
|
2869
|
-
"name": "path",
|
|
2870
|
-
"default": "./metadata/queries",
|
|
2871
|
-
"hasDynamicHelp": false,
|
|
2872
|
-
"multiple": false,
|
|
2873
|
-
"type": "option"
|
|
2874
|
-
},
|
|
2875
|
-
"verbose": {
|
|
2876
|
-
"char": "v",
|
|
2877
|
-
"description": "Verbose output",
|
|
2878
|
-
"name": "verbose",
|
|
2879
|
-
"allowNo": false,
|
|
2880
|
-
"type": "boolean"
|
|
2881
|
-
}
|
|
2882
|
-
},
|
|
2883
|
-
"hasDynamicHelp": false,
|
|
2884
|
-
"hiddenAliases": [],
|
|
2885
|
-
"id": "querygen:validate",
|
|
2886
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2887
|
-
"pluginName": "@memberjunction/cli",
|
|
2888
|
-
"pluginType": "core",
|
|
2889
|
-
"strict": true,
|
|
2890
|
-
"enableJsonFlag": false,
|
|
2891
|
-
"isESM": true,
|
|
2892
|
-
"relativePath": [
|
|
2893
|
-
"dist",
|
|
2894
|
-
"commands",
|
|
2895
|
-
"querygen",
|
|
2896
|
-
"validate.js"
|
|
2897
|
-
]
|
|
2898
|
-
},
|
|
2899
2899
|
"ai:actions:list": {
|
|
2900
2900
|
"aliases": [],
|
|
2901
2901
|
"args": {},
|
|
@@ -3504,5 +3504,5 @@
|
|
|
3504
3504
|
]
|
|
3505
3505
|
}
|
|
3506
3506
|
},
|
|
3507
|
-
"version": "5.
|
|
3507
|
+
"version": "5.6.0"
|
|
3508
3508
|
}
|