@memberjunction/cli 5.40.0 → 5.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/oclif.manifest.json +800 -800
- package/package.json +15 -15
package/oclif.manifest.json
CHANGED
|
@@ -338,6 +338,67 @@
|
|
|
338
338
|
"upgrade.js"
|
|
339
339
|
]
|
|
340
340
|
},
|
|
341
|
+
"artifacts:reclassify": {
|
|
342
|
+
"aliases": [],
|
|
343
|
+
"args": {},
|
|
344
|
+
"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.",
|
|
345
|
+
"examples": [
|
|
346
|
+
"<%= config.bin %> <%= command.id %>",
|
|
347
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
348
|
+
],
|
|
349
|
+
"flags": {
|
|
350
|
+
"conversation-id": {
|
|
351
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
352
|
+
"name": "conversation-id",
|
|
353
|
+
"hasDynamicHelp": false,
|
|
354
|
+
"multiple": false,
|
|
355
|
+
"type": "option"
|
|
356
|
+
},
|
|
357
|
+
"since": {
|
|
358
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
359
|
+
"name": "since",
|
|
360
|
+
"hasDynamicHelp": false,
|
|
361
|
+
"multiple": false,
|
|
362
|
+
"type": "option"
|
|
363
|
+
},
|
|
364
|
+
"limit": {
|
|
365
|
+
"description": "Maximum number of rows to inspect.",
|
|
366
|
+
"name": "limit",
|
|
367
|
+
"default": 100,
|
|
368
|
+
"hasDynamicHelp": false,
|
|
369
|
+
"multiple": false,
|
|
370
|
+
"type": "option"
|
|
371
|
+
},
|
|
372
|
+
"apply": {
|
|
373
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
374
|
+
"name": "apply",
|
|
375
|
+
"allowNo": false,
|
|
376
|
+
"type": "boolean"
|
|
377
|
+
},
|
|
378
|
+
"verbose": {
|
|
379
|
+
"char": "v",
|
|
380
|
+
"description": "Print every candidate row, not just the summary.",
|
|
381
|
+
"name": "verbose",
|
|
382
|
+
"allowNo": false,
|
|
383
|
+
"type": "boolean"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"hasDynamicHelp": false,
|
|
387
|
+
"hiddenAliases": [],
|
|
388
|
+
"id": "artifacts:reclassify",
|
|
389
|
+
"pluginAlias": "@memberjunction/cli",
|
|
390
|
+
"pluginName": "@memberjunction/cli",
|
|
391
|
+
"pluginType": "core",
|
|
392
|
+
"strict": true,
|
|
393
|
+
"enableJsonFlag": false,
|
|
394
|
+
"isESM": true,
|
|
395
|
+
"relativePath": [
|
|
396
|
+
"dist",
|
|
397
|
+
"commands",
|
|
398
|
+
"artifacts",
|
|
399
|
+
"reclassify.js"
|
|
400
|
+
]
|
|
401
|
+
},
|
|
341
402
|
"baseline:build": {
|
|
342
403
|
"aliases": [],
|
|
343
404
|
"args": {},
|
|
@@ -748,67 +809,6 @@
|
|
|
748
809
|
"index.js"
|
|
749
810
|
]
|
|
750
811
|
},
|
|
751
|
-
"artifacts:reclassify": {
|
|
752
|
-
"aliases": [],
|
|
753
|
-
"args": {},
|
|
754
|
-
"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.",
|
|
755
|
-
"examples": [
|
|
756
|
-
"<%= config.bin %> <%= command.id %>",
|
|
757
|
-
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
758
|
-
],
|
|
759
|
-
"flags": {
|
|
760
|
-
"conversation-id": {
|
|
761
|
-
"description": "Scope to artifacts attached to the given conversation.",
|
|
762
|
-
"name": "conversation-id",
|
|
763
|
-
"hasDynamicHelp": false,
|
|
764
|
-
"multiple": false,
|
|
765
|
-
"type": "option"
|
|
766
|
-
},
|
|
767
|
-
"since": {
|
|
768
|
-
"description": "Scope to artifacts created on/after this ISO date.",
|
|
769
|
-
"name": "since",
|
|
770
|
-
"hasDynamicHelp": false,
|
|
771
|
-
"multiple": false,
|
|
772
|
-
"type": "option"
|
|
773
|
-
},
|
|
774
|
-
"limit": {
|
|
775
|
-
"description": "Maximum number of rows to inspect.",
|
|
776
|
-
"name": "limit",
|
|
777
|
-
"default": 100,
|
|
778
|
-
"hasDynamicHelp": false,
|
|
779
|
-
"multiple": false,
|
|
780
|
-
"type": "option"
|
|
781
|
-
},
|
|
782
|
-
"apply": {
|
|
783
|
-
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
784
|
-
"name": "apply",
|
|
785
|
-
"allowNo": false,
|
|
786
|
-
"type": "boolean"
|
|
787
|
-
},
|
|
788
|
-
"verbose": {
|
|
789
|
-
"char": "v",
|
|
790
|
-
"description": "Print every candidate row, not just the summary.",
|
|
791
|
-
"name": "verbose",
|
|
792
|
-
"allowNo": false,
|
|
793
|
-
"type": "boolean"
|
|
794
|
-
}
|
|
795
|
-
},
|
|
796
|
-
"hasDynamicHelp": false,
|
|
797
|
-
"hiddenAliases": [],
|
|
798
|
-
"id": "artifacts:reclassify",
|
|
799
|
-
"pluginAlias": "@memberjunction/cli",
|
|
800
|
-
"pluginName": "@memberjunction/cli",
|
|
801
|
-
"pluginType": "core",
|
|
802
|
-
"strict": true,
|
|
803
|
-
"enableJsonFlag": false,
|
|
804
|
-
"isESM": true,
|
|
805
|
-
"relativePath": [
|
|
806
|
-
"dist",
|
|
807
|
-
"commands",
|
|
808
|
-
"artifacts",
|
|
809
|
-
"reclassify.js"
|
|
810
|
-
]
|
|
811
|
-
},
|
|
812
812
|
"bundle": {
|
|
813
813
|
"aliases": [],
|
|
814
814
|
"args": {},
|
|
@@ -921,68 +921,38 @@
|
|
|
921
921
|
"index.js"
|
|
922
922
|
]
|
|
923
923
|
},
|
|
924
|
-
"
|
|
924
|
+
"dbdoc:analyze": {
|
|
925
925
|
"aliases": [],
|
|
926
926
|
"args": {},
|
|
927
|
-
"description": "
|
|
927
|
+
"description": "Analyze database and generate documentation (delegates to db-auto-doc analyze)",
|
|
928
928
|
"examples": [
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
},
|
|
933
|
-
{
|
|
934
|
-
"description": "Scan a single file",
|
|
935
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/components/actions-overview.component.ts"
|
|
936
|
-
},
|
|
937
|
-
{
|
|
938
|
-
"description": "Apply fixes across the codebase",
|
|
939
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ --fix"
|
|
940
|
-
},
|
|
941
|
-
{
|
|
942
|
-
"description": "Quiet mode (summary only)",
|
|
943
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ -q"
|
|
944
|
-
}
|
|
929
|
+
"<%= config.bin %> <%= command.id %>",
|
|
930
|
+
"<%= config.bin %> <%= command.id %> --resume ./output/run-6/state.json",
|
|
931
|
+
"<%= config.bin %> <%= command.id %> --config ./my-config.json"
|
|
945
932
|
],
|
|
946
933
|
"flags": {
|
|
947
|
-
"
|
|
948
|
-
"char": "
|
|
949
|
-
"description": "
|
|
950
|
-
"name": "
|
|
934
|
+
"resume": {
|
|
935
|
+
"char": "r",
|
|
936
|
+
"description": "Resume from an existing state file",
|
|
937
|
+
"name": "resume",
|
|
938
|
+
"required": false,
|
|
951
939
|
"hasDynamicHelp": false,
|
|
952
940
|
"multiple": false,
|
|
953
941
|
"type": "option"
|
|
954
942
|
},
|
|
955
|
-
"
|
|
956
|
-
"
|
|
957
|
-
"
|
|
958
|
-
"
|
|
959
|
-
"
|
|
960
|
-
},
|
|
961
|
-
"entity-subclasses": {
|
|
962
|
-
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
963
|
-
"name": "entity-subclasses",
|
|
943
|
+
"config": {
|
|
944
|
+
"char": "c",
|
|
945
|
+
"description": "Path to config file",
|
|
946
|
+
"name": "config",
|
|
947
|
+
"default": "./config.json",
|
|
964
948
|
"hasDynamicHelp": false,
|
|
965
949
|
"multiple": false,
|
|
966
950
|
"type": "option"
|
|
967
|
-
},
|
|
968
|
-
"quiet": {
|
|
969
|
-
"char": "q",
|
|
970
|
-
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
971
|
-
"name": "quiet",
|
|
972
|
-
"allowNo": false,
|
|
973
|
-
"type": "boolean"
|
|
974
|
-
},
|
|
975
|
-
"verbose": {
|
|
976
|
-
"char": "v",
|
|
977
|
-
"description": "Show detailed progress including each file being scanned.",
|
|
978
|
-
"name": "verbose",
|
|
979
|
-
"allowNo": false,
|
|
980
|
-
"type": "boolean"
|
|
981
951
|
}
|
|
982
952
|
},
|
|
983
953
|
"hasDynamicHelp": false,
|
|
984
954
|
"hiddenAliases": [],
|
|
985
|
-
"id": "
|
|
955
|
+
"id": "dbdoc:analyze",
|
|
986
956
|
"pluginAlias": "@memberjunction/cli",
|
|
987
957
|
"pluginName": "@memberjunction/cli",
|
|
988
958
|
"pluginType": "core",
|
|
@@ -992,72 +962,105 @@
|
|
|
992
962
|
"relativePath": [
|
|
993
963
|
"dist",
|
|
994
964
|
"commands",
|
|
995
|
-
"
|
|
996
|
-
"
|
|
965
|
+
"dbdoc",
|
|
966
|
+
"analyze.js"
|
|
997
967
|
]
|
|
998
968
|
},
|
|
999
|
-
"
|
|
969
|
+
"dbdoc:export-sample-queries": {
|
|
1000
970
|
"aliases": [],
|
|
1001
971
|
"args": {},
|
|
1002
|
-
"description": "
|
|
972
|
+
"description": "Export sample queries to MemberJunction metadata format (delegates to db-auto-doc export-sample-queries)",
|
|
1003
973
|
"examples": [
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
{
|
|
1009
|
-
"description": "Apply fixes to HTML templates",
|
|
1010
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/ --fix"
|
|
1011
|
-
},
|
|
1012
|
-
{
|
|
1013
|
-
"description": "Scan with verbose output",
|
|
1014
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ -v"
|
|
1015
|
-
},
|
|
1016
|
-
{
|
|
1017
|
-
"description": "Scan a single template file",
|
|
1018
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/actions-dashboard.component.html"
|
|
1019
|
-
}
|
|
974
|
+
"<%= config.bin %> <%= command.id %> --input ./output/sample-queries.json --output ./metadata/queries/.queries.json",
|
|
975
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./metadata/queries/.queries.json --separate-sql-files",
|
|
976
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --category \"Database Documentation\"",
|
|
977
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --status Pending --min-confidence 0.8"
|
|
1020
978
|
],
|
|
1021
979
|
"flags": {
|
|
1022
|
-
"
|
|
1023
|
-
"char": "
|
|
1024
|
-
"description": "
|
|
1025
|
-
"name": "
|
|
980
|
+
"input": {
|
|
981
|
+
"char": "i",
|
|
982
|
+
"description": "Path to sample-queries.json file generated by generate-queries command",
|
|
983
|
+
"name": "input",
|
|
984
|
+
"required": true,
|
|
1026
985
|
"hasDynamicHelp": false,
|
|
1027
986
|
"multiple": false,
|
|
1028
987
|
"type": "option"
|
|
1029
988
|
},
|
|
1030
|
-
"
|
|
1031
|
-
"
|
|
1032
|
-
"
|
|
989
|
+
"output": {
|
|
990
|
+
"char": "o",
|
|
991
|
+
"description": "Output path for the .queries.json metadata file",
|
|
992
|
+
"name": "output",
|
|
993
|
+
"required": true,
|
|
994
|
+
"hasDynamicHelp": false,
|
|
995
|
+
"multiple": false,
|
|
996
|
+
"type": "option"
|
|
997
|
+
},
|
|
998
|
+
"separate-sql-files": {
|
|
999
|
+
"description": "Write SQL to separate files and use @file: references",
|
|
1000
|
+
"name": "separate-sql-files",
|
|
1033
1001
|
"allowNo": false,
|
|
1034
1002
|
"type": "boolean"
|
|
1035
1003
|
},
|
|
1036
|
-
"
|
|
1037
|
-
"description": "
|
|
1038
|
-
"name": "
|
|
1004
|
+
"sql-dir": {
|
|
1005
|
+
"description": "Directory for SQL files when using --separate-sql-files (relative to output file)",
|
|
1006
|
+
"name": "sql-dir",
|
|
1007
|
+
"default": "SQL",
|
|
1039
1008
|
"hasDynamicHelp": false,
|
|
1040
1009
|
"multiple": false,
|
|
1041
1010
|
"type": "option"
|
|
1042
1011
|
},
|
|
1043
|
-
"
|
|
1044
|
-
"
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
1047
|
-
"
|
|
1048
|
-
"
|
|
1012
|
+
"category": {
|
|
1013
|
+
"description": "Category name for @lookup reference (e.g., \"Database Documentation\")",
|
|
1014
|
+
"name": "category",
|
|
1015
|
+
"required": false,
|
|
1016
|
+
"hasDynamicHelp": false,
|
|
1017
|
+
"multiple": false,
|
|
1018
|
+
"type": "option"
|
|
1049
1019
|
},
|
|
1050
|
-
"
|
|
1051
|
-
"
|
|
1052
|
-
"
|
|
1053
|
-
"
|
|
1020
|
+
"status": {
|
|
1021
|
+
"description": "Status to assign to exported queries",
|
|
1022
|
+
"name": "status",
|
|
1023
|
+
"default": "Pending",
|
|
1024
|
+
"hasDynamicHelp": false,
|
|
1025
|
+
"multiple": false,
|
|
1026
|
+
"options": [
|
|
1027
|
+
"Approved",
|
|
1028
|
+
"Pending",
|
|
1029
|
+
"Rejected",
|
|
1030
|
+
"Expired"
|
|
1031
|
+
],
|
|
1032
|
+
"type": "option"
|
|
1033
|
+
},
|
|
1034
|
+
"min-confidence": {
|
|
1035
|
+
"description": "Minimum confidence threshold to export (0-1)",
|
|
1036
|
+
"name": "min-confidence",
|
|
1037
|
+
"default": "0",
|
|
1038
|
+
"hasDynamicHelp": false,
|
|
1039
|
+
"multiple": false,
|
|
1040
|
+
"type": "option"
|
|
1041
|
+
},
|
|
1042
|
+
"validated-only": {
|
|
1043
|
+
"description": "Only export queries that were successfully validated",
|
|
1044
|
+
"name": "validated-only",
|
|
1045
|
+
"allowNo": false,
|
|
1046
|
+
"type": "boolean"
|
|
1047
|
+
},
|
|
1048
|
+
"append": {
|
|
1049
|
+
"description": "Append to existing metadata file instead of overwriting",
|
|
1050
|
+
"name": "append",
|
|
1051
|
+
"allowNo": false,
|
|
1052
|
+
"type": "boolean"
|
|
1053
|
+
},
|
|
1054
|
+
"include-primary-key": {
|
|
1055
|
+
"description": "Include primaryKey and sync fields (for updating existing records)",
|
|
1056
|
+
"name": "include-primary-key",
|
|
1054
1057
|
"allowNo": false,
|
|
1055
1058
|
"type": "boolean"
|
|
1056
1059
|
}
|
|
1057
1060
|
},
|
|
1058
1061
|
"hasDynamicHelp": false,
|
|
1059
1062
|
"hiddenAliases": [],
|
|
1060
|
-
"id": "
|
|
1063
|
+
"id": "dbdoc:export-sample-queries",
|
|
1061
1064
|
"pluginAlias": "@memberjunction/cli",
|
|
1062
1065
|
"pluginName": "@memberjunction/cli",
|
|
1063
1066
|
"pluginType": "core",
|
|
@@ -1067,130 +1070,100 @@
|
|
|
1067
1070
|
"relativePath": [
|
|
1068
1071
|
"dist",
|
|
1069
1072
|
"commands",
|
|
1070
|
-
"
|
|
1071
|
-
"
|
|
1073
|
+
"dbdoc",
|
|
1074
|
+
"export-sample-queries.js"
|
|
1072
1075
|
]
|
|
1073
1076
|
},
|
|
1074
|
-
"
|
|
1077
|
+
"dbdoc:export": {
|
|
1075
1078
|
"aliases": [],
|
|
1076
1079
|
"args": {},
|
|
1077
|
-
"description": "
|
|
1080
|
+
"description": "Export documentation in multiple formats (delegates to db-auto-doc export)",
|
|
1078
1081
|
"examples": [
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
},
|
|
1087
|
-
{
|
|
1088
|
-
"description": "Scan a specific subdirectory",
|
|
1089
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/resource-types"
|
|
1090
|
-
},
|
|
1091
|
-
{
|
|
1092
|
-
"description": "Scan and fix a single metadata file",
|
|
1093
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/entities/.audit-related-entities.json --fix"
|
|
1094
|
-
}
|
|
1082
|
+
"<%= config.bin %> <%= command.id %> --state-file=./db-doc-state.json",
|
|
1083
|
+
"<%= config.bin %> <%= command.id %> --sql",
|
|
1084
|
+
"<%= config.bin %> <%= command.id %> --markdown",
|
|
1085
|
+
"<%= config.bin %> <%= command.id %> --html",
|
|
1086
|
+
"<%= config.bin %> <%= command.id %> --csv",
|
|
1087
|
+
"<%= config.bin %> <%= command.id %> --mermaid",
|
|
1088
|
+
"<%= config.bin %> <%= command.id %> --sql --markdown --html --csv --mermaid --apply"
|
|
1095
1089
|
],
|
|
1096
1090
|
"flags": {
|
|
1097
|
-
"
|
|
1098
|
-
"char": "
|
|
1099
|
-
"description": "
|
|
1100
|
-
"name": "
|
|
1091
|
+
"state-file": {
|
|
1092
|
+
"char": "s",
|
|
1093
|
+
"description": "Path to state JSON file",
|
|
1094
|
+
"name": "state-file",
|
|
1101
1095
|
"hasDynamicHelp": false,
|
|
1102
1096
|
"multiple": false,
|
|
1103
1097
|
"type": "option"
|
|
1104
1098
|
},
|
|
1105
|
-
"
|
|
1106
|
-
"
|
|
1107
|
-
"
|
|
1108
|
-
"
|
|
1109
|
-
"type": "boolean"
|
|
1110
|
-
},
|
|
1111
|
-
"entity-subclasses": {
|
|
1112
|
-
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1113
|
-
"name": "entity-subclasses",
|
|
1099
|
+
"output-dir": {
|
|
1100
|
+
"char": "o",
|
|
1101
|
+
"description": "Output directory for generated files",
|
|
1102
|
+
"name": "output-dir",
|
|
1114
1103
|
"hasDynamicHelp": false,
|
|
1115
1104
|
"multiple": false,
|
|
1116
1105
|
"type": "option"
|
|
1117
1106
|
},
|
|
1118
|
-
"
|
|
1119
|
-
"
|
|
1120
|
-
"
|
|
1121
|
-
"name": "quiet",
|
|
1107
|
+
"sql": {
|
|
1108
|
+
"description": "Generate SQL script",
|
|
1109
|
+
"name": "sql",
|
|
1122
1110
|
"allowNo": false,
|
|
1123
1111
|
"type": "boolean"
|
|
1124
1112
|
},
|
|
1125
|
-
"
|
|
1126
|
-
"
|
|
1127
|
-
"
|
|
1128
|
-
"name": "verbose",
|
|
1113
|
+
"markdown": {
|
|
1114
|
+
"description": "Generate Markdown documentation",
|
|
1115
|
+
"name": "markdown",
|
|
1129
1116
|
"allowNo": false,
|
|
1130
1117
|
"type": "boolean"
|
|
1131
|
-
}
|
|
1132
|
-
},
|
|
1133
|
-
"hasDynamicHelp": false,
|
|
1134
|
-
"hiddenAliases": [],
|
|
1135
|
-
"id": "codegen:5-0-fix-metadata-names",
|
|
1136
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1137
|
-
"pluginName": "@memberjunction/cli",
|
|
1138
|
-
"pluginType": "core",
|
|
1139
|
-
"strict": true,
|
|
1140
|
-
"enableJsonFlag": false,
|
|
1141
|
-
"isESM": true,
|
|
1142
|
-
"relativePath": [
|
|
1143
|
-
"dist",
|
|
1144
|
-
"commands",
|
|
1145
|
-
"codegen",
|
|
1146
|
-
"5-0-fix-metadata-names.js"
|
|
1147
|
-
]
|
|
1148
|
-
},
|
|
1149
|
-
"codegen": {
|
|
1150
|
-
"aliases": [],
|
|
1151
|
-
"args": {},
|
|
1152
|
-
"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.\n\nUse --skipfiles to skip all file-generation operations (TypeScript entities,\nAngular components, GraphQL resolvers, action subclasses, DB schema JSON) and\nonly run database-side operations (metadata sync, SQL object generation,\npermissions, custom SQL scripts).\n\n--skipdb and --skipfiles are independent and can be combined in any mix.\n\nUse --force-advanced-gen to bypass Pass 2 entity scoping and re-run the LLM-driven\nadvanced generation (smart fields, form layout) for ALL entities. Useful when AI\nprompts have changed and you want unchanged entities re-evaluated.",
|
|
1153
|
-
"examples": [
|
|
1154
|
-
{
|
|
1155
|
-
"command": "<%= config.bin %> <%= command.id %>",
|
|
1156
|
-
"description": "Run the full code generation pipeline"
|
|
1157
1118
|
},
|
|
1158
|
-
{
|
|
1159
|
-
"
|
|
1160
|
-
"
|
|
1119
|
+
"html": {
|
|
1120
|
+
"description": "Generate interactive HTML documentation",
|
|
1121
|
+
"name": "html",
|
|
1122
|
+
"allowNo": false,
|
|
1123
|
+
"type": "boolean"
|
|
1161
1124
|
},
|
|
1162
|
-
{
|
|
1163
|
-
"
|
|
1164
|
-
"
|
|
1125
|
+
"csv": {
|
|
1126
|
+
"description": "Generate CSV exports (tables and columns)",
|
|
1127
|
+
"name": "csv",
|
|
1128
|
+
"allowNo": false,
|
|
1129
|
+
"type": "boolean"
|
|
1165
1130
|
},
|
|
1166
|
-
{
|
|
1167
|
-
"
|
|
1168
|
-
"
|
|
1169
|
-
}
|
|
1170
|
-
],
|
|
1171
|
-
"flags": {
|
|
1172
|
-
"skipdb": {
|
|
1173
|
-
"description": "Skip database operations (metadata sync, SQL generation). Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.",
|
|
1174
|
-
"name": "skipdb",
|
|
1131
|
+
"mermaid": {
|
|
1132
|
+
"description": "Generate Mermaid ERD diagram files",
|
|
1133
|
+
"name": "mermaid",
|
|
1175
1134
|
"allowNo": false,
|
|
1176
1135
|
"type": "boolean"
|
|
1177
1136
|
},
|
|
1178
|
-
"
|
|
1179
|
-
"description": "
|
|
1180
|
-
"name": "
|
|
1137
|
+
"report": {
|
|
1138
|
+
"description": "Generate analysis report",
|
|
1139
|
+
"name": "report",
|
|
1181
1140
|
"allowNo": false,
|
|
1182
1141
|
"type": "boolean"
|
|
1183
1142
|
},
|
|
1184
|
-
"
|
|
1185
|
-
"description": "
|
|
1186
|
-
"name": "
|
|
1143
|
+
"apply": {
|
|
1144
|
+
"description": "Apply SQL to database",
|
|
1145
|
+
"name": "apply",
|
|
1146
|
+
"allowNo": false,
|
|
1147
|
+
"type": "boolean"
|
|
1148
|
+
},
|
|
1149
|
+
"approved-only": {
|
|
1150
|
+
"description": "Only export approved items",
|
|
1151
|
+
"name": "approved-only",
|
|
1187
1152
|
"allowNo": false,
|
|
1188
1153
|
"type": "boolean"
|
|
1154
|
+
},
|
|
1155
|
+
"confidence-threshold": {
|
|
1156
|
+
"description": "Minimum confidence threshold",
|
|
1157
|
+
"name": "confidence-threshold",
|
|
1158
|
+
"default": "0",
|
|
1159
|
+
"hasDynamicHelp": false,
|
|
1160
|
+
"multiple": false,
|
|
1161
|
+
"type": "option"
|
|
1189
1162
|
}
|
|
1190
1163
|
},
|
|
1191
1164
|
"hasDynamicHelp": false,
|
|
1192
1165
|
"hiddenAliases": [],
|
|
1193
|
-
"id": "
|
|
1166
|
+
"id": "dbdoc:export",
|
|
1194
1167
|
"pluginAlias": "@memberjunction/cli",
|
|
1195
1168
|
"pluginName": "@memberjunction/cli",
|
|
1196
1169
|
"pluginType": "core",
|
|
@@ -1200,117 +1173,65 @@
|
|
|
1200
1173
|
"relativePath": [
|
|
1201
1174
|
"dist",
|
|
1202
1175
|
"commands",
|
|
1203
|
-
"
|
|
1204
|
-
"
|
|
1176
|
+
"dbdoc",
|
|
1177
|
+
"export.js"
|
|
1205
1178
|
]
|
|
1206
1179
|
},
|
|
1207
|
-
"
|
|
1180
|
+
"dbdoc:generate-queries": {
|
|
1208
1181
|
"aliases": [],
|
|
1209
1182
|
"args": {},
|
|
1210
|
-
"description": "Generate
|
|
1183
|
+
"description": "Generate sample SQL queries from existing analysis state (delegates to db-auto-doc generate-queries)",
|
|
1211
1184
|
"examples": [
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
},
|
|
1216
|
-
{
|
|
1217
|
-
"command": "<%= config.bin %> <%= command.id %> --appDir ./packages/MJAPI --output ./packages/MJAPI/src/generated/class-registrations-manifest.ts",
|
|
1218
|
-
"description": "Generate manifest for a specific application directory"
|
|
1219
|
-
},
|
|
1220
|
-
{
|
|
1221
|
-
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction",
|
|
1222
|
-
"description": "Exclude MJ packages (use pre-built bootstrap manifests instead)"
|
|
1223
|
-
},
|
|
1224
|
-
{
|
|
1225
|
-
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction --no-sync-deps",
|
|
1226
|
-
"description": "Exclude MJ packages and skip dependency reconciliation"
|
|
1227
|
-
},
|
|
1228
|
-
{
|
|
1229
|
-
"command": "<%= config.bin %> <%= command.id %> --filter BaseEngine --filter BaseAction --verbose",
|
|
1230
|
-
"description": "Only include specific base classes with detailed progress"
|
|
1231
|
-
},
|
|
1232
|
-
{
|
|
1233
|
-
"command": "<%= config.bin %> <%= command.id %> --scan-dist",
|
|
1234
|
-
"description": "Include dist/ scanning for npm-published packages without src/"
|
|
1235
|
-
}
|
|
1185
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json",
|
|
1186
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --output-dir ./queries",
|
|
1187
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --queries-per-table 10"
|
|
1236
1188
|
],
|
|
1237
1189
|
"flags": {
|
|
1238
|
-
"
|
|
1239
|
-
"
|
|
1240
|
-
"
|
|
1241
|
-
"
|
|
1242
|
-
"default": "./src/generated/class-registrations-manifest.ts",
|
|
1190
|
+
"from-state": {
|
|
1191
|
+
"description": "Path to existing state.json file from previous analysis",
|
|
1192
|
+
"name": "from-state",
|
|
1193
|
+
"required": true,
|
|
1243
1194
|
"hasDynamicHelp": false,
|
|
1244
1195
|
"multiple": false,
|
|
1245
1196
|
"type": "option"
|
|
1246
1197
|
},
|
|
1247
|
-
"
|
|
1248
|
-
"
|
|
1249
|
-
"
|
|
1250
|
-
"
|
|
1198
|
+
"output-dir": {
|
|
1199
|
+
"description": "Output directory for generated queries",
|
|
1200
|
+
"name": "output-dir",
|
|
1201
|
+
"required": false,
|
|
1251
1202
|
"hasDynamicHelp": false,
|
|
1252
1203
|
"multiple": false,
|
|
1253
1204
|
"type": "option"
|
|
1254
1205
|
},
|
|
1255
|
-
"
|
|
1256
|
-
"char": "
|
|
1257
|
-
"description": "
|
|
1258
|
-
"name": "
|
|
1206
|
+
"config": {
|
|
1207
|
+
"char": "c",
|
|
1208
|
+
"description": "Path to config file (for database connection and AI settings)",
|
|
1209
|
+
"name": "config",
|
|
1210
|
+
"default": "./config.json",
|
|
1259
1211
|
"hasDynamicHelp": false,
|
|
1260
|
-
"multiple":
|
|
1212
|
+
"multiple": false,
|
|
1261
1213
|
"type": "option"
|
|
1262
1214
|
},
|
|
1263
|
-
"
|
|
1264
|
-
"
|
|
1265
|
-
"
|
|
1266
|
-
"
|
|
1215
|
+
"queries-per-table": {
|
|
1216
|
+
"description": "Number of queries to generate per table",
|
|
1217
|
+
"name": "queries-per-table",
|
|
1218
|
+
"required": false,
|
|
1267
1219
|
"hasDynamicHelp": false,
|
|
1268
|
-
"multiple":
|
|
1220
|
+
"multiple": false,
|
|
1269
1221
|
"type": "option"
|
|
1270
1222
|
},
|
|
1271
|
-
"
|
|
1272
|
-
"description": "
|
|
1273
|
-
"name": "
|
|
1274
|
-
"
|
|
1275
|
-
"type": "boolean"
|
|
1276
|
-
},
|
|
1277
|
-
"quiet": {
|
|
1278
|
-
"char": "q",
|
|
1279
|
-
"description": "Suppress all output except errors.",
|
|
1280
|
-
"name": "quiet",
|
|
1281
|
-
"allowNo": false,
|
|
1282
|
-
"type": "boolean"
|
|
1283
|
-
},
|
|
1284
|
-
"verbose": {
|
|
1285
|
-
"char": "v",
|
|
1286
|
-
"description": "Show detailed progress including per-package scanning info and skipped classes.",
|
|
1287
|
-
"name": "verbose",
|
|
1288
|
-
"allowNo": false,
|
|
1289
|
-
"type": "boolean"
|
|
1290
|
-
},
|
|
1291
|
-
"scan-dist": {
|
|
1292
|
-
"description": "Scan compiled JavaScript files in dist/ directories for packages without src/. Use this when your dependency tree includes npm-published packages that contain @RegisterClass decorators. Without this flag, only TypeScript source in src/ is scanned.",
|
|
1293
|
-
"name": "scan-dist",
|
|
1294
|
-
"allowNo": false,
|
|
1295
|
-
"type": "boolean"
|
|
1296
|
-
},
|
|
1297
|
-
"lazy-config": {
|
|
1298
|
-
"description": "Output path for a generated lazy-loading feature config file. Maps @RegisterClass keys from excluded packages to dynamic import() loaders based on package.json subpath exports. Only packages with subpath exports in their package.json are included. Requires --exclude-packages.",
|
|
1299
|
-
"name": "lazy-config",
|
|
1223
|
+
"max-execution-time": {
|
|
1224
|
+
"description": "Maximum execution time for query validation (ms)",
|
|
1225
|
+
"name": "max-execution-time",
|
|
1226
|
+
"required": false,
|
|
1300
1227
|
"hasDynamicHelp": false,
|
|
1301
1228
|
"multiple": false,
|
|
1302
1229
|
"type": "option"
|
|
1303
|
-
},
|
|
1304
|
-
"strict": {
|
|
1305
|
-
"description": "Treat coverage audit gaps as fatal errors. A gap is a @RegisterClass class in an excluded package that is not reachable from any lazy chunk subpath export. Use in CI to catch tree-shaking issues before merge.",
|
|
1306
|
-
"name": "strict",
|
|
1307
|
-
"allowNo": false,
|
|
1308
|
-
"type": "boolean"
|
|
1309
1230
|
}
|
|
1310
1231
|
},
|
|
1311
1232
|
"hasDynamicHelp": false,
|
|
1312
1233
|
"hiddenAliases": [],
|
|
1313
|
-
"id": "
|
|
1234
|
+
"id": "dbdoc:generate-queries",
|
|
1314
1235
|
"pluginAlias": "@memberjunction/cli",
|
|
1315
1236
|
"pluginName": "@memberjunction/cli",
|
|
1316
1237
|
"pluginType": "core",
|
|
@@ -1320,42 +1241,43 @@
|
|
|
1320
1241
|
"relativePath": [
|
|
1321
1242
|
"dist",
|
|
1322
1243
|
"commands",
|
|
1323
|
-
"
|
|
1324
|
-
"
|
|
1244
|
+
"dbdoc",
|
|
1245
|
+
"generate-queries.js"
|
|
1325
1246
|
]
|
|
1326
1247
|
},
|
|
1327
|
-
"dbdoc
|
|
1248
|
+
"dbdoc": {
|
|
1328
1249
|
"aliases": [],
|
|
1329
1250
|
"args": {},
|
|
1330
|
-
"description": "
|
|
1251
|
+
"description": "AI-powered database documentation generator",
|
|
1252
|
+
"flags": {},
|
|
1253
|
+
"hasDynamicHelp": false,
|
|
1254
|
+
"hidden": false,
|
|
1255
|
+
"hiddenAliases": [],
|
|
1256
|
+
"id": "dbdoc",
|
|
1257
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1258
|
+
"pluginName": "@memberjunction/cli",
|
|
1259
|
+
"pluginType": "core",
|
|
1260
|
+
"strict": true,
|
|
1261
|
+
"enableJsonFlag": false,
|
|
1262
|
+
"isESM": true,
|
|
1263
|
+
"relativePath": [
|
|
1264
|
+
"dist",
|
|
1265
|
+
"commands",
|
|
1266
|
+
"dbdoc",
|
|
1267
|
+
"index.js"
|
|
1268
|
+
]
|
|
1269
|
+
},
|
|
1270
|
+
"dbdoc:init": {
|
|
1271
|
+
"aliases": [],
|
|
1272
|
+
"args": {},
|
|
1273
|
+
"description": "Initialize DBAutoDoc project (delegates to db-auto-doc init)",
|
|
1331
1274
|
"examples": [
|
|
1332
|
-
"<%= config.bin %> <%= command.id %>"
|
|
1333
|
-
"<%= config.bin %> <%= command.id %> --resume ./output/run-6/state.json",
|
|
1334
|
-
"<%= config.bin %> <%= command.id %> --config ./my-config.json"
|
|
1275
|
+
"<%= config.bin %> <%= command.id %>"
|
|
1335
1276
|
],
|
|
1336
|
-
"flags": {
|
|
1337
|
-
"resume": {
|
|
1338
|
-
"char": "r",
|
|
1339
|
-
"description": "Resume from an existing state file",
|
|
1340
|
-
"name": "resume",
|
|
1341
|
-
"required": false,
|
|
1342
|
-
"hasDynamicHelp": false,
|
|
1343
|
-
"multiple": false,
|
|
1344
|
-
"type": "option"
|
|
1345
|
-
},
|
|
1346
|
-
"config": {
|
|
1347
|
-
"char": "c",
|
|
1348
|
-
"description": "Path to config file",
|
|
1349
|
-
"name": "config",
|
|
1350
|
-
"default": "./config.json",
|
|
1351
|
-
"hasDynamicHelp": false,
|
|
1352
|
-
"multiple": false,
|
|
1353
|
-
"type": "option"
|
|
1354
|
-
}
|
|
1355
|
-
},
|
|
1277
|
+
"flags": {},
|
|
1356
1278
|
"hasDynamicHelp": false,
|
|
1357
1279
|
"hiddenAliases": [],
|
|
1358
|
-
"id": "dbdoc:
|
|
1280
|
+
"id": "dbdoc:init",
|
|
1359
1281
|
"pluginAlias": "@memberjunction/cli",
|
|
1360
1282
|
"pluginName": "@memberjunction/cli",
|
|
1361
1283
|
"pluginType": "core",
|
|
@@ -1366,104 +1288,29 @@
|
|
|
1366
1288
|
"dist",
|
|
1367
1289
|
"commands",
|
|
1368
1290
|
"dbdoc",
|
|
1369
|
-
"
|
|
1291
|
+
"init.js"
|
|
1370
1292
|
]
|
|
1371
1293
|
},
|
|
1372
|
-
"dbdoc:
|
|
1294
|
+
"dbdoc:reset": {
|
|
1373
1295
|
"aliases": [],
|
|
1374
1296
|
"args": {},
|
|
1375
|
-
"description": "
|
|
1297
|
+
"description": "Reset analysis state (delegates to db-auto-doc reset)",
|
|
1376
1298
|
"examples": [
|
|
1377
|
-
"<%= config.bin %> <%= command.id %>
|
|
1378
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1379
|
-
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --category \"Database Documentation\"",
|
|
1380
|
-
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --status Pending --min-confidence 0.8"
|
|
1299
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1300
|
+
"<%= config.bin %> <%= command.id %> --force"
|
|
1381
1301
|
],
|
|
1382
1302
|
"flags": {
|
|
1383
|
-
"
|
|
1384
|
-
"char": "
|
|
1385
|
-
"description": "
|
|
1386
|
-
"name": "
|
|
1387
|
-
"required": true,
|
|
1388
|
-
"hasDynamicHelp": false,
|
|
1389
|
-
"multiple": false,
|
|
1390
|
-
"type": "option"
|
|
1391
|
-
},
|
|
1392
|
-
"output": {
|
|
1393
|
-
"char": "o",
|
|
1394
|
-
"description": "Output path for the .queries.json metadata file",
|
|
1395
|
-
"name": "output",
|
|
1396
|
-
"required": true,
|
|
1397
|
-
"hasDynamicHelp": false,
|
|
1398
|
-
"multiple": false,
|
|
1399
|
-
"type": "option"
|
|
1400
|
-
},
|
|
1401
|
-
"separate-sql-files": {
|
|
1402
|
-
"description": "Write SQL to separate files and use @file: references",
|
|
1403
|
-
"name": "separate-sql-files",
|
|
1404
|
-
"allowNo": false,
|
|
1405
|
-
"type": "boolean"
|
|
1406
|
-
},
|
|
1407
|
-
"sql-dir": {
|
|
1408
|
-
"description": "Directory for SQL files when using --separate-sql-files (relative to output file)",
|
|
1409
|
-
"name": "sql-dir",
|
|
1410
|
-
"default": "SQL",
|
|
1411
|
-
"hasDynamicHelp": false,
|
|
1412
|
-
"multiple": false,
|
|
1413
|
-
"type": "option"
|
|
1414
|
-
},
|
|
1415
|
-
"category": {
|
|
1416
|
-
"description": "Category name for @lookup reference (e.g., \"Database Documentation\")",
|
|
1417
|
-
"name": "category",
|
|
1418
|
-
"required": false,
|
|
1419
|
-
"hasDynamicHelp": false,
|
|
1420
|
-
"multiple": false,
|
|
1421
|
-
"type": "option"
|
|
1422
|
-
},
|
|
1423
|
-
"status": {
|
|
1424
|
-
"description": "Status to assign to exported queries",
|
|
1425
|
-
"name": "status",
|
|
1426
|
-
"default": "Pending",
|
|
1427
|
-
"hasDynamicHelp": false,
|
|
1428
|
-
"multiple": false,
|
|
1429
|
-
"options": [
|
|
1430
|
-
"Approved",
|
|
1431
|
-
"Pending",
|
|
1432
|
-
"Rejected",
|
|
1433
|
-
"Expired"
|
|
1434
|
-
],
|
|
1435
|
-
"type": "option"
|
|
1436
|
-
},
|
|
1437
|
-
"min-confidence": {
|
|
1438
|
-
"description": "Minimum confidence threshold to export (0-1)",
|
|
1439
|
-
"name": "min-confidence",
|
|
1440
|
-
"default": "0",
|
|
1441
|
-
"hasDynamicHelp": false,
|
|
1442
|
-
"multiple": false,
|
|
1443
|
-
"type": "option"
|
|
1444
|
-
},
|
|
1445
|
-
"validated-only": {
|
|
1446
|
-
"description": "Only export queries that were successfully validated",
|
|
1447
|
-
"name": "validated-only",
|
|
1448
|
-
"allowNo": false,
|
|
1449
|
-
"type": "boolean"
|
|
1450
|
-
},
|
|
1451
|
-
"append": {
|
|
1452
|
-
"description": "Append to existing metadata file instead of overwriting",
|
|
1453
|
-
"name": "append",
|
|
1454
|
-
"allowNo": false,
|
|
1455
|
-
"type": "boolean"
|
|
1456
|
-
},
|
|
1457
|
-
"include-primary-key": {
|
|
1458
|
-
"description": "Include primaryKey and sync fields (for updating existing records)",
|
|
1459
|
-
"name": "include-primary-key",
|
|
1303
|
+
"force": {
|
|
1304
|
+
"char": "f",
|
|
1305
|
+
"description": "Force reset without confirmation",
|
|
1306
|
+
"name": "force",
|
|
1460
1307
|
"allowNo": false,
|
|
1461
1308
|
"type": "boolean"
|
|
1462
1309
|
}
|
|
1463
1310
|
},
|
|
1464
1311
|
"hasDynamicHelp": false,
|
|
1465
1312
|
"hiddenAliases": [],
|
|
1466
|
-
"id": "dbdoc:
|
|
1313
|
+
"id": "dbdoc:reset",
|
|
1467
1314
|
"pluginAlias": "@memberjunction/cli",
|
|
1468
1315
|
"pluginName": "@memberjunction/cli",
|
|
1469
1316
|
"pluginType": "core",
|
|
@@ -1474,21 +1321,16 @@
|
|
|
1474
1321
|
"dist",
|
|
1475
1322
|
"commands",
|
|
1476
1323
|
"dbdoc",
|
|
1477
|
-
"
|
|
1324
|
+
"reset.js"
|
|
1478
1325
|
]
|
|
1479
1326
|
},
|
|
1480
|
-
"dbdoc:
|
|
1327
|
+
"dbdoc:status": {
|
|
1481
1328
|
"aliases": [],
|
|
1482
1329
|
"args": {},
|
|
1483
|
-
"description": "
|
|
1330
|
+
"description": "Show analysis status and progress (delegates to db-auto-doc status)",
|
|
1484
1331
|
"examples": [
|
|
1485
|
-
"<%= config.bin %> <%= command.id %>
|
|
1486
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1487
|
-
"<%= config.bin %> <%= command.id %> --markdown",
|
|
1488
|
-
"<%= config.bin %> <%= command.id %> --html",
|
|
1489
|
-
"<%= config.bin %> <%= command.id %> --csv",
|
|
1490
|
-
"<%= config.bin %> <%= command.id %> --mermaid",
|
|
1491
|
-
"<%= config.bin %> <%= command.id %> --sql --markdown --html --csv --mermaid --apply"
|
|
1332
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1333
|
+
"<%= config.bin %> <%= command.id %> --state-file ./custom-state.json"
|
|
1492
1334
|
],
|
|
1493
1335
|
"flags": {
|
|
1494
1336
|
"state-file": {
|
|
@@ -1498,75 +1340,86 @@
|
|
|
1498
1340
|
"hasDynamicHelp": false,
|
|
1499
1341
|
"multiple": false,
|
|
1500
1342
|
"type": "option"
|
|
1343
|
+
}
|
|
1344
|
+
},
|
|
1345
|
+
"hasDynamicHelp": false,
|
|
1346
|
+
"hiddenAliases": [],
|
|
1347
|
+
"id": "dbdoc:status",
|
|
1348
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1349
|
+
"pluginName": "@memberjunction/cli",
|
|
1350
|
+
"pluginType": "core",
|
|
1351
|
+
"strict": true,
|
|
1352
|
+
"enableJsonFlag": false,
|
|
1353
|
+
"isESM": true,
|
|
1354
|
+
"relativePath": [
|
|
1355
|
+
"dist",
|
|
1356
|
+
"commands",
|
|
1357
|
+
"dbdoc",
|
|
1358
|
+
"status.js"
|
|
1359
|
+
]
|
|
1360
|
+
},
|
|
1361
|
+
"codegen:5-0-fix-entity-names": {
|
|
1362
|
+
"aliases": [],
|
|
1363
|
+
"args": {},
|
|
1364
|
+
"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.",
|
|
1365
|
+
"examples": [
|
|
1366
|
+
{
|
|
1367
|
+
"description": "Dry-run scan of the packages directory",
|
|
1368
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/"
|
|
1501
1369
|
},
|
|
1502
|
-
|
|
1503
|
-
"
|
|
1504
|
-
"
|
|
1505
|
-
|
|
1370
|
+
{
|
|
1371
|
+
"description": "Scan a single file",
|
|
1372
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/components/actions-overview.component.ts"
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"description": "Apply fixes across the codebase",
|
|
1376
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ --fix"
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
"description": "Quiet mode (summary only)",
|
|
1380
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ -q"
|
|
1381
|
+
}
|
|
1382
|
+
],
|
|
1383
|
+
"flags": {
|
|
1384
|
+
"path": {
|
|
1385
|
+
"char": "p",
|
|
1386
|
+
"description": "File or directory to scan. Accepts a single .ts file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
1387
|
+
"name": "path",
|
|
1506
1388
|
"hasDynamicHelp": false,
|
|
1507
1389
|
"multiple": false,
|
|
1508
1390
|
"type": "option"
|
|
1509
1391
|
},
|
|
1510
|
-
"
|
|
1511
|
-
"description": "
|
|
1512
|
-
"name": "
|
|
1513
|
-
"allowNo": false,
|
|
1514
|
-
"type": "boolean"
|
|
1515
|
-
},
|
|
1516
|
-
"markdown": {
|
|
1517
|
-
"description": "Generate Markdown documentation",
|
|
1518
|
-
"name": "markdown",
|
|
1519
|
-
"allowNo": false,
|
|
1520
|
-
"type": "boolean"
|
|
1521
|
-
},
|
|
1522
|
-
"html": {
|
|
1523
|
-
"description": "Generate interactive HTML documentation",
|
|
1524
|
-
"name": "html",
|
|
1525
|
-
"allowNo": false,
|
|
1526
|
-
"type": "boolean"
|
|
1527
|
-
},
|
|
1528
|
-
"csv": {
|
|
1529
|
-
"description": "Generate CSV exports (tables and columns)",
|
|
1530
|
-
"name": "csv",
|
|
1531
|
-
"allowNo": false,
|
|
1532
|
-
"type": "boolean"
|
|
1533
|
-
},
|
|
1534
|
-
"mermaid": {
|
|
1535
|
-
"description": "Generate Mermaid ERD diagram files",
|
|
1536
|
-
"name": "mermaid",
|
|
1537
|
-
"allowNo": false,
|
|
1538
|
-
"type": "boolean"
|
|
1539
|
-
},
|
|
1540
|
-
"report": {
|
|
1541
|
-
"description": "Generate analysis report",
|
|
1542
|
-
"name": "report",
|
|
1392
|
+
"fix": {
|
|
1393
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1394
|
+
"name": "fix",
|
|
1543
1395
|
"allowNo": false,
|
|
1544
1396
|
"type": "boolean"
|
|
1545
1397
|
},
|
|
1546
|
-
"
|
|
1547
|
-
"description": "
|
|
1548
|
-
"name": "
|
|
1549
|
-
"
|
|
1550
|
-
"
|
|
1398
|
+
"entity-subclasses": {
|
|
1399
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1400
|
+
"name": "entity-subclasses",
|
|
1401
|
+
"hasDynamicHelp": false,
|
|
1402
|
+
"multiple": false,
|
|
1403
|
+
"type": "option"
|
|
1551
1404
|
},
|
|
1552
|
-
"
|
|
1553
|
-
"
|
|
1554
|
-
"
|
|
1405
|
+
"quiet": {
|
|
1406
|
+
"char": "q",
|
|
1407
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1408
|
+
"name": "quiet",
|
|
1555
1409
|
"allowNo": false,
|
|
1556
1410
|
"type": "boolean"
|
|
1557
1411
|
},
|
|
1558
|
-
"
|
|
1559
|
-
"
|
|
1560
|
-
"
|
|
1561
|
-
"
|
|
1562
|
-
"
|
|
1563
|
-
"
|
|
1564
|
-
"type": "option"
|
|
1412
|
+
"verbose": {
|
|
1413
|
+
"char": "v",
|
|
1414
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
1415
|
+
"name": "verbose",
|
|
1416
|
+
"allowNo": false,
|
|
1417
|
+
"type": "boolean"
|
|
1565
1418
|
}
|
|
1566
1419
|
},
|
|
1567
1420
|
"hasDynamicHelp": false,
|
|
1568
1421
|
"hiddenAliases": [],
|
|
1569
|
-
"id": "
|
|
1422
|
+
"id": "codegen:5-0-fix-entity-names",
|
|
1570
1423
|
"pluginAlias": "@memberjunction/cli",
|
|
1571
1424
|
"pluginName": "@memberjunction/cli",
|
|
1572
1425
|
"pluginType": "core",
|
|
@@ -1576,65 +1429,72 @@
|
|
|
1576
1429
|
"relativePath": [
|
|
1577
1430
|
"dist",
|
|
1578
1431
|
"commands",
|
|
1579
|
-
"
|
|
1580
|
-
"
|
|
1432
|
+
"codegen",
|
|
1433
|
+
"5-0-fix-entity-names.js"
|
|
1581
1434
|
]
|
|
1582
1435
|
},
|
|
1583
|
-
"
|
|
1436
|
+
"codegen:5-0-fix-html-entity-names": {
|
|
1584
1437
|
"aliases": [],
|
|
1585
1438
|
"args": {},
|
|
1586
|
-
"description": "
|
|
1439
|
+
"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).",
|
|
1587
1440
|
"examples": [
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1441
|
+
{
|
|
1442
|
+
"description": "Dry-run scan of Angular templates",
|
|
1443
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/"
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
"description": "Apply fixes to HTML templates",
|
|
1447
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/ --fix"
|
|
1448
|
+
},
|
|
1449
|
+
{
|
|
1450
|
+
"description": "Scan with verbose output",
|
|
1451
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ -v"
|
|
1452
|
+
},
|
|
1453
|
+
{
|
|
1454
|
+
"description": "Scan a single template file",
|
|
1455
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/actions-dashboard.component.html"
|
|
1456
|
+
}
|
|
1591
1457
|
],
|
|
1592
1458
|
"flags": {
|
|
1593
|
-
"
|
|
1594
|
-
"
|
|
1595
|
-
"
|
|
1596
|
-
"
|
|
1459
|
+
"path": {
|
|
1460
|
+
"char": "p",
|
|
1461
|
+
"description": "File or directory to scan. Accepts a single .html file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
1462
|
+
"name": "path",
|
|
1597
1463
|
"hasDynamicHelp": false,
|
|
1598
1464
|
"multiple": false,
|
|
1599
1465
|
"type": "option"
|
|
1600
1466
|
},
|
|
1601
|
-
"
|
|
1602
|
-
"description": "
|
|
1603
|
-
"name": "
|
|
1604
|
-
"
|
|
1605
|
-
"
|
|
1606
|
-
"multiple": false,
|
|
1607
|
-
"type": "option"
|
|
1467
|
+
"fix": {
|
|
1468
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1469
|
+
"name": "fix",
|
|
1470
|
+
"allowNo": false,
|
|
1471
|
+
"type": "boolean"
|
|
1608
1472
|
},
|
|
1609
|
-
"
|
|
1610
|
-
"
|
|
1611
|
-
"
|
|
1612
|
-
"name": "config",
|
|
1613
|
-
"default": "./config.json",
|
|
1473
|
+
"entity-subclasses": {
|
|
1474
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1475
|
+
"name": "entity-subclasses",
|
|
1614
1476
|
"hasDynamicHelp": false,
|
|
1615
1477
|
"multiple": false,
|
|
1616
1478
|
"type": "option"
|
|
1617
1479
|
},
|
|
1618
|
-
"
|
|
1619
|
-
"
|
|
1620
|
-
"
|
|
1621
|
-
"
|
|
1622
|
-
"
|
|
1623
|
-
"
|
|
1624
|
-
"type": "option"
|
|
1480
|
+
"quiet": {
|
|
1481
|
+
"char": "q",
|
|
1482
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1483
|
+
"name": "quiet",
|
|
1484
|
+
"allowNo": false,
|
|
1485
|
+
"type": "boolean"
|
|
1625
1486
|
},
|
|
1626
|
-
"
|
|
1627
|
-
"
|
|
1628
|
-
"
|
|
1629
|
-
"
|
|
1630
|
-
"
|
|
1631
|
-
"
|
|
1632
|
-
"type": "option"
|
|
1487
|
+
"verbose": {
|
|
1488
|
+
"char": "v",
|
|
1489
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
1490
|
+
"name": "verbose",
|
|
1491
|
+
"allowNo": false,
|
|
1492
|
+
"type": "boolean"
|
|
1633
1493
|
}
|
|
1634
1494
|
},
|
|
1635
1495
|
"hasDynamicHelp": false,
|
|
1636
1496
|
"hiddenAliases": [],
|
|
1637
|
-
"id": "
|
|
1497
|
+
"id": "codegen:5-0-fix-html-entity-names",
|
|
1638
1498
|
"pluginAlias": "@memberjunction/cli",
|
|
1639
1499
|
"pluginName": "@memberjunction/cli",
|
|
1640
1500
|
"pluginType": "core",
|
|
@@ -1644,19 +1504,72 @@
|
|
|
1644
1504
|
"relativePath": [
|
|
1645
1505
|
"dist",
|
|
1646
1506
|
"commands",
|
|
1647
|
-
"
|
|
1648
|
-
"
|
|
1507
|
+
"codegen",
|
|
1508
|
+
"5-0-fix-html-entity-names.js"
|
|
1649
1509
|
]
|
|
1650
1510
|
},
|
|
1651
|
-
"
|
|
1511
|
+
"codegen:5-0-fix-metadata-names": {
|
|
1652
1512
|
"aliases": [],
|
|
1653
1513
|
"args": {},
|
|
1654
|
-
"description": "
|
|
1655
|
-
"
|
|
1514
|
+
"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).",
|
|
1515
|
+
"examples": [
|
|
1516
|
+
{
|
|
1517
|
+
"description": "Dry-run scan of the metadata directory",
|
|
1518
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/"
|
|
1519
|
+
},
|
|
1520
|
+
{
|
|
1521
|
+
"description": "Apply fixes to metadata files",
|
|
1522
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/ --fix"
|
|
1523
|
+
},
|
|
1524
|
+
{
|
|
1525
|
+
"description": "Scan a specific subdirectory",
|
|
1526
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/resource-types"
|
|
1527
|
+
},
|
|
1528
|
+
{
|
|
1529
|
+
"description": "Scan and fix a single metadata file",
|
|
1530
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/entities/.audit-related-entities.json --fix"
|
|
1531
|
+
}
|
|
1532
|
+
],
|
|
1533
|
+
"flags": {
|
|
1534
|
+
"path": {
|
|
1535
|
+
"char": "p",
|
|
1536
|
+
"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.",
|
|
1537
|
+
"name": "path",
|
|
1538
|
+
"hasDynamicHelp": false,
|
|
1539
|
+
"multiple": false,
|
|
1540
|
+
"type": "option"
|
|
1541
|
+
},
|
|
1542
|
+
"fix": {
|
|
1543
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1544
|
+
"name": "fix",
|
|
1545
|
+
"allowNo": false,
|
|
1546
|
+
"type": "boolean"
|
|
1547
|
+
},
|
|
1548
|
+
"entity-subclasses": {
|
|
1549
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1550
|
+
"name": "entity-subclasses",
|
|
1551
|
+
"hasDynamicHelp": false,
|
|
1552
|
+
"multiple": false,
|
|
1553
|
+
"type": "option"
|
|
1554
|
+
},
|
|
1555
|
+
"quiet": {
|
|
1556
|
+
"char": "q",
|
|
1557
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1558
|
+
"name": "quiet",
|
|
1559
|
+
"allowNo": false,
|
|
1560
|
+
"type": "boolean"
|
|
1561
|
+
},
|
|
1562
|
+
"verbose": {
|
|
1563
|
+
"char": "v",
|
|
1564
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
1565
|
+
"name": "verbose",
|
|
1566
|
+
"allowNo": false,
|
|
1567
|
+
"type": "boolean"
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1656
1570
|
"hasDynamicHelp": false,
|
|
1657
|
-
"hidden": false,
|
|
1658
1571
|
"hiddenAliases": [],
|
|
1659
|
-
"id": "
|
|
1572
|
+
"id": "codegen:5-0-fix-metadata-names",
|
|
1660
1573
|
"pluginAlias": "@memberjunction/cli",
|
|
1661
1574
|
"pluginName": "@memberjunction/cli",
|
|
1662
1575
|
"pluginType": "core",
|
|
@@ -1666,21 +1579,55 @@
|
|
|
1666
1579
|
"relativePath": [
|
|
1667
1580
|
"dist",
|
|
1668
1581
|
"commands",
|
|
1669
|
-
"
|
|
1670
|
-
"
|
|
1582
|
+
"codegen",
|
|
1583
|
+
"5-0-fix-metadata-names.js"
|
|
1671
1584
|
]
|
|
1672
1585
|
},
|
|
1673
|
-
"
|
|
1586
|
+
"codegen": {
|
|
1674
1587
|
"aliases": [],
|
|
1675
1588
|
"args": {},
|
|
1676
|
-
"description": "
|
|
1589
|
+
"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.\n\nUse --skipfiles to skip all file-generation operations (TypeScript entities,\nAngular components, GraphQL resolvers, action subclasses, DB schema JSON) and\nonly run database-side operations (metadata sync, SQL object generation,\npermissions, custom SQL scripts).\n\n--skipdb and --skipfiles are independent and can be combined in any mix.\n\nUse --force-advanced-gen to bypass Pass 2 entity scoping and re-run the LLM-driven\nadvanced generation (smart fields, form layout) for ALL entities. Useful when AI\nprompts have changed and you want unchanged entities re-evaluated.",
|
|
1677
1590
|
"examples": [
|
|
1678
|
-
|
|
1591
|
+
{
|
|
1592
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1593
|
+
"description": "Run the full code generation pipeline"
|
|
1594
|
+
},
|
|
1595
|
+
{
|
|
1596
|
+
"command": "<%= config.bin %> <%= command.id %> --skipdb",
|
|
1597
|
+
"description": "Regenerate code files without touching the database"
|
|
1598
|
+
},
|
|
1599
|
+
{
|
|
1600
|
+
"command": "<%= config.bin %> <%= command.id %> --skipfiles",
|
|
1601
|
+
"description": "Run database-side operations only, without regenerating any code files"
|
|
1602
|
+
},
|
|
1603
|
+
{
|
|
1604
|
+
"command": "<%= config.bin %> <%= command.id %> --force-advanced-gen",
|
|
1605
|
+
"description": "Re-run advanced generation for all entities (bypasses changed-entity scoping)"
|
|
1606
|
+
}
|
|
1679
1607
|
],
|
|
1680
|
-
"flags": {
|
|
1608
|
+
"flags": {
|
|
1609
|
+
"skipdb": {
|
|
1610
|
+
"description": "Skip database operations (metadata sync, SQL generation). Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.",
|
|
1611
|
+
"name": "skipdb",
|
|
1612
|
+
"allowNo": false,
|
|
1613
|
+
"type": "boolean"
|
|
1614
|
+
},
|
|
1615
|
+
"skipfiles": {
|
|
1616
|
+
"description": "Skip file-generation operations (TypeScript entities, Angular components, GraphQL resolvers, action subclasses, DB schema JSON). Only run database-side operations.",
|
|
1617
|
+
"name": "skipfiles",
|
|
1618
|
+
"allowNo": false,
|
|
1619
|
+
"type": "boolean"
|
|
1620
|
+
},
|
|
1621
|
+
"force-advanced-gen": {
|
|
1622
|
+
"description": "Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities. Used when AI prompts have changed and unchanged entities should be re-evaluated.",
|
|
1623
|
+
"name": "force-advanced-gen",
|
|
1624
|
+
"allowNo": false,
|
|
1625
|
+
"type": "boolean"
|
|
1626
|
+
}
|
|
1627
|
+
},
|
|
1681
1628
|
"hasDynamicHelp": false,
|
|
1682
1629
|
"hiddenAliases": [],
|
|
1683
|
-
"id": "
|
|
1630
|
+
"id": "codegen",
|
|
1684
1631
|
"pluginAlias": "@memberjunction/cli",
|
|
1685
1632
|
"pluginName": "@memberjunction/cli",
|
|
1686
1633
|
"pluginType": "core",
|
|
@@ -1690,64 +1637,117 @@
|
|
|
1690
1637
|
"relativePath": [
|
|
1691
1638
|
"dist",
|
|
1692
1639
|
"commands",
|
|
1693
|
-
"
|
|
1694
|
-
"
|
|
1640
|
+
"codegen",
|
|
1641
|
+
"index.js"
|
|
1695
1642
|
]
|
|
1696
1643
|
},
|
|
1697
|
-
"
|
|
1644
|
+
"codegen:manifest": {
|
|
1698
1645
|
"aliases": [],
|
|
1699
1646
|
"args": {},
|
|
1700
|
-
"description": "
|
|
1647
|
+
"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.",
|
|
1701
1648
|
"examples": [
|
|
1702
|
-
|
|
1703
|
-
|
|
1649
|
+
{
|
|
1650
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1651
|
+
"description": "Generate manifest with default output path"
|
|
1652
|
+
},
|
|
1653
|
+
{
|
|
1654
|
+
"command": "<%= config.bin %> <%= command.id %> --appDir ./packages/MJAPI --output ./packages/MJAPI/src/generated/class-registrations-manifest.ts",
|
|
1655
|
+
"description": "Generate manifest for a specific application directory"
|
|
1656
|
+
},
|
|
1657
|
+
{
|
|
1658
|
+
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction",
|
|
1659
|
+
"description": "Exclude MJ packages (use pre-built bootstrap manifests instead)"
|
|
1660
|
+
},
|
|
1661
|
+
{
|
|
1662
|
+
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction --no-sync-deps",
|
|
1663
|
+
"description": "Exclude MJ packages and skip dependency reconciliation"
|
|
1664
|
+
},
|
|
1665
|
+
{
|
|
1666
|
+
"command": "<%= config.bin %> <%= command.id %> --filter BaseEngine --filter BaseAction --verbose",
|
|
1667
|
+
"description": "Only include specific base classes with detailed progress"
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
"command": "<%= config.bin %> <%= command.id %> --scan-dist",
|
|
1671
|
+
"description": "Include dist/ scanning for npm-published packages without src/"
|
|
1672
|
+
}
|
|
1704
1673
|
],
|
|
1705
1674
|
"flags": {
|
|
1706
|
-
"
|
|
1675
|
+
"output": {
|
|
1676
|
+
"char": "o",
|
|
1677
|
+
"description": "Output file path for the generated manifest. The file will contain named imports and a CLASS_REGISTRATIONS array.",
|
|
1678
|
+
"name": "output",
|
|
1679
|
+
"default": "./src/generated/class-registrations-manifest.ts",
|
|
1680
|
+
"hasDynamicHelp": false,
|
|
1681
|
+
"multiple": false,
|
|
1682
|
+
"type": "option"
|
|
1683
|
+
},
|
|
1684
|
+
"appDir": {
|
|
1685
|
+
"char": "a",
|
|
1686
|
+
"description": "Root directory of the application whose package.json dependency tree will be scanned. Defaults to the current working directory.",
|
|
1687
|
+
"name": "appDir",
|
|
1688
|
+
"hasDynamicHelp": false,
|
|
1689
|
+
"multiple": false,
|
|
1690
|
+
"type": "option"
|
|
1691
|
+
},
|
|
1692
|
+
"filter": {
|
|
1707
1693
|
"char": "f",
|
|
1708
|
-
"description": "
|
|
1709
|
-
"name": "
|
|
1694
|
+
"description": "Only include classes extending this base class. Can be repeated (e.g., --filter BaseEngine --filter BaseAction).",
|
|
1695
|
+
"name": "filter",
|
|
1696
|
+
"hasDynamicHelp": false,
|
|
1697
|
+
"multiple": true,
|
|
1698
|
+
"type": "option"
|
|
1699
|
+
},
|
|
1700
|
+
"exclude-packages": {
|
|
1701
|
+
"char": "e",
|
|
1702
|
+
"description": "Skip packages whose name starts with this prefix. Useful for excluding @memberjunction packages when using pre-built bootstrap manifests. Can be repeated.",
|
|
1703
|
+
"name": "exclude-packages",
|
|
1704
|
+
"hasDynamicHelp": false,
|
|
1705
|
+
"multiple": true,
|
|
1706
|
+
"type": "option"
|
|
1707
|
+
},
|
|
1708
|
+
"no-sync-deps": {
|
|
1709
|
+
"description": "Skip automatic dependency reconciliation. By default, the manifest generator adds any manifest-imported packages that are missing from package.json dependencies. Use this flag when generating supplemental manifests with --exclude-packages, where excluded packages are already covered by a pre-built bootstrap manifest.",
|
|
1710
|
+
"name": "no-sync-deps",
|
|
1710
1711
|
"allowNo": false,
|
|
1711
1712
|
"type": "boolean"
|
|
1712
|
-
}
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
"
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
"<%= config.bin %> <%= command.id %> --state-file ./custom-state.json"
|
|
1737
|
-
],
|
|
1738
|
-
"flags": {
|
|
1739
|
-
"state-file": {
|
|
1740
|
-
"char": "s",
|
|
1741
|
-
"description": "Path to state JSON file",
|
|
1742
|
-
"name": "state-file",
|
|
1713
|
+
},
|
|
1714
|
+
"quiet": {
|
|
1715
|
+
"char": "q",
|
|
1716
|
+
"description": "Suppress all output except errors.",
|
|
1717
|
+
"name": "quiet",
|
|
1718
|
+
"allowNo": false,
|
|
1719
|
+
"type": "boolean"
|
|
1720
|
+
},
|
|
1721
|
+
"verbose": {
|
|
1722
|
+
"char": "v",
|
|
1723
|
+
"description": "Show detailed progress including per-package scanning info and skipped classes.",
|
|
1724
|
+
"name": "verbose",
|
|
1725
|
+
"allowNo": false,
|
|
1726
|
+
"type": "boolean"
|
|
1727
|
+
},
|
|
1728
|
+
"scan-dist": {
|
|
1729
|
+
"description": "Scan compiled JavaScript files in dist/ directories for packages without src/. Use this when your dependency tree includes npm-published packages that contain @RegisterClass decorators. Without this flag, only TypeScript source in src/ is scanned.",
|
|
1730
|
+
"name": "scan-dist",
|
|
1731
|
+
"allowNo": false,
|
|
1732
|
+
"type": "boolean"
|
|
1733
|
+
},
|
|
1734
|
+
"lazy-config": {
|
|
1735
|
+
"description": "Output path for a generated lazy-loading feature config file. Maps @RegisterClass keys from excluded packages to dynamic import() loaders based on package.json subpath exports. Only packages with subpath exports in their package.json are included. Requires --exclude-packages.",
|
|
1736
|
+
"name": "lazy-config",
|
|
1743
1737
|
"hasDynamicHelp": false,
|
|
1744
1738
|
"multiple": false,
|
|
1745
1739
|
"type": "option"
|
|
1740
|
+
},
|
|
1741
|
+
"strict": {
|
|
1742
|
+
"description": "Treat coverage audit gaps as fatal errors. A gap is a @RegisterClass class in an excluded package that is not reachable from any lazy chunk subpath export. Use in CI to catch tree-shaking issues before merge.",
|
|
1743
|
+
"name": "strict",
|
|
1744
|
+
"allowNo": false,
|
|
1745
|
+
"type": "boolean"
|
|
1746
1746
|
}
|
|
1747
1747
|
},
|
|
1748
1748
|
"hasDynamicHelp": false,
|
|
1749
1749
|
"hiddenAliases": [],
|
|
1750
|
-
"id": "
|
|
1750
|
+
"id": "codegen:manifest",
|
|
1751
1751
|
"pluginAlias": "@memberjunction/cli",
|
|
1752
1752
|
"pluginName": "@memberjunction/cli",
|
|
1753
1753
|
"pluginType": "core",
|
|
@@ -1757,8 +1757,8 @@
|
|
|
1757
1757
|
"relativePath": [
|
|
1758
1758
|
"dist",
|
|
1759
1759
|
"commands",
|
|
1760
|
-
"
|
|
1761
|
-
"
|
|
1760
|
+
"codegen",
|
|
1761
|
+
"manifest.js"
|
|
1762
1762
|
]
|
|
1763
1763
|
},
|
|
1764
1764
|
"doctor": {
|
|
@@ -3001,105 +3001,6 @@
|
|
|
3001
3001
|
"watch.js"
|
|
3002
3002
|
]
|
|
3003
3003
|
},
|
|
3004
|
-
"translate-sql": {
|
|
3005
|
-
"aliases": [],
|
|
3006
|
-
"args": {},
|
|
3007
|
-
"description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
|
|
3008
|
-
"examples": [
|
|
3009
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
|
|
3010
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
|
|
3011
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
|
|
3012
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
3013
|
-
],
|
|
3014
|
-
"flags": {
|
|
3015
|
-
"from": {
|
|
3016
|
-
"description": "Source SQL dialect",
|
|
3017
|
-
"name": "from",
|
|
3018
|
-
"required": true,
|
|
3019
|
-
"hasDynamicHelp": false,
|
|
3020
|
-
"multiple": false,
|
|
3021
|
-
"options": [
|
|
3022
|
-
"sqlserver",
|
|
3023
|
-
"postgresql"
|
|
3024
|
-
],
|
|
3025
|
-
"type": "option"
|
|
3026
|
-
},
|
|
3027
|
-
"to": {
|
|
3028
|
-
"description": "Target SQL dialect",
|
|
3029
|
-
"name": "to",
|
|
3030
|
-
"required": true,
|
|
3031
|
-
"hasDynamicHelp": false,
|
|
3032
|
-
"multiple": false,
|
|
3033
|
-
"options": [
|
|
3034
|
-
"sqlserver",
|
|
3035
|
-
"postgresql"
|
|
3036
|
-
],
|
|
3037
|
-
"type": "option"
|
|
3038
|
-
},
|
|
3039
|
-
"scope": {
|
|
3040
|
-
"description": "What to scan for translation",
|
|
3041
|
-
"name": "scope",
|
|
3042
|
-
"default": "all",
|
|
3043
|
-
"hasDynamicHelp": false,
|
|
3044
|
-
"multiple": false,
|
|
3045
|
-
"options": [
|
|
3046
|
-
"queries",
|
|
3047
|
-
"views",
|
|
3048
|
-
"filters",
|
|
3049
|
-
"all"
|
|
3050
|
-
],
|
|
3051
|
-
"type": "option"
|
|
3052
|
-
},
|
|
3053
|
-
"sql": {
|
|
3054
|
-
"description": "Translate a single SQL fragment (inline mode)",
|
|
3055
|
-
"name": "sql",
|
|
3056
|
-
"hasDynamicHelp": false,
|
|
3057
|
-
"multiple": false,
|
|
3058
|
-
"type": "option"
|
|
3059
|
-
},
|
|
3060
|
-
"dry-run": {
|
|
3061
|
-
"description": "Show what would be translated without making changes",
|
|
3062
|
-
"name": "dry-run",
|
|
3063
|
-
"allowNo": false,
|
|
3064
|
-
"type": "boolean"
|
|
3065
|
-
},
|
|
3066
|
-
"review": {
|
|
3067
|
-
"description": "Generate review report only (no writes to database)",
|
|
3068
|
-
"name": "review",
|
|
3069
|
-
"allowNo": false,
|
|
3070
|
-
"type": "boolean"
|
|
3071
|
-
},
|
|
3072
|
-
"output": {
|
|
3073
|
-
"char": "o",
|
|
3074
|
-
"description": "Output directory for the translation report",
|
|
3075
|
-
"name": "output",
|
|
3076
|
-
"hasDynamicHelp": false,
|
|
3077
|
-
"multiple": false,
|
|
3078
|
-
"type": "option"
|
|
3079
|
-
},
|
|
3080
|
-
"force": {
|
|
3081
|
-
"description": "Re-translate even if platform variants already exist",
|
|
3082
|
-
"name": "force",
|
|
3083
|
-
"allowNo": false,
|
|
3084
|
-
"type": "boolean"
|
|
3085
|
-
}
|
|
3086
|
-
},
|
|
3087
|
-
"hasDynamicHelp": false,
|
|
3088
|
-
"hiddenAliases": [],
|
|
3089
|
-
"id": "translate-sql",
|
|
3090
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3091
|
-
"pluginName": "@memberjunction/cli",
|
|
3092
|
-
"pluginType": "core",
|
|
3093
|
-
"strict": true,
|
|
3094
|
-
"enableJsonFlag": false,
|
|
3095
|
-
"isESM": true,
|
|
3096
|
-
"relativePath": [
|
|
3097
|
-
"dist",
|
|
3098
|
-
"commands",
|
|
3099
|
-
"translate-sql",
|
|
3100
|
-
"index.js"
|
|
3101
|
-
]
|
|
3102
|
-
},
|
|
3103
3004
|
"test:compare": {
|
|
3104
3005
|
"aliases": [],
|
|
3105
3006
|
"args": {
|
|
@@ -3712,115 +3613,92 @@
|
|
|
3712
3613
|
"validate.js"
|
|
3713
3614
|
]
|
|
3714
3615
|
},
|
|
3715
|
-
"
|
|
3616
|
+
"translate-sql": {
|
|
3716
3617
|
"aliases": [],
|
|
3717
3618
|
"args": {},
|
|
3718
|
-
"description": "
|
|
3619
|
+
"description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
|
|
3719
3620
|
"examples": [
|
|
3720
|
-
"<%= config.bin %>
|
|
3721
|
-
"<%= config.bin %>
|
|
3722
|
-
"<%= config.bin %>
|
|
3621
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
|
|
3622
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
|
|
3623
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
|
|
3624
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
3723
3625
|
],
|
|
3724
3626
|
"flags": {
|
|
3725
|
-
"
|
|
3726
|
-
"
|
|
3727
|
-
"
|
|
3728
|
-
"
|
|
3729
|
-
"default": "compact",
|
|
3627
|
+
"from": {
|
|
3628
|
+
"description": "Source SQL dialect",
|
|
3629
|
+
"name": "from",
|
|
3630
|
+
"required": true,
|
|
3730
3631
|
"hasDynamicHelp": false,
|
|
3731
|
-
"multiple": false,
|
|
3732
|
-
"options": [
|
|
3733
|
-
"
|
|
3734
|
-
"
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
"hiddenAliases": [],
|
|
3742
|
-
"id": "ai:actions:list",
|
|
3743
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3744
|
-
"pluginName": "@memberjunction/cli",
|
|
3745
|
-
"pluginType": "core",
|
|
3746
|
-
"strict": true,
|
|
3747
|
-
"enableJsonFlag": false,
|
|
3748
|
-
"isESM": true,
|
|
3749
|
-
"relativePath": [
|
|
3750
|
-
"dist",
|
|
3751
|
-
"commands",
|
|
3752
|
-
"ai",
|
|
3753
|
-
"actions",
|
|
3754
|
-
"list.js"
|
|
3755
|
-
]
|
|
3756
|
-
},
|
|
3757
|
-
"ai:actions:run": {
|
|
3758
|
-
"aliases": [],
|
|
3759
|
-
"args": {},
|
|
3760
|
-
"description": "Execute an AI action with parameters",
|
|
3761
|
-
"examples": [
|
|
3762
|
-
"<%= config.bin %> <%= command.id %> -n \"Get Weather\" --param \"Location=Boston\"",
|
|
3763
|
-
"<%= config.bin %> <%= command.id %> -n \"Get Stock Price\" --param \"Ticker=AAPL\"",
|
|
3764
|
-
"<%= config.bin %> <%= command.id %> -n \"Send Single Message\" --param \"To=user@example.com\" --param \"Subject=Test\" --param \"Body=Hello\" --param \"MessageType=Email\" --param \"Provider=SendGrid\"",
|
|
3765
|
-
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
3766
|
-
],
|
|
3767
|
-
"flags": {
|
|
3768
|
-
"name": {
|
|
3769
|
-
"char": "n",
|
|
3770
|
-
"description": "Action name",
|
|
3771
|
-
"name": "name",
|
|
3632
|
+
"multiple": false,
|
|
3633
|
+
"options": [
|
|
3634
|
+
"sqlserver",
|
|
3635
|
+
"postgresql"
|
|
3636
|
+
],
|
|
3637
|
+
"type": "option"
|
|
3638
|
+
},
|
|
3639
|
+
"to": {
|
|
3640
|
+
"description": "Target SQL dialect",
|
|
3641
|
+
"name": "to",
|
|
3772
3642
|
"required": true,
|
|
3773
3643
|
"hasDynamicHelp": false,
|
|
3774
3644
|
"multiple": false,
|
|
3645
|
+
"options": [
|
|
3646
|
+
"sqlserver",
|
|
3647
|
+
"postgresql"
|
|
3648
|
+
],
|
|
3775
3649
|
"type": "option"
|
|
3776
3650
|
},
|
|
3777
|
-
"
|
|
3778
|
-
"
|
|
3779
|
-
"
|
|
3780
|
-
"
|
|
3651
|
+
"scope": {
|
|
3652
|
+
"description": "What to scan for translation",
|
|
3653
|
+
"name": "scope",
|
|
3654
|
+
"default": "all",
|
|
3781
3655
|
"hasDynamicHelp": false,
|
|
3782
|
-
"multiple":
|
|
3656
|
+
"multiple": false,
|
|
3657
|
+
"options": [
|
|
3658
|
+
"queries",
|
|
3659
|
+
"views",
|
|
3660
|
+
"filters",
|
|
3661
|
+
"all"
|
|
3662
|
+
],
|
|
3663
|
+
"type": "option"
|
|
3664
|
+
},
|
|
3665
|
+
"sql": {
|
|
3666
|
+
"description": "Translate a single SQL fragment (inline mode)",
|
|
3667
|
+
"name": "sql",
|
|
3668
|
+
"hasDynamicHelp": false,
|
|
3669
|
+
"multiple": false,
|
|
3783
3670
|
"type": "option"
|
|
3784
3671
|
},
|
|
3785
3672
|
"dry-run": {
|
|
3786
|
-
"description": "
|
|
3673
|
+
"description": "Show what would be translated without making changes",
|
|
3787
3674
|
"name": "dry-run",
|
|
3788
3675
|
"allowNo": false,
|
|
3789
3676
|
"type": "boolean"
|
|
3790
3677
|
},
|
|
3678
|
+
"review": {
|
|
3679
|
+
"description": "Generate review report only (no writes to database)",
|
|
3680
|
+
"name": "review",
|
|
3681
|
+
"allowNo": false,
|
|
3682
|
+
"type": "boolean"
|
|
3683
|
+
},
|
|
3791
3684
|
"output": {
|
|
3792
3685
|
"char": "o",
|
|
3793
|
-
"description": "Output
|
|
3686
|
+
"description": "Output directory for the translation report",
|
|
3794
3687
|
"name": "output",
|
|
3795
|
-
"default": "compact",
|
|
3796
3688
|
"hasDynamicHelp": false,
|
|
3797
3689
|
"multiple": false,
|
|
3798
|
-
"options": [
|
|
3799
|
-
"compact",
|
|
3800
|
-
"json",
|
|
3801
|
-
"table"
|
|
3802
|
-
],
|
|
3803
3690
|
"type": "option"
|
|
3804
3691
|
},
|
|
3805
|
-
"
|
|
3806
|
-
"
|
|
3807
|
-
"
|
|
3808
|
-
"name": "verbose",
|
|
3692
|
+
"force": {
|
|
3693
|
+
"description": "Re-translate even if platform variants already exist",
|
|
3694
|
+
"name": "force",
|
|
3809
3695
|
"allowNo": false,
|
|
3810
3696
|
"type": "boolean"
|
|
3811
|
-
},
|
|
3812
|
-
"timeout": {
|
|
3813
|
-
"description": "Execution timeout in milliseconds",
|
|
3814
|
-
"name": "timeout",
|
|
3815
|
-
"default": 300000,
|
|
3816
|
-
"hasDynamicHelp": false,
|
|
3817
|
-
"multiple": false,
|
|
3818
|
-
"type": "option"
|
|
3819
3697
|
}
|
|
3820
3698
|
},
|
|
3821
3699
|
"hasDynamicHelp": false,
|
|
3822
3700
|
"hiddenAliases": [],
|
|
3823
|
-
"id": "
|
|
3701
|
+
"id": "translate-sql",
|
|
3824
3702
|
"pluginAlias": "@memberjunction/cli",
|
|
3825
3703
|
"pluginName": "@memberjunction/cli",
|
|
3826
3704
|
"pluginType": "core",
|
|
@@ -3830,15 +3708,14 @@
|
|
|
3830
3708
|
"relativePath": [
|
|
3831
3709
|
"dist",
|
|
3832
3710
|
"commands",
|
|
3833
|
-
"
|
|
3834
|
-
"
|
|
3835
|
-
"run.js"
|
|
3711
|
+
"translate-sql",
|
|
3712
|
+
"index.js"
|
|
3836
3713
|
]
|
|
3837
3714
|
},
|
|
3838
|
-
"ai:
|
|
3715
|
+
"ai:actions:list": {
|
|
3839
3716
|
"aliases": [],
|
|
3840
3717
|
"args": {},
|
|
3841
|
-
"description": "List available AI
|
|
3718
|
+
"description": "List available AI actions",
|
|
3842
3719
|
"examples": [
|
|
3843
3720
|
"<%= config.bin %> <%= command.id %>",
|
|
3844
3721
|
"<%= config.bin %> <%= command.id %> --output=table",
|
|
@@ -3862,7 +3739,7 @@
|
|
|
3862
3739
|
},
|
|
3863
3740
|
"hasDynamicHelp": false,
|
|
3864
3741
|
"hiddenAliases": [],
|
|
3865
|
-
"id": "ai:
|
|
3742
|
+
"id": "ai:actions:list",
|
|
3866
3743
|
"pluginAlias": "@memberjunction/cli",
|
|
3867
3744
|
"pluginName": "@memberjunction/cli",
|
|
3868
3745
|
"pluginType": "core",
|
|
@@ -3873,47 +3750,41 @@
|
|
|
3873
3750
|
"dist",
|
|
3874
3751
|
"commands",
|
|
3875
3752
|
"ai",
|
|
3876
|
-
"
|
|
3753
|
+
"actions",
|
|
3877
3754
|
"list.js"
|
|
3878
3755
|
]
|
|
3879
3756
|
},
|
|
3880
|
-
"ai:
|
|
3757
|
+
"ai:actions:run": {
|
|
3881
3758
|
"aliases": [],
|
|
3882
3759
|
"args": {},
|
|
3883
|
-
"description": "Execute an AI
|
|
3760
|
+
"description": "Execute an AI action with parameters",
|
|
3884
3761
|
"examples": [
|
|
3885
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3886
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3887
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3762
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Weather\" --param \"Location=Boston\"",
|
|
3763
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Stock Price\" --param \"Ticker=AAPL\"",
|
|
3764
|
+
"<%= config.bin %> <%= command.id %> -n \"Send Single Message\" --param \"To=user@example.com\" --param \"Subject=Test\" --param \"Body=Hello\" --param \"MessageType=Email\" --param \"Provider=SendGrid\"",
|
|
3765
|
+
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
3888
3766
|
],
|
|
3889
3767
|
"flags": {
|
|
3890
|
-
"
|
|
3891
|
-
"char": "
|
|
3892
|
-
"description": "
|
|
3893
|
-
"name": "
|
|
3768
|
+
"name": {
|
|
3769
|
+
"char": "n",
|
|
3770
|
+
"description": "Action name",
|
|
3771
|
+
"name": "name",
|
|
3894
3772
|
"required": true,
|
|
3895
3773
|
"hasDynamicHelp": false,
|
|
3896
3774
|
"multiple": false,
|
|
3897
3775
|
"type": "option"
|
|
3898
3776
|
},
|
|
3899
|
-
"
|
|
3777
|
+
"param": {
|
|
3900
3778
|
"char": "p",
|
|
3901
|
-
"description": "
|
|
3902
|
-
"
|
|
3903
|
-
"chat"
|
|
3904
|
-
],
|
|
3905
|
-
"name": "prompt",
|
|
3779
|
+
"description": "Action parameters in key=value format",
|
|
3780
|
+
"name": "param",
|
|
3906
3781
|
"hasDynamicHelp": false,
|
|
3907
|
-
"multiple":
|
|
3782
|
+
"multiple": true,
|
|
3908
3783
|
"type": "option"
|
|
3909
3784
|
},
|
|
3910
|
-
"
|
|
3911
|
-
"
|
|
3912
|
-
"
|
|
3913
|
-
"exclusive": [
|
|
3914
|
-
"prompt"
|
|
3915
|
-
],
|
|
3916
|
-
"name": "chat",
|
|
3785
|
+
"dry-run": {
|
|
3786
|
+
"description": "Validate without executing",
|
|
3787
|
+
"name": "dry-run",
|
|
3917
3788
|
"allowNo": false,
|
|
3918
3789
|
"type": "boolean"
|
|
3919
3790
|
},
|
|
@@ -3949,7 +3820,7 @@
|
|
|
3949
3820
|
},
|
|
3950
3821
|
"hasDynamicHelp": false,
|
|
3951
3822
|
"hiddenAliases": [],
|
|
3952
|
-
"id": "ai:
|
|
3823
|
+
"id": "ai:actions:run",
|
|
3953
3824
|
"pluginAlias": "@memberjunction/cli",
|
|
3954
3825
|
"pluginName": "@memberjunction/cli",
|
|
3955
3826
|
"pluginType": "core",
|
|
@@ -3960,7 +3831,7 @@
|
|
|
3960
3831
|
"dist",
|
|
3961
3832
|
"commands",
|
|
3962
3833
|
"ai",
|
|
3963
|
-
"
|
|
3834
|
+
"actions",
|
|
3964
3835
|
"run.js"
|
|
3965
3836
|
]
|
|
3966
3837
|
},
|
|
@@ -4180,6 +4051,135 @@
|
|
|
4180
4051
|
"index.js"
|
|
4181
4052
|
]
|
|
4182
4053
|
},
|
|
4054
|
+
"ai:agents:list": {
|
|
4055
|
+
"aliases": [],
|
|
4056
|
+
"args": {},
|
|
4057
|
+
"description": "List available AI agents",
|
|
4058
|
+
"examples": [
|
|
4059
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4060
|
+
"<%= config.bin %> <%= command.id %> --output=table",
|
|
4061
|
+
"<%= config.bin %> <%= command.id %> --output=json"
|
|
4062
|
+
],
|
|
4063
|
+
"flags": {
|
|
4064
|
+
"output": {
|
|
4065
|
+
"char": "o",
|
|
4066
|
+
"description": "Output format",
|
|
4067
|
+
"name": "output",
|
|
4068
|
+
"default": "compact",
|
|
4069
|
+
"hasDynamicHelp": false,
|
|
4070
|
+
"multiple": false,
|
|
4071
|
+
"options": [
|
|
4072
|
+
"compact",
|
|
4073
|
+
"json",
|
|
4074
|
+
"table"
|
|
4075
|
+
],
|
|
4076
|
+
"type": "option"
|
|
4077
|
+
}
|
|
4078
|
+
},
|
|
4079
|
+
"hasDynamicHelp": false,
|
|
4080
|
+
"hiddenAliases": [],
|
|
4081
|
+
"id": "ai:agents:list",
|
|
4082
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4083
|
+
"pluginName": "@memberjunction/cli",
|
|
4084
|
+
"pluginType": "core",
|
|
4085
|
+
"strict": true,
|
|
4086
|
+
"enableJsonFlag": false,
|
|
4087
|
+
"isESM": true,
|
|
4088
|
+
"relativePath": [
|
|
4089
|
+
"dist",
|
|
4090
|
+
"commands",
|
|
4091
|
+
"ai",
|
|
4092
|
+
"agents",
|
|
4093
|
+
"list.js"
|
|
4094
|
+
]
|
|
4095
|
+
},
|
|
4096
|
+
"ai:agents:run": {
|
|
4097
|
+
"aliases": [],
|
|
4098
|
+
"args": {},
|
|
4099
|
+
"description": "Execute an AI agent with a prompt or start interactive chat",
|
|
4100
|
+
"examples": [
|
|
4101
|
+
"<%= config.bin %> <%= command.id %> -a \"Skip: Requirements Expert\" -p \"Create a dashboard for sales metrics\"",
|
|
4102
|
+
"<%= config.bin %> <%= command.id %> -a \"Child Component Generator Sub-agent\" --chat",
|
|
4103
|
+
"<%= config.bin %> <%= command.id %> -a \"Skip: Technical Design Expert\" -p \"Build a React component\" --verbose --timeout=600000"
|
|
4104
|
+
],
|
|
4105
|
+
"flags": {
|
|
4106
|
+
"agent": {
|
|
4107
|
+
"char": "a",
|
|
4108
|
+
"description": "Agent name",
|
|
4109
|
+
"name": "agent",
|
|
4110
|
+
"required": true,
|
|
4111
|
+
"hasDynamicHelp": false,
|
|
4112
|
+
"multiple": false,
|
|
4113
|
+
"type": "option"
|
|
4114
|
+
},
|
|
4115
|
+
"prompt": {
|
|
4116
|
+
"char": "p",
|
|
4117
|
+
"description": "Prompt to execute",
|
|
4118
|
+
"exclusive": [
|
|
4119
|
+
"chat"
|
|
4120
|
+
],
|
|
4121
|
+
"name": "prompt",
|
|
4122
|
+
"hasDynamicHelp": false,
|
|
4123
|
+
"multiple": false,
|
|
4124
|
+
"type": "option"
|
|
4125
|
+
},
|
|
4126
|
+
"chat": {
|
|
4127
|
+
"char": "c",
|
|
4128
|
+
"description": "Start interactive chat mode",
|
|
4129
|
+
"exclusive": [
|
|
4130
|
+
"prompt"
|
|
4131
|
+
],
|
|
4132
|
+
"name": "chat",
|
|
4133
|
+
"allowNo": false,
|
|
4134
|
+
"type": "boolean"
|
|
4135
|
+
},
|
|
4136
|
+
"output": {
|
|
4137
|
+
"char": "o",
|
|
4138
|
+
"description": "Output format",
|
|
4139
|
+
"name": "output",
|
|
4140
|
+
"default": "compact",
|
|
4141
|
+
"hasDynamicHelp": false,
|
|
4142
|
+
"multiple": false,
|
|
4143
|
+
"options": [
|
|
4144
|
+
"compact",
|
|
4145
|
+
"json",
|
|
4146
|
+
"table"
|
|
4147
|
+
],
|
|
4148
|
+
"type": "option"
|
|
4149
|
+
},
|
|
4150
|
+
"verbose": {
|
|
4151
|
+
"char": "v",
|
|
4152
|
+
"description": "Show detailed execution information",
|
|
4153
|
+
"name": "verbose",
|
|
4154
|
+
"allowNo": false,
|
|
4155
|
+
"type": "boolean"
|
|
4156
|
+
},
|
|
4157
|
+
"timeout": {
|
|
4158
|
+
"description": "Execution timeout in milliseconds",
|
|
4159
|
+
"name": "timeout",
|
|
4160
|
+
"default": 300000,
|
|
4161
|
+
"hasDynamicHelp": false,
|
|
4162
|
+
"multiple": false,
|
|
4163
|
+
"type": "option"
|
|
4164
|
+
}
|
|
4165
|
+
},
|
|
4166
|
+
"hasDynamicHelp": false,
|
|
4167
|
+
"hiddenAliases": [],
|
|
4168
|
+
"id": "ai:agents:run",
|
|
4169
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4170
|
+
"pluginName": "@memberjunction/cli",
|
|
4171
|
+
"pluginType": "core",
|
|
4172
|
+
"strict": true,
|
|
4173
|
+
"enableJsonFlag": false,
|
|
4174
|
+
"isESM": true,
|
|
4175
|
+
"relativePath": [
|
|
4176
|
+
"dist",
|
|
4177
|
+
"commands",
|
|
4178
|
+
"ai",
|
|
4179
|
+
"agents",
|
|
4180
|
+
"run.js"
|
|
4181
|
+
]
|
|
4182
|
+
},
|
|
4183
4183
|
"ai:prompts:list": {
|
|
4184
4184
|
"aliases": [],
|
|
4185
4185
|
"args": {},
|
|
@@ -4760,5 +4760,5 @@
|
|
|
4760
4760
|
]
|
|
4761
4761
|
}
|
|
4762
4762
|
},
|
|
4763
|
-
"version": "5.40.
|
|
4763
|
+
"version": "5.40.1"
|
|
4764
4764
|
}
|