@memberjunction/cli 5.45.1 → 5.46.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 +1159 -1159
- package/package.json +17 -17
package/oclif.manifest.json
CHANGED
|
@@ -390,6 +390,67 @@
|
|
|
390
390
|
"upgrade.js"
|
|
391
391
|
]
|
|
392
392
|
},
|
|
393
|
+
"artifacts:reclassify": {
|
|
394
|
+
"aliases": [],
|
|
395
|
+
"args": {},
|
|
396
|
+
"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.",
|
|
397
|
+
"examples": [
|
|
398
|
+
"<%= config.bin %> <%= command.id %>",
|
|
399
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
400
|
+
],
|
|
401
|
+
"flags": {
|
|
402
|
+
"conversation-id": {
|
|
403
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
404
|
+
"name": "conversation-id",
|
|
405
|
+
"hasDynamicHelp": false,
|
|
406
|
+
"multiple": false,
|
|
407
|
+
"type": "option"
|
|
408
|
+
},
|
|
409
|
+
"since": {
|
|
410
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
411
|
+
"name": "since",
|
|
412
|
+
"hasDynamicHelp": false,
|
|
413
|
+
"multiple": false,
|
|
414
|
+
"type": "option"
|
|
415
|
+
},
|
|
416
|
+
"limit": {
|
|
417
|
+
"description": "Maximum number of rows to inspect.",
|
|
418
|
+
"name": "limit",
|
|
419
|
+
"default": 100,
|
|
420
|
+
"hasDynamicHelp": false,
|
|
421
|
+
"multiple": false,
|
|
422
|
+
"type": "option"
|
|
423
|
+
},
|
|
424
|
+
"apply": {
|
|
425
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
426
|
+
"name": "apply",
|
|
427
|
+
"allowNo": false,
|
|
428
|
+
"type": "boolean"
|
|
429
|
+
},
|
|
430
|
+
"verbose": {
|
|
431
|
+
"char": "v",
|
|
432
|
+
"description": "Print every candidate row, not just the summary.",
|
|
433
|
+
"name": "verbose",
|
|
434
|
+
"allowNo": false,
|
|
435
|
+
"type": "boolean"
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"hasDynamicHelp": false,
|
|
439
|
+
"hiddenAliases": [],
|
|
440
|
+
"id": "artifacts:reclassify",
|
|
441
|
+
"pluginAlias": "@memberjunction/cli",
|
|
442
|
+
"pluginName": "@memberjunction/cli",
|
|
443
|
+
"pluginType": "core",
|
|
444
|
+
"strict": true,
|
|
445
|
+
"enableJsonFlag": false,
|
|
446
|
+
"isESM": true,
|
|
447
|
+
"relativePath": [
|
|
448
|
+
"dist",
|
|
449
|
+
"commands",
|
|
450
|
+
"artifacts",
|
|
451
|
+
"reclassify.js"
|
|
452
|
+
]
|
|
453
|
+
},
|
|
393
454
|
"baseline:build": {
|
|
394
455
|
"aliases": [],
|
|
395
456
|
"args": {},
|
|
@@ -728,67 +789,6 @@
|
|
|
728
789
|
"roundtrip.js"
|
|
729
790
|
]
|
|
730
791
|
},
|
|
731
|
-
"artifacts:reclassify": {
|
|
732
|
-
"aliases": [],
|
|
733
|
-
"args": {},
|
|
734
|
-
"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.",
|
|
735
|
-
"examples": [
|
|
736
|
-
"<%= config.bin %> <%= command.id %>",
|
|
737
|
-
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
738
|
-
],
|
|
739
|
-
"flags": {
|
|
740
|
-
"conversation-id": {
|
|
741
|
-
"description": "Scope to artifacts attached to the given conversation.",
|
|
742
|
-
"name": "conversation-id",
|
|
743
|
-
"hasDynamicHelp": false,
|
|
744
|
-
"multiple": false,
|
|
745
|
-
"type": "option"
|
|
746
|
-
},
|
|
747
|
-
"since": {
|
|
748
|
-
"description": "Scope to artifacts created on/after this ISO date.",
|
|
749
|
-
"name": "since",
|
|
750
|
-
"hasDynamicHelp": false,
|
|
751
|
-
"multiple": false,
|
|
752
|
-
"type": "option"
|
|
753
|
-
},
|
|
754
|
-
"limit": {
|
|
755
|
-
"description": "Maximum number of rows to inspect.",
|
|
756
|
-
"name": "limit",
|
|
757
|
-
"default": 100,
|
|
758
|
-
"hasDynamicHelp": false,
|
|
759
|
-
"multiple": false,
|
|
760
|
-
"type": "option"
|
|
761
|
-
},
|
|
762
|
-
"apply": {
|
|
763
|
-
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
764
|
-
"name": "apply",
|
|
765
|
-
"allowNo": false,
|
|
766
|
-
"type": "boolean"
|
|
767
|
-
},
|
|
768
|
-
"verbose": {
|
|
769
|
-
"char": "v",
|
|
770
|
-
"description": "Print every candidate row, not just the summary.",
|
|
771
|
-
"name": "verbose",
|
|
772
|
-
"allowNo": false,
|
|
773
|
-
"type": "boolean"
|
|
774
|
-
}
|
|
775
|
-
},
|
|
776
|
-
"hasDynamicHelp": false,
|
|
777
|
-
"hiddenAliases": [],
|
|
778
|
-
"id": "artifacts:reclassify",
|
|
779
|
-
"pluginAlias": "@memberjunction/cli",
|
|
780
|
-
"pluginName": "@memberjunction/cli",
|
|
781
|
-
"pluginType": "core",
|
|
782
|
-
"strict": true,
|
|
783
|
-
"enableJsonFlag": false,
|
|
784
|
-
"isESM": true,
|
|
785
|
-
"relativePath": [
|
|
786
|
-
"dist",
|
|
787
|
-
"commands",
|
|
788
|
-
"artifacts",
|
|
789
|
-
"reclassify.js"
|
|
790
|
-
]
|
|
791
|
-
},
|
|
792
792
|
"bump": {
|
|
793
793
|
"aliases": [],
|
|
794
794
|
"args": {},
|
|
@@ -1977,90 +1977,106 @@
|
|
|
1977
1977
|
"index.js"
|
|
1978
1978
|
]
|
|
1979
1979
|
},
|
|
1980
|
-
"
|
|
1980
|
+
"install:claude": {
|
|
1981
1981
|
"aliases": [],
|
|
1982
1982
|
"args": {},
|
|
1983
|
-
"description": "
|
|
1983
|
+
"description": "Install or refresh the Claude Code pack in the current directory.",
|
|
1984
1984
|
"examples": [
|
|
1985
|
-
"<%= config.bin %>
|
|
1986
|
-
"<%= config.bin %>
|
|
1987
|
-
"<%= config.bin %>
|
|
1988
|
-
"<%= config.bin %>
|
|
1989
|
-
"<%= config.bin %> migrate convert --verbose"
|
|
1985
|
+
"<%= config.bin %> install:claude",
|
|
1986
|
+
"<%= config.bin %> install:claude --dry-run",
|
|
1987
|
+
"<%= config.bin %> install:claude --from ./local-pack",
|
|
1988
|
+
"<%= config.bin %> install:claude --json"
|
|
1990
1989
|
],
|
|
1991
1990
|
"flags": {
|
|
1992
|
-
"
|
|
1993
|
-
"description": "
|
|
1994
|
-
"name": "
|
|
1995
|
-
"default": "
|
|
1991
|
+
"dir": {
|
|
1992
|
+
"description": "Target directory for the install",
|
|
1993
|
+
"name": "dir",
|
|
1994
|
+
"default": ".",
|
|
1996
1995
|
"hasDynamicHelp": false,
|
|
1997
1996
|
"multiple": false,
|
|
1998
1997
|
"type": "option"
|
|
1999
1998
|
},
|
|
2000
|
-
"
|
|
2001
|
-
"description": "
|
|
2002
|
-
"name": "
|
|
2003
|
-
"default": "./migrations-pg/v5",
|
|
1999
|
+
"major": {
|
|
2000
|
+
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
2001
|
+
"name": "major",
|
|
2004
2002
|
"hasDynamicHelp": false,
|
|
2005
2003
|
"multiple": false,
|
|
2006
2004
|
"type": "option"
|
|
2007
2005
|
},
|
|
2008
|
-
"
|
|
2009
|
-
"description": "
|
|
2010
|
-
"name": "
|
|
2006
|
+
"ref": {
|
|
2007
|
+
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
2008
|
+
"name": "ref",
|
|
2011
2009
|
"hasDynamicHelp": false,
|
|
2012
2010
|
"multiple": false,
|
|
2013
2011
|
"type": "option"
|
|
2014
2012
|
},
|
|
2015
|
-
"
|
|
2016
|
-
"description": "
|
|
2017
|
-
"name": "
|
|
2018
|
-
"default": "__mj",
|
|
2013
|
+
"from": {
|
|
2014
|
+
"description": "Use a local pack source instead of fetching from GitHub",
|
|
2015
|
+
"name": "from",
|
|
2019
2016
|
"hasDynamicHelp": false,
|
|
2020
2017
|
"multiple": false,
|
|
2021
2018
|
"type": "option"
|
|
2022
2019
|
},
|
|
2020
|
+
"offline": {
|
|
2021
|
+
"description": "Forbid network; requires --from <path>",
|
|
2022
|
+
"name": "offline",
|
|
2023
|
+
"allowNo": false,
|
|
2024
|
+
"type": "boolean"
|
|
2025
|
+
},
|
|
2023
2026
|
"dry-run": {
|
|
2024
|
-
"description": "
|
|
2027
|
+
"description": "Print what would be written; change nothing",
|
|
2025
2028
|
"name": "dry-run",
|
|
2026
2029
|
"allowNo": false,
|
|
2027
2030
|
"type": "boolean"
|
|
2028
2031
|
},
|
|
2029
|
-
"
|
|
2030
|
-
"
|
|
2031
|
-
"
|
|
2032
|
+
"yes": {
|
|
2033
|
+
"char": "y",
|
|
2034
|
+
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
2035
|
+
"name": "yes",
|
|
2032
2036
|
"allowNo": false,
|
|
2033
2037
|
"type": "boolean"
|
|
2034
2038
|
},
|
|
2035
|
-
"
|
|
2036
|
-
"
|
|
2037
|
-
"
|
|
2038
|
-
"name": "verbose",
|
|
2039
|
+
"force": {
|
|
2040
|
+
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
2041
|
+
"name": "force",
|
|
2039
2042
|
"allowNo": false,
|
|
2040
2043
|
"type": "boolean"
|
|
2041
2044
|
},
|
|
2042
|
-
"
|
|
2043
|
-
"description": "
|
|
2044
|
-
"name": "
|
|
2045
|
+
"skip-commands": {
|
|
2046
|
+
"description": "Skip seeding .claude/commands/",
|
|
2047
|
+
"name": "skip-commands",
|
|
2045
2048
|
"allowNo": false,
|
|
2046
2049
|
"type": "boolean"
|
|
2047
2050
|
},
|
|
2048
|
-
"
|
|
2049
|
-
"description": "
|
|
2050
|
-
"name": "
|
|
2051
|
+
"skip-skills": {
|
|
2052
|
+
"description": "Skip seeding .claude/skills/",
|
|
2053
|
+
"name": "skip-skills",
|
|
2051
2054
|
"allowNo": false,
|
|
2052
2055
|
"type": "boolean"
|
|
2053
2056
|
},
|
|
2054
|
-
"
|
|
2055
|
-
"description": "
|
|
2056
|
-
"name": "
|
|
2057
|
+
"skip-settings": {
|
|
2058
|
+
"description": "Skip merging .claude/settings.json",
|
|
2059
|
+
"name": "skip-settings",
|
|
2060
|
+
"allowNo": false,
|
|
2061
|
+
"type": "boolean"
|
|
2062
|
+
},
|
|
2063
|
+
"json": {
|
|
2064
|
+
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
2065
|
+
"name": "json",
|
|
2066
|
+
"allowNo": false,
|
|
2067
|
+
"type": "boolean"
|
|
2068
|
+
},
|
|
2069
|
+
"verbose": {
|
|
2070
|
+
"char": "v",
|
|
2071
|
+
"description": "Show progress messages from the fetcher and merger",
|
|
2072
|
+
"name": "verbose",
|
|
2057
2073
|
"allowNo": false,
|
|
2058
2074
|
"type": "boolean"
|
|
2059
2075
|
}
|
|
2060
2076
|
},
|
|
2061
2077
|
"hasDynamicHelp": false,
|
|
2062
2078
|
"hiddenAliases": [],
|
|
2063
|
-
"id": "
|
|
2079
|
+
"id": "install:claude",
|
|
2064
2080
|
"pluginAlias": "@memberjunction/cli",
|
|
2065
2081
|
"pluginName": "@memberjunction/cli",
|
|
2066
2082
|
"pluginType": "core",
|
|
@@ -2070,41 +2086,259 @@
|
|
|
2070
2086
|
"relativePath": [
|
|
2071
2087
|
"dist",
|
|
2072
2088
|
"commands",
|
|
2073
|
-
"
|
|
2074
|
-
"
|
|
2089
|
+
"install",
|
|
2090
|
+
"claude.js"
|
|
2075
2091
|
]
|
|
2076
2092
|
},
|
|
2077
|
-
"
|
|
2093
|
+
"install": {
|
|
2078
2094
|
"aliases": [],
|
|
2079
|
-
"args": {
|
|
2080
|
-
|
|
2081
|
-
"description": "Short description (will be converted to PascalCase with underscores)",
|
|
2082
|
-
"name": "description",
|
|
2083
|
-
"required": true
|
|
2084
|
-
}
|
|
2085
|
-
},
|
|
2086
|
-
"description": "Scaffold a new migration file for the current database platform",
|
|
2095
|
+
"args": {},
|
|
2096
|
+
"description": "Install MemberJunction from a GitHub release",
|
|
2087
2097
|
"examples": [
|
|
2088
|
-
"<%= config.bin %> <%= command.id %>
|
|
2089
|
-
"<%= config.bin %> <%= command.id %>
|
|
2090
|
-
"<%= config.bin %> <%= command.id %>
|
|
2098
|
+
"<%= config.bin %> <%= command.id %>",
|
|
2099
|
+
"<%= config.bin %> <%= command.id %> -t v4.3.0",
|
|
2100
|
+
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
2101
|
+
"<%= config.bin %> <%= command.id %> --yes"
|
|
2091
2102
|
],
|
|
2092
2103
|
"flags": {
|
|
2093
|
-
"
|
|
2094
|
-
"char": "
|
|
2095
|
-
"description": "
|
|
2096
|
-
"name": "
|
|
2104
|
+
"tag": {
|
|
2105
|
+
"char": "t",
|
|
2106
|
+
"description": "Release tag to install (e.g. v4.3.0). If omitted, shows a version picker.",
|
|
2107
|
+
"name": "tag",
|
|
2097
2108
|
"hasDynamicHelp": false,
|
|
2098
2109
|
"multiple": false,
|
|
2099
2110
|
"type": "option"
|
|
2100
2111
|
},
|
|
2101
|
-
"
|
|
2102
|
-
"
|
|
2103
|
-
"
|
|
2104
|
-
"
|
|
2105
|
-
"hasDynamicHelp": false,
|
|
2106
|
-
"multiple": false,
|
|
2107
|
-
"
|
|
2112
|
+
"dir": {
|
|
2113
|
+
"description": "Target directory for the installation",
|
|
2114
|
+
"name": "dir",
|
|
2115
|
+
"default": ".",
|
|
2116
|
+
"hasDynamicHelp": false,
|
|
2117
|
+
"multiple": false,
|
|
2118
|
+
"type": "option"
|
|
2119
|
+
},
|
|
2120
|
+
"config": {
|
|
2121
|
+
"char": "c",
|
|
2122
|
+
"description": "Path to JSON config file with install settings (database, auth, ports, etc.)",
|
|
2123
|
+
"name": "config",
|
|
2124
|
+
"hasDynamicHelp": false,
|
|
2125
|
+
"multiple": false,
|
|
2126
|
+
"type": "option"
|
|
2127
|
+
},
|
|
2128
|
+
"legacy": {
|
|
2129
|
+
"description": "Use the legacy interactive installer (ZIP-only distribution)",
|
|
2130
|
+
"hidden": true,
|
|
2131
|
+
"name": "legacy",
|
|
2132
|
+
"allowNo": false,
|
|
2133
|
+
"type": "boolean"
|
|
2134
|
+
},
|
|
2135
|
+
"dry-run": {
|
|
2136
|
+
"description": "Show the install plan without executing it",
|
|
2137
|
+
"name": "dry-run",
|
|
2138
|
+
"allowNo": false,
|
|
2139
|
+
"type": "boolean"
|
|
2140
|
+
},
|
|
2141
|
+
"yes": {
|
|
2142
|
+
"char": "y",
|
|
2143
|
+
"description": "Non-interactive mode: auto-select latest version and accept defaults",
|
|
2144
|
+
"name": "yes",
|
|
2145
|
+
"allowNo": false,
|
|
2146
|
+
"type": "boolean"
|
|
2147
|
+
},
|
|
2148
|
+
"verbose": {
|
|
2149
|
+
"char": "v",
|
|
2150
|
+
"description": "Show detailed output",
|
|
2151
|
+
"name": "verbose",
|
|
2152
|
+
"allowNo": false,
|
|
2153
|
+
"type": "boolean"
|
|
2154
|
+
},
|
|
2155
|
+
"skip-db": {
|
|
2156
|
+
"description": "Skip database provisioning phases",
|
|
2157
|
+
"name": "skip-db",
|
|
2158
|
+
"allowNo": false,
|
|
2159
|
+
"type": "boolean"
|
|
2160
|
+
},
|
|
2161
|
+
"skip-start": {
|
|
2162
|
+
"description": "Skip service startup and smoke tests",
|
|
2163
|
+
"name": "skip-start",
|
|
2164
|
+
"allowNo": false,
|
|
2165
|
+
"type": "boolean"
|
|
2166
|
+
},
|
|
2167
|
+
"no-resume": {
|
|
2168
|
+
"description": "Ignore any existing checkpoint and start fresh",
|
|
2169
|
+
"name": "no-resume",
|
|
2170
|
+
"allowNo": false,
|
|
2171
|
+
"type": "boolean"
|
|
2172
|
+
},
|
|
2173
|
+
"fast": {
|
|
2174
|
+
"description": "Fast mode: skip smoke test and optimize post-codegen steps. Re-run without --fast if you encounter issues.",
|
|
2175
|
+
"name": "fast",
|
|
2176
|
+
"allowNo": false,
|
|
2177
|
+
"type": "boolean"
|
|
2178
|
+
},
|
|
2179
|
+
"overwrite-config": {
|
|
2180
|
+
"description": "Overwrite existing config files (.env, mj.config.cjs, environment.ts) instead of preserving them",
|
|
2181
|
+
"name": "overwrite-config",
|
|
2182
|
+
"allowNo": false,
|
|
2183
|
+
"type": "boolean"
|
|
2184
|
+
},
|
|
2185
|
+
"monorepo": {
|
|
2186
|
+
"description": "Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.",
|
|
2187
|
+
"name": "monorepo",
|
|
2188
|
+
"allowNo": false,
|
|
2189
|
+
"type": "boolean"
|
|
2190
|
+
},
|
|
2191
|
+
"no-claude-pack": {
|
|
2192
|
+
"description": "Exclude the Claude Code pack (CLAUDE.md + .claude/ tree) from the scaffold. By default the pack ships with the install so opening Claude Code in your new MJ project gives you the curated MJ-aware experience immediately.",
|
|
2193
|
+
"name": "no-claude-pack",
|
|
2194
|
+
"allowNo": false,
|
|
2195
|
+
"type": "boolean"
|
|
2196
|
+
}
|
|
2197
|
+
},
|
|
2198
|
+
"hasDynamicHelp": false,
|
|
2199
|
+
"hiddenAliases": [],
|
|
2200
|
+
"id": "install",
|
|
2201
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2202
|
+
"pluginName": "@memberjunction/cli",
|
|
2203
|
+
"pluginType": "core",
|
|
2204
|
+
"strict": true,
|
|
2205
|
+
"enableJsonFlag": false,
|
|
2206
|
+
"isESM": true,
|
|
2207
|
+
"relativePath": [
|
|
2208
|
+
"dist",
|
|
2209
|
+
"commands",
|
|
2210
|
+
"install",
|
|
2211
|
+
"index.js"
|
|
2212
|
+
]
|
|
2213
|
+
},
|
|
2214
|
+
"migrate:convert": {
|
|
2215
|
+
"aliases": [],
|
|
2216
|
+
"args": {},
|
|
2217
|
+
"description": "Convert T-SQL migrations to PostgreSQL",
|
|
2218
|
+
"examples": [
|
|
2219
|
+
"<%= config.bin %> migrate convert --split",
|
|
2220
|
+
"<%= config.bin %> migrate convert --split --dry-run",
|
|
2221
|
+
"<%= config.bin %> migrate convert --split --file V202604060452__v5.24.x__KnowledgeHub.sql",
|
|
2222
|
+
"<%= config.bin %> migrate convert --source-dir ./migrations/v5 --output-dir ./migrations-pg/v5",
|
|
2223
|
+
"<%= config.bin %> migrate convert --verbose"
|
|
2224
|
+
],
|
|
2225
|
+
"flags": {
|
|
2226
|
+
"source-dir": {
|
|
2227
|
+
"description": "Source T-SQL migrations directory",
|
|
2228
|
+
"name": "source-dir",
|
|
2229
|
+
"default": "./migrations/v5",
|
|
2230
|
+
"hasDynamicHelp": false,
|
|
2231
|
+
"multiple": false,
|
|
2232
|
+
"type": "option"
|
|
2233
|
+
},
|
|
2234
|
+
"output-dir": {
|
|
2235
|
+
"description": "Output PG migrations directory",
|
|
2236
|
+
"name": "output-dir",
|
|
2237
|
+
"default": "./migrations-pg/v5",
|
|
2238
|
+
"hasDynamicHelp": false,
|
|
2239
|
+
"multiple": false,
|
|
2240
|
+
"type": "option"
|
|
2241
|
+
},
|
|
2242
|
+
"file": {
|
|
2243
|
+
"description": "Convert a specific file (filename only, looked up in source-dir)",
|
|
2244
|
+
"name": "file",
|
|
2245
|
+
"hasDynamicHelp": false,
|
|
2246
|
+
"multiple": false,
|
|
2247
|
+
"type": "option"
|
|
2248
|
+
},
|
|
2249
|
+
"schema": {
|
|
2250
|
+
"description": "Target schema name",
|
|
2251
|
+
"name": "schema",
|
|
2252
|
+
"default": "__mj",
|
|
2253
|
+
"hasDynamicHelp": false,
|
|
2254
|
+
"multiple": false,
|
|
2255
|
+
"type": "option"
|
|
2256
|
+
},
|
|
2257
|
+
"dry-run": {
|
|
2258
|
+
"description": "Show what would be converted without writing files",
|
|
2259
|
+
"name": "dry-run",
|
|
2260
|
+
"allowNo": false,
|
|
2261
|
+
"type": "boolean"
|
|
2262
|
+
},
|
|
2263
|
+
"no-header": {
|
|
2264
|
+
"description": "Skip PG header (extensions, schema, implicit cast)",
|
|
2265
|
+
"name": "no-header",
|
|
2266
|
+
"allowNo": false,
|
|
2267
|
+
"type": "boolean"
|
|
2268
|
+
},
|
|
2269
|
+
"verbose": {
|
|
2270
|
+
"char": "v",
|
|
2271
|
+
"description": "Show per-statement progress",
|
|
2272
|
+
"name": "verbose",
|
|
2273
|
+
"allowNo": false,
|
|
2274
|
+
"type": "boolean"
|
|
2275
|
+
},
|
|
2276
|
+
"split": {
|
|
2277
|
+
"description": "Split-and-regenerate (the standard path): transpile only hand-written DDL via the AST dialect; CodeGen objects are regenerated by `mj codegen` and mj-sync metadata re-seeded by `mj sync push`; every conversion gap is surfaced and fails the run unless --allow-gaps.",
|
|
2278
|
+
"name": "split",
|
|
2279
|
+
"allowNo": false,
|
|
2280
|
+
"type": "boolean"
|
|
2281
|
+
},
|
|
2282
|
+
"allow-gaps": {
|
|
2283
|
+
"description": "With --split: exit 0 even when migrations have conversion gaps (hand-authoring needed or unhandled statements). Gaps are still embedded as comments and listed in the summary.",
|
|
2284
|
+
"name": "allow-gaps",
|
|
2285
|
+
"allowNo": false,
|
|
2286
|
+
"type": "boolean"
|
|
2287
|
+
},
|
|
2288
|
+
"bake-codegen": {
|
|
2289
|
+
"description": "With --split: bake native PG CodeGen objects inline per migration (Path C), so the set deploys with `mj migrate` alone — no `mj codegen` step. Requires a LIVE working PG database (DB_PLATFORM=postgresql + PG_* env, same as `mj codegen`) seeded to the state just BEFORE the migrations being converted (typically the latest baseline); the converter brings it forward in committed order as it bakes. Not compatible with --dry-run.",
|
|
2290
|
+
"name": "bake-codegen",
|
|
2291
|
+
"allowNo": false,
|
|
2292
|
+
"type": "boolean"
|
|
2293
|
+
}
|
|
2294
|
+
},
|
|
2295
|
+
"hasDynamicHelp": false,
|
|
2296
|
+
"hiddenAliases": [],
|
|
2297
|
+
"id": "migrate:convert",
|
|
2298
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2299
|
+
"pluginName": "@memberjunction/cli",
|
|
2300
|
+
"pluginType": "core",
|
|
2301
|
+
"strict": true,
|
|
2302
|
+
"enableJsonFlag": false,
|
|
2303
|
+
"isESM": true,
|
|
2304
|
+
"relativePath": [
|
|
2305
|
+
"dist",
|
|
2306
|
+
"commands",
|
|
2307
|
+
"migrate",
|
|
2308
|
+
"convert.js"
|
|
2309
|
+
]
|
|
2310
|
+
},
|
|
2311
|
+
"migrate:create": {
|
|
2312
|
+
"aliases": [],
|
|
2313
|
+
"args": {
|
|
2314
|
+
"description": {
|
|
2315
|
+
"description": "Short description (will be converted to PascalCase with underscores)",
|
|
2316
|
+
"name": "description",
|
|
2317
|
+
"required": true
|
|
2318
|
+
}
|
|
2319
|
+
},
|
|
2320
|
+
"description": "Scaffold a new migration file for the current database platform",
|
|
2321
|
+
"examples": [
|
|
2322
|
+
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\"",
|
|
2323
|
+
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\" --version 5.25 --platform postgresql",
|
|
2324
|
+
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\" --dir ./migrations/v5"
|
|
2325
|
+
],
|
|
2326
|
+
"flags": {
|
|
2327
|
+
"version": {
|
|
2328
|
+
"char": "v",
|
|
2329
|
+
"description": "Migration version tag, e.g. \"5.25\" (default: parsed from repo baseline or \"0.0\")",
|
|
2330
|
+
"name": "version",
|
|
2331
|
+
"hasDynamicHelp": false,
|
|
2332
|
+
"multiple": false,
|
|
2333
|
+
"type": "option"
|
|
2334
|
+
},
|
|
2335
|
+
"platform": {
|
|
2336
|
+
"char": "p",
|
|
2337
|
+
"description": "Override platform: sqlserver | postgresql (default: config.dbPlatform)",
|
|
2338
|
+
"name": "platform",
|
|
2339
|
+
"hasDynamicHelp": false,
|
|
2340
|
+
"multiple": false,
|
|
2341
|
+
"options": [
|
|
2108
2342
|
"sqlserver",
|
|
2109
2343
|
"postgresql"
|
|
2110
2344
|
],
|
|
@@ -2677,187 +2911,52 @@
|
|
|
2677
2911
|
"index.js"
|
|
2678
2912
|
]
|
|
2679
2913
|
},
|
|
2680
|
-
"
|
|
2914
|
+
"sync:file-reset": {
|
|
2681
2915
|
"aliases": [],
|
|
2682
|
-
"args": {
|
|
2683
|
-
|
|
2684
|
-
"description": "First test run ID to compare",
|
|
2685
|
-
"name": "runId1",
|
|
2686
|
-
"required": false
|
|
2687
|
-
},
|
|
2688
|
-
"runId2": {
|
|
2689
|
-
"description": "Second test run ID to compare",
|
|
2690
|
-
"name": "runId2",
|
|
2691
|
-
"required": false
|
|
2692
|
-
}
|
|
2693
|
-
},
|
|
2694
|
-
"description": "Compare test runs for regression detection",
|
|
2916
|
+
"args": {},
|
|
2917
|
+
"description": "Reset file metadata sections",
|
|
2695
2918
|
"examples": [
|
|
2696
2919
|
"<%= config.bin %> <%= command.id %>",
|
|
2697
|
-
"<%= config.bin %> <%= command.id %> --
|
|
2698
|
-
"<%= config.bin %> <%= command.id %>
|
|
2699
|
-
"<%= config.bin %> <%= command.id %>
|
|
2700
|
-
"<%= config.bin %> <%= command.id %> -c abc1234 -c def5678",
|
|
2701
|
-
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
2702
|
-
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
2920
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
2921
|
+
"<%= config.bin %> <%= command.id %> --sections=\"dependencies,references\"",
|
|
2922
|
+
"<%= config.bin %> <%= command.id %> --all"
|
|
2703
2923
|
],
|
|
2704
2924
|
"flags": {
|
|
2705
|
-
"
|
|
2706
|
-
"
|
|
2707
|
-
"
|
|
2708
|
-
"name": "version",
|
|
2925
|
+
"dir": {
|
|
2926
|
+
"description": "Specific entity directory to reset",
|
|
2927
|
+
"name": "dir",
|
|
2709
2928
|
"hasDynamicHelp": false,
|
|
2710
|
-
"multiple":
|
|
2929
|
+
"multiple": false,
|
|
2711
2930
|
"type": "option"
|
|
2712
2931
|
},
|
|
2713
|
-
"
|
|
2714
|
-
"
|
|
2715
|
-
"
|
|
2716
|
-
"name": "commit",
|
|
2932
|
+
"sections": {
|
|
2933
|
+
"description": "Comma-separated list of sections to reset (dependencies,references,related,lookup)",
|
|
2934
|
+
"name": "sections",
|
|
2717
2935
|
"hasDynamicHelp": false,
|
|
2718
|
-
"multiple":
|
|
2936
|
+
"multiple": false,
|
|
2719
2937
|
"type": "option"
|
|
2720
2938
|
},
|
|
2721
|
-
"
|
|
2722
|
-
"description": "
|
|
2723
|
-
"name": "
|
|
2939
|
+
"all": {
|
|
2940
|
+
"description": "Reset all metadata sections",
|
|
2941
|
+
"name": "all",
|
|
2724
2942
|
"allowNo": false,
|
|
2725
2943
|
"type": "boolean"
|
|
2726
2944
|
},
|
|
2727
|
-
"
|
|
2728
|
-
"
|
|
2729
|
-
"
|
|
2730
|
-
"name": "latest",
|
|
2945
|
+
"dry-run": {
|
|
2946
|
+
"description": "Show what would be reset without actually resetting",
|
|
2947
|
+
"name": "dry-run",
|
|
2731
2948
|
"allowNo": false,
|
|
2732
2949
|
"type": "boolean"
|
|
2733
2950
|
},
|
|
2734
|
-
"
|
|
2735
|
-
"description": "
|
|
2736
|
-
"name": "
|
|
2737
|
-
"hasDynamicHelp": false,
|
|
2738
|
-
"multiple": true,
|
|
2739
|
-
"type": "option"
|
|
2740
|
-
},
|
|
2741
|
-
"format": {
|
|
2742
|
-
"char": "f",
|
|
2743
|
-
"description": "Output format",
|
|
2744
|
-
"name": "format",
|
|
2745
|
-
"default": "console",
|
|
2746
|
-
"hasDynamicHelp": false,
|
|
2747
|
-
"multiple": false,
|
|
2748
|
-
"options": [
|
|
2749
|
-
"console",
|
|
2750
|
-
"json",
|
|
2751
|
-
"markdown"
|
|
2752
|
-
],
|
|
2753
|
-
"type": "option"
|
|
2754
|
-
},
|
|
2755
|
-
"output": {
|
|
2756
|
-
"char": "o",
|
|
2757
|
-
"description": "Output file path",
|
|
2758
|
-
"name": "output",
|
|
2759
|
-
"hasDynamicHelp": false,
|
|
2760
|
-
"multiple": false,
|
|
2761
|
-
"type": "option"
|
|
2762
|
-
},
|
|
2763
|
-
"verbose": {
|
|
2764
|
-
"description": "Show detailed information",
|
|
2765
|
-
"name": "verbose",
|
|
2951
|
+
"force": {
|
|
2952
|
+
"description": "Skip confirmation prompts",
|
|
2953
|
+
"name": "force",
|
|
2766
2954
|
"allowNo": false,
|
|
2767
2955
|
"type": "boolean"
|
|
2768
2956
|
},
|
|
2769
|
-
"tag": {
|
|
2770
|
-
"description": "Filter suite runs by tag (matches against MJTestSuiteRunEntity.Tags). Useful for isolating runs from a specific source environment in an archive MJ. DB mode only — --from-json ignores this flag.",
|
|
2771
|
-
"name": "tag",
|
|
2772
|
-
"hasDynamicHelp": false,
|
|
2773
|
-
"multiple": false,
|
|
2774
|
-
"type": "option"
|
|
2775
|
-
}
|
|
2776
|
-
},
|
|
2777
|
-
"hasDynamicHelp": false,
|
|
2778
|
-
"hiddenAliases": [],
|
|
2779
|
-
"id": "test:compare",
|
|
2780
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2781
|
-
"pluginName": "@memberjunction/cli",
|
|
2782
|
-
"pluginType": "core",
|
|
2783
|
-
"strict": true,
|
|
2784
|
-
"enableJsonFlag": false,
|
|
2785
|
-
"isESM": true,
|
|
2786
|
-
"relativePath": [
|
|
2787
|
-
"dist",
|
|
2788
|
-
"commands",
|
|
2789
|
-
"test",
|
|
2790
|
-
"compare.js"
|
|
2791
|
-
]
|
|
2792
|
-
},
|
|
2793
|
-
"test:history": {
|
|
2794
|
-
"aliases": [],
|
|
2795
|
-
"args": {},
|
|
2796
|
-
"description": "View test execution history",
|
|
2797
|
-
"examples": [
|
|
2798
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2799
|
-
"<%= config.bin %> <%= command.id %> --test=<test-id>",
|
|
2800
|
-
"<%= config.bin %> <%= command.id %> --suite=<suite-id>",
|
|
2801
|
-
"<%= config.bin %> <%= command.id %> --since=\"2024-01-01\"",
|
|
2802
|
-
"<%= config.bin %> <%= command.id %> --limit=50"
|
|
2803
|
-
],
|
|
2804
|
-
"flags": {
|
|
2805
|
-
"test": {
|
|
2806
|
-
"char": "t",
|
|
2807
|
-
"description": "Filter by test ID",
|
|
2808
|
-
"name": "test",
|
|
2809
|
-
"hasDynamicHelp": false,
|
|
2810
|
-
"multiple": false,
|
|
2811
|
-
"type": "option"
|
|
2812
|
-
},
|
|
2813
|
-
"recent": {
|
|
2814
|
-
"char": "r",
|
|
2815
|
-
"description": "Number of recent runs to show",
|
|
2816
|
-
"name": "recent",
|
|
2817
|
-
"hasDynamicHelp": false,
|
|
2818
|
-
"multiple": false,
|
|
2819
|
-
"type": "option"
|
|
2820
|
-
},
|
|
2821
|
-
"from": {
|
|
2822
|
-
"description": "Show history from date (YYYY-MM-DD)",
|
|
2823
|
-
"name": "from",
|
|
2824
|
-
"hasDynamicHelp": false,
|
|
2825
|
-
"multiple": false,
|
|
2826
|
-
"type": "option"
|
|
2827
|
-
},
|
|
2828
|
-
"status": {
|
|
2829
|
-
"char": "s",
|
|
2830
|
-
"description": "Filter by status",
|
|
2831
|
-
"name": "status",
|
|
2832
|
-
"hasDynamicHelp": false,
|
|
2833
|
-
"multiple": false,
|
|
2834
|
-
"type": "option"
|
|
2835
|
-
},
|
|
2836
|
-
"format": {
|
|
2837
|
-
"char": "f",
|
|
2838
|
-
"description": "Output format",
|
|
2839
|
-
"name": "format",
|
|
2840
|
-
"default": "console",
|
|
2841
|
-
"hasDynamicHelp": false,
|
|
2842
|
-
"multiple": false,
|
|
2843
|
-
"options": [
|
|
2844
|
-
"console",
|
|
2845
|
-
"json",
|
|
2846
|
-
"markdown"
|
|
2847
|
-
],
|
|
2848
|
-
"type": "option"
|
|
2849
|
-
},
|
|
2850
|
-
"output": {
|
|
2851
|
-
"char": "o",
|
|
2852
|
-
"description": "Output file path",
|
|
2853
|
-
"name": "output",
|
|
2854
|
-
"hasDynamicHelp": false,
|
|
2855
|
-
"multiple": false,
|
|
2856
|
-
"type": "option"
|
|
2857
|
-
},
|
|
2858
2957
|
"verbose": {
|
|
2859
2958
|
"char": "v",
|
|
2860
|
-
"description": "Show detailed
|
|
2959
|
+
"description": "Show detailed output",
|
|
2861
2960
|
"name": "verbose",
|
|
2862
2961
|
"allowNo": false,
|
|
2863
2962
|
"type": "boolean"
|
|
@@ -2865,7 +2964,7 @@
|
|
|
2865
2964
|
},
|
|
2866
2965
|
"hasDynamicHelp": false,
|
|
2867
2966
|
"hiddenAliases": [],
|
|
2868
|
-
"id": "
|
|
2967
|
+
"id": "sync:file-reset",
|
|
2869
2968
|
"pluginAlias": "@memberjunction/cli",
|
|
2870
2969
|
"pluginName": "@memberjunction/cli",
|
|
2871
2970
|
"pluginType": "core",
|
|
@@ -2875,26 +2974,21 @@
|
|
|
2875
2974
|
"relativePath": [
|
|
2876
2975
|
"dist",
|
|
2877
2976
|
"commands",
|
|
2878
|
-
"
|
|
2879
|
-
"
|
|
2977
|
+
"sync",
|
|
2978
|
+
"file-reset.js"
|
|
2880
2979
|
]
|
|
2881
2980
|
},
|
|
2882
|
-
"
|
|
2981
|
+
"sync:init": {
|
|
2883
2982
|
"aliases": [],
|
|
2884
2983
|
"args": {},
|
|
2885
|
-
"description": "
|
|
2984
|
+
"description": "Initialize a directory for metadata synchronization",
|
|
2886
2985
|
"examples": [
|
|
2887
|
-
"<%= config.bin %> <%= command.id %>
|
|
2888
|
-
"<%= config.bin %> <%= command.id %> run --name=\"Active Members Count\"",
|
|
2889
|
-
"<%= config.bin %> <%= command.id %> suite <suite-id>",
|
|
2890
|
-
"<%= config.bin %> <%= command.id %> list",
|
|
2891
|
-
"<%= config.bin %> <%= command.id %> list --suites",
|
|
2892
|
-
"<%= config.bin %> <%= command.id %> validate --all"
|
|
2986
|
+
"<%= config.bin %> <%= command.id %>"
|
|
2893
2987
|
],
|
|
2894
2988
|
"flags": {},
|
|
2895
2989
|
"hasDynamicHelp": false,
|
|
2896
2990
|
"hiddenAliases": [],
|
|
2897
|
-
"id": "
|
|
2991
|
+
"id": "sync:init",
|
|
2898
2992
|
"pluginAlias": "@memberjunction/cli",
|
|
2899
2993
|
"pluginName": "@memberjunction/cli",
|
|
2900
2994
|
"pluginType": "core",
|
|
@@ -2904,176 +2998,148 @@
|
|
|
2904
2998
|
"relativePath": [
|
|
2905
2999
|
"dist",
|
|
2906
3000
|
"commands",
|
|
2907
|
-
"
|
|
2908
|
-
"
|
|
3001
|
+
"sync",
|
|
3002
|
+
"init.js"
|
|
2909
3003
|
]
|
|
2910
3004
|
},
|
|
2911
|
-
"
|
|
3005
|
+
"sync:pull": {
|
|
2912
3006
|
"aliases": [],
|
|
2913
3007
|
"args": {},
|
|
2914
|
-
"description": "
|
|
3008
|
+
"description": "Pull metadata from database to local files",
|
|
2915
3009
|
"examples": [
|
|
2916
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2917
|
-
"<%= config.bin %> <%= command.id %> --
|
|
2918
|
-
"<%= config.bin %> <%= command.id %> --
|
|
2919
|
-
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
2920
|
-
"<%= config.bin %> <%= command.id %> --tag=smoke",
|
|
2921
|
-
"<%= config.bin %> <%= command.id %> --status=active --verbose"
|
|
3010
|
+
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Prompts\"",
|
|
3011
|
+
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Agents\" --merge-strategy=overwrite",
|
|
3012
|
+
"<%= config.bin %> <%= command.id %> --entity=\"Templates\" --dry-run --verbose"
|
|
2922
3013
|
],
|
|
2923
3014
|
"flags": {
|
|
2924
|
-
"
|
|
2925
|
-
"description": "
|
|
2926
|
-
"name": "
|
|
3015
|
+
"format": {
|
|
3016
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced)",
|
|
3017
|
+
"name": "format",
|
|
3018
|
+
"default": "text",
|
|
3019
|
+
"hasDynamicHelp": false,
|
|
3020
|
+
"multiple": false,
|
|
3021
|
+
"options": [
|
|
3022
|
+
"text",
|
|
3023
|
+
"json",
|
|
3024
|
+
"md"
|
|
3025
|
+
],
|
|
3026
|
+
"type": "option"
|
|
3027
|
+
},
|
|
3028
|
+
"verbose": {
|
|
3029
|
+
"char": "v",
|
|
3030
|
+
"description": "Show detailed output",
|
|
3031
|
+
"name": "verbose",
|
|
2927
3032
|
"allowNo": false,
|
|
2928
3033
|
"type": "boolean"
|
|
2929
3034
|
},
|
|
2930
|
-
"
|
|
2931
|
-
"description": "
|
|
2932
|
-
"name": "
|
|
3035
|
+
"no-banner": {
|
|
3036
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
3037
|
+
"name": "no-banner",
|
|
2933
3038
|
"allowNo": false,
|
|
2934
3039
|
"type": "boolean"
|
|
2935
3040
|
},
|
|
2936
|
-
"
|
|
2937
|
-
"
|
|
2938
|
-
"
|
|
2939
|
-
"
|
|
3041
|
+
"entity": {
|
|
3042
|
+
"description": "Entity name to pull",
|
|
3043
|
+
"name": "entity",
|
|
3044
|
+
"required": true,
|
|
2940
3045
|
"hasDynamicHelp": false,
|
|
2941
3046
|
"multiple": false,
|
|
2942
3047
|
"type": "option"
|
|
2943
3048
|
},
|
|
2944
|
-
"
|
|
2945
|
-
"description": "
|
|
2946
|
-
"name": "
|
|
3049
|
+
"filter": {
|
|
3050
|
+
"description": "Additional filter for pulling specific records",
|
|
3051
|
+
"name": "filter",
|
|
2947
3052
|
"hasDynamicHelp": false,
|
|
2948
3053
|
"multiple": false,
|
|
2949
3054
|
"type": "option"
|
|
2950
3055
|
},
|
|
2951
|
-
"
|
|
2952
|
-
"
|
|
2953
|
-
"
|
|
2954
|
-
"
|
|
3056
|
+
"dry-run": {
|
|
3057
|
+
"description": "Show what would be pulled without actually pulling",
|
|
3058
|
+
"name": "dry-run",
|
|
3059
|
+
"allowNo": false,
|
|
3060
|
+
"type": "boolean"
|
|
3061
|
+
},
|
|
3062
|
+
"multi-file": {
|
|
3063
|
+
"description": "Create a single file with multiple records (provide filename)",
|
|
3064
|
+
"name": "multi-file",
|
|
2955
3065
|
"hasDynamicHelp": false,
|
|
2956
3066
|
"multiple": false,
|
|
2957
3067
|
"type": "option"
|
|
2958
3068
|
},
|
|
2959
|
-
"
|
|
2960
|
-
"
|
|
2961
|
-
"
|
|
2962
|
-
"
|
|
2963
|
-
"
|
|
2964
|
-
"hasDynamicHelp": false,
|
|
2965
|
-
"multiple": false,
|
|
2966
|
-
"options": [
|
|
2967
|
-
"console",
|
|
2968
|
-
"json",
|
|
2969
|
-
"markdown"
|
|
2970
|
-
],
|
|
2971
|
-
"type": "option"
|
|
3069
|
+
"no-validate": {
|
|
3070
|
+
"description": "Skip validation before pull",
|
|
3071
|
+
"name": "no-validate",
|
|
3072
|
+
"allowNo": false,
|
|
3073
|
+
"type": "boolean"
|
|
2972
3074
|
},
|
|
2973
|
-
"
|
|
2974
|
-
"
|
|
2975
|
-
"
|
|
2976
|
-
"
|
|
2977
|
-
"
|
|
2978
|
-
"multiple": false,
|
|
2979
|
-
"type": "option"
|
|
3075
|
+
"update-existing": {
|
|
3076
|
+
"description": "Update existing records during pull",
|
|
3077
|
+
"name": "update-existing",
|
|
3078
|
+
"allowNo": false,
|
|
3079
|
+
"type": "boolean"
|
|
2980
3080
|
},
|
|
2981
|
-
"
|
|
2982
|
-
"
|
|
2983
|
-
"
|
|
2984
|
-
"name": "verbose",
|
|
3081
|
+
"create-new": {
|
|
3082
|
+
"description": "Create new files for records not found locally",
|
|
3083
|
+
"name": "create-new",
|
|
2985
3084
|
"allowNo": false,
|
|
2986
3085
|
"type": "boolean"
|
|
2987
|
-
}
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
"relativePath": [
|
|
2999
|
-
"dist",
|
|
3000
|
-
"commands",
|
|
3001
|
-
"test",
|
|
3002
|
-
"list.js"
|
|
3003
|
-
]
|
|
3004
|
-
},
|
|
3005
|
-
"test:run": {
|
|
3006
|
-
"aliases": [],
|
|
3007
|
-
"args": {
|
|
3008
|
-
"testId": {
|
|
3009
|
-
"description": "Test ID to execute",
|
|
3010
|
-
"name": "testId",
|
|
3011
|
-
"required": false
|
|
3012
|
-
}
|
|
3013
|
-
},
|
|
3014
|
-
"description": "Execute a single test by ID or name",
|
|
3015
|
-
"examples": [
|
|
3016
|
-
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
3017
|
-
"<%= config.bin %> <%= command.id %> --name=\"Active Members Count\"",
|
|
3018
|
-
"<%= config.bin %> <%= command.id %> <test-id> --environment=staging",
|
|
3019
|
-
"<%= config.bin %> <%= command.id %> <test-id> --format=json --output=results.json",
|
|
3020
|
-
"<%= config.bin %> <%= command.id %> <test-id> --dry-run"
|
|
3021
|
-
],
|
|
3022
|
-
"flags": {
|
|
3023
|
-
"name": {
|
|
3024
|
-
"char": "n",
|
|
3025
|
-
"description": "Test name to execute",
|
|
3026
|
-
"name": "name",
|
|
3086
|
+
},
|
|
3087
|
+
"backup-before-update": {
|
|
3088
|
+
"description": "Create backups before updating files",
|
|
3089
|
+
"name": "backup-before-update",
|
|
3090
|
+
"allowNo": false,
|
|
3091
|
+
"type": "boolean"
|
|
3092
|
+
},
|
|
3093
|
+
"merge-strategy": {
|
|
3094
|
+
"description": "Merge strategy for updates",
|
|
3095
|
+
"name": "merge-strategy",
|
|
3096
|
+
"default": "merge",
|
|
3027
3097
|
"hasDynamicHelp": false,
|
|
3028
3098
|
"multiple": false,
|
|
3099
|
+
"options": [
|
|
3100
|
+
"merge",
|
|
3101
|
+
"overwrite",
|
|
3102
|
+
"skip"
|
|
3103
|
+
],
|
|
3029
3104
|
"type": "option"
|
|
3030
3105
|
},
|
|
3031
|
-
"
|
|
3032
|
-
"
|
|
3033
|
-
"
|
|
3034
|
-
"name": "environment",
|
|
3106
|
+
"backup-directory": {
|
|
3107
|
+
"description": "Custom backup directory (default: .backups)",
|
|
3108
|
+
"name": "backup-directory",
|
|
3035
3109
|
"hasDynamicHelp": false,
|
|
3036
3110
|
"multiple": false,
|
|
3037
3111
|
"type": "option"
|
|
3038
3112
|
},
|
|
3039
|
-
"
|
|
3040
|
-
"
|
|
3041
|
-
"
|
|
3042
|
-
"name": "format",
|
|
3043
|
-
"default": "console",
|
|
3113
|
+
"preserve-fields": {
|
|
3114
|
+
"description": "Comma-separated list of fields to preserve during updates",
|
|
3115
|
+
"name": "preserve-fields",
|
|
3044
3116
|
"hasDynamicHelp": false,
|
|
3045
|
-
"multiple":
|
|
3046
|
-
"options": [
|
|
3047
|
-
"console",
|
|
3048
|
-
"json",
|
|
3049
|
-
"markdown"
|
|
3050
|
-
],
|
|
3117
|
+
"multiple": true,
|
|
3051
3118
|
"type": "option"
|
|
3052
3119
|
},
|
|
3053
|
-
"
|
|
3054
|
-
"
|
|
3055
|
-
"
|
|
3056
|
-
"name": "output",
|
|
3120
|
+
"exclude-fields": {
|
|
3121
|
+
"description": "Comma-separated list of fields to exclude from pull",
|
|
3122
|
+
"name": "exclude-fields",
|
|
3057
3123
|
"hasDynamicHelp": false,
|
|
3058
|
-
"multiple":
|
|
3124
|
+
"multiple": true,
|
|
3059
3125
|
"type": "option"
|
|
3060
3126
|
},
|
|
3061
|
-
"
|
|
3062
|
-
"description": "
|
|
3063
|
-
"name": "
|
|
3064
|
-
"
|
|
3065
|
-
"
|
|
3127
|
+
"target-dir": {
|
|
3128
|
+
"description": "Specific target directory (overrides auto-discovery)",
|
|
3129
|
+
"name": "target-dir",
|
|
3130
|
+
"hasDynamicHelp": false,
|
|
3131
|
+
"multiple": false,
|
|
3132
|
+
"type": "option"
|
|
3066
3133
|
},
|
|
3067
|
-
"
|
|
3068
|
-
"
|
|
3069
|
-
"
|
|
3070
|
-
"name": "verbose",
|
|
3134
|
+
"incremental": {
|
|
3135
|
+
"description": "Only pull records updated since last successful pull",
|
|
3136
|
+
"name": "incremental",
|
|
3071
3137
|
"allowNo": false,
|
|
3072
3138
|
"type": "boolean"
|
|
3073
3139
|
},
|
|
3074
|
-
"
|
|
3075
|
-
"description": "
|
|
3076
|
-
"name": "
|
|
3140
|
+
"since": {
|
|
3141
|
+
"description": "Only pull records updated after this ISO 8601 timestamp",
|
|
3142
|
+
"name": "since",
|
|
3077
3143
|
"hasDynamicHelp": false,
|
|
3078
3144
|
"multiple": false,
|
|
3079
3145
|
"type": "option"
|
|
@@ -3081,268 +3147,270 @@
|
|
|
3081
3147
|
},
|
|
3082
3148
|
"hasDynamicHelp": false,
|
|
3083
3149
|
"hiddenAliases": [],
|
|
3084
|
-
"id": "
|
|
3150
|
+
"id": "sync:pull",
|
|
3085
3151
|
"pluginAlias": "@memberjunction/cli",
|
|
3086
3152
|
"pluginName": "@memberjunction/cli",
|
|
3087
3153
|
"pluginType": "core",
|
|
3088
3154
|
"strict": true,
|
|
3089
3155
|
"enableJsonFlag": false,
|
|
3156
|
+
"Usage": {
|
|
3157
|
+
"domain": "sync",
|
|
3158
|
+
"command": "sync:pull",
|
|
3159
|
+
"summary": "Pull database records into local metadata files.",
|
|
3160
|
+
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
3161
|
+
"flags": [
|
|
3162
|
+
{
|
|
3163
|
+
"name": "--entity",
|
|
3164
|
+
"type": "string",
|
|
3165
|
+
"description": "Entity name to pull (required)"
|
|
3166
|
+
},
|
|
3167
|
+
{
|
|
3168
|
+
"name": "--filter",
|
|
3169
|
+
"type": "string",
|
|
3170
|
+
"description": "Extra SQL filter for which records to pull"
|
|
3171
|
+
},
|
|
3172
|
+
{
|
|
3173
|
+
"name": "--merge-strategy",
|
|
3174
|
+
"type": "merge|overwrite|skip",
|
|
3175
|
+
"description": "How to reconcile existing files"
|
|
3176
|
+
},
|
|
3177
|
+
{
|
|
3178
|
+
"name": "--dry-run",
|
|
3179
|
+
"type": "boolean",
|
|
3180
|
+
"description": "Report what would be pulled without writing"
|
|
3181
|
+
},
|
|
3182
|
+
{
|
|
3183
|
+
"name": "--format",
|
|
3184
|
+
"type": "text|json|md",
|
|
3185
|
+
"description": "Output format (json for machine-readable result)"
|
|
3186
|
+
}
|
|
3187
|
+
],
|
|
3188
|
+
"examples": [
|
|
3189
|
+
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
3190
|
+
"mj sync pull --entity=\"Actions\" --format=json"
|
|
3191
|
+
],
|
|
3192
|
+
"runtime": {
|
|
3193
|
+
"class": "variable",
|
|
3194
|
+
"typicalSeconds": 15,
|
|
3195
|
+
"note": "scales with number of records matched for --entity"
|
|
3196
|
+
}
|
|
3197
|
+
},
|
|
3090
3198
|
"isESM": true,
|
|
3091
3199
|
"relativePath": [
|
|
3092
3200
|
"dist",
|
|
3093
3201
|
"commands",
|
|
3094
|
-
"
|
|
3095
|
-
"
|
|
3202
|
+
"sync",
|
|
3203
|
+
"pull.js"
|
|
3096
3204
|
]
|
|
3097
3205
|
},
|
|
3098
|
-
"
|
|
3206
|
+
"sync:push": {
|
|
3099
3207
|
"aliases": [],
|
|
3100
|
-
"args": {
|
|
3101
|
-
|
|
3102
|
-
"description": "Test suite ID to execute",
|
|
3103
|
-
"name": "suiteId",
|
|
3104
|
-
"required": false
|
|
3105
|
-
}
|
|
3106
|
-
},
|
|
3107
|
-
"description": "Execute a test suite",
|
|
3208
|
+
"args": {},
|
|
3209
|
+
"description": "Push local file changes to the database",
|
|
3108
3210
|
"examples": [
|
|
3109
|
-
"<%= config.bin %> <%= command.id %>
|
|
3110
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3111
|
-
"<%= config.bin %> <%= command.id %>
|
|
3112
|
-
"<%= config.bin %> <%= command.id %>
|
|
3211
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3212
|
+
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
3213
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
3214
|
+
"<%= config.bin %> <%= command.id %> --ci --format=json"
|
|
3113
3215
|
],
|
|
3114
3216
|
"flags": {
|
|
3115
|
-
"name": {
|
|
3116
|
-
"char": "n",
|
|
3117
|
-
"description": "Test suite name to execute",
|
|
3118
|
-
"name": "name",
|
|
3119
|
-
"hasDynamicHelp": false,
|
|
3120
|
-
"multiple": false,
|
|
3121
|
-
"type": "option"
|
|
3122
|
-
},
|
|
3123
3217
|
"format": {
|
|
3124
|
-
"
|
|
3125
|
-
"description": "Output format",
|
|
3218
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced)",
|
|
3126
3219
|
"name": "format",
|
|
3127
|
-
"default": "
|
|
3220
|
+
"default": "text",
|
|
3128
3221
|
"hasDynamicHelp": false,
|
|
3129
3222
|
"multiple": false,
|
|
3130
3223
|
"options": [
|
|
3131
|
-
"
|
|
3224
|
+
"text",
|
|
3132
3225
|
"json",
|
|
3133
|
-
"
|
|
3226
|
+
"md"
|
|
3134
3227
|
],
|
|
3135
3228
|
"type": "option"
|
|
3136
3229
|
},
|
|
3137
|
-
"output": {
|
|
3138
|
-
"char": "o",
|
|
3139
|
-
"description": "Output file path",
|
|
3140
|
-
"name": "output",
|
|
3141
|
-
"hasDynamicHelp": false,
|
|
3142
|
-
"multiple": false,
|
|
3143
|
-
"type": "option"
|
|
3144
|
-
},
|
|
3145
3230
|
"verbose": {
|
|
3146
3231
|
"char": "v",
|
|
3147
|
-
"description": "Show detailed
|
|
3232
|
+
"description": "Show detailed output",
|
|
3148
3233
|
"name": "verbose",
|
|
3149
3234
|
"allowNo": false,
|
|
3150
3235
|
"type": "boolean"
|
|
3151
3236
|
},
|
|
3152
|
-
"
|
|
3153
|
-
"
|
|
3154
|
-
"
|
|
3155
|
-
"name": "delay",
|
|
3156
|
-
"default": 0,
|
|
3157
|
-
"hasDynamicHelp": false,
|
|
3158
|
-
"multiple": false,
|
|
3159
|
-
"type": "option"
|
|
3160
|
-
},
|
|
3161
|
-
"parallel": {
|
|
3162
|
-
"char": "p",
|
|
3163
|
-
"description": "Run tests in parallel with shared browser sessions",
|
|
3164
|
-
"name": "parallel",
|
|
3237
|
+
"no-banner": {
|
|
3238
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
3239
|
+
"name": "no-banner",
|
|
3165
3240
|
"allowNo": false,
|
|
3166
3241
|
"type": "boolean"
|
|
3167
3242
|
},
|
|
3168
|
-
"
|
|
3169
|
-
"description": "
|
|
3170
|
-
"name": "
|
|
3171
|
-
"default": 4,
|
|
3243
|
+
"dir": {
|
|
3244
|
+
"description": "Specific entity directory to push",
|
|
3245
|
+
"name": "dir",
|
|
3172
3246
|
"hasDynamicHelp": false,
|
|
3173
3247
|
"multiple": false,
|
|
3174
3248
|
"type": "option"
|
|
3175
3249
|
},
|
|
3176
|
-
"
|
|
3177
|
-
"description": "
|
|
3178
|
-
"name": "
|
|
3179
|
-
"
|
|
3180
|
-
"
|
|
3181
|
-
"type": "option"
|
|
3250
|
+
"dry-run": {
|
|
3251
|
+
"description": "Show what would be pushed without actually pushing",
|
|
3252
|
+
"name": "dry-run",
|
|
3253
|
+
"allowNo": false,
|
|
3254
|
+
"type": "boolean"
|
|
3182
3255
|
},
|
|
3183
|
-
"
|
|
3184
|
-
"description": "
|
|
3185
|
-
"name": "
|
|
3186
|
-
"hasDynamicHelp": false,
|
|
3187
|
-
"multiple": false,
|
|
3188
|
-
"type": "option"
|
|
3189
|
-
}
|
|
3190
|
-
},
|
|
3191
|
-
"hasDynamicHelp": false,
|
|
3192
|
-
"hiddenAliases": [],
|
|
3193
|
-
"id": "test:suite",
|
|
3194
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3195
|
-
"pluginName": "@memberjunction/cli",
|
|
3196
|
-
"pluginType": "core",
|
|
3197
|
-
"strict": true,
|
|
3198
|
-
"enableJsonFlag": false,
|
|
3199
|
-
"isESM": true,
|
|
3200
|
-
"relativePath": [
|
|
3201
|
-
"dist",
|
|
3202
|
-
"commands",
|
|
3203
|
-
"test",
|
|
3204
|
-
"suite.js"
|
|
3205
|
-
]
|
|
3206
|
-
},
|
|
3207
|
-
"test:validate": {
|
|
3208
|
-
"aliases": [],
|
|
3209
|
-
"args": {
|
|
3210
|
-
"testId": {
|
|
3211
|
-
"description": "Test ID to validate",
|
|
3212
|
-
"name": "testId",
|
|
3213
|
-
"required": false
|
|
3214
|
-
}
|
|
3215
|
-
},
|
|
3216
|
-
"description": "Validate test definitions without executing",
|
|
3217
|
-
"examples": [
|
|
3218
|
-
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
3219
|
-
"<%= config.bin %> <%= command.id %> --all",
|
|
3220
|
-
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
3221
|
-
"<%= config.bin %> <%= command.id %> --all --save-report",
|
|
3222
|
-
"<%= config.bin %> <%= command.id %> --all --output=validation-report.md"
|
|
3223
|
-
],
|
|
3224
|
-
"flags": {
|
|
3225
|
-
"all": {
|
|
3226
|
-
"char": "a",
|
|
3227
|
-
"description": "Validate all tests",
|
|
3228
|
-
"name": "all",
|
|
3256
|
+
"ci": {
|
|
3257
|
+
"description": "CI mode - no prompts, fail on issues",
|
|
3258
|
+
"name": "ci",
|
|
3229
3259
|
"allowNo": false,
|
|
3230
3260
|
"type": "boolean"
|
|
3231
3261
|
},
|
|
3232
|
-
"
|
|
3233
|
-
"
|
|
3234
|
-
"
|
|
3235
|
-
"
|
|
3236
|
-
"
|
|
3237
|
-
"multiple": false,
|
|
3238
|
-
"type": "option"
|
|
3262
|
+
"no-validate": {
|
|
3263
|
+
"description": "Skip validation before push",
|
|
3264
|
+
"name": "no-validate",
|
|
3265
|
+
"allowNo": false,
|
|
3266
|
+
"type": "boolean"
|
|
3239
3267
|
},
|
|
3240
|
-
"
|
|
3241
|
-
"description": "
|
|
3242
|
-
"name": "
|
|
3268
|
+
"delete-db-only": {
|
|
3269
|
+
"description": "Delete database-only records that reference records being deleted (prevents FK errors)",
|
|
3270
|
+
"name": "delete-db-only",
|
|
3243
3271
|
"allowNo": false,
|
|
3244
3272
|
"type": "boolean"
|
|
3245
3273
|
},
|
|
3246
|
-
"
|
|
3247
|
-
"
|
|
3248
|
-
"
|
|
3249
|
-
"
|
|
3250
|
-
"default": "console",
|
|
3274
|
+
"parallel-batch-size": {
|
|
3275
|
+
"description": "Number of records to process in parallel (default: 10)",
|
|
3276
|
+
"name": "parallel-batch-size",
|
|
3277
|
+
"default": 10,
|
|
3251
3278
|
"hasDynamicHelp": false,
|
|
3252
3279
|
"multiple": false,
|
|
3253
|
-
"options": [
|
|
3254
|
-
"console",
|
|
3255
|
-
"json",
|
|
3256
|
-
"markdown"
|
|
3257
|
-
],
|
|
3258
3280
|
"type": "option"
|
|
3259
3281
|
},
|
|
3260
|
-
"
|
|
3261
|
-
"
|
|
3262
|
-
"
|
|
3263
|
-
"name": "output",
|
|
3282
|
+
"include": {
|
|
3283
|
+
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
3284
|
+
"name": "include",
|
|
3264
3285
|
"hasDynamicHelp": false,
|
|
3265
3286
|
"multiple": false,
|
|
3266
3287
|
"type": "option"
|
|
3267
3288
|
},
|
|
3268
|
-
"
|
|
3269
|
-
"
|
|
3270
|
-
"
|
|
3271
|
-
"
|
|
3289
|
+
"exclude": {
|
|
3290
|
+
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
3291
|
+
"name": "exclude",
|
|
3292
|
+
"hasDynamicHelp": false,
|
|
3293
|
+
"multiple": false,
|
|
3294
|
+
"type": "option"
|
|
3295
|
+
},
|
|
3296
|
+
"incremental": {
|
|
3297
|
+
"description": "Skip unchanged files using stored checksums from last push",
|
|
3298
|
+
"name": "incremental",
|
|
3299
|
+
"allowNo": false,
|
|
3300
|
+
"type": "boolean"
|
|
3301
|
+
},
|
|
3302
|
+
"change-detail": {
|
|
3303
|
+
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
3304
|
+
"name": "change-detail",
|
|
3272
3305
|
"allowNo": false,
|
|
3273
3306
|
"type": "boolean"
|
|
3274
3307
|
}
|
|
3275
3308
|
},
|
|
3276
3309
|
"hasDynamicHelp": false,
|
|
3277
3310
|
"hiddenAliases": [],
|
|
3278
|
-
"id": "
|
|
3311
|
+
"id": "sync:push",
|
|
3279
3312
|
"pluginAlias": "@memberjunction/cli",
|
|
3280
3313
|
"pluginName": "@memberjunction/cli",
|
|
3281
3314
|
"pluginType": "core",
|
|
3282
3315
|
"strict": true,
|
|
3283
3316
|
"enableJsonFlag": false,
|
|
3317
|
+
"Usage": {
|
|
3318
|
+
"domain": "sync",
|
|
3319
|
+
"command": "sync:push",
|
|
3320
|
+
"summary": "Push local metadata files to the database (upsert).",
|
|
3321
|
+
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
3322
|
+
"flags": [
|
|
3323
|
+
{
|
|
3324
|
+
"name": "--dir",
|
|
3325
|
+
"type": "string",
|
|
3326
|
+
"description": "Entity directory to push"
|
|
3327
|
+
},
|
|
3328
|
+
{
|
|
3329
|
+
"name": "--dry-run",
|
|
3330
|
+
"type": "boolean",
|
|
3331
|
+
"description": "Report what would change without writing"
|
|
3332
|
+
},
|
|
3333
|
+
{
|
|
3334
|
+
"name": "--ci",
|
|
3335
|
+
"type": "boolean",
|
|
3336
|
+
"description": "No prompts; non-zero exit on error"
|
|
3337
|
+
},
|
|
3338
|
+
{
|
|
3339
|
+
"name": "--no-validate",
|
|
3340
|
+
"type": "boolean",
|
|
3341
|
+
"description": "Skip pre-push validation"
|
|
3342
|
+
},
|
|
3343
|
+
{
|
|
3344
|
+
"name": "--incremental",
|
|
3345
|
+
"type": "boolean",
|
|
3346
|
+
"description": "Skip unchanged files using stored checksums"
|
|
3347
|
+
},
|
|
3348
|
+
{
|
|
3349
|
+
"name": "--format",
|
|
3350
|
+
"type": "text|json|md",
|
|
3351
|
+
"description": "Output format (json for machine-readable result)"
|
|
3352
|
+
}
|
|
3353
|
+
],
|
|
3354
|
+
"examples": [
|
|
3355
|
+
"mj sync push --dir=ai-agents",
|
|
3356
|
+
"mj sync push --ci --format=json"
|
|
3357
|
+
],
|
|
3358
|
+
"runtime": {
|
|
3359
|
+
"class": "variable",
|
|
3360
|
+
"typicalSeconds": 20,
|
|
3361
|
+
"note": "scales with number of records in --dir"
|
|
3362
|
+
}
|
|
3363
|
+
},
|
|
3284
3364
|
"isESM": true,
|
|
3285
3365
|
"relativePath": [
|
|
3286
3366
|
"dist",
|
|
3287
3367
|
"commands",
|
|
3288
|
-
"
|
|
3289
|
-
"
|
|
3368
|
+
"sync",
|
|
3369
|
+
"push.js"
|
|
3290
3370
|
]
|
|
3291
3371
|
},
|
|
3292
|
-
"sync:
|
|
3372
|
+
"sync:status": {
|
|
3293
3373
|
"aliases": [],
|
|
3294
3374
|
"args": {},
|
|
3295
|
-
"description": "
|
|
3375
|
+
"description": "Show status of local files vs database",
|
|
3296
3376
|
"examples": [
|
|
3297
3377
|
"<%= config.bin %> <%= command.id %>",
|
|
3298
3378
|
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
3299
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3300
|
-
"<%= config.bin %> <%= command.id %> --all"
|
|
3379
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
3301
3380
|
],
|
|
3302
3381
|
"flags": {
|
|
3303
3382
|
"dir": {
|
|
3304
|
-
"description": "Specific entity directory to
|
|
3383
|
+
"description": "Specific entity directory to check status",
|
|
3305
3384
|
"name": "dir",
|
|
3306
3385
|
"hasDynamicHelp": false,
|
|
3307
3386
|
"multiple": false,
|
|
3308
3387
|
"type": "option"
|
|
3309
3388
|
},
|
|
3310
|
-
"sections": {
|
|
3311
|
-
"description": "Comma-separated list of sections to reset (dependencies,references,related,lookup)",
|
|
3312
|
-
"name": "sections",
|
|
3313
|
-
"hasDynamicHelp": false,
|
|
3314
|
-
"multiple": false,
|
|
3315
|
-
"type": "option"
|
|
3316
|
-
},
|
|
3317
|
-
"all": {
|
|
3318
|
-
"description": "Reset all metadata sections",
|
|
3319
|
-
"name": "all",
|
|
3320
|
-
"allowNo": false,
|
|
3321
|
-
"type": "boolean"
|
|
3322
|
-
},
|
|
3323
|
-
"dry-run": {
|
|
3324
|
-
"description": "Show what would be reset without actually resetting",
|
|
3325
|
-
"name": "dry-run",
|
|
3326
|
-
"allowNo": false,
|
|
3327
|
-
"type": "boolean"
|
|
3328
|
-
},
|
|
3329
|
-
"force": {
|
|
3330
|
-
"description": "Skip confirmation prompts",
|
|
3331
|
-
"name": "force",
|
|
3332
|
-
"allowNo": false,
|
|
3333
|
-
"type": "boolean"
|
|
3334
|
-
},
|
|
3335
3389
|
"verbose": {
|
|
3336
3390
|
"char": "v",
|
|
3337
|
-
"description": "Show detailed
|
|
3391
|
+
"description": "Show detailed field-level differences",
|
|
3338
3392
|
"name": "verbose",
|
|
3339
3393
|
"allowNo": false,
|
|
3340
3394
|
"type": "boolean"
|
|
3395
|
+
},
|
|
3396
|
+
"include": {
|
|
3397
|
+
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
3398
|
+
"name": "include",
|
|
3399
|
+
"hasDynamicHelp": false,
|
|
3400
|
+
"multiple": false,
|
|
3401
|
+
"type": "option"
|
|
3402
|
+
},
|
|
3403
|
+
"exclude": {
|
|
3404
|
+
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
3405
|
+
"name": "exclude",
|
|
3406
|
+
"hasDynamicHelp": false,
|
|
3407
|
+
"multiple": false,
|
|
3408
|
+
"type": "option"
|
|
3341
3409
|
}
|
|
3342
3410
|
},
|
|
3343
3411
|
"hasDynamicHelp": false,
|
|
3344
3412
|
"hiddenAliases": [],
|
|
3345
|
-
"id": "sync:
|
|
3413
|
+
"id": "sync:status",
|
|
3346
3414
|
"pluginAlias": "@memberjunction/cli",
|
|
3347
3415
|
"pluginName": "@memberjunction/cli",
|
|
3348
3416
|
"pluginType": "core",
|
|
@@ -3353,20 +3421,31 @@
|
|
|
3353
3421
|
"dist",
|
|
3354
3422
|
"commands",
|
|
3355
3423
|
"sync",
|
|
3356
|
-
"
|
|
3424
|
+
"status.js"
|
|
3357
3425
|
]
|
|
3358
3426
|
},
|
|
3359
|
-
"sync:
|
|
3427
|
+
"sync:usage": {
|
|
3360
3428
|
"aliases": [],
|
|
3361
3429
|
"args": {},
|
|
3362
|
-
"description": "
|
|
3363
|
-
"
|
|
3364
|
-
"
|
|
3365
|
-
|
|
3366
|
-
|
|
3430
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj sync` command.",
|
|
3431
|
+
"flags": {
|
|
3432
|
+
"format": {
|
|
3433
|
+
"description": "Output format",
|
|
3434
|
+
"name": "format",
|
|
3435
|
+
"default": "text",
|
|
3436
|
+
"hasDynamicHelp": false,
|
|
3437
|
+
"multiple": false,
|
|
3438
|
+
"options": [
|
|
3439
|
+
"text",
|
|
3440
|
+
"json",
|
|
3441
|
+
"md"
|
|
3442
|
+
],
|
|
3443
|
+
"type": "option"
|
|
3444
|
+
}
|
|
3445
|
+
},
|
|
3367
3446
|
"hasDynamicHelp": false,
|
|
3368
3447
|
"hiddenAliases": [],
|
|
3369
|
-
"id": "sync:
|
|
3448
|
+
"id": "sync:usage",
|
|
3370
3449
|
"pluginAlias": "@memberjunction/cli",
|
|
3371
3450
|
"pluginName": "@memberjunction/cli",
|
|
3372
3451
|
"pluginType": "core",
|
|
@@ -3377,147 +3456,211 @@
|
|
|
3377
3456
|
"dist",
|
|
3378
3457
|
"commands",
|
|
3379
3458
|
"sync",
|
|
3380
|
-
"
|
|
3459
|
+
"usage.js"
|
|
3381
3460
|
]
|
|
3382
3461
|
},
|
|
3383
|
-
"sync:
|
|
3462
|
+
"sync:validate": {
|
|
3384
3463
|
"aliases": [],
|
|
3385
3464
|
"args": {},
|
|
3386
|
-
"description": "
|
|
3465
|
+
"description": "Validate metadata files",
|
|
3387
3466
|
"examples": [
|
|
3388
|
-
"<%= config.bin %> <%= command.id %>
|
|
3389
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3390
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3467
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3468
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
3469
|
+
"<%= config.bin %> <%= command.id %> --save-report",
|
|
3470
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
3391
3471
|
],
|
|
3392
3472
|
"flags": {
|
|
3393
|
-
"
|
|
3394
|
-
"description": "
|
|
3395
|
-
"name": "
|
|
3396
|
-
"default": "text",
|
|
3473
|
+
"dir": {
|
|
3474
|
+
"description": "Specific entity directory to validate",
|
|
3475
|
+
"name": "dir",
|
|
3397
3476
|
"hasDynamicHelp": false,
|
|
3398
3477
|
"multiple": false,
|
|
3399
|
-
"options": [
|
|
3400
|
-
"text",
|
|
3401
|
-
"json",
|
|
3402
|
-
"md"
|
|
3403
|
-
],
|
|
3404
3478
|
"type": "option"
|
|
3405
3479
|
},
|
|
3406
3480
|
"verbose": {
|
|
3407
3481
|
"char": "v",
|
|
3408
|
-
"description": "Show detailed output",
|
|
3482
|
+
"description": "Show detailed validation output",
|
|
3409
3483
|
"name": "verbose",
|
|
3410
3484
|
"allowNo": false,
|
|
3411
3485
|
"type": "boolean"
|
|
3412
3486
|
},
|
|
3413
|
-
"
|
|
3414
|
-
"description": "
|
|
3415
|
-
"name": "
|
|
3487
|
+
"save-report": {
|
|
3488
|
+
"description": "Save validation report as markdown file",
|
|
3489
|
+
"name": "save-report",
|
|
3416
3490
|
"allowNo": false,
|
|
3417
3491
|
"type": "boolean"
|
|
3418
3492
|
},
|
|
3419
|
-
"
|
|
3420
|
-
"description": "
|
|
3421
|
-
"name": "
|
|
3422
|
-
"required": true,
|
|
3493
|
+
"output": {
|
|
3494
|
+
"description": "Output file path for validation report (default: validation-report.md)",
|
|
3495
|
+
"name": "output",
|
|
3423
3496
|
"hasDynamicHelp": false,
|
|
3424
3497
|
"multiple": false,
|
|
3425
3498
|
"type": "option"
|
|
3426
|
-
}
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3499
|
+
}
|
|
3500
|
+
},
|
|
3501
|
+
"hasDynamicHelp": false,
|
|
3502
|
+
"hiddenAliases": [],
|
|
3503
|
+
"id": "sync:validate",
|
|
3504
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3505
|
+
"pluginName": "@memberjunction/cli",
|
|
3506
|
+
"pluginType": "core",
|
|
3507
|
+
"strict": true,
|
|
3508
|
+
"enableJsonFlag": false,
|
|
3509
|
+
"isESM": true,
|
|
3510
|
+
"relativePath": [
|
|
3511
|
+
"dist",
|
|
3512
|
+
"commands",
|
|
3513
|
+
"sync",
|
|
3514
|
+
"validate.js"
|
|
3515
|
+
]
|
|
3516
|
+
},
|
|
3517
|
+
"sync:watch": {
|
|
3518
|
+
"aliases": [],
|
|
3519
|
+
"args": {},
|
|
3520
|
+
"description": "Watch for file changes and sync automatically",
|
|
3521
|
+
"examples": [
|
|
3522
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3523
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
3524
|
+
"<%= config.bin %> <%= command.id %> --debounce=1000",
|
|
3525
|
+
"<%= config.bin %> <%= command.id %> --no-validate"
|
|
3526
|
+
],
|
|
3527
|
+
"flags": {
|
|
3528
|
+
"dir": {
|
|
3529
|
+
"description": "Specific entity directory to watch",
|
|
3530
|
+
"name": "dir",
|
|
3430
3531
|
"hasDynamicHelp": false,
|
|
3431
3532
|
"multiple": false,
|
|
3432
3533
|
"type": "option"
|
|
3433
3534
|
},
|
|
3434
|
-
"
|
|
3435
|
-
"description": "
|
|
3436
|
-
"name": "
|
|
3437
|
-
"allowNo": false,
|
|
3438
|
-
"type": "boolean"
|
|
3439
|
-
},
|
|
3440
|
-
"multi-file": {
|
|
3441
|
-
"description": "Create a single file with multiple records (provide filename)",
|
|
3442
|
-
"name": "multi-file",
|
|
3535
|
+
"debounce": {
|
|
3536
|
+
"description": "Debounce delay in milliseconds (default: 500)",
|
|
3537
|
+
"name": "debounce",
|
|
3443
3538
|
"hasDynamicHelp": false,
|
|
3444
3539
|
"multiple": false,
|
|
3445
3540
|
"type": "option"
|
|
3446
3541
|
},
|
|
3447
3542
|
"no-validate": {
|
|
3448
|
-
"description": "Skip validation before
|
|
3543
|
+
"description": "Skip validation before sync",
|
|
3449
3544
|
"name": "no-validate",
|
|
3450
3545
|
"allowNo": false,
|
|
3451
3546
|
"type": "boolean"
|
|
3452
3547
|
},
|
|
3453
|
-
"
|
|
3454
|
-
"
|
|
3455
|
-
"
|
|
3456
|
-
"
|
|
3457
|
-
"type": "boolean"
|
|
3458
|
-
},
|
|
3459
|
-
"create-new": {
|
|
3460
|
-
"description": "Create new files for records not found locally",
|
|
3461
|
-
"name": "create-new",
|
|
3462
|
-
"allowNo": false,
|
|
3463
|
-
"type": "boolean"
|
|
3464
|
-
},
|
|
3465
|
-
"backup-before-update": {
|
|
3466
|
-
"description": "Create backups before updating files",
|
|
3467
|
-
"name": "backup-before-update",
|
|
3548
|
+
"verbose": {
|
|
3549
|
+
"char": "v",
|
|
3550
|
+
"description": "Show detailed output",
|
|
3551
|
+
"name": "verbose",
|
|
3468
3552
|
"allowNo": false,
|
|
3469
3553
|
"type": "boolean"
|
|
3554
|
+
}
|
|
3555
|
+
},
|
|
3556
|
+
"hasDynamicHelp": false,
|
|
3557
|
+
"hiddenAliases": [],
|
|
3558
|
+
"id": "sync:watch",
|
|
3559
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3560
|
+
"pluginName": "@memberjunction/cli",
|
|
3561
|
+
"pluginType": "core",
|
|
3562
|
+
"strict": true,
|
|
3563
|
+
"enableJsonFlag": false,
|
|
3564
|
+
"isESM": true,
|
|
3565
|
+
"relativePath": [
|
|
3566
|
+
"dist",
|
|
3567
|
+
"commands",
|
|
3568
|
+
"sync",
|
|
3569
|
+
"watch.js"
|
|
3570
|
+
]
|
|
3571
|
+
},
|
|
3572
|
+
"test:compare": {
|
|
3573
|
+
"aliases": [],
|
|
3574
|
+
"args": {
|
|
3575
|
+
"runId1": {
|
|
3576
|
+
"description": "First test run ID to compare",
|
|
3577
|
+
"name": "runId1",
|
|
3578
|
+
"required": false
|
|
3470
3579
|
},
|
|
3471
|
-
"
|
|
3472
|
-
"description": "
|
|
3473
|
-
"name": "
|
|
3474
|
-
"
|
|
3580
|
+
"runId2": {
|
|
3581
|
+
"description": "Second test run ID to compare",
|
|
3582
|
+
"name": "runId2",
|
|
3583
|
+
"required": false
|
|
3584
|
+
}
|
|
3585
|
+
},
|
|
3586
|
+
"description": "Compare test runs for regression detection",
|
|
3587
|
+
"examples": [
|
|
3588
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3589
|
+
"<%= config.bin %> <%= command.id %> --latest",
|
|
3590
|
+
"<%= config.bin %> <%= command.id %> <run-id-1> <run-id-2>",
|
|
3591
|
+
"<%= config.bin %> <%= command.id %> -v 5.17.0 -v 5.18.0",
|
|
3592
|
+
"<%= config.bin %> <%= command.id %> -c abc1234 -c def5678",
|
|
3593
|
+
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
3594
|
+
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
3595
|
+
],
|
|
3596
|
+
"flags": {
|
|
3597
|
+
"version": {
|
|
3598
|
+
"char": "v",
|
|
3599
|
+
"description": "Compare runs by version",
|
|
3600
|
+
"name": "version",
|
|
3475
3601
|
"hasDynamicHelp": false,
|
|
3476
|
-
"multiple":
|
|
3477
|
-
"options": [
|
|
3478
|
-
"merge",
|
|
3479
|
-
"overwrite",
|
|
3480
|
-
"skip"
|
|
3481
|
-
],
|
|
3602
|
+
"multiple": true,
|
|
3482
3603
|
"type": "option"
|
|
3483
3604
|
},
|
|
3484
|
-
"
|
|
3485
|
-
"
|
|
3486
|
-
"
|
|
3605
|
+
"commit": {
|
|
3606
|
+
"char": "c",
|
|
3607
|
+
"description": "Compare runs by git commit",
|
|
3608
|
+
"name": "commit",
|
|
3487
3609
|
"hasDynamicHelp": false,
|
|
3488
|
-
"multiple":
|
|
3610
|
+
"multiple": true,
|
|
3489
3611
|
"type": "option"
|
|
3490
3612
|
},
|
|
3491
|
-
"
|
|
3492
|
-
"description": "
|
|
3493
|
-
"name": "
|
|
3613
|
+
"diff-only": {
|
|
3614
|
+
"description": "Show only differences",
|
|
3615
|
+
"name": "diff-only",
|
|
3616
|
+
"allowNo": false,
|
|
3617
|
+
"type": "boolean"
|
|
3618
|
+
},
|
|
3619
|
+
"latest": {
|
|
3620
|
+
"char": "l",
|
|
3621
|
+
"description": "Compare the two most recent completed suite runs",
|
|
3622
|
+
"name": "latest",
|
|
3623
|
+
"allowNo": false,
|
|
3624
|
+
"type": "boolean"
|
|
3625
|
+
},
|
|
3626
|
+
"from-json": {
|
|
3627
|
+
"description": "Compare two results.json files directly (no DB). Pass twice: --from-json PREV --from-json CURR",
|
|
3628
|
+
"name": "from-json",
|
|
3494
3629
|
"hasDynamicHelp": false,
|
|
3495
3630
|
"multiple": true,
|
|
3496
3631
|
"type": "option"
|
|
3497
3632
|
},
|
|
3498
|
-
"
|
|
3499
|
-
"
|
|
3500
|
-
"
|
|
3633
|
+
"format": {
|
|
3634
|
+
"char": "f",
|
|
3635
|
+
"description": "Output format",
|
|
3636
|
+
"name": "format",
|
|
3637
|
+
"default": "console",
|
|
3501
3638
|
"hasDynamicHelp": false,
|
|
3502
|
-
"multiple":
|
|
3639
|
+
"multiple": false,
|
|
3640
|
+
"options": [
|
|
3641
|
+
"console",
|
|
3642
|
+
"json",
|
|
3643
|
+
"markdown"
|
|
3644
|
+
],
|
|
3503
3645
|
"type": "option"
|
|
3504
3646
|
},
|
|
3505
|
-
"
|
|
3506
|
-
"
|
|
3507
|
-
"
|
|
3647
|
+
"output": {
|
|
3648
|
+
"char": "o",
|
|
3649
|
+
"description": "Output file path",
|
|
3650
|
+
"name": "output",
|
|
3508
3651
|
"hasDynamicHelp": false,
|
|
3509
3652
|
"multiple": false,
|
|
3510
3653
|
"type": "option"
|
|
3511
3654
|
},
|
|
3512
|
-
"
|
|
3513
|
-
"description": "
|
|
3514
|
-
"name": "
|
|
3655
|
+
"verbose": {
|
|
3656
|
+
"description": "Show detailed information",
|
|
3657
|
+
"name": "verbose",
|
|
3515
3658
|
"allowNo": false,
|
|
3516
3659
|
"type": "boolean"
|
|
3517
3660
|
},
|
|
3518
|
-
"
|
|
3519
|
-
"description": "
|
|
3520
|
-
"name": "
|
|
3661
|
+
"tag": {
|
|
3662
|
+
"description": "Filter suite runs by tag (matches against MJTestSuiteRunEntity.Tags). Useful for isolating runs from a specific source environment in an archive MJ. DB mode only — --from-json ignores this flag.",
|
|
3663
|
+
"name": "tag",
|
|
3521
3664
|
"hasDynamicHelp": false,
|
|
3522
3665
|
"multiple": false,
|
|
3523
3666
|
"type": "option"
|
|
@@ -3525,270 +3668,219 @@
|
|
|
3525
3668
|
},
|
|
3526
3669
|
"hasDynamicHelp": false,
|
|
3527
3670
|
"hiddenAliases": [],
|
|
3528
|
-
"id": "
|
|
3671
|
+
"id": "test:compare",
|
|
3529
3672
|
"pluginAlias": "@memberjunction/cli",
|
|
3530
3673
|
"pluginName": "@memberjunction/cli",
|
|
3531
3674
|
"pluginType": "core",
|
|
3532
3675
|
"strict": true,
|
|
3533
3676
|
"enableJsonFlag": false,
|
|
3534
|
-
"Usage": {
|
|
3535
|
-
"domain": "sync",
|
|
3536
|
-
"command": "sync:pull",
|
|
3537
|
-
"summary": "Pull database records into local metadata files.",
|
|
3538
|
-
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
3539
|
-
"flags": [
|
|
3540
|
-
{
|
|
3541
|
-
"name": "--entity",
|
|
3542
|
-
"type": "string",
|
|
3543
|
-
"description": "Entity name to pull (required)"
|
|
3544
|
-
},
|
|
3545
|
-
{
|
|
3546
|
-
"name": "--filter",
|
|
3547
|
-
"type": "string",
|
|
3548
|
-
"description": "Extra SQL filter for which records to pull"
|
|
3549
|
-
},
|
|
3550
|
-
{
|
|
3551
|
-
"name": "--merge-strategy",
|
|
3552
|
-
"type": "merge|overwrite|skip",
|
|
3553
|
-
"description": "How to reconcile existing files"
|
|
3554
|
-
},
|
|
3555
|
-
{
|
|
3556
|
-
"name": "--dry-run",
|
|
3557
|
-
"type": "boolean",
|
|
3558
|
-
"description": "Report what would be pulled without writing"
|
|
3559
|
-
},
|
|
3560
|
-
{
|
|
3561
|
-
"name": "--format",
|
|
3562
|
-
"type": "text|json|md",
|
|
3563
|
-
"description": "Output format (json for machine-readable result)"
|
|
3564
|
-
}
|
|
3565
|
-
],
|
|
3566
|
-
"examples": [
|
|
3567
|
-
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
3568
|
-
"mj sync pull --entity=\"Actions\" --format=json"
|
|
3569
|
-
],
|
|
3570
|
-
"runtime": {
|
|
3571
|
-
"class": "variable",
|
|
3572
|
-
"typicalSeconds": 15,
|
|
3573
|
-
"note": "scales with number of records matched for --entity"
|
|
3574
|
-
}
|
|
3575
|
-
},
|
|
3576
3677
|
"isESM": true,
|
|
3577
3678
|
"relativePath": [
|
|
3578
3679
|
"dist",
|
|
3579
3680
|
"commands",
|
|
3580
|
-
"
|
|
3581
|
-
"
|
|
3681
|
+
"test",
|
|
3682
|
+
"compare.js"
|
|
3582
3683
|
]
|
|
3583
3684
|
},
|
|
3584
|
-
"
|
|
3685
|
+
"test:history": {
|
|
3585
3686
|
"aliases": [],
|
|
3586
3687
|
"args": {},
|
|
3587
|
-
"description": "
|
|
3688
|
+
"description": "View test execution history",
|
|
3588
3689
|
"examples": [
|
|
3589
3690
|
"<%= config.bin %> <%= command.id %>",
|
|
3590
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3591
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3592
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3691
|
+
"<%= config.bin %> <%= command.id %> --test=<test-id>",
|
|
3692
|
+
"<%= config.bin %> <%= command.id %> --suite=<suite-id>",
|
|
3693
|
+
"<%= config.bin %> <%= command.id %> --since=\"2024-01-01\"",
|
|
3694
|
+
"<%= config.bin %> <%= command.id %> --limit=50"
|
|
3593
3695
|
],
|
|
3594
3696
|
"flags": {
|
|
3595
|
-
"
|
|
3596
|
-
"
|
|
3597
|
-
"
|
|
3598
|
-
"
|
|
3697
|
+
"test": {
|
|
3698
|
+
"char": "t",
|
|
3699
|
+
"description": "Filter by test ID",
|
|
3700
|
+
"name": "test",
|
|
3599
3701
|
"hasDynamicHelp": false,
|
|
3600
3702
|
"multiple": false,
|
|
3601
|
-
"options": [
|
|
3602
|
-
"text",
|
|
3603
|
-
"json",
|
|
3604
|
-
"md"
|
|
3605
|
-
],
|
|
3606
3703
|
"type": "option"
|
|
3607
3704
|
},
|
|
3608
|
-
"
|
|
3609
|
-
"char": "
|
|
3610
|
-
"description": "
|
|
3611
|
-
"name": "
|
|
3612
|
-
"allowNo": false,
|
|
3613
|
-
"type": "boolean"
|
|
3614
|
-
},
|
|
3615
|
-
"no-banner": {
|
|
3616
|
-
"description": "Suppress the startup banner and runtime advisory",
|
|
3617
|
-
"name": "no-banner",
|
|
3618
|
-
"allowNo": false,
|
|
3619
|
-
"type": "boolean"
|
|
3620
|
-
},
|
|
3621
|
-
"dir": {
|
|
3622
|
-
"description": "Specific entity directory to push",
|
|
3623
|
-
"name": "dir",
|
|
3705
|
+
"recent": {
|
|
3706
|
+
"char": "r",
|
|
3707
|
+
"description": "Number of recent runs to show",
|
|
3708
|
+
"name": "recent",
|
|
3624
3709
|
"hasDynamicHelp": false,
|
|
3625
3710
|
"multiple": false,
|
|
3626
3711
|
"type": "option"
|
|
3627
3712
|
},
|
|
3628
|
-
"
|
|
3629
|
-
"description": "Show
|
|
3630
|
-
"name": "
|
|
3631
|
-
"allowNo": false,
|
|
3632
|
-
"type": "boolean"
|
|
3633
|
-
},
|
|
3634
|
-
"ci": {
|
|
3635
|
-
"description": "CI mode - no prompts, fail on issues",
|
|
3636
|
-
"name": "ci",
|
|
3637
|
-
"allowNo": false,
|
|
3638
|
-
"type": "boolean"
|
|
3639
|
-
},
|
|
3640
|
-
"no-validate": {
|
|
3641
|
-
"description": "Skip validation before push",
|
|
3642
|
-
"name": "no-validate",
|
|
3643
|
-
"allowNo": false,
|
|
3644
|
-
"type": "boolean"
|
|
3645
|
-
},
|
|
3646
|
-
"delete-db-only": {
|
|
3647
|
-
"description": "Delete database-only records that reference records being deleted (prevents FK errors)",
|
|
3648
|
-
"name": "delete-db-only",
|
|
3649
|
-
"allowNo": false,
|
|
3650
|
-
"type": "boolean"
|
|
3651
|
-
},
|
|
3652
|
-
"parallel-batch-size": {
|
|
3653
|
-
"description": "Number of records to process in parallel (default: 10)",
|
|
3654
|
-
"name": "parallel-batch-size",
|
|
3655
|
-
"default": 10,
|
|
3713
|
+
"from": {
|
|
3714
|
+
"description": "Show history from date (YYYY-MM-DD)",
|
|
3715
|
+
"name": "from",
|
|
3656
3716
|
"hasDynamicHelp": false,
|
|
3657
3717
|
"multiple": false,
|
|
3658
3718
|
"type": "option"
|
|
3659
3719
|
},
|
|
3660
|
-
"
|
|
3661
|
-
"
|
|
3662
|
-
"
|
|
3720
|
+
"status": {
|
|
3721
|
+
"char": "s",
|
|
3722
|
+
"description": "Filter by status",
|
|
3723
|
+
"name": "status",
|
|
3663
3724
|
"hasDynamicHelp": false,
|
|
3664
3725
|
"multiple": false,
|
|
3665
3726
|
"type": "option"
|
|
3666
3727
|
},
|
|
3667
|
-
"
|
|
3668
|
-
"
|
|
3669
|
-
"
|
|
3728
|
+
"format": {
|
|
3729
|
+
"char": "f",
|
|
3730
|
+
"description": "Output format",
|
|
3731
|
+
"name": "format",
|
|
3732
|
+
"default": "console",
|
|
3670
3733
|
"hasDynamicHelp": false,
|
|
3671
3734
|
"multiple": false,
|
|
3735
|
+
"options": [
|
|
3736
|
+
"console",
|
|
3737
|
+
"json",
|
|
3738
|
+
"markdown"
|
|
3739
|
+
],
|
|
3672
3740
|
"type": "option"
|
|
3673
3741
|
},
|
|
3674
|
-
"
|
|
3675
|
-
"
|
|
3676
|
-
"
|
|
3677
|
-
"
|
|
3678
|
-
"
|
|
3742
|
+
"output": {
|
|
3743
|
+
"char": "o",
|
|
3744
|
+
"description": "Output file path",
|
|
3745
|
+
"name": "output",
|
|
3746
|
+
"hasDynamicHelp": false,
|
|
3747
|
+
"multiple": false,
|
|
3748
|
+
"type": "option"
|
|
3679
3749
|
},
|
|
3680
|
-
"
|
|
3681
|
-
"
|
|
3682
|
-
"
|
|
3750
|
+
"verbose": {
|
|
3751
|
+
"char": "v",
|
|
3752
|
+
"description": "Show detailed information",
|
|
3753
|
+
"name": "verbose",
|
|
3683
3754
|
"allowNo": false,
|
|
3684
3755
|
"type": "boolean"
|
|
3685
3756
|
}
|
|
3686
3757
|
},
|
|
3687
3758
|
"hasDynamicHelp": false,
|
|
3688
3759
|
"hiddenAliases": [],
|
|
3689
|
-
"id": "
|
|
3760
|
+
"id": "test:history",
|
|
3690
3761
|
"pluginAlias": "@memberjunction/cli",
|
|
3691
3762
|
"pluginName": "@memberjunction/cli",
|
|
3692
3763
|
"pluginType": "core",
|
|
3693
3764
|
"strict": true,
|
|
3694
3765
|
"enableJsonFlag": false,
|
|
3695
|
-
"Usage": {
|
|
3696
|
-
"domain": "sync",
|
|
3697
|
-
"command": "sync:push",
|
|
3698
|
-
"summary": "Push local metadata files to the database (upsert).",
|
|
3699
|
-
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
3700
|
-
"flags": [
|
|
3701
|
-
{
|
|
3702
|
-
"name": "--dir",
|
|
3703
|
-
"type": "string",
|
|
3704
|
-
"description": "Entity directory to push"
|
|
3705
|
-
},
|
|
3706
|
-
{
|
|
3707
|
-
"name": "--dry-run",
|
|
3708
|
-
"type": "boolean",
|
|
3709
|
-
"description": "Report what would change without writing"
|
|
3710
|
-
},
|
|
3711
|
-
{
|
|
3712
|
-
"name": "--ci",
|
|
3713
|
-
"type": "boolean",
|
|
3714
|
-
"description": "No prompts; non-zero exit on error"
|
|
3715
|
-
},
|
|
3716
|
-
{
|
|
3717
|
-
"name": "--no-validate",
|
|
3718
|
-
"type": "boolean",
|
|
3719
|
-
"description": "Skip pre-push validation"
|
|
3720
|
-
},
|
|
3721
|
-
{
|
|
3722
|
-
"name": "--incremental",
|
|
3723
|
-
"type": "boolean",
|
|
3724
|
-
"description": "Skip unchanged files using stored checksums"
|
|
3725
|
-
},
|
|
3726
|
-
{
|
|
3727
|
-
"name": "--format",
|
|
3728
|
-
"type": "text|json|md",
|
|
3729
|
-
"description": "Output format (json for machine-readable result)"
|
|
3730
|
-
}
|
|
3731
|
-
],
|
|
3732
|
-
"examples": [
|
|
3733
|
-
"mj sync push --dir=ai-agents",
|
|
3734
|
-
"mj sync push --ci --format=json"
|
|
3735
|
-
],
|
|
3736
|
-
"runtime": {
|
|
3737
|
-
"class": "variable",
|
|
3738
|
-
"typicalSeconds": 20,
|
|
3739
|
-
"note": "scales with number of records in --dir"
|
|
3740
|
-
}
|
|
3741
|
-
},
|
|
3742
3766
|
"isESM": true,
|
|
3743
3767
|
"relativePath": [
|
|
3744
3768
|
"dist",
|
|
3745
3769
|
"commands",
|
|
3746
|
-
"
|
|
3747
|
-
"
|
|
3770
|
+
"test",
|
|
3771
|
+
"history.js"
|
|
3748
3772
|
]
|
|
3749
3773
|
},
|
|
3750
|
-
"
|
|
3774
|
+
"test": {
|
|
3751
3775
|
"aliases": [],
|
|
3752
3776
|
"args": {},
|
|
3753
|
-
"description": "
|
|
3777
|
+
"description": "MemberJunction Testing Framework - Execute and manage tests",
|
|
3778
|
+
"examples": [
|
|
3779
|
+
"<%= config.bin %> <%= command.id %> run <test-id>",
|
|
3780
|
+
"<%= config.bin %> <%= command.id %> run --name=\"Active Members Count\"",
|
|
3781
|
+
"<%= config.bin %> <%= command.id %> suite <suite-id>",
|
|
3782
|
+
"<%= config.bin %> <%= command.id %> list",
|
|
3783
|
+
"<%= config.bin %> <%= command.id %> list --suites",
|
|
3784
|
+
"<%= config.bin %> <%= command.id %> validate --all"
|
|
3785
|
+
],
|
|
3786
|
+
"flags": {},
|
|
3787
|
+
"hasDynamicHelp": false,
|
|
3788
|
+
"hiddenAliases": [],
|
|
3789
|
+
"id": "test",
|
|
3790
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3791
|
+
"pluginName": "@memberjunction/cli",
|
|
3792
|
+
"pluginType": "core",
|
|
3793
|
+
"strict": true,
|
|
3794
|
+
"enableJsonFlag": false,
|
|
3795
|
+
"isESM": true,
|
|
3796
|
+
"relativePath": [
|
|
3797
|
+
"dist",
|
|
3798
|
+
"commands",
|
|
3799
|
+
"test",
|
|
3800
|
+
"index.js"
|
|
3801
|
+
]
|
|
3802
|
+
},
|
|
3803
|
+
"test:list": {
|
|
3804
|
+
"aliases": [],
|
|
3805
|
+
"args": {},
|
|
3806
|
+
"description": "List available tests, suites, and types",
|
|
3754
3807
|
"examples": [
|
|
3755
3808
|
"<%= config.bin %> <%= command.id %>",
|
|
3756
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3757
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3809
|
+
"<%= config.bin %> <%= command.id %> --suites",
|
|
3810
|
+
"<%= config.bin %> <%= command.id %> --types",
|
|
3811
|
+
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
3812
|
+
"<%= config.bin %> <%= command.id %> --tag=smoke",
|
|
3813
|
+
"<%= config.bin %> <%= command.id %> --status=active --verbose"
|
|
3758
3814
|
],
|
|
3759
3815
|
"flags": {
|
|
3760
|
-
"
|
|
3761
|
-
"description": "
|
|
3762
|
-
"name": "
|
|
3816
|
+
"suites": {
|
|
3817
|
+
"description": "List test suites instead of tests",
|
|
3818
|
+
"name": "suites",
|
|
3819
|
+
"allowNo": false,
|
|
3820
|
+
"type": "boolean"
|
|
3821
|
+
},
|
|
3822
|
+
"types": {
|
|
3823
|
+
"description": "List test types",
|
|
3824
|
+
"name": "types",
|
|
3825
|
+
"allowNo": false,
|
|
3826
|
+
"type": "boolean"
|
|
3827
|
+
},
|
|
3828
|
+
"type": {
|
|
3829
|
+
"char": "t",
|
|
3830
|
+
"description": "Filter by test type",
|
|
3831
|
+
"name": "type",
|
|
3832
|
+
"hasDynamicHelp": false,
|
|
3833
|
+
"multiple": false,
|
|
3834
|
+
"type": "option"
|
|
3835
|
+
},
|
|
3836
|
+
"tag": {
|
|
3837
|
+
"description": "Filter by tag",
|
|
3838
|
+
"name": "tag",
|
|
3839
|
+
"hasDynamicHelp": false,
|
|
3840
|
+
"multiple": false,
|
|
3841
|
+
"type": "option"
|
|
3842
|
+
},
|
|
3843
|
+
"status": {
|
|
3844
|
+
"char": "s",
|
|
3845
|
+
"description": "Filter by status",
|
|
3846
|
+
"name": "status",
|
|
3847
|
+
"hasDynamicHelp": false,
|
|
3848
|
+
"multiple": false,
|
|
3849
|
+
"type": "option"
|
|
3850
|
+
},
|
|
3851
|
+
"format": {
|
|
3852
|
+
"char": "f",
|
|
3853
|
+
"description": "Output format",
|
|
3854
|
+
"name": "format",
|
|
3855
|
+
"default": "console",
|
|
3856
|
+
"hasDynamicHelp": false,
|
|
3857
|
+
"multiple": false,
|
|
3858
|
+
"options": [
|
|
3859
|
+
"console",
|
|
3860
|
+
"json",
|
|
3861
|
+
"markdown"
|
|
3862
|
+
],
|
|
3863
|
+
"type": "option"
|
|
3864
|
+
},
|
|
3865
|
+
"output": {
|
|
3866
|
+
"char": "o",
|
|
3867
|
+
"description": "Output file path",
|
|
3868
|
+
"name": "output",
|
|
3763
3869
|
"hasDynamicHelp": false,
|
|
3764
3870
|
"multiple": false,
|
|
3765
3871
|
"type": "option"
|
|
3766
3872
|
},
|
|
3767
3873
|
"verbose": {
|
|
3768
3874
|
"char": "v",
|
|
3769
|
-
"description": "Show detailed
|
|
3875
|
+
"description": "Show detailed information",
|
|
3770
3876
|
"name": "verbose",
|
|
3771
3877
|
"allowNo": false,
|
|
3772
3878
|
"type": "boolean"
|
|
3773
|
-
},
|
|
3774
|
-
"include": {
|
|
3775
|
-
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
3776
|
-
"name": "include",
|
|
3777
|
-
"hasDynamicHelp": false,
|
|
3778
|
-
"multiple": false,
|
|
3779
|
-
"type": "option"
|
|
3780
|
-
},
|
|
3781
|
-
"exclude": {
|
|
3782
|
-
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
3783
|
-
"name": "exclude",
|
|
3784
|
-
"hasDynamicHelp": false,
|
|
3785
|
-
"multiple": false,
|
|
3786
|
-
"type": "option"
|
|
3787
3879
|
}
|
|
3788
3880
|
},
|
|
3789
3881
|
"hasDynamicHelp": false,
|
|
3790
3882
|
"hiddenAliases": [],
|
|
3791
|
-
"id": "
|
|
3883
|
+
"id": "test:list",
|
|
3792
3884
|
"pluginAlias": "@memberjunction/cli",
|
|
3793
3885
|
"pluginName": "@memberjunction/cli",
|
|
3794
3886
|
"pluginType": "core",
|
|
@@ -3798,32 +3890,90 @@
|
|
|
3798
3890
|
"relativePath": [
|
|
3799
3891
|
"dist",
|
|
3800
3892
|
"commands",
|
|
3801
|
-
"
|
|
3802
|
-
"
|
|
3893
|
+
"test",
|
|
3894
|
+
"list.js"
|
|
3803
3895
|
]
|
|
3804
3896
|
},
|
|
3805
|
-
"
|
|
3897
|
+
"test:run": {
|
|
3806
3898
|
"aliases": [],
|
|
3807
|
-
"args": {
|
|
3808
|
-
|
|
3899
|
+
"args": {
|
|
3900
|
+
"testId": {
|
|
3901
|
+
"description": "Test ID to execute",
|
|
3902
|
+
"name": "testId",
|
|
3903
|
+
"required": false
|
|
3904
|
+
}
|
|
3905
|
+
},
|
|
3906
|
+
"description": "Execute a single test by ID or name",
|
|
3907
|
+
"examples": [
|
|
3908
|
+
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
3909
|
+
"<%= config.bin %> <%= command.id %> --name=\"Active Members Count\"",
|
|
3910
|
+
"<%= config.bin %> <%= command.id %> <test-id> --environment=staging",
|
|
3911
|
+
"<%= config.bin %> <%= command.id %> <test-id> --format=json --output=results.json",
|
|
3912
|
+
"<%= config.bin %> <%= command.id %> <test-id> --dry-run"
|
|
3913
|
+
],
|
|
3809
3914
|
"flags": {
|
|
3915
|
+
"name": {
|
|
3916
|
+
"char": "n",
|
|
3917
|
+
"description": "Test name to execute",
|
|
3918
|
+
"name": "name",
|
|
3919
|
+
"hasDynamicHelp": false,
|
|
3920
|
+
"multiple": false,
|
|
3921
|
+
"type": "option"
|
|
3922
|
+
},
|
|
3923
|
+
"environment": {
|
|
3924
|
+
"char": "e",
|
|
3925
|
+
"description": "Environment context (dev, staging, prod)",
|
|
3926
|
+
"name": "environment",
|
|
3927
|
+
"hasDynamicHelp": false,
|
|
3928
|
+
"multiple": false,
|
|
3929
|
+
"type": "option"
|
|
3930
|
+
},
|
|
3810
3931
|
"format": {
|
|
3932
|
+
"char": "f",
|
|
3811
3933
|
"description": "Output format",
|
|
3812
3934
|
"name": "format",
|
|
3813
|
-
"default": "
|
|
3935
|
+
"default": "console",
|
|
3814
3936
|
"hasDynamicHelp": false,
|
|
3815
3937
|
"multiple": false,
|
|
3816
3938
|
"options": [
|
|
3817
|
-
"
|
|
3939
|
+
"console",
|
|
3818
3940
|
"json",
|
|
3819
|
-
"
|
|
3941
|
+
"markdown"
|
|
3820
3942
|
],
|
|
3821
3943
|
"type": "option"
|
|
3944
|
+
},
|
|
3945
|
+
"output": {
|
|
3946
|
+
"char": "o",
|
|
3947
|
+
"description": "Output file path",
|
|
3948
|
+
"name": "output",
|
|
3949
|
+
"hasDynamicHelp": false,
|
|
3950
|
+
"multiple": false,
|
|
3951
|
+
"type": "option"
|
|
3952
|
+
},
|
|
3953
|
+
"dry-run": {
|
|
3954
|
+
"description": "Validate without executing",
|
|
3955
|
+
"name": "dry-run",
|
|
3956
|
+
"allowNo": false,
|
|
3957
|
+
"type": "boolean"
|
|
3958
|
+
},
|
|
3959
|
+
"verbose": {
|
|
3960
|
+
"char": "v",
|
|
3961
|
+
"description": "Show detailed execution information",
|
|
3962
|
+
"name": "verbose",
|
|
3963
|
+
"allowNo": false,
|
|
3964
|
+
"type": "boolean"
|
|
3965
|
+
},
|
|
3966
|
+
"oracles-module": {
|
|
3967
|
+
"description": "Path to a JS/TS module that exports custom IOracle classes or instances. Each export is registered on the engine before the test runs — used by non-MJ adopters to plug app-specific oracle types without modifying TestingFramework.",
|
|
3968
|
+
"name": "oracles-module",
|
|
3969
|
+
"hasDynamicHelp": false,
|
|
3970
|
+
"multiple": false,
|
|
3971
|
+
"type": "option"
|
|
3822
3972
|
}
|
|
3823
3973
|
},
|
|
3824
3974
|
"hasDynamicHelp": false,
|
|
3825
3975
|
"hiddenAliases": [],
|
|
3826
|
-
"id": "
|
|
3976
|
+
"id": "test:run",
|
|
3827
3977
|
"pluginAlias": "@memberjunction/cli",
|
|
3828
3978
|
"pluginName": "@memberjunction/cli",
|
|
3829
3979
|
"pluginType": "core",
|
|
@@ -3833,44 +3983,98 @@
|
|
|
3833
3983
|
"relativePath": [
|
|
3834
3984
|
"dist",
|
|
3835
3985
|
"commands",
|
|
3836
|
-
"
|
|
3837
|
-
"
|
|
3986
|
+
"test",
|
|
3987
|
+
"run.js"
|
|
3838
3988
|
]
|
|
3839
3989
|
},
|
|
3840
|
-
"
|
|
3990
|
+
"test:suite": {
|
|
3841
3991
|
"aliases": [],
|
|
3842
|
-
"args": {
|
|
3843
|
-
|
|
3992
|
+
"args": {
|
|
3993
|
+
"suiteId": {
|
|
3994
|
+
"description": "Test suite ID to execute",
|
|
3995
|
+
"name": "suiteId",
|
|
3996
|
+
"required": false
|
|
3997
|
+
}
|
|
3998
|
+
},
|
|
3999
|
+
"description": "Execute a test suite",
|
|
3844
4000
|
"examples": [
|
|
3845
|
-
"<%= config.bin %> <%= command.id %>",
|
|
3846
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3847
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3848
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4001
|
+
"<%= config.bin %> <%= command.id %> <suite-id>",
|
|
4002
|
+
"<%= config.bin %> <%= command.id %> --name=\"Agent Quality Suite\"",
|
|
4003
|
+
"<%= config.bin %> <%= command.id %> <suite-id> --format=json",
|
|
4004
|
+
"<%= config.bin %> <%= command.id %> <suite-id> --output=suite-results.json"
|
|
3849
4005
|
],
|
|
3850
4006
|
"flags": {
|
|
3851
|
-
"
|
|
3852
|
-
"
|
|
3853
|
-
"
|
|
4007
|
+
"name": {
|
|
4008
|
+
"char": "n",
|
|
4009
|
+
"description": "Test suite name to execute",
|
|
4010
|
+
"name": "name",
|
|
4011
|
+
"hasDynamicHelp": false,
|
|
4012
|
+
"multiple": false,
|
|
4013
|
+
"type": "option"
|
|
4014
|
+
},
|
|
4015
|
+
"format": {
|
|
4016
|
+
"char": "f",
|
|
4017
|
+
"description": "Output format",
|
|
4018
|
+
"name": "format",
|
|
4019
|
+
"default": "console",
|
|
4020
|
+
"hasDynamicHelp": false,
|
|
4021
|
+
"multiple": false,
|
|
4022
|
+
"options": [
|
|
4023
|
+
"console",
|
|
4024
|
+
"json",
|
|
4025
|
+
"markdown"
|
|
4026
|
+
],
|
|
4027
|
+
"type": "option"
|
|
4028
|
+
},
|
|
4029
|
+
"output": {
|
|
4030
|
+
"char": "o",
|
|
4031
|
+
"description": "Output file path",
|
|
4032
|
+
"name": "output",
|
|
3854
4033
|
"hasDynamicHelp": false,
|
|
3855
4034
|
"multiple": false,
|
|
3856
4035
|
"type": "option"
|
|
3857
4036
|
},
|
|
3858
4037
|
"verbose": {
|
|
3859
4038
|
"char": "v",
|
|
3860
|
-
"description": "Show detailed
|
|
4039
|
+
"description": "Show detailed execution information",
|
|
3861
4040
|
"name": "verbose",
|
|
3862
4041
|
"allowNo": false,
|
|
3863
4042
|
"type": "boolean"
|
|
3864
4043
|
},
|
|
3865
|
-
"
|
|
3866
|
-
"
|
|
3867
|
-
"
|
|
4044
|
+
"delay": {
|
|
4045
|
+
"char": "d",
|
|
4046
|
+
"description": "Delay in milliseconds between test executions (avoids Auth0 rate limits)",
|
|
4047
|
+
"name": "delay",
|
|
4048
|
+
"default": 0,
|
|
4049
|
+
"hasDynamicHelp": false,
|
|
4050
|
+
"multiple": false,
|
|
4051
|
+
"type": "option"
|
|
4052
|
+
},
|
|
4053
|
+
"parallel": {
|
|
4054
|
+
"char": "p",
|
|
4055
|
+
"description": "Run tests in parallel with shared browser sessions",
|
|
4056
|
+
"name": "parallel",
|
|
3868
4057
|
"allowNo": false,
|
|
3869
4058
|
"type": "boolean"
|
|
3870
4059
|
},
|
|
3871
|
-
"
|
|
3872
|
-
"description": "
|
|
3873
|
-
"name": "
|
|
4060
|
+
"max-parallel": {
|
|
4061
|
+
"description": "Maximum number of parallel workers (default 4)",
|
|
4062
|
+
"name": "max-parallel",
|
|
4063
|
+
"default": 4,
|
|
4064
|
+
"hasDynamicHelp": false,
|
|
4065
|
+
"multiple": false,
|
|
4066
|
+
"type": "option"
|
|
4067
|
+
},
|
|
4068
|
+
"flaky-check": {
|
|
4069
|
+
"description": "Run each test N times to detect flakiness (variance > 0.3 or mixed pass/fail = flaky). Recommended: 3 or 5",
|
|
4070
|
+
"name": "flaky-check",
|
|
4071
|
+
"hasDynamicHelp": false,
|
|
4072
|
+
"multiple": false,
|
|
4073
|
+
"type": "option"
|
|
4074
|
+
},
|
|
4075
|
+
"oracles-module": {
|
|
4076
|
+
"description": "Path to a JS/TS module that exports custom IOracle classes or instances. Each export is registered on the engine before the suite runs — used by non-MJ adopters to plug app-specific oracle types without modifying TestingFramework.",
|
|
4077
|
+
"name": "oracles-module",
|
|
3874
4078
|
"hasDynamicHelp": false,
|
|
3875
4079
|
"multiple": false,
|
|
3876
4080
|
"type": "option"
|
|
@@ -3878,7 +4082,7 @@
|
|
|
3878
4082
|
},
|
|
3879
4083
|
"hasDynamicHelp": false,
|
|
3880
4084
|
"hiddenAliases": [],
|
|
3881
|
-
"id": "
|
|
4085
|
+
"id": "test:suite",
|
|
3882
4086
|
"pluginAlias": "@memberjunction/cli",
|
|
3883
4087
|
"pluginName": "@memberjunction/cli",
|
|
3884
4088
|
"pluginType": "core",
|
|
@@ -3888,44 +4092,74 @@
|
|
|
3888
4092
|
"relativePath": [
|
|
3889
4093
|
"dist",
|
|
3890
4094
|
"commands",
|
|
3891
|
-
"
|
|
3892
|
-
"
|
|
4095
|
+
"test",
|
|
4096
|
+
"suite.js"
|
|
3893
4097
|
]
|
|
3894
4098
|
},
|
|
3895
|
-
"
|
|
4099
|
+
"test:validate": {
|
|
3896
4100
|
"aliases": [],
|
|
3897
|
-
"args": {
|
|
3898
|
-
|
|
4101
|
+
"args": {
|
|
4102
|
+
"testId": {
|
|
4103
|
+
"description": "Test ID to validate",
|
|
4104
|
+
"name": "testId",
|
|
4105
|
+
"required": false
|
|
4106
|
+
}
|
|
4107
|
+
},
|
|
4108
|
+
"description": "Validate test definitions without executing",
|
|
3899
4109
|
"examples": [
|
|
3900
|
-
"<%= config.bin %> <%= command.id %>",
|
|
3901
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3902
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3903
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4110
|
+
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
4111
|
+
"<%= config.bin %> <%= command.id %> --all",
|
|
4112
|
+
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
4113
|
+
"<%= config.bin %> <%= command.id %> --all --save-report",
|
|
4114
|
+
"<%= config.bin %> <%= command.id %> --all --output=validation-report.md"
|
|
3904
4115
|
],
|
|
3905
4116
|
"flags": {
|
|
3906
|
-
"
|
|
3907
|
-
"
|
|
3908
|
-
"
|
|
4117
|
+
"all": {
|
|
4118
|
+
"char": "a",
|
|
4119
|
+
"description": "Validate all tests",
|
|
4120
|
+
"name": "all",
|
|
4121
|
+
"allowNo": false,
|
|
4122
|
+
"type": "boolean"
|
|
4123
|
+
},
|
|
4124
|
+
"type": {
|
|
4125
|
+
"char": "t",
|
|
4126
|
+
"description": "Validate tests by type",
|
|
4127
|
+
"name": "type",
|
|
4128
|
+
"hasDynamicHelp": false,
|
|
4129
|
+
"multiple": false,
|
|
4130
|
+
"type": "option"
|
|
4131
|
+
},
|
|
4132
|
+
"save-report": {
|
|
4133
|
+
"description": "Save validation report to file",
|
|
4134
|
+
"name": "save-report",
|
|
4135
|
+
"allowNo": false,
|
|
4136
|
+
"type": "boolean"
|
|
4137
|
+
},
|
|
4138
|
+
"format": {
|
|
4139
|
+
"char": "f",
|
|
4140
|
+
"description": "Output format",
|
|
4141
|
+
"name": "format",
|
|
4142
|
+
"default": "console",
|
|
3909
4143
|
"hasDynamicHelp": false,
|
|
3910
4144
|
"multiple": false,
|
|
4145
|
+
"options": [
|
|
4146
|
+
"console",
|
|
4147
|
+
"json",
|
|
4148
|
+
"markdown"
|
|
4149
|
+
],
|
|
3911
4150
|
"type": "option"
|
|
3912
4151
|
},
|
|
3913
|
-
"
|
|
3914
|
-
"
|
|
3915
|
-
"
|
|
4152
|
+
"output": {
|
|
4153
|
+
"char": "o",
|
|
4154
|
+
"description": "Output file path",
|
|
4155
|
+
"name": "output",
|
|
3916
4156
|
"hasDynamicHelp": false,
|
|
3917
4157
|
"multiple": false,
|
|
3918
4158
|
"type": "option"
|
|
3919
4159
|
},
|
|
3920
|
-
"no-validate": {
|
|
3921
|
-
"description": "Skip validation before sync",
|
|
3922
|
-
"name": "no-validate",
|
|
3923
|
-
"allowNo": false,
|
|
3924
|
-
"type": "boolean"
|
|
3925
|
-
},
|
|
3926
4160
|
"verbose": {
|
|
3927
4161
|
"char": "v",
|
|
3928
|
-
"description": "Show detailed
|
|
4162
|
+
"description": "Show detailed information",
|
|
3929
4163
|
"name": "verbose",
|
|
3930
4164
|
"allowNo": false,
|
|
3931
4165
|
"type": "boolean"
|
|
@@ -3933,7 +4167,7 @@
|
|
|
3933
4167
|
},
|
|
3934
4168
|
"hasDynamicHelp": false,
|
|
3935
4169
|
"hiddenAliases": [],
|
|
3936
|
-
"id": "
|
|
4170
|
+
"id": "test:validate",
|
|
3937
4171
|
"pluginAlias": "@memberjunction/cli",
|
|
3938
4172
|
"pluginName": "@memberjunction/cli",
|
|
3939
4173
|
"pluginType": "core",
|
|
@@ -3943,8 +4177,8 @@
|
|
|
3943
4177
|
"relativePath": [
|
|
3944
4178
|
"dist",
|
|
3945
4179
|
"commands",
|
|
3946
|
-
"
|
|
3947
|
-
"
|
|
4180
|
+
"test",
|
|
4181
|
+
"validate.js"
|
|
3948
4182
|
]
|
|
3949
4183
|
},
|
|
3950
4184
|
"translate-sql": {
|
|
@@ -4184,240 +4418,6 @@
|
|
|
4184
4418
|
"claude.js"
|
|
4185
4419
|
]
|
|
4186
4420
|
},
|
|
4187
|
-
"install:claude": {
|
|
4188
|
-
"aliases": [],
|
|
4189
|
-
"args": {},
|
|
4190
|
-
"description": "Install or refresh the Claude Code pack in the current directory.",
|
|
4191
|
-
"examples": [
|
|
4192
|
-
"<%= config.bin %> install:claude",
|
|
4193
|
-
"<%= config.bin %> install:claude --dry-run",
|
|
4194
|
-
"<%= config.bin %> install:claude --from ./local-pack",
|
|
4195
|
-
"<%= config.bin %> install:claude --json"
|
|
4196
|
-
],
|
|
4197
|
-
"flags": {
|
|
4198
|
-
"dir": {
|
|
4199
|
-
"description": "Target directory for the install",
|
|
4200
|
-
"name": "dir",
|
|
4201
|
-
"default": ".",
|
|
4202
|
-
"hasDynamicHelp": false,
|
|
4203
|
-
"multiple": false,
|
|
4204
|
-
"type": "option"
|
|
4205
|
-
},
|
|
4206
|
-
"major": {
|
|
4207
|
-
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
4208
|
-
"name": "major",
|
|
4209
|
-
"hasDynamicHelp": false,
|
|
4210
|
-
"multiple": false,
|
|
4211
|
-
"type": "option"
|
|
4212
|
-
},
|
|
4213
|
-
"ref": {
|
|
4214
|
-
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
4215
|
-
"name": "ref",
|
|
4216
|
-
"hasDynamicHelp": false,
|
|
4217
|
-
"multiple": false,
|
|
4218
|
-
"type": "option"
|
|
4219
|
-
},
|
|
4220
|
-
"from": {
|
|
4221
|
-
"description": "Use a local pack source instead of fetching from GitHub",
|
|
4222
|
-
"name": "from",
|
|
4223
|
-
"hasDynamicHelp": false,
|
|
4224
|
-
"multiple": false,
|
|
4225
|
-
"type": "option"
|
|
4226
|
-
},
|
|
4227
|
-
"offline": {
|
|
4228
|
-
"description": "Forbid network; requires --from <path>",
|
|
4229
|
-
"name": "offline",
|
|
4230
|
-
"allowNo": false,
|
|
4231
|
-
"type": "boolean"
|
|
4232
|
-
},
|
|
4233
|
-
"dry-run": {
|
|
4234
|
-
"description": "Print what would be written; change nothing",
|
|
4235
|
-
"name": "dry-run",
|
|
4236
|
-
"allowNo": false,
|
|
4237
|
-
"type": "boolean"
|
|
4238
|
-
},
|
|
4239
|
-
"yes": {
|
|
4240
|
-
"char": "y",
|
|
4241
|
-
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
4242
|
-
"name": "yes",
|
|
4243
|
-
"allowNo": false,
|
|
4244
|
-
"type": "boolean"
|
|
4245
|
-
},
|
|
4246
|
-
"force": {
|
|
4247
|
-
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
4248
|
-
"name": "force",
|
|
4249
|
-
"allowNo": false,
|
|
4250
|
-
"type": "boolean"
|
|
4251
|
-
},
|
|
4252
|
-
"skip-commands": {
|
|
4253
|
-
"description": "Skip seeding .claude/commands/",
|
|
4254
|
-
"name": "skip-commands",
|
|
4255
|
-
"allowNo": false,
|
|
4256
|
-
"type": "boolean"
|
|
4257
|
-
},
|
|
4258
|
-
"skip-skills": {
|
|
4259
|
-
"description": "Skip seeding .claude/skills/",
|
|
4260
|
-
"name": "skip-skills",
|
|
4261
|
-
"allowNo": false,
|
|
4262
|
-
"type": "boolean"
|
|
4263
|
-
},
|
|
4264
|
-
"skip-settings": {
|
|
4265
|
-
"description": "Skip merging .claude/settings.json",
|
|
4266
|
-
"name": "skip-settings",
|
|
4267
|
-
"allowNo": false,
|
|
4268
|
-
"type": "boolean"
|
|
4269
|
-
},
|
|
4270
|
-
"json": {
|
|
4271
|
-
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
4272
|
-
"name": "json",
|
|
4273
|
-
"allowNo": false,
|
|
4274
|
-
"type": "boolean"
|
|
4275
|
-
},
|
|
4276
|
-
"verbose": {
|
|
4277
|
-
"char": "v",
|
|
4278
|
-
"description": "Show progress messages from the fetcher and merger",
|
|
4279
|
-
"name": "verbose",
|
|
4280
|
-
"allowNo": false,
|
|
4281
|
-
"type": "boolean"
|
|
4282
|
-
}
|
|
4283
|
-
},
|
|
4284
|
-
"hasDynamicHelp": false,
|
|
4285
|
-
"hiddenAliases": [],
|
|
4286
|
-
"id": "install:claude",
|
|
4287
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4288
|
-
"pluginName": "@memberjunction/cli",
|
|
4289
|
-
"pluginType": "core",
|
|
4290
|
-
"strict": true,
|
|
4291
|
-
"enableJsonFlag": false,
|
|
4292
|
-
"isESM": true,
|
|
4293
|
-
"relativePath": [
|
|
4294
|
-
"dist",
|
|
4295
|
-
"commands",
|
|
4296
|
-
"install",
|
|
4297
|
-
"claude.js"
|
|
4298
|
-
]
|
|
4299
|
-
},
|
|
4300
|
-
"install": {
|
|
4301
|
-
"aliases": [],
|
|
4302
|
-
"args": {},
|
|
4303
|
-
"description": "Install MemberJunction from a GitHub release",
|
|
4304
|
-
"examples": [
|
|
4305
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4306
|
-
"<%= config.bin %> <%= command.id %> -t v4.3.0",
|
|
4307
|
-
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
4308
|
-
"<%= config.bin %> <%= command.id %> --yes"
|
|
4309
|
-
],
|
|
4310
|
-
"flags": {
|
|
4311
|
-
"tag": {
|
|
4312
|
-
"char": "t",
|
|
4313
|
-
"description": "Release tag to install (e.g. v4.3.0). If omitted, shows a version picker.",
|
|
4314
|
-
"name": "tag",
|
|
4315
|
-
"hasDynamicHelp": false,
|
|
4316
|
-
"multiple": false,
|
|
4317
|
-
"type": "option"
|
|
4318
|
-
},
|
|
4319
|
-
"dir": {
|
|
4320
|
-
"description": "Target directory for the installation",
|
|
4321
|
-
"name": "dir",
|
|
4322
|
-
"default": ".",
|
|
4323
|
-
"hasDynamicHelp": false,
|
|
4324
|
-
"multiple": false,
|
|
4325
|
-
"type": "option"
|
|
4326
|
-
},
|
|
4327
|
-
"config": {
|
|
4328
|
-
"char": "c",
|
|
4329
|
-
"description": "Path to JSON config file with install settings (database, auth, ports, etc.)",
|
|
4330
|
-
"name": "config",
|
|
4331
|
-
"hasDynamicHelp": false,
|
|
4332
|
-
"multiple": false,
|
|
4333
|
-
"type": "option"
|
|
4334
|
-
},
|
|
4335
|
-
"legacy": {
|
|
4336
|
-
"description": "Use the legacy interactive installer (ZIP-only distribution)",
|
|
4337
|
-
"hidden": true,
|
|
4338
|
-
"name": "legacy",
|
|
4339
|
-
"allowNo": false,
|
|
4340
|
-
"type": "boolean"
|
|
4341
|
-
},
|
|
4342
|
-
"dry-run": {
|
|
4343
|
-
"description": "Show the install plan without executing it",
|
|
4344
|
-
"name": "dry-run",
|
|
4345
|
-
"allowNo": false,
|
|
4346
|
-
"type": "boolean"
|
|
4347
|
-
},
|
|
4348
|
-
"yes": {
|
|
4349
|
-
"char": "y",
|
|
4350
|
-
"description": "Non-interactive mode: auto-select latest version and accept defaults",
|
|
4351
|
-
"name": "yes",
|
|
4352
|
-
"allowNo": false,
|
|
4353
|
-
"type": "boolean"
|
|
4354
|
-
},
|
|
4355
|
-
"verbose": {
|
|
4356
|
-
"char": "v",
|
|
4357
|
-
"description": "Show detailed output",
|
|
4358
|
-
"name": "verbose",
|
|
4359
|
-
"allowNo": false,
|
|
4360
|
-
"type": "boolean"
|
|
4361
|
-
},
|
|
4362
|
-
"skip-db": {
|
|
4363
|
-
"description": "Skip database provisioning phases",
|
|
4364
|
-
"name": "skip-db",
|
|
4365
|
-
"allowNo": false,
|
|
4366
|
-
"type": "boolean"
|
|
4367
|
-
},
|
|
4368
|
-
"skip-start": {
|
|
4369
|
-
"description": "Skip service startup and smoke tests",
|
|
4370
|
-
"name": "skip-start",
|
|
4371
|
-
"allowNo": false,
|
|
4372
|
-
"type": "boolean"
|
|
4373
|
-
},
|
|
4374
|
-
"no-resume": {
|
|
4375
|
-
"description": "Ignore any existing checkpoint and start fresh",
|
|
4376
|
-
"name": "no-resume",
|
|
4377
|
-
"allowNo": false,
|
|
4378
|
-
"type": "boolean"
|
|
4379
|
-
},
|
|
4380
|
-
"fast": {
|
|
4381
|
-
"description": "Fast mode: skip smoke test and optimize post-codegen steps. Re-run without --fast if you encounter issues.",
|
|
4382
|
-
"name": "fast",
|
|
4383
|
-
"allowNo": false,
|
|
4384
|
-
"type": "boolean"
|
|
4385
|
-
},
|
|
4386
|
-
"overwrite-config": {
|
|
4387
|
-
"description": "Overwrite existing config files (.env, mj.config.cjs, environment.ts) instead of preserving them",
|
|
4388
|
-
"name": "overwrite-config",
|
|
4389
|
-
"allowNo": false,
|
|
4390
|
-
"type": "boolean"
|
|
4391
|
-
},
|
|
4392
|
-
"monorepo": {
|
|
4393
|
-
"description": "Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.",
|
|
4394
|
-
"name": "monorepo",
|
|
4395
|
-
"allowNo": false,
|
|
4396
|
-
"type": "boolean"
|
|
4397
|
-
},
|
|
4398
|
-
"no-claude-pack": {
|
|
4399
|
-
"description": "Exclude the Claude Code pack (CLAUDE.md + .claude/ tree) from the scaffold. By default the pack ships with the install so opening Claude Code in your new MJ project gives you the curated MJ-aware experience immediately.",
|
|
4400
|
-
"name": "no-claude-pack",
|
|
4401
|
-
"allowNo": false,
|
|
4402
|
-
"type": "boolean"
|
|
4403
|
-
}
|
|
4404
|
-
},
|
|
4405
|
-
"hasDynamicHelp": false,
|
|
4406
|
-
"hiddenAliases": [],
|
|
4407
|
-
"id": "install",
|
|
4408
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4409
|
-
"pluginName": "@memberjunction/cli",
|
|
4410
|
-
"pluginType": "core",
|
|
4411
|
-
"strict": true,
|
|
4412
|
-
"enableJsonFlag": false,
|
|
4413
|
-
"isESM": true,
|
|
4414
|
-
"relativePath": [
|
|
4415
|
-
"dist",
|
|
4416
|
-
"commands",
|
|
4417
|
-
"install",
|
|
4418
|
-
"index.js"
|
|
4419
|
-
]
|
|
4420
|
-
},
|
|
4421
4421
|
"ai:actions:list": {
|
|
4422
4422
|
"aliases": [],
|
|
4423
4423
|
"args": {},
|
|
@@ -5466,5 +5466,5 @@
|
|
|
5466
5466
|
]
|
|
5467
5467
|
}
|
|
5468
5468
|
},
|
|
5469
|
-
"version": "5.
|
|
5469
|
+
"version": "5.46.0"
|
|
5470
5470
|
}
|