@memberjunction/cli 5.40.2 → 5.42.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/dist/commands/bundle/index.d.ts +1 -0
- package/dist/commands/bundle/index.d.ts.map +1 -1
- package/dist/commands/bundle/index.js +7 -1
- package/dist/commands/bundle/index.js.map +1 -1
- package/dist/commands/codegen/index.d.ts +6 -16
- package/dist/commands/codegen/index.d.ts.map +1 -1
- package/dist/commands/codegen/index.js +6 -90
- package/dist/commands/codegen/index.js.map +1 -1
- package/dist/commands/codegen/usage.d.ts +7 -0
- package/dist/commands/codegen/usage.d.ts.map +1 -0
- package/dist/commands/codegen/usage.js +10 -0
- package/dist/commands/codegen/usage.js.map +1 -0
- package/dist/commands/install/claude.d.ts +35 -0
- package/dist/commands/install/claude.d.ts.map +1 -0
- package/dist/commands/install/claude.js +108 -0
- package/dist/commands/install/claude.js.map +1 -0
- package/dist/commands/install/index.d.ts +1 -0
- package/dist/commands/install/index.d.ts.map +1 -1
- package/dist/commands/install/index.js +4 -0
- package/dist/commands/install/index.js.map +1 -1
- package/dist/commands/migrate/convert.d.ts +59 -12
- package/dist/commands/migrate/convert.d.ts.map +1 -1
- package/dist/commands/migrate/convert.js +294 -21
- package/dist/commands/migrate/convert.js.map +1 -1
- package/dist/commands/migrate/rebake.d.ts +41 -0
- package/dist/commands/migrate/rebake.d.ts.map +1 -0
- package/dist/commands/migrate/rebake.js +193 -0
- package/dist/commands/migrate/rebake.js.map +1 -0
- package/dist/commands/plugin/add.d.ts +18 -0
- package/dist/commands/plugin/add.d.ts.map +1 -0
- package/dist/commands/plugin/add.js +53 -0
- package/dist/commands/plugin/add.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +6 -26
- package/dist/commands/sync/pull.d.ts.map +1 -1
- package/dist/commands/sync/pull.js +6 -281
- package/dist/commands/sync/pull.js.map +1 -1
- package/dist/commands/sync/push.d.ts +8 -18
- package/dist/commands/sync/push.d.ts.map +1 -1
- package/dist/commands/sync/push.js +8 -257
- package/dist/commands/sync/push.js.map +1 -1
- package/dist/commands/sync/usage.d.ts +7 -0
- package/dist/commands/sync/usage.d.ts.map +1 -0
- package/dist/commands/sync/usage.js +10 -0
- package/dist/commands/sync/usage.js.map +1 -0
- package/dist/commands/update/claude.d.ts +37 -0
- package/dist/commands/update/claude.d.ts.map +1 -0
- package/dist/commands/update/claude.js +90 -0
- package/dist/commands/update/claude.js.map +1 -0
- package/dist/commands/usage.d.ts +17 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +29 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/hooks/prerun.d.ts.map +1 -1
- package/dist/hooks/prerun.js +62 -15
- package/dist/hooks/prerun.js.map +1 -1
- package/dist/lib/claude-pack/ManagedBlockEditor.d.ts +40 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.d.ts.map +1 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.js +127 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.js.map +1 -0
- package/dist/lib/claude-pack/PackFetcher.d.ts +86 -0
- package/dist/lib/claude-pack/PackFetcher.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackFetcher.js +163 -0
- package/dist/lib/claude-pack/PackFetcher.js.map +1 -0
- package/dist/lib/claude-pack/PackInstaller.d.ts +62 -0
- package/dist/lib/claude-pack/PackInstaller.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackInstaller.js +197 -0
- package/dist/lib/claude-pack/PackInstaller.js.map +1 -0
- package/dist/lib/claude-pack/PackMerger.d.ts +61 -0
- package/dist/lib/claude-pack/PackMerger.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackMerger.js +315 -0
- package/dist/lib/claude-pack/PackMerger.js.map +1 -0
- package/dist/lib/claude-pack/PackOutputFormatter.d.ts +29 -0
- package/dist/lib/claude-pack/PackOutputFormatter.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackOutputFormatter.js +82 -0
- package/dist/lib/claude-pack/PackOutputFormatter.js.map +1 -0
- package/dist/lib/claude-pack/PackPaths.d.ts +80 -0
- package/dist/lib/claude-pack/PackPaths.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackPaths.js +182 -0
- package/dist/lib/claude-pack/PackPaths.js.map +1 -0
- package/dist/lib/claude-pack/PackTypes.d.ts +124 -0
- package/dist/lib/claude-pack/PackTypes.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackTypes.js +32 -0
- package/dist/lib/claude-pack/PackTypes.js.map +1 -0
- package/dist/lib/claude-pack/SettingsMerger.d.ts +47 -0
- package/dist/lib/claude-pack/SettingsMerger.d.ts.map +1 -0
- package/dist/lib/claude-pack/SettingsMerger.js +163 -0
- package/dist/lib/claude-pack/SettingsMerger.js.map +1 -0
- package/dist/lib/cli-plugins.d.ts +16 -0
- package/dist/lib/cli-plugins.d.ts.map +1 -0
- package/dist/lib/cli-plugins.js +26 -0
- package/dist/lib/cli-plugins.js.map +1 -0
- package/dist/lib/domain-usage-command.d.ts +16 -0
- package/dist/lib/domain-usage-command.d.ts.map +1 -0
- package/dist/lib/domain-usage-command.js +23 -0
- package/dist/lib/domain-usage-command.js.map +1 -0
- package/dist/lib/usage-render.d.ts +14 -0
- package/dist/lib/usage-render.d.ts.map +1 -0
- package/dist/lib/usage-render.js +64 -0
- package/dist/lib/usage-render.js.map +1 -0
- package/dist/light-commands.d.ts.map +1 -1
- package/dist/light-commands.js +11 -0
- package/dist/light-commands.js.map +1 -1
- package/oclif.manifest.json +1240 -554
- package/package.json +20 -18
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"commands": {
|
|
3
|
+
"usage": {
|
|
4
|
+
"aliases": [],
|
|
5
|
+
"args": {},
|
|
6
|
+
"description": "List mj command domains (AI-agent-friendly, tier-1 progressive disclosure). Then run `mj <domain> usage`.",
|
|
7
|
+
"examples": [
|
|
8
|
+
"<%= config.bin %> <%= command.id %>",
|
|
9
|
+
"<%= config.bin %> <%= command.id %> --format=json"
|
|
10
|
+
],
|
|
11
|
+
"flags": {
|
|
12
|
+
"format": {
|
|
13
|
+
"description": "Output format",
|
|
14
|
+
"name": "format",
|
|
15
|
+
"default": "text",
|
|
16
|
+
"hasDynamicHelp": false,
|
|
17
|
+
"multiple": false,
|
|
18
|
+
"options": [
|
|
19
|
+
"text",
|
|
20
|
+
"json",
|
|
21
|
+
"md"
|
|
22
|
+
],
|
|
23
|
+
"type": "option"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"hasDynamicHelp": false,
|
|
27
|
+
"hiddenAliases": [],
|
|
28
|
+
"id": "usage",
|
|
29
|
+
"pluginAlias": "@memberjunction/cli",
|
|
30
|
+
"pluginName": "@memberjunction/cli",
|
|
31
|
+
"pluginType": "core",
|
|
32
|
+
"strict": true,
|
|
33
|
+
"enableJsonFlag": false,
|
|
34
|
+
"isESM": true,
|
|
35
|
+
"relativePath": [
|
|
36
|
+
"dist",
|
|
37
|
+
"commands",
|
|
38
|
+
"usage.js"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
3
41
|
"ai": {
|
|
4
42
|
"aliases": [],
|
|
5
43
|
"args": {},
|
|
@@ -22,54 +60,47 @@
|
|
|
22
60
|
"index.js"
|
|
23
61
|
]
|
|
24
62
|
},
|
|
25
|
-
"
|
|
63
|
+
"app:check-updates": {
|
|
26
64
|
"aliases": [],
|
|
27
65
|
"args": {},
|
|
28
|
-
"description": "
|
|
66
|
+
"description": "Check for available upgrades for installed MJ Open Apps",
|
|
29
67
|
"examples": [
|
|
30
|
-
"<%= config.bin %>
|
|
31
|
-
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
68
|
+
"<%= config.bin %> app check-updates"
|
|
32
69
|
],
|
|
33
|
-
"flags": {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
58
|
-
"name": "apply",
|
|
59
|
-
"allowNo": false,
|
|
60
|
-
"type": "boolean"
|
|
61
|
-
},
|
|
62
|
-
"verbose": {
|
|
63
|
-
"char": "v",
|
|
64
|
-
"description": "Print every candidate row, not just the summary.",
|
|
65
|
-
"name": "verbose",
|
|
66
|
-
"allowNo": false,
|
|
67
|
-
"type": "boolean"
|
|
70
|
+
"flags": {},
|
|
71
|
+
"hasDynamicHelp": false,
|
|
72
|
+
"hiddenAliases": [],
|
|
73
|
+
"id": "app:check-updates",
|
|
74
|
+
"pluginAlias": "@memberjunction/cli",
|
|
75
|
+
"pluginName": "@memberjunction/cli",
|
|
76
|
+
"pluginType": "core",
|
|
77
|
+
"strict": true,
|
|
78
|
+
"enableJsonFlag": false,
|
|
79
|
+
"isESM": true,
|
|
80
|
+
"relativePath": [
|
|
81
|
+
"dist",
|
|
82
|
+
"commands",
|
|
83
|
+
"app",
|
|
84
|
+
"check-updates.js"
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"app:disable": {
|
|
88
|
+
"aliases": [],
|
|
89
|
+
"args": {
|
|
90
|
+
"name": {
|
|
91
|
+
"description": "Name of the installed app to disable",
|
|
92
|
+
"name": "name",
|
|
93
|
+
"required": true
|
|
68
94
|
}
|
|
69
95
|
},
|
|
96
|
+
"description": "Disable an installed MJ Open App without removing it",
|
|
97
|
+
"examples": [
|
|
98
|
+
"<%= config.bin %> app disable acme-crm"
|
|
99
|
+
],
|
|
100
|
+
"flags": {},
|
|
70
101
|
"hasDynamicHelp": false,
|
|
71
102
|
"hiddenAliases": [],
|
|
72
|
-
"id": "
|
|
103
|
+
"id": "app:disable",
|
|
73
104
|
"pluginAlias": "@memberjunction/cli",
|
|
74
105
|
"pluginName": "@memberjunction/cli",
|
|
75
106
|
"pluginType": "core",
|
|
@@ -79,96 +110,110 @@
|
|
|
79
110
|
"relativePath": [
|
|
80
111
|
"dist",
|
|
81
112
|
"commands",
|
|
82
|
-
"
|
|
83
|
-
"
|
|
113
|
+
"app",
|
|
114
|
+
"disable.js"
|
|
84
115
|
]
|
|
85
116
|
},
|
|
86
|
-
"
|
|
117
|
+
"app:enable": {
|
|
87
118
|
"aliases": [],
|
|
88
|
-
"args": {
|
|
89
|
-
|
|
119
|
+
"args": {
|
|
120
|
+
"name": {
|
|
121
|
+
"description": "Name of the installed app to enable",
|
|
122
|
+
"name": "name",
|
|
123
|
+
"required": true
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"description": "Re-enable a disabled MJ Open App",
|
|
90
127
|
"examples": [
|
|
91
|
-
"<%= config.bin %>
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
128
|
+
"<%= config.bin %> app enable acme-crm"
|
|
129
|
+
],
|
|
130
|
+
"flags": {},
|
|
131
|
+
"hasDynamicHelp": false,
|
|
132
|
+
"hiddenAliases": [],
|
|
133
|
+
"id": "app:enable",
|
|
134
|
+
"pluginAlias": "@memberjunction/cli",
|
|
135
|
+
"pluginName": "@memberjunction/cli",
|
|
136
|
+
"pluginType": "core",
|
|
137
|
+
"strict": true,
|
|
138
|
+
"enableJsonFlag": false,
|
|
139
|
+
"isESM": true,
|
|
140
|
+
"relativePath": [
|
|
141
|
+
"dist",
|
|
142
|
+
"commands",
|
|
143
|
+
"app",
|
|
144
|
+
"enable.js"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"app:info": {
|
|
148
|
+
"aliases": [],
|
|
149
|
+
"args": {
|
|
150
|
+
"name": {
|
|
151
|
+
"description": "Name of the installed app",
|
|
152
|
+
"name": "name",
|
|
153
|
+
"required": true
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"description": "Show detailed information about an installed MJ Open App",
|
|
157
|
+
"examples": [
|
|
158
|
+
"<%= config.bin %> app info acme-crm"
|
|
159
|
+
],
|
|
160
|
+
"flags": {},
|
|
161
|
+
"hasDynamicHelp": false,
|
|
162
|
+
"hiddenAliases": [],
|
|
163
|
+
"id": "app:info",
|
|
164
|
+
"pluginAlias": "@memberjunction/cli",
|
|
165
|
+
"pluginName": "@memberjunction/cli",
|
|
166
|
+
"pluginType": "core",
|
|
167
|
+
"strict": true,
|
|
168
|
+
"enableJsonFlag": false,
|
|
169
|
+
"isESM": true,
|
|
170
|
+
"relativePath": [
|
|
171
|
+
"dist",
|
|
172
|
+
"commands",
|
|
173
|
+
"app",
|
|
174
|
+
"info.js"
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
"app:install": {
|
|
178
|
+
"aliases": [],
|
|
179
|
+
"args": {
|
|
180
|
+
"source": {
|
|
181
|
+
"description": "GitHub repository URL of the Open App",
|
|
182
|
+
"name": "source",
|
|
183
|
+
"required": true
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"description": "Install an MJ Open App from a GitHub repository",
|
|
187
|
+
"examples": [
|
|
188
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm",
|
|
189
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0",
|
|
190
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm --verbose"
|
|
95
191
|
],
|
|
96
192
|
"flags": {
|
|
97
|
-
"
|
|
98
|
-
"description": "
|
|
99
|
-
"name": "
|
|
100
|
-
"hasDynamicHelp": false,
|
|
101
|
-
"multiple": false,
|
|
102
|
-
"type": "option"
|
|
103
|
-
},
|
|
104
|
-
"source-dir": {
|
|
105
|
-
"description": "Migrations source directory (e.g. ./migrations/v5). Used to auto-detect the next baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ directory walked up from cwd.",
|
|
106
|
-
"name": "source-dir",
|
|
107
|
-
"hasDynamicHelp": false,
|
|
108
|
-
"multiple": false,
|
|
109
|
-
"type": "option"
|
|
110
|
-
},
|
|
111
|
-
"description": {
|
|
112
|
-
"description": "Human-readable description embedded in the file header.",
|
|
113
|
-
"name": "description",
|
|
114
|
-
"default": "MemberJunction Baseline",
|
|
115
|
-
"hasDynamicHelp": false,
|
|
116
|
-
"multiple": false,
|
|
117
|
-
"type": "option"
|
|
118
|
-
},
|
|
119
|
-
"database": {
|
|
120
|
-
"description": "Override database name (host/user/password come from MJ config).",
|
|
121
|
-
"name": "database",
|
|
122
|
-
"hasDynamicHelp": false,
|
|
123
|
-
"multiple": false,
|
|
124
|
-
"type": "option"
|
|
125
|
-
},
|
|
126
|
-
"out": {
|
|
127
|
-
"description": "Output directory. Filename is auto-generated.",
|
|
128
|
-
"name": "out",
|
|
129
|
-
"default": ".",
|
|
130
|
-
"hasDynamicHelp": false,
|
|
131
|
-
"multiple": false,
|
|
132
|
-
"type": "option"
|
|
133
|
-
},
|
|
134
|
-
"exclude-data": {
|
|
135
|
-
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
136
|
-
"name": "exclude-data",
|
|
137
|
-
"default": "",
|
|
138
|
-
"hasDynamicHelp": false,
|
|
139
|
-
"multiple": false,
|
|
140
|
-
"type": "option"
|
|
141
|
-
},
|
|
142
|
-
"batch-size": {
|
|
143
|
-
"description": "Rows per INSERT batch.",
|
|
144
|
-
"name": "batch-size",
|
|
145
|
-
"default": 1000,
|
|
193
|
+
"version": {
|
|
194
|
+
"description": "Specific version to install (default: latest)",
|
|
195
|
+
"name": "version",
|
|
146
196
|
"hasDynamicHelp": false,
|
|
147
197
|
"multiple": false,
|
|
148
198
|
"type": "option"
|
|
149
199
|
},
|
|
150
|
-
"no-data": {
|
|
151
|
-
"description": "Emit schema only, no data inserts.",
|
|
152
|
-
"name": "no-data",
|
|
153
|
-
"allowNo": false,
|
|
154
|
-
"type": "boolean"
|
|
155
|
-
},
|
|
156
200
|
"verbose": {
|
|
157
|
-
"
|
|
201
|
+
"char": "v",
|
|
202
|
+
"description": "Show detailed output",
|
|
158
203
|
"name": "verbose",
|
|
159
204
|
"allowNo": false,
|
|
160
205
|
"type": "boolean"
|
|
161
206
|
},
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"name": "
|
|
207
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
208
|
+
"hidden": true,
|
|
209
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
165
210
|
"allowNo": false,
|
|
166
211
|
"type": "boolean"
|
|
167
212
|
}
|
|
168
213
|
},
|
|
169
214
|
"hasDynamicHelp": false,
|
|
170
215
|
"hiddenAliases": [],
|
|
171
|
-
"id": "
|
|
216
|
+
"id": "app:install",
|
|
172
217
|
"pluginAlias": "@memberjunction/cli",
|
|
173
218
|
"pluginName": "@memberjunction/cli",
|
|
174
219
|
"pluginType": "core",
|
|
@@ -178,106 +223,199 @@
|
|
|
178
223
|
"relativePath": [
|
|
179
224
|
"dist",
|
|
180
225
|
"commands",
|
|
181
|
-
"
|
|
182
|
-
"
|
|
226
|
+
"app",
|
|
227
|
+
"install.js"
|
|
183
228
|
]
|
|
184
229
|
},
|
|
185
|
-
"
|
|
230
|
+
"app:list": {
|
|
186
231
|
"aliases": [],
|
|
187
232
|
"args": {},
|
|
188
|
-
"description": "
|
|
233
|
+
"description": "List all installed MJ Open Apps",
|
|
189
234
|
"examples": [
|
|
190
|
-
"<%= config.bin %>
|
|
191
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
192
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
235
|
+
"<%= config.bin %> app list"
|
|
193
236
|
],
|
|
194
237
|
"flags": {
|
|
195
|
-
"
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
-
"
|
|
200
|
-
"
|
|
201
|
-
|
|
238
|
+
"verbose": {
|
|
239
|
+
"char": "v",
|
|
240
|
+
"description": "Show detailed output",
|
|
241
|
+
"name": "verbose",
|
|
242
|
+
"allowNo": false,
|
|
243
|
+
"type": "boolean"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"hasDynamicHelp": false,
|
|
247
|
+
"hiddenAliases": [],
|
|
248
|
+
"id": "app:list",
|
|
249
|
+
"pluginAlias": "@memberjunction/cli",
|
|
250
|
+
"pluginName": "@memberjunction/cli",
|
|
251
|
+
"pluginType": "core",
|
|
252
|
+
"strict": true,
|
|
253
|
+
"enableJsonFlag": false,
|
|
254
|
+
"isESM": true,
|
|
255
|
+
"relativePath": [
|
|
256
|
+
"dist",
|
|
257
|
+
"commands",
|
|
258
|
+
"app",
|
|
259
|
+
"list.js"
|
|
260
|
+
]
|
|
261
|
+
},
|
|
262
|
+
"app:remove": {
|
|
263
|
+
"aliases": [],
|
|
264
|
+
"args": {
|
|
265
|
+
"name": {
|
|
266
|
+
"description": "Name of the installed app to remove",
|
|
267
|
+
"name": "name",
|
|
268
|
+
"required": true
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
"description": "Remove an installed MJ Open App",
|
|
272
|
+
"examples": [
|
|
273
|
+
"<%= config.bin %> app remove acme-crm",
|
|
274
|
+
"<%= config.bin %> app remove acme-crm --keep-data",
|
|
275
|
+
"<%= config.bin %> app remove acme-crm --force"
|
|
276
|
+
],
|
|
277
|
+
"flags": {
|
|
278
|
+
"keep-data": {
|
|
279
|
+
"description": "Keep the database schema and data",
|
|
280
|
+
"name": "keep-data",
|
|
281
|
+
"allowNo": false,
|
|
282
|
+
"type": "boolean"
|
|
202
283
|
},
|
|
203
|
-
"
|
|
204
|
-
"description": "
|
|
205
|
-
"name": "
|
|
206
|
-
"
|
|
207
|
-
"
|
|
208
|
-
"multiple": false,
|
|
209
|
-
"type": "option"
|
|
284
|
+
"force": {
|
|
285
|
+
"description": "Force removal even if other apps depend on this one",
|
|
286
|
+
"name": "force",
|
|
287
|
+
"allowNo": false,
|
|
288
|
+
"type": "boolean"
|
|
210
289
|
},
|
|
211
|
-
"
|
|
212
|
-
"
|
|
213
|
-
"
|
|
214
|
-
"
|
|
215
|
-
"
|
|
216
|
-
"
|
|
217
|
-
"options": [
|
|
218
|
-
"mssql",
|
|
219
|
-
"postgres"
|
|
220
|
-
],
|
|
221
|
-
"type": "option"
|
|
290
|
+
"yes": {
|
|
291
|
+
"char": "y",
|
|
292
|
+
"description": "Skip confirmation prompt",
|
|
293
|
+
"name": "yes",
|
|
294
|
+
"allowNo": false,
|
|
295
|
+
"type": "boolean"
|
|
222
296
|
},
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"options": [
|
|
230
|
-
"full",
|
|
231
|
-
"hash",
|
|
232
|
-
"counts",
|
|
233
|
-
"none"
|
|
234
|
-
],
|
|
235
|
-
"type": "option"
|
|
297
|
+
"verbose": {
|
|
298
|
+
"char": "v",
|
|
299
|
+
"description": "Show detailed output",
|
|
300
|
+
"name": "verbose",
|
|
301
|
+
"allowNo": false,
|
|
302
|
+
"type": "boolean"
|
|
236
303
|
},
|
|
237
|
-
"
|
|
238
|
-
"
|
|
239
|
-
"name": "
|
|
240
|
-
"
|
|
304
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
305
|
+
"hidden": true,
|
|
306
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
307
|
+
"allowNo": false,
|
|
308
|
+
"type": "boolean"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"hasDynamicHelp": false,
|
|
312
|
+
"hiddenAliases": [],
|
|
313
|
+
"id": "app:remove",
|
|
314
|
+
"pluginAlias": "@memberjunction/cli",
|
|
315
|
+
"pluginName": "@memberjunction/cli",
|
|
316
|
+
"pluginType": "core",
|
|
317
|
+
"strict": true,
|
|
318
|
+
"enableJsonFlag": false,
|
|
319
|
+
"isESM": true,
|
|
320
|
+
"relativePath": [
|
|
321
|
+
"dist",
|
|
322
|
+
"commands",
|
|
323
|
+
"app",
|
|
324
|
+
"remove.js"
|
|
325
|
+
]
|
|
326
|
+
},
|
|
327
|
+
"app:upgrade": {
|
|
328
|
+
"aliases": [],
|
|
329
|
+
"args": {
|
|
330
|
+
"name": {
|
|
331
|
+
"description": "Name of the installed app to upgrade",
|
|
332
|
+
"name": "name",
|
|
333
|
+
"required": true
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
"description": "Upgrade an installed MJ Open App to a newer version",
|
|
337
|
+
"examples": [
|
|
338
|
+
"<%= config.bin %> app upgrade acme-crm",
|
|
339
|
+
"<%= config.bin %> app upgrade acme-crm --version 1.3.0"
|
|
340
|
+
],
|
|
341
|
+
"flags": {
|
|
342
|
+
"version": {
|
|
343
|
+
"description": "Specific version to upgrade to (default: latest)",
|
|
344
|
+
"name": "version",
|
|
241
345
|
"hasDynamicHelp": false,
|
|
242
346
|
"multiple": false,
|
|
243
|
-
"options": [
|
|
244
|
-
"sha256",
|
|
245
|
-
"md5",
|
|
246
|
-
"checksum_agg"
|
|
247
|
-
],
|
|
248
347
|
"type": "option"
|
|
249
348
|
},
|
|
250
|
-
"
|
|
251
|
-
"
|
|
252
|
-
"
|
|
253
|
-
"
|
|
349
|
+
"verbose": {
|
|
350
|
+
"char": "v",
|
|
351
|
+
"description": "Show detailed output",
|
|
352
|
+
"name": "verbose",
|
|
353
|
+
"allowNo": false,
|
|
354
|
+
"type": "boolean"
|
|
355
|
+
},
|
|
356
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
357
|
+
"hidden": true,
|
|
358
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
359
|
+
"allowNo": false,
|
|
360
|
+
"type": "boolean"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"hasDynamicHelp": false,
|
|
364
|
+
"hiddenAliases": [],
|
|
365
|
+
"id": "app:upgrade",
|
|
366
|
+
"pluginAlias": "@memberjunction/cli",
|
|
367
|
+
"pluginName": "@memberjunction/cli",
|
|
368
|
+
"pluginType": "core",
|
|
369
|
+
"strict": true,
|
|
370
|
+
"enableJsonFlag": false,
|
|
371
|
+
"isESM": true,
|
|
372
|
+
"relativePath": [
|
|
373
|
+
"dist",
|
|
374
|
+
"commands",
|
|
375
|
+
"app",
|
|
376
|
+
"upgrade.js"
|
|
377
|
+
]
|
|
378
|
+
},
|
|
379
|
+
"artifacts:reclassify": {
|
|
380
|
+
"aliases": [],
|
|
381
|
+
"args": {},
|
|
382
|
+
"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.",
|
|
383
|
+
"examples": [
|
|
384
|
+
"<%= config.bin %> <%= command.id %>",
|
|
385
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
386
|
+
],
|
|
387
|
+
"flags": {
|
|
388
|
+
"conversation-id": {
|
|
389
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
390
|
+
"name": "conversation-id",
|
|
254
391
|
"hasDynamicHelp": false,
|
|
255
392
|
"multiple": false,
|
|
256
393
|
"type": "option"
|
|
257
394
|
},
|
|
258
|
-
"
|
|
259
|
-
"description": "
|
|
260
|
-
"name": "
|
|
261
|
-
"default": 100,
|
|
395
|
+
"since": {
|
|
396
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
397
|
+
"name": "since",
|
|
262
398
|
"hasDynamicHelp": false,
|
|
263
399
|
"multiple": false,
|
|
264
400
|
"type": "option"
|
|
265
401
|
},
|
|
266
|
-
"
|
|
267
|
-
"description": "
|
|
268
|
-
"name": "
|
|
402
|
+
"limit": {
|
|
403
|
+
"description": "Maximum number of rows to inspect.",
|
|
404
|
+
"name": "limit",
|
|
405
|
+
"default": 100,
|
|
269
406
|
"hasDynamicHelp": false,
|
|
270
407
|
"multiple": false,
|
|
271
408
|
"type": "option"
|
|
272
409
|
},
|
|
273
|
-
"
|
|
274
|
-
"description": "
|
|
275
|
-
"name": "
|
|
410
|
+
"apply": {
|
|
411
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
412
|
+
"name": "apply",
|
|
276
413
|
"allowNo": false,
|
|
277
414
|
"type": "boolean"
|
|
278
415
|
},
|
|
279
416
|
"verbose": {
|
|
280
|
-
"
|
|
417
|
+
"char": "v",
|
|
418
|
+
"description": "Print every candidate row, not just the summary.",
|
|
281
419
|
"name": "verbose",
|
|
282
420
|
"allowNo": false,
|
|
283
421
|
"type": "boolean"
|
|
@@ -285,7 +423,7 @@
|
|
|
285
423
|
},
|
|
286
424
|
"hasDynamicHelp": false,
|
|
287
425
|
"hiddenAliases": [],
|
|
288
|
-
"id": "
|
|
426
|
+
"id": "artifacts:reclassify",
|
|
289
427
|
"pluginAlias": "@memberjunction/cli",
|
|
290
428
|
"pluginName": "@memberjunction/cli",
|
|
291
429
|
"pluginType": "core",
|
|
@@ -295,119 +433,96 @@
|
|
|
295
433
|
"relativePath": [
|
|
296
434
|
"dist",
|
|
297
435
|
"commands",
|
|
298
|
-
"
|
|
299
|
-
"
|
|
436
|
+
"artifacts",
|
|
437
|
+
"reclassify.js"
|
|
300
438
|
]
|
|
301
439
|
},
|
|
302
|
-
"baseline:
|
|
440
|
+
"baseline:build": {
|
|
303
441
|
"aliases": [],
|
|
304
442
|
"args": {},
|
|
305
|
-
"description": "
|
|
443
|
+
"description": "Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.",
|
|
306
444
|
"examples": [
|
|
307
|
-
"<%= config.bin %> <%= command.id %> --
|
|
308
|
-
"<%= config.bin %> <%= command.id %> --
|
|
309
|
-
"<%= config.bin %> <%= command.id %> --
|
|
445
|
+
"<%= config.bin %> <%= command.id %> --out ./migrations/v5/ # auto: within-major rebaseline",
|
|
446
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --out ./migrations/v5/",
|
|
447
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --out ./migrations/v6/ # explicit major-boundary",
|
|
448
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
310
449
|
],
|
|
311
450
|
"flags": {
|
|
312
451
|
"baseline-version": {
|
|
313
|
-
"description": "Major.Minor
|
|
452
|
+
"description": "Baseline version stamp in Major.Minor format (literal x is appended for patch, matching the V-file convention). Omit to auto-detect from --source-dir (within-major rebaseline mode).",
|
|
314
453
|
"name": "baseline-version",
|
|
315
454
|
"hasDynamicHelp": false,
|
|
316
455
|
"multiple": false,
|
|
317
456
|
"type": "option"
|
|
318
457
|
},
|
|
319
458
|
"source-dir": {
|
|
320
|
-
"description": "Migrations source directory
|
|
459
|
+
"description": "Migrations source directory (e.g. ./migrations/v5). Used to auto-detect the next baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ directory walked up from cwd.",
|
|
321
460
|
"name": "source-dir",
|
|
322
461
|
"hasDynamicHelp": false,
|
|
323
462
|
"multiple": false,
|
|
324
463
|
"type": "option"
|
|
325
464
|
},
|
|
326
465
|
"description": {
|
|
327
|
-
"description": "
|
|
466
|
+
"description": "Human-readable description embedded in the file header.",
|
|
328
467
|
"name": "description",
|
|
329
468
|
"default": "MemberJunction Baseline",
|
|
330
469
|
"hasDynamicHelp": false,
|
|
331
470
|
"multiple": false,
|
|
332
471
|
"type": "option"
|
|
333
472
|
},
|
|
334
|
-
"
|
|
335
|
-
"description": "
|
|
336
|
-
"name": "
|
|
337
|
-
"default": "mssql",
|
|
338
|
-
"hasDynamicHelp": false,
|
|
339
|
-
"multiple": false,
|
|
340
|
-
"options": [
|
|
341
|
-
"mssql",
|
|
342
|
-
"postgres"
|
|
343
|
-
],
|
|
344
|
-
"type": "option"
|
|
345
|
-
},
|
|
346
|
-
"source": {
|
|
347
|
-
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
348
|
-
"name": "source",
|
|
349
|
-
"required": true,
|
|
350
|
-
"hasDynamicHelp": false,
|
|
351
|
-
"multiple": false,
|
|
352
|
-
"type": "option"
|
|
353
|
-
},
|
|
354
|
-
"target": {
|
|
355
|
-
"description": "Empty database name to apply the new baseline to.",
|
|
356
|
-
"name": "target",
|
|
357
|
-
"required": true,
|
|
473
|
+
"database": {
|
|
474
|
+
"description": "Override database name (host/user/password come from MJ config).",
|
|
475
|
+
"name": "database",
|
|
358
476
|
"hasDynamicHelp": false,
|
|
359
477
|
"multiple": false,
|
|
360
478
|
"type": "option"
|
|
361
479
|
},
|
|
362
480
|
"out": {
|
|
363
|
-
"description": "Output directory
|
|
481
|
+
"description": "Output directory. Filename is auto-generated.",
|
|
364
482
|
"name": "out",
|
|
365
483
|
"default": ".",
|
|
366
484
|
"hasDynamicHelp": false,
|
|
367
485
|
"multiple": false,
|
|
368
486
|
"type": "option"
|
|
369
487
|
},
|
|
370
|
-
"
|
|
371
|
-
"description": "
|
|
372
|
-
"name": "
|
|
488
|
+
"exclude-data": {
|
|
489
|
+
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
490
|
+
"name": "exclude-data",
|
|
491
|
+
"default": "",
|
|
373
492
|
"hasDynamicHelp": false,
|
|
374
493
|
"multiple": false,
|
|
375
494
|
"type": "option"
|
|
376
495
|
},
|
|
377
|
-
"
|
|
378
|
-
"description": "
|
|
379
|
-
"name": "
|
|
380
|
-
"default":
|
|
496
|
+
"batch-size": {
|
|
497
|
+
"description": "Rows per INSERT batch.",
|
|
498
|
+
"name": "batch-size",
|
|
499
|
+
"default": 1000,
|
|
381
500
|
"hasDynamicHelp": false,
|
|
382
501
|
"multiple": false,
|
|
383
|
-
"options": [
|
|
384
|
-
"full",
|
|
385
|
-
"hash",
|
|
386
|
-
"counts",
|
|
387
|
-
"none"
|
|
388
|
-
],
|
|
389
502
|
"type": "option"
|
|
390
503
|
},
|
|
391
|
-
"
|
|
392
|
-
"
|
|
504
|
+
"no-data": {
|
|
505
|
+
"description": "Emit schema only, no data inserts.",
|
|
506
|
+
"name": "no-data",
|
|
393
507
|
"allowNo": false,
|
|
394
508
|
"type": "boolean"
|
|
395
509
|
},
|
|
396
|
-
"
|
|
397
|
-
"description": "
|
|
398
|
-
"name": "
|
|
510
|
+
"verbose": {
|
|
511
|
+
"description": "Print per-object progress.",
|
|
512
|
+
"name": "verbose",
|
|
399
513
|
"allowNo": false,
|
|
400
514
|
"type": "boolean"
|
|
401
515
|
},
|
|
402
|
-
"
|
|
403
|
-
"
|
|
516
|
+
"dry-run": {
|
|
517
|
+
"description": "Print to stdout instead of writing a file.",
|
|
518
|
+
"name": "dry-run",
|
|
404
519
|
"allowNo": false,
|
|
405
520
|
"type": "boolean"
|
|
406
521
|
}
|
|
407
522
|
},
|
|
408
523
|
"hasDynamicHelp": false,
|
|
409
524
|
"hiddenAliases": [],
|
|
410
|
-
"id": "baseline:
|
|
525
|
+
"id": "baseline:build",
|
|
411
526
|
"pluginAlias": "@memberjunction/cli",
|
|
412
527
|
"pluginName": "@memberjunction/cli",
|
|
413
528
|
"pluginType": "core",
|
|
@@ -418,187 +533,105 @@
|
|
|
418
533
|
"dist",
|
|
419
534
|
"commands",
|
|
420
535
|
"baseline",
|
|
421
|
-
"
|
|
536
|
+
"build.js"
|
|
422
537
|
]
|
|
423
538
|
},
|
|
424
|
-
"
|
|
539
|
+
"baseline:compare": {
|
|
425
540
|
"aliases": [],
|
|
426
541
|
"args": {},
|
|
427
|
-
"description": "
|
|
428
|
-
"examples": [
|
|
429
|
-
"<%= config.bin %> app check-updates"
|
|
430
|
-
],
|
|
431
|
-
"flags": {},
|
|
432
|
-
"hasDynamicHelp": false,
|
|
433
|
-
"hiddenAliases": [],
|
|
434
|
-
"id": "app:check-updates",
|
|
435
|
-
"pluginAlias": "@memberjunction/cli",
|
|
436
|
-
"pluginName": "@memberjunction/cli",
|
|
437
|
-
"pluginType": "core",
|
|
438
|
-
"strict": true,
|
|
439
|
-
"enableJsonFlag": false,
|
|
440
|
-
"isESM": true,
|
|
441
|
-
"relativePath": [
|
|
442
|
-
"dist",
|
|
443
|
-
"commands",
|
|
444
|
-
"app",
|
|
445
|
-
"check-updates.js"
|
|
446
|
-
]
|
|
447
|
-
},
|
|
448
|
-
"app:disable": {
|
|
449
|
-
"aliases": [],
|
|
450
|
-
"args": {
|
|
451
|
-
"name": {
|
|
452
|
-
"description": "Name of the installed app to disable",
|
|
453
|
-
"name": "name",
|
|
454
|
-
"required": true
|
|
455
|
-
}
|
|
456
|
-
},
|
|
457
|
-
"description": "Disable an installed MJ Open App without removing it",
|
|
458
|
-
"examples": [
|
|
459
|
-
"<%= config.bin %> app disable acme-crm"
|
|
460
|
-
],
|
|
461
|
-
"flags": {},
|
|
462
|
-
"hasDynamicHelp": false,
|
|
463
|
-
"hiddenAliases": [],
|
|
464
|
-
"id": "app:disable",
|
|
465
|
-
"pluginAlias": "@memberjunction/cli",
|
|
466
|
-
"pluginName": "@memberjunction/cli",
|
|
467
|
-
"pluginType": "core",
|
|
468
|
-
"strict": true,
|
|
469
|
-
"enableJsonFlag": false,
|
|
470
|
-
"isESM": true,
|
|
471
|
-
"relativePath": [
|
|
472
|
-
"dist",
|
|
473
|
-
"commands",
|
|
474
|
-
"app",
|
|
475
|
-
"disable.js"
|
|
476
|
-
]
|
|
477
|
-
},
|
|
478
|
-
"app:enable": {
|
|
479
|
-
"aliases": [],
|
|
480
|
-
"args": {
|
|
481
|
-
"name": {
|
|
482
|
-
"description": "Name of the installed app to enable",
|
|
483
|
-
"name": "name",
|
|
484
|
-
"required": true
|
|
485
|
-
}
|
|
486
|
-
},
|
|
487
|
-
"description": "Re-enable a disabled MJ Open App",
|
|
488
|
-
"examples": [
|
|
489
|
-
"<%= config.bin %> app enable acme-crm"
|
|
490
|
-
],
|
|
491
|
-
"flags": {},
|
|
492
|
-
"hasDynamicHelp": false,
|
|
493
|
-
"hiddenAliases": [],
|
|
494
|
-
"id": "app:enable",
|
|
495
|
-
"pluginAlias": "@memberjunction/cli",
|
|
496
|
-
"pluginName": "@memberjunction/cli",
|
|
497
|
-
"pluginType": "core",
|
|
498
|
-
"strict": true,
|
|
499
|
-
"enableJsonFlag": false,
|
|
500
|
-
"isESM": true,
|
|
501
|
-
"relativePath": [
|
|
502
|
-
"dist",
|
|
503
|
-
"commands",
|
|
504
|
-
"app",
|
|
505
|
-
"enable.js"
|
|
506
|
-
]
|
|
507
|
-
},
|
|
508
|
-
"app:info": {
|
|
509
|
-
"aliases": [],
|
|
510
|
-
"args": {
|
|
511
|
-
"name": {
|
|
512
|
-
"description": "Name of the installed app",
|
|
513
|
-
"name": "name",
|
|
514
|
-
"required": true
|
|
515
|
-
}
|
|
516
|
-
},
|
|
517
|
-
"description": "Show detailed information about an installed MJ Open App",
|
|
518
|
-
"examples": [
|
|
519
|
-
"<%= config.bin %> app info acme-crm"
|
|
520
|
-
],
|
|
521
|
-
"flags": {},
|
|
522
|
-
"hasDynamicHelp": false,
|
|
523
|
-
"hiddenAliases": [],
|
|
524
|
-
"id": "app:info",
|
|
525
|
-
"pluginAlias": "@memberjunction/cli",
|
|
526
|
-
"pluginName": "@memberjunction/cli",
|
|
527
|
-
"pluginType": "core",
|
|
528
|
-
"strict": true,
|
|
529
|
-
"enableJsonFlag": false,
|
|
530
|
-
"isESM": true,
|
|
531
|
-
"relativePath": [
|
|
532
|
-
"dist",
|
|
533
|
-
"commands",
|
|
534
|
-
"app",
|
|
535
|
-
"info.js"
|
|
536
|
-
]
|
|
537
|
-
},
|
|
538
|
-
"app:install": {
|
|
539
|
-
"aliases": [],
|
|
540
|
-
"args": {
|
|
541
|
-
"source": {
|
|
542
|
-
"description": "GitHub repository URL of the Open App",
|
|
543
|
-
"name": "source",
|
|
544
|
-
"required": true
|
|
545
|
-
}
|
|
546
|
-
},
|
|
547
|
-
"description": "Install an MJ Open App from a GitHub repository",
|
|
542
|
+
"description": "Deterministically compare two databases object-by-object and row-by-row.",
|
|
548
543
|
"examples": [
|
|
549
|
-
"<%= config.bin %>
|
|
550
|
-
"<%= config.bin %>
|
|
551
|
-
"<%= config.bin %>
|
|
544
|
+
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
545
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
546
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
552
547
|
],
|
|
553
548
|
"flags": {
|
|
554
|
-
"
|
|
555
|
-
"description": "
|
|
556
|
-
"name": "
|
|
549
|
+
"left": {
|
|
550
|
+
"description": "Left database name (override).",
|
|
551
|
+
"name": "left",
|
|
552
|
+
"required": true,
|
|
557
553
|
"hasDynamicHelp": false,
|
|
558
554
|
"multiple": false,
|
|
559
555
|
"type": "option"
|
|
560
556
|
},
|
|
561
|
-
"
|
|
562
|
-
"
|
|
563
|
-
"
|
|
564
|
-
"
|
|
565
|
-
"
|
|
566
|
-
"
|
|
557
|
+
"right": {
|
|
558
|
+
"description": "Right database name (override).",
|
|
559
|
+
"name": "right",
|
|
560
|
+
"required": true,
|
|
561
|
+
"hasDynamicHelp": false,
|
|
562
|
+
"multiple": false,
|
|
563
|
+
"type": "option"
|
|
567
564
|
},
|
|
568
|
-
"
|
|
569
|
-
"
|
|
570
|
-
"name": "
|
|
565
|
+
"dialect": {
|
|
566
|
+
"description": "Dialect of both DBs (must match).",
|
|
567
|
+
"name": "dialect",
|
|
568
|
+
"default": "mssql",
|
|
569
|
+
"hasDynamicHelp": false,
|
|
570
|
+
"multiple": false,
|
|
571
|
+
"options": [
|
|
572
|
+
"mssql",
|
|
573
|
+
"postgres"
|
|
574
|
+
],
|
|
575
|
+
"type": "option"
|
|
576
|
+
},
|
|
577
|
+
"row-compare": {
|
|
578
|
+
"description": "Row comparison mode.",
|
|
579
|
+
"name": "row-compare",
|
|
580
|
+
"default": "full",
|
|
581
|
+
"hasDynamicHelp": false,
|
|
582
|
+
"multiple": false,
|
|
583
|
+
"options": [
|
|
584
|
+
"full",
|
|
585
|
+
"hash",
|
|
586
|
+
"counts",
|
|
587
|
+
"none"
|
|
588
|
+
],
|
|
589
|
+
"type": "option"
|
|
590
|
+
},
|
|
591
|
+
"row-hash-algo": {
|
|
592
|
+
"description": "Hash algorithm when --row-compare hash.",
|
|
593
|
+
"name": "row-hash-algo",
|
|
594
|
+
"default": "sha256",
|
|
595
|
+
"hasDynamicHelp": false,
|
|
596
|
+
"multiple": false,
|
|
597
|
+
"options": [
|
|
598
|
+
"sha256",
|
|
599
|
+
"md5",
|
|
600
|
+
"checksum_agg"
|
|
601
|
+
],
|
|
602
|
+
"type": "option"
|
|
603
|
+
},
|
|
604
|
+
"ignore": {
|
|
605
|
+
"description": "Regex of object names to skip.",
|
|
606
|
+
"name": "ignore",
|
|
607
|
+
"default": "^flyway_schema_history$",
|
|
608
|
+
"hasDynamicHelp": false,
|
|
609
|
+
"multiple": false,
|
|
610
|
+
"type": "option"
|
|
611
|
+
},
|
|
612
|
+
"sample-limit": {
|
|
613
|
+
"description": "Maximum row diffs to capture per table.",
|
|
614
|
+
"name": "sample-limit",
|
|
615
|
+
"default": 100,
|
|
616
|
+
"hasDynamicHelp": false,
|
|
617
|
+
"multiple": false,
|
|
618
|
+
"type": "option"
|
|
619
|
+
},
|
|
620
|
+
"out": {
|
|
621
|
+
"description": "Directory to write JSON + Markdown reports.",
|
|
622
|
+
"name": "out",
|
|
623
|
+
"hasDynamicHelp": false,
|
|
624
|
+
"multiple": false,
|
|
625
|
+
"type": "option"
|
|
626
|
+
},
|
|
627
|
+
"fail-on-diff": {
|
|
628
|
+
"description": "Exit non-zero if any diff is found.",
|
|
629
|
+
"name": "fail-on-diff",
|
|
571
630
|
"allowNo": false,
|
|
572
631
|
"type": "boolean"
|
|
573
|
-
}
|
|
574
|
-
},
|
|
575
|
-
"hasDynamicHelp": false,
|
|
576
|
-
"hiddenAliases": [],
|
|
577
|
-
"id": "app:install",
|
|
578
|
-
"pluginAlias": "@memberjunction/cli",
|
|
579
|
-
"pluginName": "@memberjunction/cli",
|
|
580
|
-
"pluginType": "core",
|
|
581
|
-
"strict": true,
|
|
582
|
-
"enableJsonFlag": false,
|
|
583
|
-
"isESM": true,
|
|
584
|
-
"relativePath": [
|
|
585
|
-
"dist",
|
|
586
|
-
"commands",
|
|
587
|
-
"app",
|
|
588
|
-
"install.js"
|
|
589
|
-
]
|
|
590
|
-
},
|
|
591
|
-
"app:list": {
|
|
592
|
-
"aliases": [],
|
|
593
|
-
"args": {},
|
|
594
|
-
"description": "List all installed MJ Open Apps",
|
|
595
|
-
"examples": [
|
|
596
|
-
"<%= config.bin %> app list"
|
|
597
|
-
],
|
|
598
|
-
"flags": {
|
|
632
|
+
},
|
|
599
633
|
"verbose": {
|
|
600
|
-
"
|
|
601
|
-
"description": "Show detailed output",
|
|
634
|
+
"description": "Print per-phase progress.",
|
|
602
635
|
"name": "verbose",
|
|
603
636
|
"allowNo": false,
|
|
604
637
|
"type": "boolean"
|
|
@@ -606,7 +639,7 @@
|
|
|
606
639
|
},
|
|
607
640
|
"hasDynamicHelp": false,
|
|
608
641
|
"hiddenAliases": [],
|
|
609
|
-
"id": "
|
|
642
|
+
"id": "baseline:compare",
|
|
610
643
|
"pluginAlias": "@memberjunction/cli",
|
|
611
644
|
"pluginName": "@memberjunction/cli",
|
|
612
645
|
"pluginType": "core",
|
|
@@ -616,114 +649,119 @@
|
|
|
616
649
|
"relativePath": [
|
|
617
650
|
"dist",
|
|
618
651
|
"commands",
|
|
619
|
-
"
|
|
620
|
-
"
|
|
652
|
+
"baseline",
|
|
653
|
+
"compare.js"
|
|
621
654
|
]
|
|
622
655
|
},
|
|
623
|
-
"
|
|
656
|
+
"baseline:roundtrip": {
|
|
624
657
|
"aliases": [],
|
|
625
|
-
"args": {
|
|
626
|
-
|
|
627
|
-
"description": "Name of the installed app to remove",
|
|
628
|
-
"name": "name",
|
|
629
|
-
"required": true
|
|
630
|
-
}
|
|
631
|
-
},
|
|
632
|
-
"description": "Remove an installed MJ Open App",
|
|
658
|
+
"args": {},
|
|
659
|
+
"description": "Build a baseline from a V-stack database, apply it to a fresh DB, and prove byte-equivalence.",
|
|
633
660
|
"examples": [
|
|
634
|
-
"<%= config.bin %>
|
|
635
|
-
"<%= config.bin %>
|
|
636
|
-
"<%= config.bin %>
|
|
661
|
+
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
662
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
663
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
637
664
|
],
|
|
638
665
|
"flags": {
|
|
639
|
-
"
|
|
640
|
-
"description": "
|
|
641
|
-
"name": "
|
|
642
|
-
"
|
|
643
|
-
"
|
|
666
|
+
"baseline-version": {
|
|
667
|
+
"description": "Major.Minor version stamp. Omit to auto-detect from --source-dir (within-major rebaseline).",
|
|
668
|
+
"name": "baseline-version",
|
|
669
|
+
"hasDynamicHelp": false,
|
|
670
|
+
"multiple": false,
|
|
671
|
+
"type": "option"
|
|
644
672
|
},
|
|
645
|
-
"
|
|
646
|
-
"description": "
|
|
647
|
-
"name": "
|
|
648
|
-
"
|
|
649
|
-
"
|
|
673
|
+
"source-dir": {
|
|
674
|
+
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
675
|
+
"name": "source-dir",
|
|
676
|
+
"hasDynamicHelp": false,
|
|
677
|
+
"multiple": false,
|
|
678
|
+
"type": "option"
|
|
650
679
|
},
|
|
651
|
-
"
|
|
652
|
-
"
|
|
653
|
-
"
|
|
654
|
-
"
|
|
655
|
-
"
|
|
656
|
-
"
|
|
680
|
+
"description": {
|
|
681
|
+
"description": "Header description.",
|
|
682
|
+
"name": "description",
|
|
683
|
+
"default": "MemberJunction Baseline",
|
|
684
|
+
"hasDynamicHelp": false,
|
|
685
|
+
"multiple": false,
|
|
686
|
+
"type": "option"
|
|
657
687
|
},
|
|
658
|
-
"
|
|
659
|
-
"
|
|
660
|
-
"
|
|
661
|
-
"
|
|
662
|
-
"
|
|
663
|
-
"
|
|
688
|
+
"dialect": {
|
|
689
|
+
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
690
|
+
"name": "dialect",
|
|
691
|
+
"default": "mssql",
|
|
692
|
+
"hasDynamicHelp": false,
|
|
693
|
+
"multiple": false,
|
|
694
|
+
"options": [
|
|
695
|
+
"mssql",
|
|
696
|
+
"postgres"
|
|
697
|
+
],
|
|
698
|
+
"type": "option"
|
|
664
699
|
},
|
|
665
|
-
"
|
|
666
|
-
"
|
|
667
|
-
"name": "
|
|
668
|
-
"
|
|
669
|
-
"
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
"remove.js"
|
|
686
|
-
]
|
|
687
|
-
},
|
|
688
|
-
"app:upgrade": {
|
|
689
|
-
"aliases": [],
|
|
690
|
-
"args": {
|
|
691
|
-
"name": {
|
|
692
|
-
"description": "Name of the installed app to upgrade",
|
|
693
|
-
"name": "name",
|
|
694
|
-
"required": true
|
|
695
|
-
}
|
|
696
|
-
},
|
|
697
|
-
"description": "Upgrade an installed MJ Open App to a newer version",
|
|
698
|
-
"examples": [
|
|
699
|
-
"<%= config.bin %> app upgrade acme-crm",
|
|
700
|
-
"<%= config.bin %> app upgrade acme-crm --version 1.3.0"
|
|
701
|
-
],
|
|
702
|
-
"flags": {
|
|
703
|
-
"version": {
|
|
704
|
-
"description": "Specific version to upgrade to (default: latest)",
|
|
705
|
-
"name": "version",
|
|
700
|
+
"source": {
|
|
701
|
+
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
702
|
+
"name": "source",
|
|
703
|
+
"required": true,
|
|
704
|
+
"hasDynamicHelp": false,
|
|
705
|
+
"multiple": false,
|
|
706
|
+
"type": "option"
|
|
707
|
+
},
|
|
708
|
+
"target": {
|
|
709
|
+
"description": "Empty database name to apply the new baseline to.",
|
|
710
|
+
"name": "target",
|
|
711
|
+
"required": true,
|
|
712
|
+
"hasDynamicHelp": false,
|
|
713
|
+
"multiple": false,
|
|
714
|
+
"type": "option"
|
|
715
|
+
},
|
|
716
|
+
"out": {
|
|
717
|
+
"description": "Output directory for baseline file + reports.",
|
|
718
|
+
"name": "out",
|
|
719
|
+
"default": ".",
|
|
706
720
|
"hasDynamicHelp": false,
|
|
707
721
|
"multiple": false,
|
|
708
722
|
"type": "option"
|
|
709
723
|
},
|
|
710
|
-
"
|
|
711
|
-
"
|
|
712
|
-
"
|
|
713
|
-
"
|
|
724
|
+
"apply-cmd": {
|
|
725
|
+
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
726
|
+
"name": "apply-cmd",
|
|
727
|
+
"hasDynamicHelp": false,
|
|
728
|
+
"multiple": false,
|
|
729
|
+
"type": "option"
|
|
730
|
+
},
|
|
731
|
+
"row-compare": {
|
|
732
|
+
"description": "Row compare mode passed to the comparator.",
|
|
733
|
+
"name": "row-compare",
|
|
734
|
+
"default": "full",
|
|
735
|
+
"hasDynamicHelp": false,
|
|
736
|
+
"multiple": false,
|
|
737
|
+
"options": [
|
|
738
|
+
"full",
|
|
739
|
+
"hash",
|
|
740
|
+
"counts",
|
|
741
|
+
"none"
|
|
742
|
+
],
|
|
743
|
+
"type": "option"
|
|
744
|
+
},
|
|
745
|
+
"fail-on-diff": {
|
|
746
|
+
"name": "fail-on-diff",
|
|
714
747
|
"allowNo": false,
|
|
715
748
|
"type": "boolean"
|
|
716
749
|
},
|
|
717
|
-
"
|
|
718
|
-
"
|
|
719
|
-
"name": "
|
|
750
|
+
"keep-target": {
|
|
751
|
+
"description": "Do not drop the target database after run (useful for debugging diffs).",
|
|
752
|
+
"name": "keep-target",
|
|
753
|
+
"allowNo": false,
|
|
754
|
+
"type": "boolean"
|
|
755
|
+
},
|
|
756
|
+
"verbose": {
|
|
757
|
+
"name": "verbose",
|
|
720
758
|
"allowNo": false,
|
|
721
759
|
"type": "boolean"
|
|
722
760
|
}
|
|
723
761
|
},
|
|
724
762
|
"hasDynamicHelp": false,
|
|
725
763
|
"hiddenAliases": [],
|
|
726
|
-
"id": "
|
|
764
|
+
"id": "baseline:roundtrip",
|
|
727
765
|
"pluginAlias": "@memberjunction/cli",
|
|
728
766
|
"pluginName": "@memberjunction/cli",
|
|
729
767
|
"pluginType": "core",
|
|
@@ -733,8 +771,8 @@
|
|
|
733
771
|
"relativePath": [
|
|
734
772
|
"dist",
|
|
735
773
|
"commands",
|
|
736
|
-
"
|
|
737
|
-
"
|
|
774
|
+
"baseline",
|
|
775
|
+
"roundtrip.js"
|
|
738
776
|
]
|
|
739
777
|
},
|
|
740
778
|
"bump": {
|
|
@@ -865,6 +903,12 @@
|
|
|
865
903
|
],
|
|
866
904
|
"type": "option"
|
|
867
905
|
},
|
|
906
|
+
"no-claude-pack": {
|
|
907
|
+
"description": "Exclude the Claude Code pack (CLAUDE.md + .claude/) from the bundle. By default the pack is included so air-gapped installs get the same out-of-the-box Claude experience as online installs.",
|
|
908
|
+
"name": "no-claude-pack",
|
|
909
|
+
"allowNo": false,
|
|
910
|
+
"type": "boolean"
|
|
911
|
+
},
|
|
868
912
|
"verbose": {
|
|
869
913
|
"char": "v",
|
|
870
914
|
"description": "Show detailed output",
|
|
@@ -1149,7 +1193,7 @@
|
|
|
1149
1193
|
"codegen": {
|
|
1150
1194
|
"aliases": [],
|
|
1151
1195
|
"args": {},
|
|
1152
|
-
"description": "Run the full MemberJunction code generation pipeline.\n\nAnalyzes your
|
|
1196
|
+
"description": "Run the full MemberJunction code generation pipeline.\n\nAnalyzes your database schema, updates MemberJunction metadata, and generates\nsynchronized code across the stack: SQL objects, TypeScript entities, Angular\nforms, GraphQL resolvers, Action subclasses, and DB schema JSON.\n\nUse --skipdb to regenerate code from existing metadata only; --skipfiles to run\ndatabase-side operations only. --force-advanced-gen re-runs the LLM-driven\nadvanced generation for ALL entities (bypasses changed-entity scoping).",
|
|
1153
1197
|
"examples": [
|
|
1154
1198
|
{
|
|
1155
1199
|
"command": "<%= config.bin %> <%= command.id %>",
|
|
@@ -1160,29 +1204,51 @@
|
|
|
1160
1204
|
"description": "Regenerate code files without touching the database"
|
|
1161
1205
|
},
|
|
1162
1206
|
{
|
|
1163
|
-
"command": "<%= config.bin %> <%= command.id %> --
|
|
1164
|
-
"description": "
|
|
1165
|
-
},
|
|
1166
|
-
{
|
|
1167
|
-
"command": "<%= config.bin %> <%= command.id %> --force-advanced-gen",
|
|
1168
|
-
"description": "Re-run advanced generation for all entities (bypasses changed-entity scoping)"
|
|
1207
|
+
"command": "<%= config.bin %> <%= command.id %> --format=json",
|
|
1208
|
+
"description": "Emit a machine-readable result for an agent"
|
|
1169
1209
|
}
|
|
1170
1210
|
],
|
|
1171
1211
|
"flags": {
|
|
1212
|
+
"format": {
|
|
1213
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced)",
|
|
1214
|
+
"name": "format",
|
|
1215
|
+
"default": "text",
|
|
1216
|
+
"hasDynamicHelp": false,
|
|
1217
|
+
"multiple": false,
|
|
1218
|
+
"options": [
|
|
1219
|
+
"text",
|
|
1220
|
+
"json",
|
|
1221
|
+
"md"
|
|
1222
|
+
],
|
|
1223
|
+
"type": "option"
|
|
1224
|
+
},
|
|
1225
|
+
"verbose": {
|
|
1226
|
+
"char": "v",
|
|
1227
|
+
"description": "Show detailed output",
|
|
1228
|
+
"name": "verbose",
|
|
1229
|
+
"allowNo": false,
|
|
1230
|
+
"type": "boolean"
|
|
1231
|
+
},
|
|
1232
|
+
"no-banner": {
|
|
1233
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
1234
|
+
"name": "no-banner",
|
|
1235
|
+
"allowNo": false,
|
|
1236
|
+
"type": "boolean"
|
|
1237
|
+
},
|
|
1172
1238
|
"skipdb": {
|
|
1173
|
-
"description": "Skip database operations
|
|
1239
|
+
"description": "Skip database operations. Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.",
|
|
1174
1240
|
"name": "skipdb",
|
|
1175
1241
|
"allowNo": false,
|
|
1176
1242
|
"type": "boolean"
|
|
1177
1243
|
},
|
|
1178
1244
|
"skipfiles": {
|
|
1179
|
-
"description": "Skip file-generation operations
|
|
1245
|
+
"description": "Skip file-generation operations. Only run database-side operations (metadata sync, SQL object generation).",
|
|
1180
1246
|
"name": "skipfiles",
|
|
1181
1247
|
"allowNo": false,
|
|
1182
1248
|
"type": "boolean"
|
|
1183
1249
|
},
|
|
1184
1250
|
"force-advanced-gen": {
|
|
1185
|
-
"description": "Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities.
|
|
1251
|
+
"description": "Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities.",
|
|
1186
1252
|
"name": "force-advanced-gen",
|
|
1187
1253
|
"allowNo": false,
|
|
1188
1254
|
"type": "boolean"
|
|
@@ -1196,6 +1262,44 @@
|
|
|
1196
1262
|
"pluginType": "core",
|
|
1197
1263
|
"strict": true,
|
|
1198
1264
|
"enableJsonFlag": false,
|
|
1265
|
+
"Usage": {
|
|
1266
|
+
"domain": "codegen",
|
|
1267
|
+
"command": "codegen",
|
|
1268
|
+
"summary": "Regenerate entities, SQL, and Angular forms from the database schema.",
|
|
1269
|
+
"description": "Runs the full CodeGen pipeline. Scales with entity count — a full run is far slower than a single-entity change. Use --skipdb/--skipfiles to run only one half.",
|
|
1270
|
+
"flags": [
|
|
1271
|
+
{
|
|
1272
|
+
"name": "--skipdb",
|
|
1273
|
+
"type": "boolean",
|
|
1274
|
+
"description": "Regenerate code from existing metadata only (no DB operations)"
|
|
1275
|
+
},
|
|
1276
|
+
{
|
|
1277
|
+
"name": "--skipfiles",
|
|
1278
|
+
"type": "boolean",
|
|
1279
|
+
"description": "Run DB-side operations only (no code files)"
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"name": "--force-advanced-gen",
|
|
1283
|
+
"type": "boolean",
|
|
1284
|
+
"description": "Re-run advanced generation for all entities"
|
|
1285
|
+
},
|
|
1286
|
+
{
|
|
1287
|
+
"name": "--format",
|
|
1288
|
+
"type": "text|json|md",
|
|
1289
|
+
"description": "Output format (json for machine-readable result)"
|
|
1290
|
+
}
|
|
1291
|
+
],
|
|
1292
|
+
"examples": [
|
|
1293
|
+
"mj codegen",
|
|
1294
|
+
"mj codegen --skipdb",
|
|
1295
|
+
"mj codegen --format=json"
|
|
1296
|
+
],
|
|
1297
|
+
"runtime": {
|
|
1298
|
+
"class": "slow",
|
|
1299
|
+
"typicalSeconds": 45,
|
|
1300
|
+
"note": "scales with entity count; full run far slower than a single-entity change"
|
|
1301
|
+
}
|
|
1302
|
+
},
|
|
1199
1303
|
"isESM": true,
|
|
1200
1304
|
"relativePath": [
|
|
1201
1305
|
"dist",
|
|
@@ -1324,6 +1428,41 @@
|
|
|
1324
1428
|
"manifest.js"
|
|
1325
1429
|
]
|
|
1326
1430
|
},
|
|
1431
|
+
"codegen:usage": {
|
|
1432
|
+
"aliases": [],
|
|
1433
|
+
"args": {},
|
|
1434
|
+
"description": "Show usage, flags, examples, and runtime hints for `mj codegen`.",
|
|
1435
|
+
"flags": {
|
|
1436
|
+
"format": {
|
|
1437
|
+
"description": "Output format",
|
|
1438
|
+
"name": "format",
|
|
1439
|
+
"default": "text",
|
|
1440
|
+
"hasDynamicHelp": false,
|
|
1441
|
+
"multiple": false,
|
|
1442
|
+
"options": [
|
|
1443
|
+
"text",
|
|
1444
|
+
"json",
|
|
1445
|
+
"md"
|
|
1446
|
+
],
|
|
1447
|
+
"type": "option"
|
|
1448
|
+
}
|
|
1449
|
+
},
|
|
1450
|
+
"hasDynamicHelp": false,
|
|
1451
|
+
"hiddenAliases": [],
|
|
1452
|
+
"id": "codegen:usage",
|
|
1453
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1454
|
+
"pluginName": "@memberjunction/cli",
|
|
1455
|
+
"pluginType": "core",
|
|
1456
|
+
"strict": true,
|
|
1457
|
+
"enableJsonFlag": false,
|
|
1458
|
+
"isESM": true,
|
|
1459
|
+
"relativePath": [
|
|
1460
|
+
"dist",
|
|
1461
|
+
"commands",
|
|
1462
|
+
"codegen",
|
|
1463
|
+
"usage.js"
|
|
1464
|
+
]
|
|
1465
|
+
},
|
|
1327
1466
|
"dbdoc:analyze": {
|
|
1328
1467
|
"aliases": [],
|
|
1329
1468
|
"args": {},
|
|
@@ -1818,6 +1957,119 @@
|
|
|
1818
1957
|
"index.js"
|
|
1819
1958
|
]
|
|
1820
1959
|
},
|
|
1960
|
+
"install:claude": {
|
|
1961
|
+
"aliases": [],
|
|
1962
|
+
"args": {},
|
|
1963
|
+
"description": "Install or refresh the Claude Code pack in the current directory.",
|
|
1964
|
+
"examples": [
|
|
1965
|
+
"<%= config.bin %> install:claude",
|
|
1966
|
+
"<%= config.bin %> install:claude --dry-run",
|
|
1967
|
+
"<%= config.bin %> install:claude --from ./local-pack",
|
|
1968
|
+
"<%= config.bin %> install:claude --json"
|
|
1969
|
+
],
|
|
1970
|
+
"flags": {
|
|
1971
|
+
"dir": {
|
|
1972
|
+
"description": "Target directory for the install",
|
|
1973
|
+
"name": "dir",
|
|
1974
|
+
"default": ".",
|
|
1975
|
+
"hasDynamicHelp": false,
|
|
1976
|
+
"multiple": false,
|
|
1977
|
+
"type": "option"
|
|
1978
|
+
},
|
|
1979
|
+
"major": {
|
|
1980
|
+
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
1981
|
+
"name": "major",
|
|
1982
|
+
"hasDynamicHelp": false,
|
|
1983
|
+
"multiple": false,
|
|
1984
|
+
"type": "option"
|
|
1985
|
+
},
|
|
1986
|
+
"ref": {
|
|
1987
|
+
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
1988
|
+
"name": "ref",
|
|
1989
|
+
"hasDynamicHelp": false,
|
|
1990
|
+
"multiple": false,
|
|
1991
|
+
"type": "option"
|
|
1992
|
+
},
|
|
1993
|
+
"from": {
|
|
1994
|
+
"description": "Use a local pack source instead of fetching from GitHub",
|
|
1995
|
+
"name": "from",
|
|
1996
|
+
"hasDynamicHelp": false,
|
|
1997
|
+
"multiple": false,
|
|
1998
|
+
"type": "option"
|
|
1999
|
+
},
|
|
2000
|
+
"offline": {
|
|
2001
|
+
"description": "Forbid network; requires --from <path>",
|
|
2002
|
+
"name": "offline",
|
|
2003
|
+
"allowNo": false,
|
|
2004
|
+
"type": "boolean"
|
|
2005
|
+
},
|
|
2006
|
+
"dry-run": {
|
|
2007
|
+
"description": "Print what would be written; change nothing",
|
|
2008
|
+
"name": "dry-run",
|
|
2009
|
+
"allowNo": false,
|
|
2010
|
+
"type": "boolean"
|
|
2011
|
+
},
|
|
2012
|
+
"yes": {
|
|
2013
|
+
"char": "y",
|
|
2014
|
+
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
2015
|
+
"name": "yes",
|
|
2016
|
+
"allowNo": false,
|
|
2017
|
+
"type": "boolean"
|
|
2018
|
+
},
|
|
2019
|
+
"force": {
|
|
2020
|
+
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
2021
|
+
"name": "force",
|
|
2022
|
+
"allowNo": false,
|
|
2023
|
+
"type": "boolean"
|
|
2024
|
+
},
|
|
2025
|
+
"skip-commands": {
|
|
2026
|
+
"description": "Skip seeding .claude/commands/",
|
|
2027
|
+
"name": "skip-commands",
|
|
2028
|
+
"allowNo": false,
|
|
2029
|
+
"type": "boolean"
|
|
2030
|
+
},
|
|
2031
|
+
"skip-skills": {
|
|
2032
|
+
"description": "Skip seeding .claude/skills/",
|
|
2033
|
+
"name": "skip-skills",
|
|
2034
|
+
"allowNo": false,
|
|
2035
|
+
"type": "boolean"
|
|
2036
|
+
},
|
|
2037
|
+
"skip-settings": {
|
|
2038
|
+
"description": "Skip merging .claude/settings.json",
|
|
2039
|
+
"name": "skip-settings",
|
|
2040
|
+
"allowNo": false,
|
|
2041
|
+
"type": "boolean"
|
|
2042
|
+
},
|
|
2043
|
+
"json": {
|
|
2044
|
+
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
2045
|
+
"name": "json",
|
|
2046
|
+
"allowNo": false,
|
|
2047
|
+
"type": "boolean"
|
|
2048
|
+
},
|
|
2049
|
+
"verbose": {
|
|
2050
|
+
"char": "v",
|
|
2051
|
+
"description": "Show progress messages from the fetcher and merger",
|
|
2052
|
+
"name": "verbose",
|
|
2053
|
+
"allowNo": false,
|
|
2054
|
+
"type": "boolean"
|
|
2055
|
+
}
|
|
2056
|
+
},
|
|
2057
|
+
"hasDynamicHelp": false,
|
|
2058
|
+
"hiddenAliases": [],
|
|
2059
|
+
"id": "install:claude",
|
|
2060
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2061
|
+
"pluginName": "@memberjunction/cli",
|
|
2062
|
+
"pluginType": "core",
|
|
2063
|
+
"strict": true,
|
|
2064
|
+
"enableJsonFlag": false,
|
|
2065
|
+
"isESM": true,
|
|
2066
|
+
"relativePath": [
|
|
2067
|
+
"dist",
|
|
2068
|
+
"commands",
|
|
2069
|
+
"install",
|
|
2070
|
+
"claude.js"
|
|
2071
|
+
]
|
|
2072
|
+
},
|
|
1821
2073
|
"install": {
|
|
1822
2074
|
"aliases": [],
|
|
1823
2075
|
"args": {},
|
|
@@ -1915,6 +2167,12 @@
|
|
|
1915
2167
|
"name": "monorepo",
|
|
1916
2168
|
"allowNo": false,
|
|
1917
2169
|
"type": "boolean"
|
|
2170
|
+
},
|
|
2171
|
+
"no-claude-pack": {
|
|
2172
|
+
"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.",
|
|
2173
|
+
"name": "no-claude-pack",
|
|
2174
|
+
"allowNo": false,
|
|
2175
|
+
"type": "boolean"
|
|
1918
2176
|
}
|
|
1919
2177
|
},
|
|
1920
2178
|
"hasDynamicHelp": false,
|
|
@@ -1936,11 +2194,11 @@
|
|
|
1936
2194
|
"migrate:convert": {
|
|
1937
2195
|
"aliases": [],
|
|
1938
2196
|
"args": {},
|
|
1939
|
-
"description": "Convert T-SQL migrations to PostgreSQL
|
|
2197
|
+
"description": "Convert T-SQL migrations to PostgreSQL",
|
|
1940
2198
|
"examples": [
|
|
1941
|
-
"<%= config.bin %> migrate convert",
|
|
1942
|
-
"<%= config.bin %> migrate convert --dry-run",
|
|
1943
|
-
"<%= config.bin %> migrate convert --file V202604060452__v5.24.x__KnowledgeHub.sql",
|
|
2199
|
+
"<%= config.bin %> migrate convert --split",
|
|
2200
|
+
"<%= config.bin %> migrate convert --split --dry-run",
|
|
2201
|
+
"<%= config.bin %> migrate convert --split --file V202604060452__v5.24.x__KnowledgeHub.sql",
|
|
1944
2202
|
"<%= config.bin %> migrate convert --source-dir ./migrations/v5 --output-dir ./migrations-pg/v5",
|
|
1945
2203
|
"<%= config.bin %> migrate convert --verbose"
|
|
1946
2204
|
],
|
|
@@ -1994,6 +2252,24 @@
|
|
|
1994
2252
|
"name": "verbose",
|
|
1995
2253
|
"allowNo": false,
|
|
1996
2254
|
"type": "boolean"
|
|
2255
|
+
},
|
|
2256
|
+
"split": {
|
|
2257
|
+
"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.",
|
|
2258
|
+
"name": "split",
|
|
2259
|
+
"allowNo": false,
|
|
2260
|
+
"type": "boolean"
|
|
2261
|
+
},
|
|
2262
|
+
"allow-gaps": {
|
|
2263
|
+
"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.",
|
|
2264
|
+
"name": "allow-gaps",
|
|
2265
|
+
"allowNo": false,
|
|
2266
|
+
"type": "boolean"
|
|
2267
|
+
},
|
|
2268
|
+
"bake-codegen": {
|
|
2269
|
+
"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.",
|
|
2270
|
+
"name": "bake-codegen",
|
|
2271
|
+
"allowNo": false,
|
|
2272
|
+
"type": "boolean"
|
|
1997
2273
|
}
|
|
1998
2274
|
},
|
|
1999
2275
|
"hasDynamicHelp": false,
|
|
@@ -2055,16 +2331,79 @@
|
|
|
2055
2331
|
"multiple": false,
|
|
2056
2332
|
"type": "option"
|
|
2057
2333
|
},
|
|
2058
|
-
"x-x": {
|
|
2059
|
-
"description": "Use {version}.x.x suffix instead of {version}.x (e.g. 5.25.x instead of 5.25.x)",
|
|
2060
|
-
"name": "x-x",
|
|
2334
|
+
"x-x": {
|
|
2335
|
+
"description": "Use {version}.x.x suffix instead of {version}.x (e.g. 5.25.x instead of 5.25.x)",
|
|
2336
|
+
"name": "x-x",
|
|
2337
|
+
"allowNo": false,
|
|
2338
|
+
"type": "boolean"
|
|
2339
|
+
}
|
|
2340
|
+
},
|
|
2341
|
+
"hasDynamicHelp": false,
|
|
2342
|
+
"hiddenAliases": [],
|
|
2343
|
+
"id": "migrate:create",
|
|
2344
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2345
|
+
"pluginName": "@memberjunction/cli",
|
|
2346
|
+
"pluginType": "core",
|
|
2347
|
+
"strict": true,
|
|
2348
|
+
"enableJsonFlag": false,
|
|
2349
|
+
"isESM": true,
|
|
2350
|
+
"relativePath": [
|
|
2351
|
+
"dist",
|
|
2352
|
+
"commands",
|
|
2353
|
+
"migrate",
|
|
2354
|
+
"create.js"
|
|
2355
|
+
]
|
|
2356
|
+
},
|
|
2357
|
+
"migrate": {
|
|
2358
|
+
"aliases": [],
|
|
2359
|
+
"args": {},
|
|
2360
|
+
"description": "Migrate MemberJunction database to latest version",
|
|
2361
|
+
"examples": [
|
|
2362
|
+
"<%= config.bin %> <%= command.id %>\n",
|
|
2363
|
+
"<%= config.bin %> <%= command.id %> --schema __BCSaaS --dir ./migrations/v1\n",
|
|
2364
|
+
"<%= config.bin %> <%= command.id %> --schema __BCSaaS --tag v1.0.0\n"
|
|
2365
|
+
],
|
|
2366
|
+
"flags": {
|
|
2367
|
+
"verbose": {
|
|
2368
|
+
"char": "v",
|
|
2369
|
+
"description": "Enable additional logging",
|
|
2370
|
+
"name": "verbose",
|
|
2371
|
+
"allowNo": false,
|
|
2372
|
+
"type": "boolean"
|
|
2373
|
+
},
|
|
2374
|
+
"tag": {
|
|
2375
|
+
"char": "t",
|
|
2376
|
+
"description": "Version tag to use for running remote migrations",
|
|
2377
|
+
"name": "tag",
|
|
2378
|
+
"hasDynamicHelp": false,
|
|
2379
|
+
"multiple": false,
|
|
2380
|
+
"type": "option"
|
|
2381
|
+
},
|
|
2382
|
+
"schema": {
|
|
2383
|
+
"char": "s",
|
|
2384
|
+
"description": "Target schema (overrides coreSchema from config)",
|
|
2385
|
+
"name": "schema",
|
|
2386
|
+
"hasDynamicHelp": false,
|
|
2387
|
+
"multiple": false,
|
|
2388
|
+
"type": "option"
|
|
2389
|
+
},
|
|
2390
|
+
"dir": {
|
|
2391
|
+
"description": "Migration source directory (overrides migrationsLocation from config)",
|
|
2392
|
+
"name": "dir",
|
|
2393
|
+
"hasDynamicHelp": false,
|
|
2394
|
+
"multiple": false,
|
|
2395
|
+
"type": "option"
|
|
2396
|
+
},
|
|
2397
|
+
"check-connection": {
|
|
2398
|
+
"description": "Verify the database connection (including TLS) and exit without migrating",
|
|
2399
|
+
"name": "check-connection",
|
|
2061
2400
|
"allowNo": false,
|
|
2062
2401
|
"type": "boolean"
|
|
2063
2402
|
}
|
|
2064
2403
|
},
|
|
2065
2404
|
"hasDynamicHelp": false,
|
|
2066
2405
|
"hiddenAliases": [],
|
|
2067
|
-
"id": "migrate
|
|
2406
|
+
"id": "migrate",
|
|
2068
2407
|
"pluginAlias": "@memberjunction/cli",
|
|
2069
2408
|
"pluginName": "@memberjunction/cli",
|
|
2070
2409
|
"pluginType": "core",
|
|
@@ -2075,59 +2414,59 @@
|
|
|
2075
2414
|
"dist",
|
|
2076
2415
|
"commands",
|
|
2077
2416
|
"migrate",
|
|
2078
|
-
"
|
|
2417
|
+
"index.js"
|
|
2079
2418
|
]
|
|
2080
2419
|
},
|
|
2081
|
-
"migrate": {
|
|
2420
|
+
"migrate:rebake": {
|
|
2082
2421
|
"aliases": [],
|
|
2083
2422
|
"args": {},
|
|
2084
|
-
"description": "
|
|
2423
|
+
"description": "Re-bake the post-baseline PG migration set with inline native CodeGen",
|
|
2085
2424
|
"examples": [
|
|
2086
|
-
"<%= config.bin %>
|
|
2087
|
-
"<%= config.bin %>
|
|
2088
|
-
"<%= config.bin %> <%= command.id %> --schema __BCSaaS --tag v1.0.0\n"
|
|
2425
|
+
"<%= config.bin %> migrate rebake",
|
|
2426
|
+
"<%= config.bin %> migrate rebake --baseline-floor V202605291452 --dry-run"
|
|
2089
2427
|
],
|
|
2090
2428
|
"flags": {
|
|
2091
|
-
"
|
|
2092
|
-
"
|
|
2093
|
-
"
|
|
2094
|
-
"
|
|
2095
|
-
"
|
|
2096
|
-
"
|
|
2429
|
+
"source-dir": {
|
|
2430
|
+
"description": "Source T-SQL migrations directory",
|
|
2431
|
+
"name": "source-dir",
|
|
2432
|
+
"default": "./migrations/v5",
|
|
2433
|
+
"hasDynamicHelp": false,
|
|
2434
|
+
"multiple": false,
|
|
2435
|
+
"type": "option"
|
|
2097
2436
|
},
|
|
2098
|
-
"
|
|
2099
|
-
"
|
|
2100
|
-
"
|
|
2101
|
-
"
|
|
2437
|
+
"output-dir": {
|
|
2438
|
+
"description": "PG migrations directory (committed files read here + baked output written here)",
|
|
2439
|
+
"name": "output-dir",
|
|
2440
|
+
"default": "./migrations-pg/v5",
|
|
2102
2441
|
"hasDynamicHelp": false,
|
|
2103
2442
|
"multiple": false,
|
|
2104
2443
|
"type": "option"
|
|
2105
2444
|
},
|
|
2106
2445
|
"schema": {
|
|
2107
|
-
"
|
|
2108
|
-
"description": "Target schema (overrides coreSchema from config)",
|
|
2446
|
+
"description": "Target schema name",
|
|
2109
2447
|
"name": "schema",
|
|
2448
|
+
"default": "__mj",
|
|
2110
2449
|
"hasDynamicHelp": false,
|
|
2111
2450
|
"multiple": false,
|
|
2112
2451
|
"type": "option"
|
|
2113
2452
|
},
|
|
2114
|
-
"
|
|
2115
|
-
"description": "
|
|
2116
|
-
"name": "
|
|
2453
|
+
"baseline-floor": {
|
|
2454
|
+
"description": "Re-bake migrations strictly AFTER this version key (default: the latest B* in output-dir)",
|
|
2455
|
+
"name": "baseline-floor",
|
|
2117
2456
|
"hasDynamicHelp": false,
|
|
2118
2457
|
"multiple": false,
|
|
2119
2458
|
"type": "option"
|
|
2120
2459
|
},
|
|
2121
|
-
"
|
|
2122
|
-
"description": "
|
|
2123
|
-
"name": "
|
|
2460
|
+
"dry-run": {
|
|
2461
|
+
"description": "Report what would be re-baked without writing files",
|
|
2462
|
+
"name": "dry-run",
|
|
2124
2463
|
"allowNo": false,
|
|
2125
2464
|
"type": "boolean"
|
|
2126
2465
|
}
|
|
2127
2466
|
},
|
|
2128
2467
|
"hasDynamicHelp": false,
|
|
2129
2468
|
"hiddenAliases": [],
|
|
2130
|
-
"id": "migrate",
|
|
2469
|
+
"id": "migrate:rebake",
|
|
2131
2470
|
"pluginAlias": "@memberjunction/cli",
|
|
2132
2471
|
"pluginName": "@memberjunction/cli",
|
|
2133
2472
|
"pluginType": "core",
|
|
@@ -2138,7 +2477,51 @@
|
|
|
2138
2477
|
"dist",
|
|
2139
2478
|
"commands",
|
|
2140
2479
|
"migrate",
|
|
2141
|
-
"
|
|
2480
|
+
"rebake.js"
|
|
2481
|
+
]
|
|
2482
|
+
},
|
|
2483
|
+
"plugin:add": {
|
|
2484
|
+
"aliases": [],
|
|
2485
|
+
"args": {
|
|
2486
|
+
"package": {
|
|
2487
|
+
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
2488
|
+
"name": "package",
|
|
2489
|
+
"required": true
|
|
2490
|
+
}
|
|
2491
|
+
},
|
|
2492
|
+
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
2493
|
+
"examples": [
|
|
2494
|
+
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
2495
|
+
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
2496
|
+
],
|
|
2497
|
+
"flags": {
|
|
2498
|
+
"format": {
|
|
2499
|
+
"description": "Output format",
|
|
2500
|
+
"name": "format",
|
|
2501
|
+
"default": "text",
|
|
2502
|
+
"hasDynamicHelp": false,
|
|
2503
|
+
"multiple": false,
|
|
2504
|
+
"options": [
|
|
2505
|
+
"text",
|
|
2506
|
+
"json"
|
|
2507
|
+
],
|
|
2508
|
+
"type": "option"
|
|
2509
|
+
}
|
|
2510
|
+
},
|
|
2511
|
+
"hasDynamicHelp": false,
|
|
2512
|
+
"hiddenAliases": [],
|
|
2513
|
+
"id": "plugin:add",
|
|
2514
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2515
|
+
"pluginName": "@memberjunction/cli",
|
|
2516
|
+
"pluginType": "core",
|
|
2517
|
+
"strict": true,
|
|
2518
|
+
"enableJsonFlag": false,
|
|
2519
|
+
"isESM": true,
|
|
2520
|
+
"relativePath": [
|
|
2521
|
+
"dist",
|
|
2522
|
+
"commands",
|
|
2523
|
+
"plugin",
|
|
2524
|
+
"add.js"
|
|
2142
2525
|
]
|
|
2143
2526
|
},
|
|
2144
2527
|
"querygen:export": {
|
|
@@ -2605,13 +2988,36 @@
|
|
|
2605
2988
|
"description": "Pull metadata from database to local files",
|
|
2606
2989
|
"examples": [
|
|
2607
2990
|
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Prompts\"",
|
|
2608
|
-
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Prompts\" --filter=\"CategoryID='customer-service-id'\"",
|
|
2609
2991
|
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Agents\" --merge-strategy=overwrite",
|
|
2610
|
-
"<%= config.bin %> <%= command.id %> --entity=\"
|
|
2611
|
-
"<%= config.bin %> <%= command.id %> --entity=\"Templates\" --dry-run --verbose",
|
|
2612
|
-
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Prompts\" --exclude-fields=InternalNotes,DebugInfo"
|
|
2992
|
+
"<%= config.bin %> <%= command.id %> --entity=\"Templates\" --dry-run --verbose"
|
|
2613
2993
|
],
|
|
2614
2994
|
"flags": {
|
|
2995
|
+
"format": {
|
|
2996
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced)",
|
|
2997
|
+
"name": "format",
|
|
2998
|
+
"default": "text",
|
|
2999
|
+
"hasDynamicHelp": false,
|
|
3000
|
+
"multiple": false,
|
|
3001
|
+
"options": [
|
|
3002
|
+
"text",
|
|
3003
|
+
"json",
|
|
3004
|
+
"md"
|
|
3005
|
+
],
|
|
3006
|
+
"type": "option"
|
|
3007
|
+
},
|
|
3008
|
+
"verbose": {
|
|
3009
|
+
"char": "v",
|
|
3010
|
+
"description": "Show detailed output",
|
|
3011
|
+
"name": "verbose",
|
|
3012
|
+
"allowNo": false,
|
|
3013
|
+
"type": "boolean"
|
|
3014
|
+
},
|
|
3015
|
+
"no-banner": {
|
|
3016
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
3017
|
+
"name": "no-banner",
|
|
3018
|
+
"allowNo": false,
|
|
3019
|
+
"type": "boolean"
|
|
3020
|
+
},
|
|
2615
3021
|
"entity": {
|
|
2616
3022
|
"description": "Entity name to pull",
|
|
2617
3023
|
"name": "entity",
|
|
@@ -2640,13 +3046,6 @@
|
|
|
2640
3046
|
"multiple": false,
|
|
2641
3047
|
"type": "option"
|
|
2642
3048
|
},
|
|
2643
|
-
"verbose": {
|
|
2644
|
-
"char": "v",
|
|
2645
|
-
"description": "Show detailed output",
|
|
2646
|
-
"name": "verbose",
|
|
2647
|
-
"allowNo": false,
|
|
2648
|
-
"type": "boolean"
|
|
2649
|
-
},
|
|
2650
3049
|
"no-validate": {
|
|
2651
3050
|
"description": "Skip validation before pull",
|
|
2652
3051
|
"name": "no-validate",
|
|
@@ -2719,7 +3118,7 @@
|
|
|
2719
3118
|
"type": "boolean"
|
|
2720
3119
|
},
|
|
2721
3120
|
"since": {
|
|
2722
|
-
"description": "Only pull records updated after this ISO 8601 timestamp
|
|
3121
|
+
"description": "Only pull records updated after this ISO 8601 timestamp",
|
|
2723
3122
|
"name": "since",
|
|
2724
3123
|
"hasDynamicHelp": false,
|
|
2725
3124
|
"multiple": false,
|
|
@@ -2734,6 +3133,48 @@
|
|
|
2734
3133
|
"pluginType": "core",
|
|
2735
3134
|
"strict": true,
|
|
2736
3135
|
"enableJsonFlag": false,
|
|
3136
|
+
"Usage": {
|
|
3137
|
+
"domain": "sync",
|
|
3138
|
+
"command": "sync:pull",
|
|
3139
|
+
"summary": "Pull database records into local metadata files.",
|
|
3140
|
+
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
3141
|
+
"flags": [
|
|
3142
|
+
{
|
|
3143
|
+
"name": "--entity",
|
|
3144
|
+
"type": "string",
|
|
3145
|
+
"description": "Entity name to pull (required)"
|
|
3146
|
+
},
|
|
3147
|
+
{
|
|
3148
|
+
"name": "--filter",
|
|
3149
|
+
"type": "string",
|
|
3150
|
+
"description": "Extra SQL filter for which records to pull"
|
|
3151
|
+
},
|
|
3152
|
+
{
|
|
3153
|
+
"name": "--merge-strategy",
|
|
3154
|
+
"type": "merge|overwrite|skip",
|
|
3155
|
+
"description": "How to reconcile existing files"
|
|
3156
|
+
},
|
|
3157
|
+
{
|
|
3158
|
+
"name": "--dry-run",
|
|
3159
|
+
"type": "boolean",
|
|
3160
|
+
"description": "Report what would be pulled without writing"
|
|
3161
|
+
},
|
|
3162
|
+
{
|
|
3163
|
+
"name": "--format",
|
|
3164
|
+
"type": "text|json|md",
|
|
3165
|
+
"description": "Output format (json for machine-readable result)"
|
|
3166
|
+
}
|
|
3167
|
+
],
|
|
3168
|
+
"examples": [
|
|
3169
|
+
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
3170
|
+
"mj sync pull --entity=\"Actions\" --format=json"
|
|
3171
|
+
],
|
|
3172
|
+
"runtime": {
|
|
3173
|
+
"class": "variable",
|
|
3174
|
+
"typicalSeconds": 15,
|
|
3175
|
+
"note": "scales with number of records matched for --entity"
|
|
3176
|
+
}
|
|
3177
|
+
},
|
|
2737
3178
|
"isESM": true,
|
|
2738
3179
|
"relativePath": [
|
|
2739
3180
|
"dist",
|
|
@@ -2750,9 +3191,35 @@
|
|
|
2750
3191
|
"<%= config.bin %> <%= command.id %>",
|
|
2751
3192
|
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
2752
3193
|
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
2753
|
-
"<%= config.bin %> <%= command.id %> --ci"
|
|
3194
|
+
"<%= config.bin %> <%= command.id %> --ci --format=json"
|
|
2754
3195
|
],
|
|
2755
3196
|
"flags": {
|
|
3197
|
+
"format": {
|
|
3198
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced)",
|
|
3199
|
+
"name": "format",
|
|
3200
|
+
"default": "text",
|
|
3201
|
+
"hasDynamicHelp": false,
|
|
3202
|
+
"multiple": false,
|
|
3203
|
+
"options": [
|
|
3204
|
+
"text",
|
|
3205
|
+
"json",
|
|
3206
|
+
"md"
|
|
3207
|
+
],
|
|
3208
|
+
"type": "option"
|
|
3209
|
+
},
|
|
3210
|
+
"verbose": {
|
|
3211
|
+
"char": "v",
|
|
3212
|
+
"description": "Show detailed output",
|
|
3213
|
+
"name": "verbose",
|
|
3214
|
+
"allowNo": false,
|
|
3215
|
+
"type": "boolean"
|
|
3216
|
+
},
|
|
3217
|
+
"no-banner": {
|
|
3218
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
3219
|
+
"name": "no-banner",
|
|
3220
|
+
"allowNo": false,
|
|
3221
|
+
"type": "boolean"
|
|
3222
|
+
},
|
|
2756
3223
|
"dir": {
|
|
2757
3224
|
"description": "Specific entity directory to push",
|
|
2758
3225
|
"name": "dir",
|
|
@@ -2772,13 +3239,6 @@
|
|
|
2772
3239
|
"allowNo": false,
|
|
2773
3240
|
"type": "boolean"
|
|
2774
3241
|
},
|
|
2775
|
-
"verbose": {
|
|
2776
|
-
"char": "v",
|
|
2777
|
-
"description": "Show detailed field-level output",
|
|
2778
|
-
"name": "verbose",
|
|
2779
|
-
"allowNo": false,
|
|
2780
|
-
"type": "boolean"
|
|
2781
|
-
},
|
|
2782
3242
|
"no-validate": {
|
|
2783
3243
|
"description": "Skip validation before push",
|
|
2784
3244
|
"name": "no-validate",
|
|
@@ -2818,6 +3278,12 @@
|
|
|
2818
3278
|
"name": "incremental",
|
|
2819
3279
|
"allowNo": false,
|
|
2820
3280
|
"type": "boolean"
|
|
3281
|
+
},
|
|
3282
|
+
"change-detail": {
|
|
3283
|
+
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
3284
|
+
"name": "change-detail",
|
|
3285
|
+
"allowNo": false,
|
|
3286
|
+
"type": "boolean"
|
|
2821
3287
|
}
|
|
2822
3288
|
},
|
|
2823
3289
|
"hasDynamicHelp": false,
|
|
@@ -2828,6 +3294,53 @@
|
|
|
2828
3294
|
"pluginType": "core",
|
|
2829
3295
|
"strict": true,
|
|
2830
3296
|
"enableJsonFlag": false,
|
|
3297
|
+
"Usage": {
|
|
3298
|
+
"domain": "sync",
|
|
3299
|
+
"command": "sync:push",
|
|
3300
|
+
"summary": "Push local metadata files to the database (upsert).",
|
|
3301
|
+
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
3302
|
+
"flags": [
|
|
3303
|
+
{
|
|
3304
|
+
"name": "--dir",
|
|
3305
|
+
"type": "string",
|
|
3306
|
+
"description": "Entity directory to push"
|
|
3307
|
+
},
|
|
3308
|
+
{
|
|
3309
|
+
"name": "--dry-run",
|
|
3310
|
+
"type": "boolean",
|
|
3311
|
+
"description": "Report what would change without writing"
|
|
3312
|
+
},
|
|
3313
|
+
{
|
|
3314
|
+
"name": "--ci",
|
|
3315
|
+
"type": "boolean",
|
|
3316
|
+
"description": "No prompts; non-zero exit on error"
|
|
3317
|
+
},
|
|
3318
|
+
{
|
|
3319
|
+
"name": "--no-validate",
|
|
3320
|
+
"type": "boolean",
|
|
3321
|
+
"description": "Skip pre-push validation"
|
|
3322
|
+
},
|
|
3323
|
+
{
|
|
3324
|
+
"name": "--incremental",
|
|
3325
|
+
"type": "boolean",
|
|
3326
|
+
"description": "Skip unchanged files using stored checksums"
|
|
3327
|
+
},
|
|
3328
|
+
{
|
|
3329
|
+
"name": "--format",
|
|
3330
|
+
"type": "text|json|md",
|
|
3331
|
+
"description": "Output format (json for machine-readable result)"
|
|
3332
|
+
}
|
|
3333
|
+
],
|
|
3334
|
+
"examples": [
|
|
3335
|
+
"mj sync push --dir=ai-agents",
|
|
3336
|
+
"mj sync push --ci --format=json"
|
|
3337
|
+
],
|
|
3338
|
+
"runtime": {
|
|
3339
|
+
"class": "variable",
|
|
3340
|
+
"typicalSeconds": 20,
|
|
3341
|
+
"note": "scales with number of records in --dir"
|
|
3342
|
+
}
|
|
3343
|
+
},
|
|
2831
3344
|
"isESM": true,
|
|
2832
3345
|
"relativePath": [
|
|
2833
3346
|
"dist",
|
|
@@ -2891,6 +3404,41 @@
|
|
|
2891
3404
|
"status.js"
|
|
2892
3405
|
]
|
|
2893
3406
|
},
|
|
3407
|
+
"sync:usage": {
|
|
3408
|
+
"aliases": [],
|
|
3409
|
+
"args": {},
|
|
3410
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj sync` command.",
|
|
3411
|
+
"flags": {
|
|
3412
|
+
"format": {
|
|
3413
|
+
"description": "Output format",
|
|
3414
|
+
"name": "format",
|
|
3415
|
+
"default": "text",
|
|
3416
|
+
"hasDynamicHelp": false,
|
|
3417
|
+
"multiple": false,
|
|
3418
|
+
"options": [
|
|
3419
|
+
"text",
|
|
3420
|
+
"json",
|
|
3421
|
+
"md"
|
|
3422
|
+
],
|
|
3423
|
+
"type": "option"
|
|
3424
|
+
}
|
|
3425
|
+
},
|
|
3426
|
+
"hasDynamicHelp": false,
|
|
3427
|
+
"hiddenAliases": [],
|
|
3428
|
+
"id": "sync:usage",
|
|
3429
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3430
|
+
"pluginName": "@memberjunction/cli",
|
|
3431
|
+
"pluginType": "core",
|
|
3432
|
+
"strict": true,
|
|
3433
|
+
"enableJsonFlag": false,
|
|
3434
|
+
"isESM": true,
|
|
3435
|
+
"relativePath": [
|
|
3436
|
+
"dist",
|
|
3437
|
+
"commands",
|
|
3438
|
+
"sync",
|
|
3439
|
+
"usage.js"
|
|
3440
|
+
]
|
|
3441
|
+
},
|
|
2894
3442
|
"sync:validate": {
|
|
2895
3443
|
"aliases": [],
|
|
2896
3444
|
"args": {},
|
|
@@ -3712,6 +4260,144 @@
|
|
|
3712
4260
|
"index.js"
|
|
3713
4261
|
]
|
|
3714
4262
|
},
|
|
4263
|
+
"update:claude": {
|
|
4264
|
+
"aliases": [],
|
|
4265
|
+
"args": {},
|
|
4266
|
+
"description": "Update the Claude Code pack in the current directory.",
|
|
4267
|
+
"examples": [
|
|
4268
|
+
"<%= config.bin %> update:claude",
|
|
4269
|
+
"<%= config.bin %> update:claude --check",
|
|
4270
|
+
"<%= config.bin %> update:claude --refresh-commands",
|
|
4271
|
+
"<%= config.bin %> update:claude --allow-major",
|
|
4272
|
+
"<%= config.bin %> update:claude --json"
|
|
4273
|
+
],
|
|
4274
|
+
"flags": {
|
|
4275
|
+
"dir": {
|
|
4276
|
+
"description": "Target directory",
|
|
4277
|
+
"name": "dir",
|
|
4278
|
+
"default": ".",
|
|
4279
|
+
"hasDynamicHelp": false,
|
|
4280
|
+
"multiple": false,
|
|
4281
|
+
"type": "option"
|
|
4282
|
+
},
|
|
4283
|
+
"major": {
|
|
4284
|
+
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
4285
|
+
"name": "major",
|
|
4286
|
+
"hasDynamicHelp": false,
|
|
4287
|
+
"multiple": false,
|
|
4288
|
+
"type": "option"
|
|
4289
|
+
},
|
|
4290
|
+
"ref": {
|
|
4291
|
+
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
4292
|
+
"name": "ref",
|
|
4293
|
+
"hasDynamicHelp": false,
|
|
4294
|
+
"multiple": false,
|
|
4295
|
+
"type": "option"
|
|
4296
|
+
},
|
|
4297
|
+
"from": {
|
|
4298
|
+
"description": "Use a local pack source instead of fetching from GitHub",
|
|
4299
|
+
"name": "from",
|
|
4300
|
+
"hasDynamicHelp": false,
|
|
4301
|
+
"multiple": false,
|
|
4302
|
+
"type": "option"
|
|
4303
|
+
},
|
|
4304
|
+
"offline": {
|
|
4305
|
+
"description": "Forbid network; requires --from <path>",
|
|
4306
|
+
"name": "offline",
|
|
4307
|
+
"allowNo": false,
|
|
4308
|
+
"type": "boolean"
|
|
4309
|
+
},
|
|
4310
|
+
"dry-run": {
|
|
4311
|
+
"description": "Print what would be written; change nothing",
|
|
4312
|
+
"name": "dry-run",
|
|
4313
|
+
"allowNo": false,
|
|
4314
|
+
"type": "boolean"
|
|
4315
|
+
},
|
|
4316
|
+
"yes": {
|
|
4317
|
+
"char": "y",
|
|
4318
|
+
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
4319
|
+
"name": "yes",
|
|
4320
|
+
"allowNo": false,
|
|
4321
|
+
"type": "boolean"
|
|
4322
|
+
},
|
|
4323
|
+
"force": {
|
|
4324
|
+
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
4325
|
+
"name": "force",
|
|
4326
|
+
"allowNo": false,
|
|
4327
|
+
"type": "boolean"
|
|
4328
|
+
},
|
|
4329
|
+
"skip-commands": {
|
|
4330
|
+
"description": "Skip seeding .claude/commands/",
|
|
4331
|
+
"name": "skip-commands",
|
|
4332
|
+
"allowNo": false,
|
|
4333
|
+
"type": "boolean"
|
|
4334
|
+
},
|
|
4335
|
+
"skip-skills": {
|
|
4336
|
+
"description": "Skip seeding .claude/skills/",
|
|
4337
|
+
"name": "skip-skills",
|
|
4338
|
+
"allowNo": false,
|
|
4339
|
+
"type": "boolean"
|
|
4340
|
+
},
|
|
4341
|
+
"skip-settings": {
|
|
4342
|
+
"description": "Skip merging .claude/settings.json",
|
|
4343
|
+
"name": "skip-settings",
|
|
4344
|
+
"allowNo": false,
|
|
4345
|
+
"type": "boolean"
|
|
4346
|
+
},
|
|
4347
|
+
"check": {
|
|
4348
|
+
"description": "Compare local pack version to remote without writing anything",
|
|
4349
|
+
"name": "check",
|
|
4350
|
+
"allowNo": false,
|
|
4351
|
+
"type": "boolean"
|
|
4352
|
+
},
|
|
4353
|
+
"refresh-commands": {
|
|
4354
|
+
"description": "Force-resync .claude/commands/* from the pack (saves .bak files)",
|
|
4355
|
+
"name": "refresh-commands",
|
|
4356
|
+
"allowNo": false,
|
|
4357
|
+
"type": "boolean"
|
|
4358
|
+
},
|
|
4359
|
+
"refresh-skills": {
|
|
4360
|
+
"description": "Force-resync .claude/skills/** from the pack (saves .bak files)",
|
|
4361
|
+
"name": "refresh-skills",
|
|
4362
|
+
"allowNo": false,
|
|
4363
|
+
"type": "boolean"
|
|
4364
|
+
},
|
|
4365
|
+
"allow-major": {
|
|
4366
|
+
"description": "Allow the remote pack's major to differ from local MJ's major",
|
|
4367
|
+
"name": "allow-major",
|
|
4368
|
+
"allowNo": false,
|
|
4369
|
+
"type": "boolean"
|
|
4370
|
+
},
|
|
4371
|
+
"json": {
|
|
4372
|
+
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
4373
|
+
"name": "json",
|
|
4374
|
+
"allowNo": false,
|
|
4375
|
+
"type": "boolean"
|
|
4376
|
+
},
|
|
4377
|
+
"verbose": {
|
|
4378
|
+
"char": "v",
|
|
4379
|
+
"description": "Show progress messages",
|
|
4380
|
+
"name": "verbose",
|
|
4381
|
+
"allowNo": false,
|
|
4382
|
+
"type": "boolean"
|
|
4383
|
+
}
|
|
4384
|
+
},
|
|
4385
|
+
"hasDynamicHelp": false,
|
|
4386
|
+
"hiddenAliases": [],
|
|
4387
|
+
"id": "update:claude",
|
|
4388
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4389
|
+
"pluginName": "@memberjunction/cli",
|
|
4390
|
+
"pluginType": "core",
|
|
4391
|
+
"strict": true,
|
|
4392
|
+
"enableJsonFlag": false,
|
|
4393
|
+
"isESM": true,
|
|
4394
|
+
"relativePath": [
|
|
4395
|
+
"dist",
|
|
4396
|
+
"commands",
|
|
4397
|
+
"update",
|
|
4398
|
+
"claude.js"
|
|
4399
|
+
]
|
|
4400
|
+
},
|
|
3715
4401
|
"ai:actions:list": {
|
|
3716
4402
|
"aliases": [],
|
|
3717
4403
|
"args": {},
|
|
@@ -4760,5 +5446,5 @@
|
|
|
4760
5446
|
]
|
|
4761
5447
|
}
|
|
4762
5448
|
},
|
|
4763
|
-
"version": "5.
|
|
5449
|
+
"version": "5.42.0"
|
|
4764
5450
|
}
|