@memberjunction/cli 6.1.0-edge.7 → 6.1.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 +1829 -1829
- package/package.json +22 -22
package/oclif.manifest.json
CHANGED
|
@@ -93,54 +93,47 @@
|
|
|
93
93
|
"usage.js"
|
|
94
94
|
]
|
|
95
95
|
},
|
|
96
|
-
"
|
|
96
|
+
"app:check-updates": {
|
|
97
97
|
"aliases": [],
|
|
98
98
|
"args": {},
|
|
99
|
-
"description": "
|
|
99
|
+
"description": "Check for available upgrades for installed MJ Open Apps",
|
|
100
100
|
"examples": [
|
|
101
|
-
"<%= config.bin %>
|
|
102
|
-
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
101
|
+
"<%= config.bin %> app check-updates"
|
|
103
102
|
],
|
|
104
|
-
"flags": {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
129
|
-
"name": "apply",
|
|
130
|
-
"allowNo": false,
|
|
131
|
-
"type": "boolean"
|
|
132
|
-
},
|
|
133
|
-
"verbose": {
|
|
134
|
-
"char": "v",
|
|
135
|
-
"description": "Print every candidate row, not just the summary.",
|
|
136
|
-
"name": "verbose",
|
|
137
|
-
"allowNo": false,
|
|
138
|
-
"type": "boolean"
|
|
103
|
+
"flags": {},
|
|
104
|
+
"hasDynamicHelp": false,
|
|
105
|
+
"hiddenAliases": [],
|
|
106
|
+
"id": "app:check-updates",
|
|
107
|
+
"pluginAlias": "@memberjunction/cli",
|
|
108
|
+
"pluginName": "@memberjunction/cli",
|
|
109
|
+
"pluginType": "core",
|
|
110
|
+
"strict": true,
|
|
111
|
+
"enableJsonFlag": false,
|
|
112
|
+
"isESM": true,
|
|
113
|
+
"relativePath": [
|
|
114
|
+
"dist",
|
|
115
|
+
"commands",
|
|
116
|
+
"app",
|
|
117
|
+
"check-updates.js"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
"app:disable": {
|
|
121
|
+
"aliases": [],
|
|
122
|
+
"args": {
|
|
123
|
+
"name": {
|
|
124
|
+
"description": "Name of the installed app to disable",
|
|
125
|
+
"name": "name",
|
|
126
|
+
"required": true
|
|
139
127
|
}
|
|
140
128
|
},
|
|
129
|
+
"description": "Disable an installed MJ Open App without removing it",
|
|
130
|
+
"examples": [
|
|
131
|
+
"<%= config.bin %> app disable acme-crm"
|
|
132
|
+
],
|
|
133
|
+
"flags": {},
|
|
141
134
|
"hasDynamicHelp": false,
|
|
142
135
|
"hiddenAliases": [],
|
|
143
|
-
"id": "
|
|
136
|
+
"id": "app:disable",
|
|
144
137
|
"pluginAlias": "@memberjunction/cli",
|
|
145
138
|
"pluginName": "@memberjunction/cli",
|
|
146
139
|
"pluginType": "core",
|
|
@@ -150,31 +143,27 @@
|
|
|
150
143
|
"relativePath": [
|
|
151
144
|
"dist",
|
|
152
145
|
"commands",
|
|
153
|
-
"
|
|
154
|
-
"
|
|
146
|
+
"app",
|
|
147
|
+
"disable.js"
|
|
155
148
|
]
|
|
156
149
|
},
|
|
157
|
-
"
|
|
150
|
+
"app:enable": {
|
|
158
151
|
"aliases": [],
|
|
159
|
-
"args": {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
"
|
|
164
|
-
"name": "format",
|
|
165
|
-
"hasDynamicHelp": false,
|
|
166
|
-
"multiple": false,
|
|
167
|
-
"options": [
|
|
168
|
-
"text",
|
|
169
|
-
"json",
|
|
170
|
-
"md"
|
|
171
|
-
],
|
|
172
|
-
"type": "option"
|
|
152
|
+
"args": {
|
|
153
|
+
"name": {
|
|
154
|
+
"description": "Name of the installed app to enable",
|
|
155
|
+
"name": "name",
|
|
156
|
+
"required": true
|
|
173
157
|
}
|
|
174
158
|
},
|
|
159
|
+
"description": "Re-enable a disabled MJ Open App",
|
|
160
|
+
"examples": [
|
|
161
|
+
"<%= config.bin %> app enable acme-crm"
|
|
162
|
+
],
|
|
163
|
+
"flags": {},
|
|
175
164
|
"hasDynamicHelp": false,
|
|
176
165
|
"hiddenAliases": [],
|
|
177
|
-
"id": "
|
|
166
|
+
"id": "app:enable",
|
|
178
167
|
"pluginAlias": "@memberjunction/cli",
|
|
179
168
|
"pluginName": "@memberjunction/cli",
|
|
180
169
|
"pluginType": "core",
|
|
@@ -184,96 +173,88 @@
|
|
|
184
173
|
"relativePath": [
|
|
185
174
|
"dist",
|
|
186
175
|
"commands",
|
|
187
|
-
"
|
|
188
|
-
"
|
|
176
|
+
"app",
|
|
177
|
+
"enable.js"
|
|
189
178
|
]
|
|
190
179
|
},
|
|
191
|
-
"
|
|
180
|
+
"app:info": {
|
|
192
181
|
"aliases": [],
|
|
193
|
-
"args": {
|
|
194
|
-
|
|
182
|
+
"args": {
|
|
183
|
+
"name": {
|
|
184
|
+
"description": "Name of the installed app",
|
|
185
|
+
"name": "name",
|
|
186
|
+
"required": true
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"description": "Show detailed information about an installed MJ Open App",
|
|
195
190
|
"examples": [
|
|
196
|
-
"<%= config.bin %>
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
191
|
+
"<%= config.bin %> app info acme-crm"
|
|
192
|
+
],
|
|
193
|
+
"flags": {},
|
|
194
|
+
"hasDynamicHelp": false,
|
|
195
|
+
"hiddenAliases": [],
|
|
196
|
+
"id": "app:info",
|
|
197
|
+
"pluginAlias": "@memberjunction/cli",
|
|
198
|
+
"pluginName": "@memberjunction/cli",
|
|
199
|
+
"pluginType": "core",
|
|
200
|
+
"strict": true,
|
|
201
|
+
"enableJsonFlag": false,
|
|
202
|
+
"isESM": true,
|
|
203
|
+
"relativePath": [
|
|
204
|
+
"dist",
|
|
205
|
+
"commands",
|
|
206
|
+
"app",
|
|
207
|
+
"info.js"
|
|
208
|
+
]
|
|
209
|
+
},
|
|
210
|
+
"app:install": {
|
|
211
|
+
"aliases": [],
|
|
212
|
+
"args": {
|
|
213
|
+
"source": {
|
|
214
|
+
"description": "GitHub repository URL of the Open App. For a multi-app repo, append the in-repo path to the app (e.g. https://github.com/MemberJunction/Integrations/CRM/HubSpot).",
|
|
215
|
+
"name": "source",
|
|
216
|
+
"required": true
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"description": "Install an MJ Open App from a GitHub repository",
|
|
220
|
+
"examples": [
|
|
221
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm",
|
|
222
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0",
|
|
223
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm --verbose",
|
|
224
|
+
"<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot",
|
|
225
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive"
|
|
200
226
|
],
|
|
201
227
|
"flags": {
|
|
202
|
-
"
|
|
203
|
-
"description": "
|
|
204
|
-
"name": "
|
|
205
|
-
"hasDynamicHelp": false,
|
|
206
|
-
"multiple": false,
|
|
207
|
-
"type": "option"
|
|
208
|
-
},
|
|
209
|
-
"source-dir": {
|
|
210
|
-
"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.",
|
|
211
|
-
"name": "source-dir",
|
|
212
|
-
"hasDynamicHelp": false,
|
|
213
|
-
"multiple": false,
|
|
214
|
-
"type": "option"
|
|
215
|
-
},
|
|
216
|
-
"description": {
|
|
217
|
-
"description": "Human-readable description embedded in the file header.",
|
|
218
|
-
"name": "description",
|
|
219
|
-
"default": "MemberJunction Baseline",
|
|
220
|
-
"hasDynamicHelp": false,
|
|
221
|
-
"multiple": false,
|
|
222
|
-
"type": "option"
|
|
223
|
-
},
|
|
224
|
-
"database": {
|
|
225
|
-
"description": "Override database name (host/user/password come from MJ config).",
|
|
226
|
-
"name": "database",
|
|
227
|
-
"hasDynamicHelp": false,
|
|
228
|
-
"multiple": false,
|
|
229
|
-
"type": "option"
|
|
230
|
-
},
|
|
231
|
-
"out": {
|
|
232
|
-
"description": "Output directory. Filename is auto-generated.",
|
|
233
|
-
"name": "out",
|
|
234
|
-
"default": ".",
|
|
235
|
-
"hasDynamicHelp": false,
|
|
236
|
-
"multiple": false,
|
|
237
|
-
"type": "option"
|
|
238
|
-
},
|
|
239
|
-
"exclude-data": {
|
|
240
|
-
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
241
|
-
"name": "exclude-data",
|
|
242
|
-
"default": "",
|
|
243
|
-
"hasDynamicHelp": false,
|
|
244
|
-
"multiple": false,
|
|
245
|
-
"type": "option"
|
|
246
|
-
},
|
|
247
|
-
"batch-size": {
|
|
248
|
-
"description": "Rows per INSERT batch.",
|
|
249
|
-
"name": "batch-size",
|
|
250
|
-
"default": 1000,
|
|
228
|
+
"version": {
|
|
229
|
+
"description": "Specific version to install (default: latest)",
|
|
230
|
+
"name": "version",
|
|
251
231
|
"hasDynamicHelp": false,
|
|
252
232
|
"multiple": false,
|
|
253
233
|
"type": "option"
|
|
254
234
|
},
|
|
255
|
-
"
|
|
256
|
-
"
|
|
257
|
-
"
|
|
235
|
+
"verbose": {
|
|
236
|
+
"char": "v",
|
|
237
|
+
"description": "Show detailed output",
|
|
238
|
+
"name": "verbose",
|
|
258
239
|
"allowNo": false,
|
|
259
240
|
"type": "boolean"
|
|
260
241
|
},
|
|
261
|
-
"
|
|
262
|
-
"description": "
|
|
263
|
-
"name": "
|
|
242
|
+
"non-interactive": {
|
|
243
|
+
"description": "Skip interactive setup prompts; post-install hooks use environment variables / defaults (for CI/headless installs)",
|
|
244
|
+
"name": "non-interactive",
|
|
264
245
|
"allowNo": false,
|
|
265
246
|
"type": "boolean"
|
|
266
247
|
},
|
|
267
|
-
"
|
|
268
|
-
"
|
|
269
|
-
"name": "
|
|
248
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
249
|
+
"hidden": true,
|
|
250
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
270
251
|
"allowNo": false,
|
|
271
252
|
"type": "boolean"
|
|
272
253
|
}
|
|
273
254
|
},
|
|
274
255
|
"hasDynamicHelp": false,
|
|
275
256
|
"hiddenAliases": [],
|
|
276
|
-
"id": "
|
|
257
|
+
"id": "app:install",
|
|
277
258
|
"pluginAlias": "@memberjunction/cli",
|
|
278
259
|
"pluginName": "@memberjunction/cli",
|
|
279
260
|
"pluginType": "core",
|
|
@@ -283,106 +264,21 @@
|
|
|
283
264
|
"relativePath": [
|
|
284
265
|
"dist",
|
|
285
266
|
"commands",
|
|
286
|
-
"
|
|
287
|
-
"
|
|
267
|
+
"app",
|
|
268
|
+
"install.js"
|
|
288
269
|
]
|
|
289
270
|
},
|
|
290
|
-
"
|
|
271
|
+
"app:list": {
|
|
291
272
|
"aliases": [],
|
|
292
273
|
"args": {},
|
|
293
|
-
"description": "
|
|
274
|
+
"description": "List all installed MJ Open Apps",
|
|
294
275
|
"examples": [
|
|
295
|
-
"<%= config.bin %>
|
|
296
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
297
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
276
|
+
"<%= config.bin %> app list"
|
|
298
277
|
],
|
|
299
278
|
"flags": {
|
|
300
|
-
"left": {
|
|
301
|
-
"description": "Left database name (override).",
|
|
302
|
-
"name": "left",
|
|
303
|
-
"required": true,
|
|
304
|
-
"hasDynamicHelp": false,
|
|
305
|
-
"multiple": false,
|
|
306
|
-
"type": "option"
|
|
307
|
-
},
|
|
308
|
-
"right": {
|
|
309
|
-
"description": "Right database name (override).",
|
|
310
|
-
"name": "right",
|
|
311
|
-
"required": true,
|
|
312
|
-
"hasDynamicHelp": false,
|
|
313
|
-
"multiple": false,
|
|
314
|
-
"type": "option"
|
|
315
|
-
},
|
|
316
|
-
"dialect": {
|
|
317
|
-
"description": "Dialect of both DBs (must match).",
|
|
318
|
-
"name": "dialect",
|
|
319
|
-
"default": "mssql",
|
|
320
|
-
"hasDynamicHelp": false,
|
|
321
|
-
"multiple": false,
|
|
322
|
-
"options": [
|
|
323
|
-
"mssql",
|
|
324
|
-
"postgres"
|
|
325
|
-
],
|
|
326
|
-
"type": "option"
|
|
327
|
-
},
|
|
328
|
-
"row-compare": {
|
|
329
|
-
"description": "Row comparison mode.",
|
|
330
|
-
"name": "row-compare",
|
|
331
|
-
"default": "full",
|
|
332
|
-
"hasDynamicHelp": false,
|
|
333
|
-
"multiple": false,
|
|
334
|
-
"options": [
|
|
335
|
-
"full",
|
|
336
|
-
"hash",
|
|
337
|
-
"counts",
|
|
338
|
-
"none"
|
|
339
|
-
],
|
|
340
|
-
"type": "option"
|
|
341
|
-
},
|
|
342
|
-
"row-hash-algo": {
|
|
343
|
-
"description": "Hash algorithm when --row-compare hash.",
|
|
344
|
-
"name": "row-hash-algo",
|
|
345
|
-
"default": "sha256",
|
|
346
|
-
"hasDynamicHelp": false,
|
|
347
|
-
"multiple": false,
|
|
348
|
-
"options": [
|
|
349
|
-
"sha256",
|
|
350
|
-
"md5",
|
|
351
|
-
"checksum_agg"
|
|
352
|
-
],
|
|
353
|
-
"type": "option"
|
|
354
|
-
},
|
|
355
|
-
"ignore": {
|
|
356
|
-
"description": "Regex of object names to skip.",
|
|
357
|
-
"name": "ignore",
|
|
358
|
-
"default": "^flyway_schema_history$",
|
|
359
|
-
"hasDynamicHelp": false,
|
|
360
|
-
"multiple": false,
|
|
361
|
-
"type": "option"
|
|
362
|
-
},
|
|
363
|
-
"sample-limit": {
|
|
364
|
-
"description": "Maximum row diffs to capture per table.",
|
|
365
|
-
"name": "sample-limit",
|
|
366
|
-
"default": 100,
|
|
367
|
-
"hasDynamicHelp": false,
|
|
368
|
-
"multiple": false,
|
|
369
|
-
"type": "option"
|
|
370
|
-
},
|
|
371
|
-
"out": {
|
|
372
|
-
"description": "Directory to write JSON + Markdown reports.",
|
|
373
|
-
"name": "out",
|
|
374
|
-
"hasDynamicHelp": false,
|
|
375
|
-
"multiple": false,
|
|
376
|
-
"type": "option"
|
|
377
|
-
},
|
|
378
|
-
"fail-on-diff": {
|
|
379
|
-
"description": "Exit non-zero if any diff is found.",
|
|
380
|
-
"name": "fail-on-diff",
|
|
381
|
-
"allowNo": false,
|
|
382
|
-
"type": "boolean"
|
|
383
|
-
},
|
|
384
279
|
"verbose": {
|
|
385
|
-
"
|
|
280
|
+
"char": "v",
|
|
281
|
+
"description": "Show detailed output",
|
|
386
282
|
"name": "verbose",
|
|
387
283
|
"allowNo": false,
|
|
388
284
|
"type": "boolean"
|
|
@@ -390,7 +286,7 @@
|
|
|
390
286
|
},
|
|
391
287
|
"hasDynamicHelp": false,
|
|
392
288
|
"hiddenAliases": [],
|
|
393
|
-
"id": "
|
|
289
|
+
"id": "app:list",
|
|
394
290
|
"pluginAlias": "@memberjunction/cli",
|
|
395
291
|
"pluginName": "@memberjunction/cli",
|
|
396
292
|
"pluginType": "core",
|
|
@@ -400,119 +296,62 @@
|
|
|
400
296
|
"relativePath": [
|
|
401
297
|
"dist",
|
|
402
298
|
"commands",
|
|
403
|
-
"
|
|
404
|
-
"
|
|
299
|
+
"app",
|
|
300
|
+
"list.js"
|
|
405
301
|
]
|
|
406
302
|
},
|
|
407
|
-
"
|
|
303
|
+
"app:remove": {
|
|
408
304
|
"aliases": [],
|
|
409
|
-
"args": {
|
|
410
|
-
|
|
305
|
+
"args": {
|
|
306
|
+
"name": {
|
|
307
|
+
"description": "Name of the installed app to remove",
|
|
308
|
+
"name": "name",
|
|
309
|
+
"required": true
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
"description": "Remove an installed MJ Open App",
|
|
411
313
|
"examples": [
|
|
412
|
-
"<%= config.bin %>
|
|
413
|
-
"<%= config.bin %>
|
|
414
|
-
"<%= config.bin %>
|
|
314
|
+
"<%= config.bin %> app remove acme-crm",
|
|
315
|
+
"<%= config.bin %> app remove acme-crm --keep-data",
|
|
316
|
+
"<%= config.bin %> app remove acme-crm --force"
|
|
415
317
|
],
|
|
416
318
|
"flags": {
|
|
417
|
-
"
|
|
418
|
-
"description": "
|
|
419
|
-
"name": "
|
|
420
|
-
"
|
|
421
|
-
"
|
|
422
|
-
"type": "option"
|
|
423
|
-
},
|
|
424
|
-
"source-dir": {
|
|
425
|
-
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
426
|
-
"name": "source-dir",
|
|
427
|
-
"hasDynamicHelp": false,
|
|
428
|
-
"multiple": false,
|
|
429
|
-
"type": "option"
|
|
430
|
-
},
|
|
431
|
-
"description": {
|
|
432
|
-
"description": "Header description.",
|
|
433
|
-
"name": "description",
|
|
434
|
-
"default": "MemberJunction Baseline",
|
|
435
|
-
"hasDynamicHelp": false,
|
|
436
|
-
"multiple": false,
|
|
437
|
-
"type": "option"
|
|
438
|
-
},
|
|
439
|
-
"dialect": {
|
|
440
|
-
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
441
|
-
"name": "dialect",
|
|
442
|
-
"default": "mssql",
|
|
443
|
-
"hasDynamicHelp": false,
|
|
444
|
-
"multiple": false,
|
|
445
|
-
"options": [
|
|
446
|
-
"mssql",
|
|
447
|
-
"postgres"
|
|
448
|
-
],
|
|
449
|
-
"type": "option"
|
|
450
|
-
},
|
|
451
|
-
"source": {
|
|
452
|
-
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
453
|
-
"name": "source",
|
|
454
|
-
"required": true,
|
|
455
|
-
"hasDynamicHelp": false,
|
|
456
|
-
"multiple": false,
|
|
457
|
-
"type": "option"
|
|
458
|
-
},
|
|
459
|
-
"target": {
|
|
460
|
-
"description": "Empty database name to apply the new baseline to.",
|
|
461
|
-
"name": "target",
|
|
462
|
-
"required": true,
|
|
463
|
-
"hasDynamicHelp": false,
|
|
464
|
-
"multiple": false,
|
|
465
|
-
"type": "option"
|
|
466
|
-
},
|
|
467
|
-
"out": {
|
|
468
|
-
"description": "Output directory for baseline file + reports.",
|
|
469
|
-
"name": "out",
|
|
470
|
-
"default": ".",
|
|
471
|
-
"hasDynamicHelp": false,
|
|
472
|
-
"multiple": false,
|
|
473
|
-
"type": "option"
|
|
474
|
-
},
|
|
475
|
-
"apply-cmd": {
|
|
476
|
-
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
477
|
-
"name": "apply-cmd",
|
|
478
|
-
"hasDynamicHelp": false,
|
|
479
|
-
"multiple": false,
|
|
480
|
-
"type": "option"
|
|
481
|
-
},
|
|
482
|
-
"row-compare": {
|
|
483
|
-
"description": "Row compare mode passed to the comparator.",
|
|
484
|
-
"name": "row-compare",
|
|
485
|
-
"default": "full",
|
|
486
|
-
"hasDynamicHelp": false,
|
|
487
|
-
"multiple": false,
|
|
488
|
-
"options": [
|
|
489
|
-
"full",
|
|
490
|
-
"hash",
|
|
491
|
-
"counts",
|
|
492
|
-
"none"
|
|
493
|
-
],
|
|
494
|
-
"type": "option"
|
|
319
|
+
"keep-data": {
|
|
320
|
+
"description": "Keep the database schema and data",
|
|
321
|
+
"name": "keep-data",
|
|
322
|
+
"allowNo": false,
|
|
323
|
+
"type": "boolean"
|
|
495
324
|
},
|
|
496
|
-
"
|
|
497
|
-
"
|
|
325
|
+
"force": {
|
|
326
|
+
"description": "Force removal even if other apps depend on this one",
|
|
327
|
+
"name": "force",
|
|
498
328
|
"allowNo": false,
|
|
499
329
|
"type": "boolean"
|
|
500
330
|
},
|
|
501
|
-
"
|
|
502
|
-
"
|
|
503
|
-
"
|
|
331
|
+
"yes": {
|
|
332
|
+
"char": "y",
|
|
333
|
+
"description": "Skip confirmation prompt",
|
|
334
|
+
"name": "yes",
|
|
504
335
|
"allowNo": false,
|
|
505
336
|
"type": "boolean"
|
|
506
337
|
},
|
|
507
338
|
"verbose": {
|
|
339
|
+
"char": "v",
|
|
340
|
+
"description": "Show detailed output",
|
|
508
341
|
"name": "verbose",
|
|
509
342
|
"allowNo": false,
|
|
510
343
|
"type": "boolean"
|
|
344
|
+
},
|
|
345
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
346
|
+
"hidden": true,
|
|
347
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
348
|
+
"allowNo": false,
|
|
349
|
+
"type": "boolean"
|
|
511
350
|
}
|
|
512
351
|
},
|
|
513
352
|
"hasDynamicHelp": false,
|
|
514
353
|
"hiddenAliases": [],
|
|
515
|
-
"id": "
|
|
354
|
+
"id": "app:remove",
|
|
516
355
|
"pluginAlias": "@memberjunction/cli",
|
|
517
356
|
"pluginName": "@memberjunction/cli",
|
|
518
357
|
"pluginType": "core",
|
|
@@ -522,31 +361,55 @@
|
|
|
522
361
|
"relativePath": [
|
|
523
362
|
"dist",
|
|
524
363
|
"commands",
|
|
525
|
-
"
|
|
526
|
-
"
|
|
364
|
+
"app",
|
|
365
|
+
"remove.js"
|
|
527
366
|
]
|
|
528
367
|
},
|
|
529
|
-
"
|
|
368
|
+
"app:upgrade": {
|
|
530
369
|
"aliases": [],
|
|
531
|
-
"args": {
|
|
532
|
-
|
|
370
|
+
"args": {
|
|
371
|
+
"name": {
|
|
372
|
+
"description": "Name of the installed app to upgrade",
|
|
373
|
+
"name": "name",
|
|
374
|
+
"required": true
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"description": "Upgrade an installed MJ Open App to a newer version",
|
|
378
|
+
"examples": [
|
|
379
|
+
"<%= config.bin %> app upgrade acme-crm",
|
|
380
|
+
"<%= config.bin %> app upgrade acme-crm --version 1.3.0"
|
|
381
|
+
],
|
|
533
382
|
"flags": {
|
|
534
|
-
"
|
|
535
|
-
"description": "
|
|
536
|
-
"name": "
|
|
383
|
+
"version": {
|
|
384
|
+
"description": "Specific version to upgrade to (default: latest)",
|
|
385
|
+
"name": "version",
|
|
537
386
|
"hasDynamicHelp": false,
|
|
538
387
|
"multiple": false,
|
|
539
|
-
"options": [
|
|
540
|
-
"text",
|
|
541
|
-
"json",
|
|
542
|
-
"md"
|
|
543
|
-
],
|
|
544
388
|
"type": "option"
|
|
389
|
+
},
|
|
390
|
+
"verbose": {
|
|
391
|
+
"char": "v",
|
|
392
|
+
"description": "Show detailed output",
|
|
393
|
+
"name": "verbose",
|
|
394
|
+
"allowNo": false,
|
|
395
|
+
"type": "boolean"
|
|
396
|
+
},
|
|
397
|
+
"non-interactive": {
|
|
398
|
+
"description": "Skip interactive prompts; post-upgrade hooks use environment variables / defaults (for CI/headless upgrades)",
|
|
399
|
+
"name": "non-interactive",
|
|
400
|
+
"allowNo": false,
|
|
401
|
+
"type": "boolean"
|
|
402
|
+
},
|
|
403
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
404
|
+
"hidden": true,
|
|
405
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
406
|
+
"allowNo": false,
|
|
407
|
+
"type": "boolean"
|
|
545
408
|
}
|
|
546
409
|
},
|
|
547
410
|
"hasDynamicHelp": false,
|
|
548
411
|
"hiddenAliases": [],
|
|
549
|
-
"id": "
|
|
412
|
+
"id": "app:upgrade",
|
|
550
413
|
"pluginAlias": "@memberjunction/cli",
|
|
551
414
|
"pluginName": "@memberjunction/cli",
|
|
552
415
|
"pluginType": "core",
|
|
@@ -556,69 +419,92 @@
|
|
|
556
419
|
"relativePath": [
|
|
557
420
|
"dist",
|
|
558
421
|
"commands",
|
|
559
|
-
"
|
|
422
|
+
"app",
|
|
423
|
+
"upgrade.js"
|
|
424
|
+
]
|
|
425
|
+
},
|
|
426
|
+
"app:usage": {
|
|
427
|
+
"aliases": [],
|
|
428
|
+
"args": {},
|
|
429
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj app` command.",
|
|
430
|
+
"flags": {
|
|
431
|
+
"format": {
|
|
432
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
433
|
+
"name": "format",
|
|
434
|
+
"hasDynamicHelp": false,
|
|
435
|
+
"multiple": false,
|
|
436
|
+
"options": [
|
|
437
|
+
"text",
|
|
438
|
+
"json",
|
|
439
|
+
"md"
|
|
440
|
+
],
|
|
441
|
+
"type": "option"
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
"hasDynamicHelp": false,
|
|
445
|
+
"hiddenAliases": [],
|
|
446
|
+
"id": "app:usage",
|
|
447
|
+
"pluginAlias": "@memberjunction/cli",
|
|
448
|
+
"pluginName": "@memberjunction/cli",
|
|
449
|
+
"pluginType": "core",
|
|
450
|
+
"strict": true,
|
|
451
|
+
"enableJsonFlag": false,
|
|
452
|
+
"isESM": true,
|
|
453
|
+
"relativePath": [
|
|
454
|
+
"dist",
|
|
455
|
+
"commands",
|
|
456
|
+
"app",
|
|
560
457
|
"usage.js"
|
|
561
458
|
]
|
|
562
459
|
},
|
|
563
|
-
"
|
|
460
|
+
"artifacts:reclassify": {
|
|
564
461
|
"aliases": [],
|
|
565
462
|
"args": {},
|
|
566
|
-
"description": "
|
|
463
|
+
"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.",
|
|
567
464
|
"examples": [
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
"description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
|
|
571
|
-
},
|
|
572
|
-
{
|
|
573
|
-
"command": "<%= config.bin %> <%= command.id %> -rdv",
|
|
574
|
-
"description": "Preview all recursive packages bumps without writing any changes."
|
|
575
|
-
},
|
|
576
|
-
{
|
|
577
|
-
"command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
|
|
578
|
-
"description": "Recursively bump all @memberjunction/* dependencies in all packages to version v2.10.0 and output only the paths containing the updated package.json files. Pipe the output to xargs to run npm install in each directory and update the package-lock.json files as well."
|
|
579
|
-
}
|
|
465
|
+
"<%= config.bin %> <%= command.id %>",
|
|
466
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
580
467
|
],
|
|
581
468
|
"flags": {
|
|
582
|
-
"
|
|
583
|
-
"
|
|
584
|
-
"
|
|
585
|
-
"
|
|
586
|
-
"
|
|
587
|
-
"type": "
|
|
469
|
+
"conversation-id": {
|
|
470
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
471
|
+
"name": "conversation-id",
|
|
472
|
+
"hasDynamicHelp": false,
|
|
473
|
+
"multiple": false,
|
|
474
|
+
"type": "option"
|
|
588
475
|
},
|
|
589
|
-
"
|
|
590
|
-
"
|
|
591
|
-
"
|
|
592
|
-
"
|
|
593
|
-
"
|
|
594
|
-
"type": "
|
|
476
|
+
"since": {
|
|
477
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
478
|
+
"name": "since",
|
|
479
|
+
"hasDynamicHelp": false,
|
|
480
|
+
"multiple": false,
|
|
481
|
+
"type": "option"
|
|
595
482
|
},
|
|
596
|
-
"
|
|
597
|
-
"
|
|
598
|
-
"
|
|
599
|
-
"
|
|
483
|
+
"limit": {
|
|
484
|
+
"description": "Maximum number of rows to inspect.",
|
|
485
|
+
"name": "limit",
|
|
486
|
+
"default": 100,
|
|
600
487
|
"hasDynamicHelp": false,
|
|
601
488
|
"multiple": false,
|
|
602
489
|
"type": "option"
|
|
603
490
|
},
|
|
604
|
-
"
|
|
605
|
-
"
|
|
606
|
-
"
|
|
607
|
-
"name": "quiet",
|
|
491
|
+
"apply": {
|
|
492
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
493
|
+
"name": "apply",
|
|
608
494
|
"allowNo": false,
|
|
609
495
|
"type": "boolean"
|
|
610
496
|
},
|
|
611
|
-
"
|
|
612
|
-
"char": "
|
|
613
|
-
"description": "
|
|
614
|
-
"name": "
|
|
497
|
+
"verbose": {
|
|
498
|
+
"char": "v",
|
|
499
|
+
"description": "Print every candidate row, not just the summary.",
|
|
500
|
+
"name": "verbose",
|
|
615
501
|
"allowNo": false,
|
|
616
502
|
"type": "boolean"
|
|
617
503
|
}
|
|
618
504
|
},
|
|
619
505
|
"hasDynamicHelp": false,
|
|
620
506
|
"hiddenAliases": [],
|
|
621
|
-
"id": "
|
|
507
|
+
"id": "artifacts:reclassify",
|
|
622
508
|
"pluginAlias": "@memberjunction/cli",
|
|
623
509
|
"pluginName": "@memberjunction/cli",
|
|
624
510
|
"pluginType": "core",
|
|
@@ -628,14 +514,14 @@
|
|
|
628
514
|
"relativePath": [
|
|
629
515
|
"dist",
|
|
630
516
|
"commands",
|
|
631
|
-
"
|
|
632
|
-
"
|
|
517
|
+
"artifacts",
|
|
518
|
+
"reclassify.js"
|
|
633
519
|
]
|
|
634
520
|
},
|
|
635
|
-
"
|
|
521
|
+
"artifacts:usage": {
|
|
636
522
|
"aliases": [],
|
|
637
523
|
"args": {},
|
|
638
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
524
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj artifacts` command.",
|
|
639
525
|
"flags": {
|
|
640
526
|
"format": {
|
|
641
527
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -652,7 +538,7 @@
|
|
|
652
538
|
},
|
|
653
539
|
"hasDynamicHelp": false,
|
|
654
540
|
"hiddenAliases": [],
|
|
655
|
-
"id": "
|
|
541
|
+
"id": "artifacts:usage",
|
|
656
542
|
"pluginAlias": "@memberjunction/cli",
|
|
657
543
|
"pluginName": "@memberjunction/cli",
|
|
658
544
|
"pluginType": "core",
|
|
@@ -662,51 +548,96 @@
|
|
|
662
548
|
"relativePath": [
|
|
663
549
|
"dist",
|
|
664
550
|
"commands",
|
|
665
|
-
"
|
|
551
|
+
"artifacts",
|
|
666
552
|
"usage.js"
|
|
667
553
|
]
|
|
668
554
|
},
|
|
669
|
-
"
|
|
555
|
+
"baseline:build": {
|
|
670
556
|
"aliases": [],
|
|
671
557
|
"args": {},
|
|
672
|
-
"description": "
|
|
558
|
+
"description": "Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.",
|
|
673
559
|
"examples": [
|
|
674
|
-
"<%= config.bin %>
|
|
560
|
+
"<%= config.bin %> <%= command.id %> --out ./migrations/v5/ # auto: within-major rebaseline",
|
|
561
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --out ./migrations/v5/",
|
|
562
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --out ./migrations/v6/ # explicit major-boundary",
|
|
563
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
675
564
|
],
|
|
676
|
-
"flags": {
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
"
|
|
698
|
-
|
|
699
|
-
|
|
565
|
+
"flags": {
|
|
566
|
+
"baseline-version": {
|
|
567
|
+
"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).",
|
|
568
|
+
"name": "baseline-version",
|
|
569
|
+
"hasDynamicHelp": false,
|
|
570
|
+
"multiple": false,
|
|
571
|
+
"type": "option"
|
|
572
|
+
},
|
|
573
|
+
"source-dir": {
|
|
574
|
+
"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.",
|
|
575
|
+
"name": "source-dir",
|
|
576
|
+
"hasDynamicHelp": false,
|
|
577
|
+
"multiple": false,
|
|
578
|
+
"type": "option"
|
|
579
|
+
},
|
|
580
|
+
"description": {
|
|
581
|
+
"description": "Human-readable description embedded in the file header.",
|
|
582
|
+
"name": "description",
|
|
583
|
+
"default": "MemberJunction Baseline",
|
|
584
|
+
"hasDynamicHelp": false,
|
|
585
|
+
"multiple": false,
|
|
586
|
+
"type": "option"
|
|
587
|
+
},
|
|
588
|
+
"database": {
|
|
589
|
+
"description": "Override database name (host/user/password come from MJ config).",
|
|
590
|
+
"name": "database",
|
|
591
|
+
"hasDynamicHelp": false,
|
|
592
|
+
"multiple": false,
|
|
593
|
+
"type": "option"
|
|
594
|
+
},
|
|
595
|
+
"out": {
|
|
596
|
+
"description": "Output directory. Filename is auto-generated.",
|
|
597
|
+
"name": "out",
|
|
598
|
+
"default": ".",
|
|
599
|
+
"hasDynamicHelp": false,
|
|
600
|
+
"multiple": false,
|
|
601
|
+
"type": "option"
|
|
602
|
+
},
|
|
603
|
+
"exclude-data": {
|
|
604
|
+
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
605
|
+
"name": "exclude-data",
|
|
606
|
+
"default": "",
|
|
607
|
+
"hasDynamicHelp": false,
|
|
608
|
+
"multiple": false,
|
|
609
|
+
"type": "option"
|
|
610
|
+
},
|
|
611
|
+
"batch-size": {
|
|
612
|
+
"description": "Rows per INSERT batch.",
|
|
613
|
+
"name": "batch-size",
|
|
614
|
+
"default": 1000,
|
|
615
|
+
"hasDynamicHelp": false,
|
|
616
|
+
"multiple": false,
|
|
617
|
+
"type": "option"
|
|
618
|
+
},
|
|
619
|
+
"no-data": {
|
|
620
|
+
"description": "Emit schema only, no data inserts.",
|
|
621
|
+
"name": "no-data",
|
|
622
|
+
"allowNo": false,
|
|
623
|
+
"type": "boolean"
|
|
624
|
+
},
|
|
625
|
+
"verbose": {
|
|
626
|
+
"description": "Print per-object progress.",
|
|
627
|
+
"name": "verbose",
|
|
628
|
+
"allowNo": false,
|
|
629
|
+
"type": "boolean"
|
|
630
|
+
},
|
|
631
|
+
"dry-run": {
|
|
632
|
+
"description": "Print to stdout instead of writing a file.",
|
|
633
|
+
"name": "dry-run",
|
|
634
|
+
"allowNo": false,
|
|
635
|
+
"type": "boolean"
|
|
700
636
|
}
|
|
701
637
|
},
|
|
702
|
-
"description": "Disable an installed MJ Open App without removing it",
|
|
703
|
-
"examples": [
|
|
704
|
-
"<%= config.bin %> app disable acme-crm"
|
|
705
|
-
],
|
|
706
|
-
"flags": {},
|
|
707
638
|
"hasDynamicHelp": false,
|
|
708
639
|
"hiddenAliases": [],
|
|
709
|
-
"id": "
|
|
640
|
+
"id": "baseline:build",
|
|
710
641
|
"pluginAlias": "@memberjunction/cli",
|
|
711
642
|
"pluginName": "@memberjunction/cli",
|
|
712
643
|
"pluginType": "core",
|
|
@@ -716,118 +647,114 @@
|
|
|
716
647
|
"relativePath": [
|
|
717
648
|
"dist",
|
|
718
649
|
"commands",
|
|
719
|
-
"
|
|
720
|
-
"
|
|
650
|
+
"baseline",
|
|
651
|
+
"build.js"
|
|
721
652
|
]
|
|
722
653
|
},
|
|
723
|
-
"
|
|
654
|
+
"baseline:compare": {
|
|
724
655
|
"aliases": [],
|
|
725
|
-
"args": {
|
|
726
|
-
|
|
727
|
-
"description": "Name of the installed app to enable",
|
|
728
|
-
"name": "name",
|
|
729
|
-
"required": true
|
|
730
|
-
}
|
|
731
|
-
},
|
|
732
|
-
"description": "Re-enable a disabled MJ Open App",
|
|
656
|
+
"args": {},
|
|
657
|
+
"description": "Deterministically compare two databases object-by-object and row-by-row.",
|
|
733
658
|
"examples": [
|
|
734
|
-
"<%= config.bin %>
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
"hasDynamicHelp": false,
|
|
738
|
-
"hiddenAliases": [],
|
|
739
|
-
"id": "app:enable",
|
|
740
|
-
"pluginAlias": "@memberjunction/cli",
|
|
741
|
-
"pluginName": "@memberjunction/cli",
|
|
742
|
-
"pluginType": "core",
|
|
743
|
-
"strict": true,
|
|
744
|
-
"enableJsonFlag": false,
|
|
745
|
-
"isESM": true,
|
|
746
|
-
"relativePath": [
|
|
747
|
-
"dist",
|
|
748
|
-
"commands",
|
|
749
|
-
"app",
|
|
750
|
-
"enable.js"
|
|
751
|
-
]
|
|
752
|
-
},
|
|
753
|
-
"app:info": {
|
|
754
|
-
"aliases": [],
|
|
755
|
-
"args": {
|
|
756
|
-
"name": {
|
|
757
|
-
"description": "Name of the installed app",
|
|
758
|
-
"name": "name",
|
|
759
|
-
"required": true
|
|
760
|
-
}
|
|
761
|
-
},
|
|
762
|
-
"description": "Show detailed information about an installed MJ Open App",
|
|
763
|
-
"examples": [
|
|
764
|
-
"<%= config.bin %> app info acme-crm"
|
|
765
|
-
],
|
|
766
|
-
"flags": {},
|
|
767
|
-
"hasDynamicHelp": false,
|
|
768
|
-
"hiddenAliases": [],
|
|
769
|
-
"id": "app:info",
|
|
770
|
-
"pluginAlias": "@memberjunction/cli",
|
|
771
|
-
"pluginName": "@memberjunction/cli",
|
|
772
|
-
"pluginType": "core",
|
|
773
|
-
"strict": true,
|
|
774
|
-
"enableJsonFlag": false,
|
|
775
|
-
"isESM": true,
|
|
776
|
-
"relativePath": [
|
|
777
|
-
"dist",
|
|
778
|
-
"commands",
|
|
779
|
-
"app",
|
|
780
|
-
"info.js"
|
|
781
|
-
]
|
|
782
|
-
},
|
|
783
|
-
"app:install": {
|
|
784
|
-
"aliases": [],
|
|
785
|
-
"args": {
|
|
786
|
-
"source": {
|
|
787
|
-
"description": "GitHub repository URL of the Open App. For a multi-app repo, append the in-repo path to the app (e.g. https://github.com/MemberJunction/Integrations/CRM/HubSpot).",
|
|
788
|
-
"name": "source",
|
|
789
|
-
"required": true
|
|
790
|
-
}
|
|
791
|
-
},
|
|
792
|
-
"description": "Install an MJ Open App from a GitHub repository",
|
|
793
|
-
"examples": [
|
|
794
|
-
"<%= config.bin %> app install https://github.com/acme/mj-crm",
|
|
795
|
-
"<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0",
|
|
796
|
-
"<%= config.bin %> app install https://github.com/acme/mj-crm --verbose",
|
|
797
|
-
"<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot",
|
|
798
|
-
"<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive"
|
|
659
|
+
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
660
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
661
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
799
662
|
],
|
|
800
663
|
"flags": {
|
|
801
|
-
"
|
|
802
|
-
"description": "
|
|
803
|
-
"name": "
|
|
664
|
+
"left": {
|
|
665
|
+
"description": "Left database name (override).",
|
|
666
|
+
"name": "left",
|
|
667
|
+
"required": true,
|
|
804
668
|
"hasDynamicHelp": false,
|
|
805
669
|
"multiple": false,
|
|
806
670
|
"type": "option"
|
|
807
671
|
},
|
|
808
|
-
"
|
|
809
|
-
"
|
|
810
|
-
"
|
|
811
|
-
"
|
|
812
|
-
"
|
|
813
|
-
"
|
|
672
|
+
"right": {
|
|
673
|
+
"description": "Right database name (override).",
|
|
674
|
+
"name": "right",
|
|
675
|
+
"required": true,
|
|
676
|
+
"hasDynamicHelp": false,
|
|
677
|
+
"multiple": false,
|
|
678
|
+
"type": "option"
|
|
814
679
|
},
|
|
815
|
-
"
|
|
816
|
-
"description": "
|
|
817
|
-
"name": "
|
|
680
|
+
"dialect": {
|
|
681
|
+
"description": "Dialect of both DBs (must match).",
|
|
682
|
+
"name": "dialect",
|
|
683
|
+
"default": "mssql",
|
|
684
|
+
"hasDynamicHelp": false,
|
|
685
|
+
"multiple": false,
|
|
686
|
+
"options": [
|
|
687
|
+
"mssql",
|
|
688
|
+
"postgres"
|
|
689
|
+
],
|
|
690
|
+
"type": "option"
|
|
691
|
+
},
|
|
692
|
+
"row-compare": {
|
|
693
|
+
"description": "Row comparison mode.",
|
|
694
|
+
"name": "row-compare",
|
|
695
|
+
"default": "full",
|
|
696
|
+
"hasDynamicHelp": false,
|
|
697
|
+
"multiple": false,
|
|
698
|
+
"options": [
|
|
699
|
+
"full",
|
|
700
|
+
"hash",
|
|
701
|
+
"counts",
|
|
702
|
+
"none"
|
|
703
|
+
],
|
|
704
|
+
"type": "option"
|
|
705
|
+
},
|
|
706
|
+
"row-hash-algo": {
|
|
707
|
+
"description": "Hash algorithm when --row-compare hash.",
|
|
708
|
+
"name": "row-hash-algo",
|
|
709
|
+
"default": "sha256",
|
|
710
|
+
"hasDynamicHelp": false,
|
|
711
|
+
"multiple": false,
|
|
712
|
+
"options": [
|
|
713
|
+
"sha256",
|
|
714
|
+
"md5",
|
|
715
|
+
"checksum_agg"
|
|
716
|
+
],
|
|
717
|
+
"type": "option"
|
|
718
|
+
},
|
|
719
|
+
"ignore": {
|
|
720
|
+
"description": "Regex of object names to skip.",
|
|
721
|
+
"name": "ignore",
|
|
722
|
+
"default": "^flyway_schema_history$",
|
|
723
|
+
"hasDynamicHelp": false,
|
|
724
|
+
"multiple": false,
|
|
725
|
+
"type": "option"
|
|
726
|
+
},
|
|
727
|
+
"sample-limit": {
|
|
728
|
+
"description": "Maximum row diffs to capture per table.",
|
|
729
|
+
"name": "sample-limit",
|
|
730
|
+
"default": 100,
|
|
731
|
+
"hasDynamicHelp": false,
|
|
732
|
+
"multiple": false,
|
|
733
|
+
"type": "option"
|
|
734
|
+
},
|
|
735
|
+
"out": {
|
|
736
|
+
"description": "Directory to write JSON + Markdown reports.",
|
|
737
|
+
"name": "out",
|
|
738
|
+
"hasDynamicHelp": false,
|
|
739
|
+
"multiple": false,
|
|
740
|
+
"type": "option"
|
|
741
|
+
},
|
|
742
|
+
"fail-on-diff": {
|
|
743
|
+
"description": "Exit non-zero if any diff is found.",
|
|
744
|
+
"name": "fail-on-diff",
|
|
818
745
|
"allowNo": false,
|
|
819
746
|
"type": "boolean"
|
|
820
747
|
},
|
|
821
|
-
"
|
|
822
|
-
"
|
|
823
|
-
"name": "
|
|
748
|
+
"verbose": {
|
|
749
|
+
"description": "Print per-phase progress.",
|
|
750
|
+
"name": "verbose",
|
|
824
751
|
"allowNo": false,
|
|
825
752
|
"type": "boolean"
|
|
826
753
|
}
|
|
827
754
|
},
|
|
828
755
|
"hasDynamicHelp": false,
|
|
829
756
|
"hiddenAliases": [],
|
|
830
|
-
"id": "
|
|
757
|
+
"id": "baseline:compare",
|
|
831
758
|
"pluginAlias": "@memberjunction/cli",
|
|
832
759
|
"pluginName": "@memberjunction/cli",
|
|
833
760
|
"pluginType": "core",
|
|
@@ -837,21 +764,111 @@
|
|
|
837
764
|
"relativePath": [
|
|
838
765
|
"dist",
|
|
839
766
|
"commands",
|
|
840
|
-
"
|
|
841
|
-
"
|
|
767
|
+
"baseline",
|
|
768
|
+
"compare.js"
|
|
842
769
|
]
|
|
843
770
|
},
|
|
844
|
-
"
|
|
771
|
+
"baseline:roundtrip": {
|
|
845
772
|
"aliases": [],
|
|
846
773
|
"args": {},
|
|
847
|
-
"description": "
|
|
774
|
+
"description": "Build a baseline from a V-stack database, apply it to a fresh DB, and prove byte-equivalence.",
|
|
848
775
|
"examples": [
|
|
849
|
-
"<%= config.bin %>
|
|
776
|
+
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
777
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
778
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
850
779
|
],
|
|
851
780
|
"flags": {
|
|
781
|
+
"baseline-version": {
|
|
782
|
+
"description": "Major.Minor version stamp. Omit to auto-detect from --source-dir (within-major rebaseline).",
|
|
783
|
+
"name": "baseline-version",
|
|
784
|
+
"hasDynamicHelp": false,
|
|
785
|
+
"multiple": false,
|
|
786
|
+
"type": "option"
|
|
787
|
+
},
|
|
788
|
+
"source-dir": {
|
|
789
|
+
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
790
|
+
"name": "source-dir",
|
|
791
|
+
"hasDynamicHelp": false,
|
|
792
|
+
"multiple": false,
|
|
793
|
+
"type": "option"
|
|
794
|
+
},
|
|
795
|
+
"description": {
|
|
796
|
+
"description": "Header description.",
|
|
797
|
+
"name": "description",
|
|
798
|
+
"default": "MemberJunction Baseline",
|
|
799
|
+
"hasDynamicHelp": false,
|
|
800
|
+
"multiple": false,
|
|
801
|
+
"type": "option"
|
|
802
|
+
},
|
|
803
|
+
"dialect": {
|
|
804
|
+
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
805
|
+
"name": "dialect",
|
|
806
|
+
"default": "mssql",
|
|
807
|
+
"hasDynamicHelp": false,
|
|
808
|
+
"multiple": false,
|
|
809
|
+
"options": [
|
|
810
|
+
"mssql",
|
|
811
|
+
"postgres"
|
|
812
|
+
],
|
|
813
|
+
"type": "option"
|
|
814
|
+
},
|
|
815
|
+
"source": {
|
|
816
|
+
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
817
|
+
"name": "source",
|
|
818
|
+
"required": true,
|
|
819
|
+
"hasDynamicHelp": false,
|
|
820
|
+
"multiple": false,
|
|
821
|
+
"type": "option"
|
|
822
|
+
},
|
|
823
|
+
"target": {
|
|
824
|
+
"description": "Empty database name to apply the new baseline to.",
|
|
825
|
+
"name": "target",
|
|
826
|
+
"required": true,
|
|
827
|
+
"hasDynamicHelp": false,
|
|
828
|
+
"multiple": false,
|
|
829
|
+
"type": "option"
|
|
830
|
+
},
|
|
831
|
+
"out": {
|
|
832
|
+
"description": "Output directory for baseline file + reports.",
|
|
833
|
+
"name": "out",
|
|
834
|
+
"default": ".",
|
|
835
|
+
"hasDynamicHelp": false,
|
|
836
|
+
"multiple": false,
|
|
837
|
+
"type": "option"
|
|
838
|
+
},
|
|
839
|
+
"apply-cmd": {
|
|
840
|
+
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
841
|
+
"name": "apply-cmd",
|
|
842
|
+
"hasDynamicHelp": false,
|
|
843
|
+
"multiple": false,
|
|
844
|
+
"type": "option"
|
|
845
|
+
},
|
|
846
|
+
"row-compare": {
|
|
847
|
+
"description": "Row compare mode passed to the comparator.",
|
|
848
|
+
"name": "row-compare",
|
|
849
|
+
"default": "full",
|
|
850
|
+
"hasDynamicHelp": false,
|
|
851
|
+
"multiple": false,
|
|
852
|
+
"options": [
|
|
853
|
+
"full",
|
|
854
|
+
"hash",
|
|
855
|
+
"counts",
|
|
856
|
+
"none"
|
|
857
|
+
],
|
|
858
|
+
"type": "option"
|
|
859
|
+
},
|
|
860
|
+
"fail-on-diff": {
|
|
861
|
+
"name": "fail-on-diff",
|
|
862
|
+
"allowNo": false,
|
|
863
|
+
"type": "boolean"
|
|
864
|
+
},
|
|
865
|
+
"keep-target": {
|
|
866
|
+
"description": "Do not drop the target database after run (useful for debugging diffs).",
|
|
867
|
+
"name": "keep-target",
|
|
868
|
+
"allowNo": false,
|
|
869
|
+
"type": "boolean"
|
|
870
|
+
},
|
|
852
871
|
"verbose": {
|
|
853
|
-
"char": "v",
|
|
854
|
-
"description": "Show detailed output",
|
|
855
872
|
"name": "verbose",
|
|
856
873
|
"allowNo": false,
|
|
857
874
|
"type": "boolean"
|
|
@@ -859,7 +876,7 @@
|
|
|
859
876
|
},
|
|
860
877
|
"hasDynamicHelp": false,
|
|
861
878
|
"hiddenAliases": [],
|
|
862
|
-
"id": "
|
|
879
|
+
"id": "baseline:roundtrip",
|
|
863
880
|
"pluginAlias": "@memberjunction/cli",
|
|
864
881
|
"pluginName": "@memberjunction/cli",
|
|
865
882
|
"pluginType": "core",
|
|
@@ -869,62 +886,31 @@
|
|
|
869
886
|
"relativePath": [
|
|
870
887
|
"dist",
|
|
871
888
|
"commands",
|
|
872
|
-
"
|
|
873
|
-
"
|
|
889
|
+
"baseline",
|
|
890
|
+
"roundtrip.js"
|
|
874
891
|
]
|
|
875
892
|
},
|
|
876
|
-
"
|
|
893
|
+
"baseline:usage": {
|
|
877
894
|
"aliases": [],
|
|
878
|
-
"args": {
|
|
879
|
-
|
|
880
|
-
"description": "Name of the installed app to remove",
|
|
881
|
-
"name": "name",
|
|
882
|
-
"required": true
|
|
883
|
-
}
|
|
884
|
-
},
|
|
885
|
-
"description": "Remove an installed MJ Open App",
|
|
886
|
-
"examples": [
|
|
887
|
-
"<%= config.bin %> app remove acme-crm",
|
|
888
|
-
"<%= config.bin %> app remove acme-crm --keep-data",
|
|
889
|
-
"<%= config.bin %> app remove acme-crm --force"
|
|
890
|
-
],
|
|
895
|
+
"args": {},
|
|
896
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj baseline` command.",
|
|
891
897
|
"flags": {
|
|
892
|
-
"
|
|
893
|
-
"description": "
|
|
894
|
-
"name": "
|
|
895
|
-
"
|
|
896
|
-
"
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
"type": "
|
|
903
|
-
},
|
|
904
|
-
"yes": {
|
|
905
|
-
"char": "y",
|
|
906
|
-
"description": "Skip confirmation prompt",
|
|
907
|
-
"name": "yes",
|
|
908
|
-
"allowNo": false,
|
|
909
|
-
"type": "boolean"
|
|
910
|
-
},
|
|
911
|
-
"verbose": {
|
|
912
|
-
"char": "v",
|
|
913
|
-
"description": "Show detailed output",
|
|
914
|
-
"name": "verbose",
|
|
915
|
-
"allowNo": false,
|
|
916
|
-
"type": "boolean"
|
|
917
|
-
},
|
|
918
|
-
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
919
|
-
"hidden": true,
|
|
920
|
-
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
921
|
-
"allowNo": false,
|
|
922
|
-
"type": "boolean"
|
|
898
|
+
"format": {
|
|
899
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
900
|
+
"name": "format",
|
|
901
|
+
"hasDynamicHelp": false,
|
|
902
|
+
"multiple": false,
|
|
903
|
+
"options": [
|
|
904
|
+
"text",
|
|
905
|
+
"json",
|
|
906
|
+
"md"
|
|
907
|
+
],
|
|
908
|
+
"type": "option"
|
|
923
909
|
}
|
|
924
910
|
},
|
|
925
911
|
"hasDynamicHelp": false,
|
|
926
912
|
"hiddenAliases": [],
|
|
927
|
-
"id": "
|
|
913
|
+
"id": "baseline:usage",
|
|
928
914
|
"pluginAlias": "@memberjunction/cli",
|
|
929
915
|
"pluginName": "@memberjunction/cli",
|
|
930
916
|
"pluginType": "core",
|
|
@@ -934,55 +920,69 @@
|
|
|
934
920
|
"relativePath": [
|
|
935
921
|
"dist",
|
|
936
922
|
"commands",
|
|
937
|
-
"
|
|
938
|
-
"
|
|
923
|
+
"baseline",
|
|
924
|
+
"usage.js"
|
|
939
925
|
]
|
|
940
926
|
},
|
|
941
|
-
"
|
|
927
|
+
"bump": {
|
|
942
928
|
"aliases": [],
|
|
943
|
-
"args": {
|
|
944
|
-
|
|
945
|
-
"description": "Name of the installed app to upgrade",
|
|
946
|
-
"name": "name",
|
|
947
|
-
"required": true
|
|
948
|
-
}
|
|
949
|
-
},
|
|
950
|
-
"description": "Upgrade an installed MJ Open App to a newer version",
|
|
929
|
+
"args": {},
|
|
930
|
+
"description": "Bumps MemberJunction dependency versions",
|
|
951
931
|
"examples": [
|
|
952
|
-
|
|
953
|
-
|
|
932
|
+
{
|
|
933
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
934
|
+
"description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"command": "<%= config.bin %> <%= command.id %> -rdv",
|
|
938
|
+
"description": "Preview all recursive packages bumps without writing any changes."
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
|
|
942
|
+
"description": "Recursively bump all @memberjunction/* dependencies in all packages to version v2.10.0 and output only the paths containing the updated package.json files. Pipe the output to xargs to run npm install in each directory and update the package-lock.json files as well."
|
|
943
|
+
}
|
|
954
944
|
],
|
|
955
945
|
"flags": {
|
|
956
|
-
"version": {
|
|
957
|
-
"description": "Specific version to upgrade to (default: latest)",
|
|
958
|
-
"name": "version",
|
|
959
|
-
"hasDynamicHelp": false,
|
|
960
|
-
"multiple": false,
|
|
961
|
-
"type": "option"
|
|
962
|
-
},
|
|
963
946
|
"verbose": {
|
|
964
947
|
"char": "v",
|
|
965
|
-
"description": "
|
|
948
|
+
"description": "Enable additional logging",
|
|
966
949
|
"name": "verbose",
|
|
967
950
|
"allowNo": false,
|
|
968
951
|
"type": "boolean"
|
|
969
952
|
},
|
|
970
|
-
"
|
|
971
|
-
"
|
|
972
|
-
"
|
|
953
|
+
"recursive": {
|
|
954
|
+
"char": "r",
|
|
955
|
+
"description": "Bump version in current directory and all subdirectories",
|
|
956
|
+
"name": "recursive",
|
|
973
957
|
"allowNo": false,
|
|
974
958
|
"type": "boolean"
|
|
975
959
|
},
|
|
976
|
-
"
|
|
977
|
-
"
|
|
978
|
-
"
|
|
960
|
+
"tag": {
|
|
961
|
+
"char": "t",
|
|
962
|
+
"description": "Version tag to bump target for bump (e.g. v2.10.0), defaults to the CLI version",
|
|
963
|
+
"name": "tag",
|
|
964
|
+
"hasDynamicHelp": false,
|
|
965
|
+
"multiple": false,
|
|
966
|
+
"type": "option"
|
|
967
|
+
},
|
|
968
|
+
"quiet": {
|
|
969
|
+
"char": "q",
|
|
970
|
+
"description": "Only output paths for updated packages",
|
|
971
|
+
"name": "quiet",
|
|
972
|
+
"allowNo": false,
|
|
973
|
+
"type": "boolean"
|
|
974
|
+
},
|
|
975
|
+
"dry": {
|
|
976
|
+
"char": "d",
|
|
977
|
+
"description": "Dry run, do not write changes to package.json files",
|
|
978
|
+
"name": "dry",
|
|
979
979
|
"allowNo": false,
|
|
980
980
|
"type": "boolean"
|
|
981
981
|
}
|
|
982
982
|
},
|
|
983
983
|
"hasDynamicHelp": false,
|
|
984
984
|
"hiddenAliases": [],
|
|
985
|
-
"id": "
|
|
985
|
+
"id": "bump",
|
|
986
986
|
"pluginAlias": "@memberjunction/cli",
|
|
987
987
|
"pluginName": "@memberjunction/cli",
|
|
988
988
|
"pluginType": "core",
|
|
@@ -992,14 +992,14 @@
|
|
|
992
992
|
"relativePath": [
|
|
993
993
|
"dist",
|
|
994
994
|
"commands",
|
|
995
|
-
"
|
|
996
|
-
"
|
|
995
|
+
"bump",
|
|
996
|
+
"index.js"
|
|
997
997
|
]
|
|
998
998
|
},
|
|
999
|
-
"
|
|
999
|
+
"bump:usage": {
|
|
1000
1000
|
"aliases": [],
|
|
1001
1001
|
"args": {},
|
|
1002
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
1002
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj bump` command.",
|
|
1003
1003
|
"flags": {
|
|
1004
1004
|
"format": {
|
|
1005
1005
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -1016,7 +1016,7 @@
|
|
|
1016
1016
|
},
|
|
1017
1017
|
"hasDynamicHelp": false,
|
|
1018
1018
|
"hiddenAliases": [],
|
|
1019
|
-
"id": "
|
|
1019
|
+
"id": "bump:usage",
|
|
1020
1020
|
"pluginAlias": "@memberjunction/cli",
|
|
1021
1021
|
"pluginName": "@memberjunction/cli",
|
|
1022
1022
|
"pluginType": "core",
|
|
@@ -1026,7 +1026,7 @@
|
|
|
1026
1026
|
"relativePath": [
|
|
1027
1027
|
"dist",
|
|
1028
1028
|
"commands",
|
|
1029
|
-
"
|
|
1029
|
+
"bump",
|
|
1030
1030
|
"usage.js"
|
|
1031
1031
|
]
|
|
1032
1032
|
},
|
|
@@ -2654,6 +2654,84 @@
|
|
|
2654
2654
|
"usage.js"
|
|
2655
2655
|
]
|
|
2656
2656
|
},
|
|
2657
|
+
"plugin:add": {
|
|
2658
|
+
"aliases": [],
|
|
2659
|
+
"args": {
|
|
2660
|
+
"package": {
|
|
2661
|
+
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
2662
|
+
"name": "package",
|
|
2663
|
+
"required": true
|
|
2664
|
+
}
|
|
2665
|
+
},
|
|
2666
|
+
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
2667
|
+
"examples": [
|
|
2668
|
+
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
2669
|
+
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
2670
|
+
],
|
|
2671
|
+
"flags": {
|
|
2672
|
+
"format": {
|
|
2673
|
+
"description": "Output format",
|
|
2674
|
+
"name": "format",
|
|
2675
|
+
"default": "text",
|
|
2676
|
+
"hasDynamicHelp": false,
|
|
2677
|
+
"multiple": false,
|
|
2678
|
+
"options": [
|
|
2679
|
+
"text",
|
|
2680
|
+
"json"
|
|
2681
|
+
],
|
|
2682
|
+
"type": "option"
|
|
2683
|
+
}
|
|
2684
|
+
},
|
|
2685
|
+
"hasDynamicHelp": false,
|
|
2686
|
+
"hiddenAliases": [],
|
|
2687
|
+
"id": "plugin:add",
|
|
2688
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2689
|
+
"pluginName": "@memberjunction/cli",
|
|
2690
|
+
"pluginType": "core",
|
|
2691
|
+
"strict": true,
|
|
2692
|
+
"enableJsonFlag": false,
|
|
2693
|
+
"isESM": true,
|
|
2694
|
+
"relativePath": [
|
|
2695
|
+
"dist",
|
|
2696
|
+
"commands",
|
|
2697
|
+
"plugin",
|
|
2698
|
+
"add.js"
|
|
2699
|
+
]
|
|
2700
|
+
},
|
|
2701
|
+
"plugin:usage": {
|
|
2702
|
+
"aliases": [],
|
|
2703
|
+
"args": {},
|
|
2704
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj plugin` command.",
|
|
2705
|
+
"flags": {
|
|
2706
|
+
"format": {
|
|
2707
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
2708
|
+
"name": "format",
|
|
2709
|
+
"hasDynamicHelp": false,
|
|
2710
|
+
"multiple": false,
|
|
2711
|
+
"options": [
|
|
2712
|
+
"text",
|
|
2713
|
+
"json",
|
|
2714
|
+
"md"
|
|
2715
|
+
],
|
|
2716
|
+
"type": "option"
|
|
2717
|
+
}
|
|
2718
|
+
},
|
|
2719
|
+
"hasDynamicHelp": false,
|
|
2720
|
+
"hiddenAliases": [],
|
|
2721
|
+
"id": "plugin:usage",
|
|
2722
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2723
|
+
"pluginName": "@memberjunction/cli",
|
|
2724
|
+
"pluginType": "core",
|
|
2725
|
+
"strict": true,
|
|
2726
|
+
"enableJsonFlag": false,
|
|
2727
|
+
"isESM": true,
|
|
2728
|
+
"relativePath": [
|
|
2729
|
+
"dist",
|
|
2730
|
+
"commands",
|
|
2731
|
+
"plugin",
|
|
2732
|
+
"usage.js"
|
|
2733
|
+
]
|
|
2734
|
+
},
|
|
2657
2735
|
"migrate:convert": {
|
|
2658
2736
|
"aliases": [],
|
|
2659
2737
|
"args": {},
|
|
@@ -2910,120 +2988,42 @@
|
|
|
2910
2988
|
"name": "output-dir",
|
|
2911
2989
|
"default": "./migrations-pg/v5",
|
|
2912
2990
|
"hasDynamicHelp": false,
|
|
2913
|
-
"multiple": false,
|
|
2914
|
-
"type": "option"
|
|
2915
|
-
},
|
|
2916
|
-
"schema": {
|
|
2917
|
-
"description": "Target schema name",
|
|
2918
|
-
"name": "schema",
|
|
2919
|
-
"default": "__mj",
|
|
2920
|
-
"hasDynamicHelp": false,
|
|
2921
|
-
"multiple": false,
|
|
2922
|
-
"type": "option"
|
|
2923
|
-
},
|
|
2924
|
-
"core-schema": {
|
|
2925
|
-
"description": "MJ core schema substituted for ${mjSchema} (default __mj). Distinct from --schema, which is the app's OWN schema: an Open App migration references core as ${mjSchema} and itself as ${flyway:defaultSchema}, and for every app those differ.",
|
|
2926
|
-
"name": "core-schema",
|
|
2927
|
-
"default": "__mj",
|
|
2928
|
-
"hasDynamicHelp": false,
|
|
2929
|
-
"multiple": false,
|
|
2930
|
-
"type": "option"
|
|
2931
|
-
},
|
|
2932
|
-
"baseline-floor": {
|
|
2933
|
-
"description": "Re-bake migrations strictly AFTER this version key (default: the latest B* in output-dir)",
|
|
2934
|
-
"name": "baseline-floor",
|
|
2935
|
-
"hasDynamicHelp": false,
|
|
2936
|
-
"multiple": false,
|
|
2937
|
-
"type": "option"
|
|
2938
|
-
},
|
|
2939
|
-
"dry-run": {
|
|
2940
|
-
"description": "Report what would be re-baked without writing files",
|
|
2941
|
-
"name": "dry-run",
|
|
2942
|
-
"allowNo": false,
|
|
2943
|
-
"type": "boolean"
|
|
2944
|
-
}
|
|
2945
|
-
},
|
|
2946
|
-
"hasDynamicHelp": false,
|
|
2947
|
-
"hiddenAliases": [],
|
|
2948
|
-
"id": "migrate:rebake",
|
|
2949
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2950
|
-
"pluginName": "@memberjunction/cli",
|
|
2951
|
-
"pluginType": "core",
|
|
2952
|
-
"strict": true,
|
|
2953
|
-
"enableJsonFlag": false,
|
|
2954
|
-
"isESM": true,
|
|
2955
|
-
"relativePath": [
|
|
2956
|
-
"dist",
|
|
2957
|
-
"commands",
|
|
2958
|
-
"migrate",
|
|
2959
|
-
"rebake.js"
|
|
2960
|
-
]
|
|
2961
|
-
},
|
|
2962
|
-
"migrate:usage": {
|
|
2963
|
-
"aliases": [],
|
|
2964
|
-
"args": {},
|
|
2965
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj migrate` command.",
|
|
2966
|
-
"flags": {
|
|
2967
|
-
"format": {
|
|
2968
|
-
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
2969
|
-
"name": "format",
|
|
2970
|
-
"hasDynamicHelp": false,
|
|
2971
|
-
"multiple": false,
|
|
2972
|
-
"options": [
|
|
2973
|
-
"text",
|
|
2974
|
-
"json",
|
|
2975
|
-
"md"
|
|
2976
|
-
],
|
|
2977
|
-
"type": "option"
|
|
2978
|
-
}
|
|
2979
|
-
},
|
|
2980
|
-
"hasDynamicHelp": false,
|
|
2981
|
-
"hiddenAliases": [],
|
|
2982
|
-
"id": "migrate:usage",
|
|
2983
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2984
|
-
"pluginName": "@memberjunction/cli",
|
|
2985
|
-
"pluginType": "core",
|
|
2986
|
-
"strict": true,
|
|
2987
|
-
"enableJsonFlag": false,
|
|
2988
|
-
"isESM": true,
|
|
2989
|
-
"relativePath": [
|
|
2990
|
-
"dist",
|
|
2991
|
-
"commands",
|
|
2992
|
-
"migrate",
|
|
2993
|
-
"usage.js"
|
|
2994
|
-
]
|
|
2995
|
-
},
|
|
2996
|
-
"plugin:add": {
|
|
2997
|
-
"aliases": [],
|
|
2998
|
-
"args": {
|
|
2999
|
-
"package": {
|
|
3000
|
-
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
3001
|
-
"name": "package",
|
|
3002
|
-
"required": true
|
|
3003
|
-
}
|
|
3004
|
-
},
|
|
3005
|
-
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
3006
|
-
"examples": [
|
|
3007
|
-
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
3008
|
-
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
3009
|
-
],
|
|
3010
|
-
"flags": {
|
|
3011
|
-
"format": {
|
|
3012
|
-
"description": "Output format",
|
|
3013
|
-
"name": "format",
|
|
3014
|
-
"default": "text",
|
|
2991
|
+
"multiple": false,
|
|
2992
|
+
"type": "option"
|
|
2993
|
+
},
|
|
2994
|
+
"schema": {
|
|
2995
|
+
"description": "Target schema name",
|
|
2996
|
+
"name": "schema",
|
|
2997
|
+
"default": "__mj",
|
|
2998
|
+
"hasDynamicHelp": false,
|
|
2999
|
+
"multiple": false,
|
|
3000
|
+
"type": "option"
|
|
3001
|
+
},
|
|
3002
|
+
"core-schema": {
|
|
3003
|
+
"description": "MJ core schema substituted for ${mjSchema} (default __mj). Distinct from --schema, which is the app's OWN schema: an Open App migration references core as ${mjSchema} and itself as ${flyway:defaultSchema}, and for every app those differ.",
|
|
3004
|
+
"name": "core-schema",
|
|
3005
|
+
"default": "__mj",
|
|
3006
|
+
"hasDynamicHelp": false,
|
|
3007
|
+
"multiple": false,
|
|
3008
|
+
"type": "option"
|
|
3009
|
+
},
|
|
3010
|
+
"baseline-floor": {
|
|
3011
|
+
"description": "Re-bake migrations strictly AFTER this version key (default: the latest B* in output-dir)",
|
|
3012
|
+
"name": "baseline-floor",
|
|
3015
3013
|
"hasDynamicHelp": false,
|
|
3016
3014
|
"multiple": false,
|
|
3017
|
-
"options": [
|
|
3018
|
-
"text",
|
|
3019
|
-
"json"
|
|
3020
|
-
],
|
|
3021
3015
|
"type": "option"
|
|
3016
|
+
},
|
|
3017
|
+
"dry-run": {
|
|
3018
|
+
"description": "Report what would be re-baked without writing files",
|
|
3019
|
+
"name": "dry-run",
|
|
3020
|
+
"allowNo": false,
|
|
3021
|
+
"type": "boolean"
|
|
3022
3022
|
}
|
|
3023
3023
|
},
|
|
3024
3024
|
"hasDynamicHelp": false,
|
|
3025
3025
|
"hiddenAliases": [],
|
|
3026
|
-
"id": "
|
|
3026
|
+
"id": "migrate:rebake",
|
|
3027
3027
|
"pluginAlias": "@memberjunction/cli",
|
|
3028
3028
|
"pluginName": "@memberjunction/cli",
|
|
3029
3029
|
"pluginType": "core",
|
|
@@ -3033,14 +3033,14 @@
|
|
|
3033
3033
|
"relativePath": [
|
|
3034
3034
|
"dist",
|
|
3035
3035
|
"commands",
|
|
3036
|
-
"
|
|
3037
|
-
"
|
|
3036
|
+
"migrate",
|
|
3037
|
+
"rebake.js"
|
|
3038
3038
|
]
|
|
3039
3039
|
},
|
|
3040
|
-
"
|
|
3040
|
+
"migrate:usage": {
|
|
3041
3041
|
"aliases": [],
|
|
3042
3042
|
"args": {},
|
|
3043
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
3043
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj migrate` command.",
|
|
3044
3044
|
"flags": {
|
|
3045
3045
|
"format": {
|
|
3046
3046
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -3057,7 +3057,7 @@
|
|
|
3057
3057
|
},
|
|
3058
3058
|
"hasDynamicHelp": false,
|
|
3059
3059
|
"hiddenAliases": [],
|
|
3060
|
-
"id": "
|
|
3060
|
+
"id": "migrate:usage",
|
|
3061
3061
|
"pluginAlias": "@memberjunction/cli",
|
|
3062
3062
|
"pluginName": "@memberjunction/cli",
|
|
3063
3063
|
"pluginType": "core",
|
|
@@ -3067,7 +3067,7 @@
|
|
|
3067
3067
|
"relativePath": [
|
|
3068
3068
|
"dist",
|
|
3069
3069
|
"commands",
|
|
3070
|
-
"
|
|
3070
|
+
"migrate",
|
|
3071
3071
|
"usage.js"
|
|
3072
3072
|
]
|
|
3073
3073
|
},
|
|
@@ -3748,7 +3748,217 @@
|
|
|
3748
3748
|
},
|
|
3749
3749
|
"hasDynamicHelp": false,
|
|
3750
3750
|
"hiddenAliases": [],
|
|
3751
|
-
"id": "standards:usage",
|
|
3751
|
+
"id": "standards:usage",
|
|
3752
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3753
|
+
"pluginName": "@memberjunction/cli",
|
|
3754
|
+
"pluginType": "core",
|
|
3755
|
+
"strict": true,
|
|
3756
|
+
"enableJsonFlag": false,
|
|
3757
|
+
"isESM": true,
|
|
3758
|
+
"relativePath": [
|
|
3759
|
+
"dist",
|
|
3760
|
+
"commands",
|
|
3761
|
+
"standards",
|
|
3762
|
+
"usage.js"
|
|
3763
|
+
]
|
|
3764
|
+
},
|
|
3765
|
+
"test:compare": {
|
|
3766
|
+
"aliases": [],
|
|
3767
|
+
"args": {
|
|
3768
|
+
"runId1": {
|
|
3769
|
+
"description": "First test run ID to compare",
|
|
3770
|
+
"name": "runId1",
|
|
3771
|
+
"required": false
|
|
3772
|
+
},
|
|
3773
|
+
"runId2": {
|
|
3774
|
+
"description": "Second test run ID to compare",
|
|
3775
|
+
"name": "runId2",
|
|
3776
|
+
"required": false
|
|
3777
|
+
}
|
|
3778
|
+
},
|
|
3779
|
+
"description": "Compare test runs for regression detection",
|
|
3780
|
+
"examples": [
|
|
3781
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3782
|
+
"<%= config.bin %> <%= command.id %> --latest",
|
|
3783
|
+
"<%= config.bin %> <%= command.id %> <run-id-1> <run-id-2>",
|
|
3784
|
+
"<%= config.bin %> <%= command.id %> -v 5.17.0 -v 5.18.0",
|
|
3785
|
+
"<%= config.bin %> <%= command.id %> -c abc1234 -c def5678",
|
|
3786
|
+
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
3787
|
+
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
3788
|
+
],
|
|
3789
|
+
"flags": {
|
|
3790
|
+
"version": {
|
|
3791
|
+
"char": "v",
|
|
3792
|
+
"description": "Compare runs by version",
|
|
3793
|
+
"name": "version",
|
|
3794
|
+
"hasDynamicHelp": false,
|
|
3795
|
+
"multiple": true,
|
|
3796
|
+
"type": "option"
|
|
3797
|
+
},
|
|
3798
|
+
"commit": {
|
|
3799
|
+
"char": "c",
|
|
3800
|
+
"description": "Compare runs by git commit",
|
|
3801
|
+
"name": "commit",
|
|
3802
|
+
"hasDynamicHelp": false,
|
|
3803
|
+
"multiple": true,
|
|
3804
|
+
"type": "option"
|
|
3805
|
+
},
|
|
3806
|
+
"diff-only": {
|
|
3807
|
+
"description": "Show only differences",
|
|
3808
|
+
"name": "diff-only",
|
|
3809
|
+
"allowNo": false,
|
|
3810
|
+
"type": "boolean"
|
|
3811
|
+
},
|
|
3812
|
+
"latest": {
|
|
3813
|
+
"char": "l",
|
|
3814
|
+
"description": "Compare the two most recent completed suite runs",
|
|
3815
|
+
"name": "latest",
|
|
3816
|
+
"allowNo": false,
|
|
3817
|
+
"type": "boolean"
|
|
3818
|
+
},
|
|
3819
|
+
"from-json": {
|
|
3820
|
+
"description": "Compare two results.json files directly (no DB). Pass twice: --from-json PREV --from-json CURR",
|
|
3821
|
+
"name": "from-json",
|
|
3822
|
+
"hasDynamicHelp": false,
|
|
3823
|
+
"multiple": true,
|
|
3824
|
+
"type": "option"
|
|
3825
|
+
},
|
|
3826
|
+
"format": {
|
|
3827
|
+
"char": "f",
|
|
3828
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
3829
|
+
"name": "format",
|
|
3830
|
+
"hasDynamicHelp": false,
|
|
3831
|
+
"multiple": false,
|
|
3832
|
+
"options": [
|
|
3833
|
+
"text",
|
|
3834
|
+
"json",
|
|
3835
|
+
"md",
|
|
3836
|
+
"human",
|
|
3837
|
+
"console",
|
|
3838
|
+
"markdown",
|
|
3839
|
+
"compact",
|
|
3840
|
+
"table"
|
|
3841
|
+
],
|
|
3842
|
+
"type": "option"
|
|
3843
|
+
},
|
|
3844
|
+
"output": {
|
|
3845
|
+
"char": "o",
|
|
3846
|
+
"description": "Output file path",
|
|
3847
|
+
"name": "output",
|
|
3848
|
+
"hasDynamicHelp": false,
|
|
3849
|
+
"multiple": false,
|
|
3850
|
+
"type": "option"
|
|
3851
|
+
},
|
|
3852
|
+
"verbose": {
|
|
3853
|
+
"description": "Show detailed information",
|
|
3854
|
+
"name": "verbose",
|
|
3855
|
+
"allowNo": false,
|
|
3856
|
+
"type": "boolean"
|
|
3857
|
+
},
|
|
3858
|
+
"tag": {
|
|
3859
|
+
"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.",
|
|
3860
|
+
"name": "tag",
|
|
3861
|
+
"hasDynamicHelp": false,
|
|
3862
|
+
"multiple": false,
|
|
3863
|
+
"type": "option"
|
|
3864
|
+
}
|
|
3865
|
+
},
|
|
3866
|
+
"hasDynamicHelp": false,
|
|
3867
|
+
"hiddenAliases": [],
|
|
3868
|
+
"id": "test:compare",
|
|
3869
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3870
|
+
"pluginName": "@memberjunction/cli",
|
|
3871
|
+
"pluginType": "core",
|
|
3872
|
+
"strict": true,
|
|
3873
|
+
"enableJsonFlag": false,
|
|
3874
|
+
"isESM": true,
|
|
3875
|
+
"relativePath": [
|
|
3876
|
+
"dist",
|
|
3877
|
+
"commands",
|
|
3878
|
+
"test",
|
|
3879
|
+
"compare.js"
|
|
3880
|
+
]
|
|
3881
|
+
},
|
|
3882
|
+
"test:history": {
|
|
3883
|
+
"aliases": [],
|
|
3884
|
+
"args": {},
|
|
3885
|
+
"description": "View test execution history",
|
|
3886
|
+
"examples": [
|
|
3887
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3888
|
+
"<%= config.bin %> <%= command.id %> --test=<test-id>",
|
|
3889
|
+
"<%= config.bin %> <%= command.id %> --suite=<suite-id>",
|
|
3890
|
+
"<%= config.bin %> <%= command.id %> --since=\"2024-01-01\"",
|
|
3891
|
+
"<%= config.bin %> <%= command.id %> --limit=50"
|
|
3892
|
+
],
|
|
3893
|
+
"flags": {
|
|
3894
|
+
"test": {
|
|
3895
|
+
"char": "t",
|
|
3896
|
+
"description": "Filter by test ID",
|
|
3897
|
+
"name": "test",
|
|
3898
|
+
"hasDynamicHelp": false,
|
|
3899
|
+
"multiple": false,
|
|
3900
|
+
"type": "option"
|
|
3901
|
+
},
|
|
3902
|
+
"recent": {
|
|
3903
|
+
"char": "r",
|
|
3904
|
+
"description": "Number of recent runs to show",
|
|
3905
|
+
"name": "recent",
|
|
3906
|
+
"hasDynamicHelp": false,
|
|
3907
|
+
"multiple": false,
|
|
3908
|
+
"type": "option"
|
|
3909
|
+
},
|
|
3910
|
+
"from": {
|
|
3911
|
+
"description": "Show history from date (YYYY-MM-DD)",
|
|
3912
|
+
"name": "from",
|
|
3913
|
+
"hasDynamicHelp": false,
|
|
3914
|
+
"multiple": false,
|
|
3915
|
+
"type": "option"
|
|
3916
|
+
},
|
|
3917
|
+
"status": {
|
|
3918
|
+
"char": "s",
|
|
3919
|
+
"description": "Filter by status",
|
|
3920
|
+
"name": "status",
|
|
3921
|
+
"hasDynamicHelp": false,
|
|
3922
|
+
"multiple": false,
|
|
3923
|
+
"type": "option"
|
|
3924
|
+
},
|
|
3925
|
+
"format": {
|
|
3926
|
+
"char": "f",
|
|
3927
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
3928
|
+
"name": "format",
|
|
3929
|
+
"hasDynamicHelp": false,
|
|
3930
|
+
"multiple": false,
|
|
3931
|
+
"options": [
|
|
3932
|
+
"text",
|
|
3933
|
+
"json",
|
|
3934
|
+
"md",
|
|
3935
|
+
"human",
|
|
3936
|
+
"console",
|
|
3937
|
+
"markdown",
|
|
3938
|
+
"compact",
|
|
3939
|
+
"table"
|
|
3940
|
+
],
|
|
3941
|
+
"type": "option"
|
|
3942
|
+
},
|
|
3943
|
+
"output": {
|
|
3944
|
+
"char": "o",
|
|
3945
|
+
"description": "Output file path",
|
|
3946
|
+
"name": "output",
|
|
3947
|
+
"hasDynamicHelp": false,
|
|
3948
|
+
"multiple": false,
|
|
3949
|
+
"type": "option"
|
|
3950
|
+
},
|
|
3951
|
+
"verbose": {
|
|
3952
|
+
"char": "v",
|
|
3953
|
+
"description": "Show detailed information",
|
|
3954
|
+
"name": "verbose",
|
|
3955
|
+
"allowNo": false,
|
|
3956
|
+
"type": "boolean"
|
|
3957
|
+
}
|
|
3958
|
+
},
|
|
3959
|
+
"hasDynamicHelp": false,
|
|
3960
|
+
"hiddenAliases": [],
|
|
3961
|
+
"id": "test:history",
|
|
3752
3962
|
"pluginAlias": "@memberjunction/cli",
|
|
3753
3963
|
"pluginName": "@memberjunction/cli",
|
|
3754
3964
|
"pluginType": "core",
|
|
@@ -3758,64 +3968,26 @@
|
|
|
3758
3968
|
"relativePath": [
|
|
3759
3969
|
"dist",
|
|
3760
3970
|
"commands",
|
|
3761
|
-
"
|
|
3762
|
-
"
|
|
3971
|
+
"test",
|
|
3972
|
+
"history.js"
|
|
3763
3973
|
]
|
|
3764
3974
|
},
|
|
3765
|
-
"
|
|
3975
|
+
"test": {
|
|
3766
3976
|
"aliases": [],
|
|
3767
3977
|
"args": {},
|
|
3768
|
-
"description": "
|
|
3978
|
+
"description": "MemberJunction Testing Framework - Execute and manage tests",
|
|
3769
3979
|
"examples": [
|
|
3770
|
-
"<%= config.bin %> <%= command.id %>",
|
|
3771
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3772
|
-
"<%= config.bin %> <%= command.id %>
|
|
3773
|
-
"<%= config.bin %> <%= command.id %>
|
|
3980
|
+
"<%= config.bin %> <%= command.id %> run <test-id>",
|
|
3981
|
+
"<%= config.bin %> <%= command.id %> run --name=\"Active Members Count\"",
|
|
3982
|
+
"<%= config.bin %> <%= command.id %> suite <suite-id>",
|
|
3983
|
+
"<%= config.bin %> <%= command.id %> list",
|
|
3984
|
+
"<%= config.bin %> <%= command.id %> list --suites",
|
|
3985
|
+
"<%= config.bin %> <%= command.id %> validate --all"
|
|
3774
3986
|
],
|
|
3775
|
-
"flags": {
|
|
3776
|
-
"dir": {
|
|
3777
|
-
"description": "Specific entity directory to reset",
|
|
3778
|
-
"name": "dir",
|
|
3779
|
-
"hasDynamicHelp": false,
|
|
3780
|
-
"multiple": false,
|
|
3781
|
-
"type": "option"
|
|
3782
|
-
},
|
|
3783
|
-
"sections": {
|
|
3784
|
-
"description": "Comma-separated list of sections to reset (dependencies,references,related,lookup)",
|
|
3785
|
-
"name": "sections",
|
|
3786
|
-
"hasDynamicHelp": false,
|
|
3787
|
-
"multiple": false,
|
|
3788
|
-
"type": "option"
|
|
3789
|
-
},
|
|
3790
|
-
"all": {
|
|
3791
|
-
"description": "Reset all metadata sections",
|
|
3792
|
-
"name": "all",
|
|
3793
|
-
"allowNo": false,
|
|
3794
|
-
"type": "boolean"
|
|
3795
|
-
},
|
|
3796
|
-
"dry-run": {
|
|
3797
|
-
"description": "Show what would be reset without actually resetting",
|
|
3798
|
-
"name": "dry-run",
|
|
3799
|
-
"allowNo": false,
|
|
3800
|
-
"type": "boolean"
|
|
3801
|
-
},
|
|
3802
|
-
"force": {
|
|
3803
|
-
"description": "Skip confirmation prompts",
|
|
3804
|
-
"name": "force",
|
|
3805
|
-
"allowNo": false,
|
|
3806
|
-
"type": "boolean"
|
|
3807
|
-
},
|
|
3808
|
-
"verbose": {
|
|
3809
|
-
"char": "v",
|
|
3810
|
-
"description": "Show detailed output",
|
|
3811
|
-
"name": "verbose",
|
|
3812
|
-
"allowNo": false,
|
|
3813
|
-
"type": "boolean"
|
|
3814
|
-
}
|
|
3815
|
-
},
|
|
3987
|
+
"flags": {},
|
|
3816
3988
|
"hasDynamicHelp": false,
|
|
3817
3989
|
"hiddenAliases": [],
|
|
3818
|
-
"id": "
|
|
3990
|
+
"id": "test",
|
|
3819
3991
|
"pluginAlias": "@memberjunction/cli",
|
|
3820
3992
|
"pluginName": "@memberjunction/cli",
|
|
3821
3993
|
"pluginType": "core",
|
|
@@ -3825,69 +3997,95 @@
|
|
|
3825
3997
|
"relativePath": [
|
|
3826
3998
|
"dist",
|
|
3827
3999
|
"commands",
|
|
3828
|
-
"
|
|
3829
|
-
"
|
|
4000
|
+
"test",
|
|
4001
|
+
"index.js"
|
|
3830
4002
|
]
|
|
3831
4003
|
},
|
|
3832
|
-
"
|
|
4004
|
+
"test:list": {
|
|
3833
4005
|
"aliases": [],
|
|
3834
4006
|
"args": {},
|
|
3835
|
-
"description": "
|
|
4007
|
+
"description": "List available tests, suites, and types",
|
|
3836
4008
|
"examples": [
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
4009
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4010
|
+
"<%= config.bin %> <%= command.id %> --suites",
|
|
4011
|
+
"<%= config.bin %> <%= command.id %> --types",
|
|
4012
|
+
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
4013
|
+
"<%= config.bin %> <%= command.id %> --tag=smoke",
|
|
4014
|
+
"<%= config.bin %> <%= command.id %> --status=active --verbose"
|
|
4015
|
+
],
|
|
4016
|
+
"flags": {
|
|
4017
|
+
"suites": {
|
|
4018
|
+
"description": "List test suites instead of tests",
|
|
4019
|
+
"name": "suites",
|
|
4020
|
+
"allowNo": false,
|
|
4021
|
+
"type": "boolean"
|
|
3840
4022
|
},
|
|
3841
|
-
{
|
|
3842
|
-
"
|
|
3843
|
-
"
|
|
4023
|
+
"types": {
|
|
4024
|
+
"description": "List test types",
|
|
4025
|
+
"name": "types",
|
|
4026
|
+
"allowNo": false,
|
|
4027
|
+
"type": "boolean"
|
|
3844
4028
|
},
|
|
3845
|
-
{
|
|
3846
|
-
"
|
|
3847
|
-
"description": "
|
|
4029
|
+
"type": {
|
|
4030
|
+
"char": "t",
|
|
4031
|
+
"description": "Filter by test type",
|
|
4032
|
+
"name": "type",
|
|
4033
|
+
"hasDynamicHelp": false,
|
|
4034
|
+
"multiple": false,
|
|
4035
|
+
"type": "option"
|
|
3848
4036
|
},
|
|
3849
|
-
{
|
|
3850
|
-
"
|
|
3851
|
-
"
|
|
3852
|
-
}
|
|
3853
|
-
],
|
|
3854
|
-
"flags": {
|
|
3855
|
-
"setup-entity": {
|
|
3856
|
-
"description": "Which entity directory to set up. Use \"no\" to skip.",
|
|
3857
|
-
"name": "setup-entity",
|
|
4037
|
+
"tag": {
|
|
4038
|
+
"description": "Filter by tag",
|
|
4039
|
+
"name": "tag",
|
|
3858
4040
|
"hasDynamicHelp": false,
|
|
3859
4041
|
"multiple": false,
|
|
3860
|
-
"options": [
|
|
3861
|
-
"ai-prompts",
|
|
3862
|
-
"other",
|
|
3863
|
-
"no"
|
|
3864
|
-
],
|
|
3865
4042
|
"type": "option"
|
|
3866
4043
|
},
|
|
3867
|
-
"
|
|
3868
|
-
"
|
|
3869
|
-
"
|
|
4044
|
+
"status": {
|
|
4045
|
+
"char": "s",
|
|
4046
|
+
"description": "Filter by status",
|
|
4047
|
+
"name": "status",
|
|
3870
4048
|
"hasDynamicHelp": false,
|
|
3871
4049
|
"multiple": false,
|
|
3872
4050
|
"type": "option"
|
|
3873
4051
|
},
|
|
3874
|
-
"
|
|
3875
|
-
"
|
|
3876
|
-
"
|
|
4052
|
+
"format": {
|
|
4053
|
+
"char": "f",
|
|
4054
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4055
|
+
"name": "format",
|
|
4056
|
+
"hasDynamicHelp": false,
|
|
4057
|
+
"multiple": false,
|
|
4058
|
+
"options": [
|
|
4059
|
+
"text",
|
|
4060
|
+
"json",
|
|
4061
|
+
"md",
|
|
4062
|
+
"human",
|
|
4063
|
+
"console",
|
|
4064
|
+
"markdown",
|
|
4065
|
+
"compact",
|
|
4066
|
+
"table"
|
|
4067
|
+
],
|
|
4068
|
+
"type": "option"
|
|
4069
|
+
},
|
|
4070
|
+
"output": {
|
|
4071
|
+
"char": "o",
|
|
4072
|
+
"description": "Output file path",
|
|
4073
|
+
"name": "output",
|
|
3877
4074
|
"hasDynamicHelp": false,
|
|
3878
4075
|
"multiple": false,
|
|
3879
4076
|
"type": "option"
|
|
3880
4077
|
},
|
|
3881
|
-
"
|
|
3882
|
-
"
|
|
3883
|
-
"
|
|
3884
|
-
"
|
|
4078
|
+
"verbose": {
|
|
4079
|
+
"char": "v",
|
|
4080
|
+
"description": "Show detailed information",
|
|
4081
|
+
"name": "verbose",
|
|
4082
|
+
"allowNo": false,
|
|
3885
4083
|
"type": "boolean"
|
|
3886
4084
|
}
|
|
3887
4085
|
},
|
|
3888
4086
|
"hasDynamicHelp": false,
|
|
3889
4087
|
"hiddenAliases": [],
|
|
3890
|
-
"id": "
|
|
4088
|
+
"id": "test:list",
|
|
3891
4089
|
"pluginAlias": "@memberjunction/cli",
|
|
3892
4090
|
"pluginName": "@memberjunction/cli",
|
|
3893
4091
|
"pluginType": "core",
|
|
@@ -3897,162 +4095,93 @@
|
|
|
3897
4095
|
"relativePath": [
|
|
3898
4096
|
"dist",
|
|
3899
4097
|
"commands",
|
|
3900
|
-
"
|
|
3901
|
-
"
|
|
4098
|
+
"test",
|
|
4099
|
+
"list.js"
|
|
3902
4100
|
]
|
|
3903
4101
|
},
|
|
3904
|
-
"
|
|
4102
|
+
"test:run": {
|
|
3905
4103
|
"aliases": [],
|
|
3906
|
-
"args": {
|
|
3907
|
-
|
|
4104
|
+
"args": {
|
|
4105
|
+
"testId": {
|
|
4106
|
+
"description": "Test ID to execute",
|
|
4107
|
+
"name": "testId",
|
|
4108
|
+
"required": false
|
|
4109
|
+
}
|
|
4110
|
+
},
|
|
4111
|
+
"description": "Execute a single test by ID or name",
|
|
3908
4112
|
"examples": [
|
|
3909
|
-
"<%= config.bin %> <%= command.id %>
|
|
3910
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3911
|
-
"<%= config.bin %> <%= command.id %>
|
|
4113
|
+
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
4114
|
+
"<%= config.bin %> <%= command.id %> --name=\"Active Members Count\"",
|
|
4115
|
+
"<%= config.bin %> <%= command.id %> <test-id> --environment=staging",
|
|
4116
|
+
"<%= config.bin %> <%= command.id %> <test-id> --format=json --output=results.json",
|
|
4117
|
+
"<%= config.bin %> <%= command.id %> <test-id> --dry-run"
|
|
3912
4118
|
],
|
|
3913
4119
|
"flags": {
|
|
3914
|
-
"
|
|
3915
|
-
"
|
|
3916
|
-
"
|
|
3917
|
-
"
|
|
3918
|
-
"multiple": false,
|
|
3919
|
-
"options": [
|
|
3920
|
-
"text",
|
|
3921
|
-
"json",
|
|
3922
|
-
"md",
|
|
3923
|
-
"human",
|
|
3924
|
-
"console",
|
|
3925
|
-
"markdown"
|
|
3926
|
-
],
|
|
3927
|
-
"type": "option"
|
|
3928
|
-
},
|
|
3929
|
-
"verbose": {
|
|
3930
|
-
"char": "v",
|
|
3931
|
-
"description": "Show detailed output",
|
|
3932
|
-
"name": "verbose",
|
|
3933
|
-
"allowNo": false,
|
|
3934
|
-
"type": "boolean"
|
|
3935
|
-
},
|
|
3936
|
-
"no-banner": {
|
|
3937
|
-
"description": "Suppress the startup banner and runtime advisory",
|
|
3938
|
-
"name": "no-banner",
|
|
3939
|
-
"allowNo": false,
|
|
3940
|
-
"type": "boolean"
|
|
3941
|
-
},
|
|
3942
|
-
"no-app-packages": {
|
|
3943
|
-
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
3944
|
-
"name": "no-app-packages",
|
|
3945
|
-
"allowNo": false,
|
|
3946
|
-
"type": "boolean"
|
|
3947
|
-
},
|
|
3948
|
-
"interactive": {
|
|
3949
|
-
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
3950
|
-
"name": "interactive",
|
|
3951
|
-
"allowNo": true,
|
|
3952
|
-
"type": "boolean"
|
|
3953
|
-
},
|
|
3954
|
-
"entity": {
|
|
3955
|
-
"description": "Entity name to pull",
|
|
3956
|
-
"name": "entity",
|
|
3957
|
-
"required": true,
|
|
3958
|
-
"hasDynamicHelp": false,
|
|
3959
|
-
"multiple": false,
|
|
3960
|
-
"type": "option"
|
|
3961
|
-
},
|
|
3962
|
-
"filter": {
|
|
3963
|
-
"description": "Additional filter for pulling specific records",
|
|
3964
|
-
"name": "filter",
|
|
3965
|
-
"hasDynamicHelp": false,
|
|
3966
|
-
"multiple": false,
|
|
3967
|
-
"type": "option"
|
|
3968
|
-
},
|
|
3969
|
-
"dry-run": {
|
|
3970
|
-
"description": "Show what would be pulled without actually pulling",
|
|
3971
|
-
"name": "dry-run",
|
|
3972
|
-
"allowNo": false,
|
|
3973
|
-
"type": "boolean"
|
|
3974
|
-
},
|
|
3975
|
-
"multi-file": {
|
|
3976
|
-
"description": "Create a single file with multiple records (provide filename)",
|
|
3977
|
-
"name": "multi-file",
|
|
4120
|
+
"name": {
|
|
4121
|
+
"char": "n",
|
|
4122
|
+
"description": "Test name to execute",
|
|
4123
|
+
"name": "name",
|
|
3978
4124
|
"hasDynamicHelp": false,
|
|
3979
4125
|
"multiple": false,
|
|
3980
4126
|
"type": "option"
|
|
3981
4127
|
},
|
|
3982
|
-
"
|
|
3983
|
-
"
|
|
3984
|
-
"
|
|
3985
|
-
"
|
|
3986
|
-
"
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
"description": "Update existing records during pull",
|
|
3990
|
-
"name": "update-existing",
|
|
3991
|
-
"allowNo": false,
|
|
3992
|
-
"type": "boolean"
|
|
3993
|
-
},
|
|
3994
|
-
"create-new": {
|
|
3995
|
-
"description": "Create new files for records not found locally",
|
|
3996
|
-
"name": "create-new",
|
|
3997
|
-
"allowNo": false,
|
|
3998
|
-
"type": "boolean"
|
|
3999
|
-
},
|
|
4000
|
-
"backup-before-update": {
|
|
4001
|
-
"description": "Create backups before updating files",
|
|
4002
|
-
"name": "backup-before-update",
|
|
4003
|
-
"allowNo": false,
|
|
4004
|
-
"type": "boolean"
|
|
4128
|
+
"environment": {
|
|
4129
|
+
"char": "e",
|
|
4130
|
+
"description": "Environment context (dev, staging, prod)",
|
|
4131
|
+
"name": "environment",
|
|
4132
|
+
"hasDynamicHelp": false,
|
|
4133
|
+
"multiple": false,
|
|
4134
|
+
"type": "option"
|
|
4005
4135
|
},
|
|
4006
|
-
"
|
|
4007
|
-
"
|
|
4008
|
-
"
|
|
4009
|
-
"
|
|
4136
|
+
"format": {
|
|
4137
|
+
"char": "f",
|
|
4138
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4139
|
+
"name": "format",
|
|
4010
4140
|
"hasDynamicHelp": false,
|
|
4011
4141
|
"multiple": false,
|
|
4012
4142
|
"options": [
|
|
4013
|
-
"
|
|
4014
|
-
"
|
|
4015
|
-
"
|
|
4143
|
+
"text",
|
|
4144
|
+
"json",
|
|
4145
|
+
"md",
|
|
4146
|
+
"human",
|
|
4147
|
+
"console",
|
|
4148
|
+
"markdown",
|
|
4149
|
+
"compact",
|
|
4150
|
+
"table"
|
|
4016
4151
|
],
|
|
4017
4152
|
"type": "option"
|
|
4018
4153
|
},
|
|
4019
|
-
"
|
|
4020
|
-
"
|
|
4021
|
-
"
|
|
4154
|
+
"output": {
|
|
4155
|
+
"char": "o",
|
|
4156
|
+
"description": "Output file path",
|
|
4157
|
+
"name": "output",
|
|
4022
4158
|
"hasDynamicHelp": false,
|
|
4023
4159
|
"multiple": false,
|
|
4024
4160
|
"type": "option"
|
|
4025
4161
|
},
|
|
4026
|
-
"
|
|
4027
|
-
"description": "
|
|
4028
|
-
"name": "
|
|
4029
|
-
"
|
|
4030
|
-
"
|
|
4031
|
-
"type": "option"
|
|
4162
|
+
"dry-run": {
|
|
4163
|
+
"description": "Validate without executing",
|
|
4164
|
+
"name": "dry-run",
|
|
4165
|
+
"allowNo": false,
|
|
4166
|
+
"type": "boolean"
|
|
4032
4167
|
},
|
|
4033
|
-
"
|
|
4034
|
-
"
|
|
4035
|
-
"
|
|
4036
|
-
"
|
|
4037
|
-
"
|
|
4038
|
-
"type": "
|
|
4168
|
+
"verbose": {
|
|
4169
|
+
"char": "v",
|
|
4170
|
+
"description": "Show detailed execution information",
|
|
4171
|
+
"name": "verbose",
|
|
4172
|
+
"allowNo": false,
|
|
4173
|
+
"type": "boolean"
|
|
4039
4174
|
},
|
|
4040
|
-
"
|
|
4041
|
-
"description": "
|
|
4042
|
-
"name": "
|
|
4175
|
+
"checks-module": {
|
|
4176
|
+
"description": "Module specifier (package name or path) side-effect-imported before the run so its integration check bundles register on the IntegrationCheckRegistry. Durable form: mj.config.cjs `testing.checkModules` (this repo loads '@memberjunction/integration-test-suite' that way).",
|
|
4177
|
+
"name": "checks-module",
|
|
4043
4178
|
"hasDynamicHelp": false,
|
|
4044
4179
|
"multiple": false,
|
|
4045
4180
|
"type": "option"
|
|
4046
4181
|
},
|
|
4047
|
-
"
|
|
4048
|
-
"description": "
|
|
4049
|
-
"name": "
|
|
4050
|
-
"allowNo": false,
|
|
4051
|
-
"type": "boolean"
|
|
4052
|
-
},
|
|
4053
|
-
"since": {
|
|
4054
|
-
"description": "Only pull records updated after this ISO 8601 timestamp",
|
|
4055
|
-
"name": "since",
|
|
4182
|
+
"oracles-module": {
|
|
4183
|
+
"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.",
|
|
4184
|
+
"name": "oracles-module",
|
|
4056
4185
|
"hasDynamicHelp": false,
|
|
4057
4186
|
"multiple": false,
|
|
4058
4187
|
"type": "option"
|
|
@@ -4060,75 +4189,48 @@
|
|
|
4060
4189
|
},
|
|
4061
4190
|
"hasDynamicHelp": false,
|
|
4062
4191
|
"hiddenAliases": [],
|
|
4063
|
-
"id": "
|
|
4192
|
+
"id": "test:run",
|
|
4064
4193
|
"pluginAlias": "@memberjunction/cli",
|
|
4065
4194
|
"pluginName": "@memberjunction/cli",
|
|
4066
4195
|
"pluginType": "core",
|
|
4067
4196
|
"strict": true,
|
|
4068
4197
|
"enableJsonFlag": false,
|
|
4069
|
-
"Usage": {
|
|
4070
|
-
"domain": "sync",
|
|
4071
|
-
"command": "sync:pull",
|
|
4072
|
-
"summary": "Pull database records into local metadata files.",
|
|
4073
|
-
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
4074
|
-
"flags": [
|
|
4075
|
-
{
|
|
4076
|
-
"name": "--entity",
|
|
4077
|
-
"type": "string",
|
|
4078
|
-
"description": "Entity name to pull (required)"
|
|
4079
|
-
},
|
|
4080
|
-
{
|
|
4081
|
-
"name": "--filter",
|
|
4082
|
-
"type": "string",
|
|
4083
|
-
"description": "Extra SQL filter for which records to pull"
|
|
4084
|
-
},
|
|
4085
|
-
{
|
|
4086
|
-
"name": "--merge-strategy",
|
|
4087
|
-
"type": "merge|overwrite|skip",
|
|
4088
|
-
"description": "How to reconcile existing files"
|
|
4089
|
-
},
|
|
4090
|
-
{
|
|
4091
|
-
"name": "--dry-run",
|
|
4092
|
-
"type": "boolean",
|
|
4093
|
-
"description": "Report what would be pulled without writing"
|
|
4094
|
-
},
|
|
4095
|
-
{
|
|
4096
|
-
"name": "--format",
|
|
4097
|
-
"type": "text|json|md",
|
|
4098
|
-
"description": "Output format (json for machine-readable result)"
|
|
4099
|
-
}
|
|
4100
|
-
],
|
|
4101
|
-
"examples": [
|
|
4102
|
-
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
4103
|
-
"mj sync pull --entity=\"Actions\" --format=json"
|
|
4104
|
-
],
|
|
4105
|
-
"runtime": {
|
|
4106
|
-
"class": "variable",
|
|
4107
|
-
"typicalSeconds": 15,
|
|
4108
|
-
"note": "scales with number of records matched for --entity"
|
|
4109
|
-
}
|
|
4110
|
-
},
|
|
4111
4198
|
"isESM": true,
|
|
4112
4199
|
"relativePath": [
|
|
4113
4200
|
"dist",
|
|
4114
4201
|
"commands",
|
|
4115
|
-
"
|
|
4116
|
-
"
|
|
4202
|
+
"test",
|
|
4203
|
+
"run.js"
|
|
4117
4204
|
]
|
|
4118
4205
|
},
|
|
4119
|
-
"
|
|
4206
|
+
"test:suite": {
|
|
4120
4207
|
"aliases": [],
|
|
4121
|
-
"args": {
|
|
4122
|
-
|
|
4208
|
+
"args": {
|
|
4209
|
+
"suiteId": {
|
|
4210
|
+
"description": "Test suite ID to execute",
|
|
4211
|
+
"name": "suiteId",
|
|
4212
|
+
"required": false
|
|
4213
|
+
}
|
|
4214
|
+
},
|
|
4215
|
+
"description": "Execute a test suite",
|
|
4123
4216
|
"examples": [
|
|
4124
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4125
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4126
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4127
|
-
"<%= config.bin %> <%= command.id %>
|
|
4217
|
+
"<%= config.bin %> <%= command.id %> <suite-id>",
|
|
4218
|
+
"<%= config.bin %> <%= command.id %> --name=\"Agent Quality Suite\"",
|
|
4219
|
+
"<%= config.bin %> <%= command.id %> <suite-id> --format=json",
|
|
4220
|
+
"<%= config.bin %> <%= command.id %> <suite-id> --output=suite-results.json"
|
|
4128
4221
|
],
|
|
4129
4222
|
"flags": {
|
|
4223
|
+
"name": {
|
|
4224
|
+
"char": "n",
|
|
4225
|
+
"description": "Test suite name to execute",
|
|
4226
|
+
"name": "name",
|
|
4227
|
+
"hasDynamicHelp": false,
|
|
4228
|
+
"multiple": false,
|
|
4229
|
+
"type": "option"
|
|
4230
|
+
},
|
|
4130
4231
|
"format": {
|
|
4131
|
-
"
|
|
4232
|
+
"char": "f",
|
|
4233
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4132
4234
|
"name": "format",
|
|
4133
4235
|
"hasDynamicHelp": false,
|
|
4134
4236
|
"multiple": false,
|
|
@@ -4138,206 +4240,110 @@
|
|
|
4138
4240
|
"md",
|
|
4139
4241
|
"human",
|
|
4140
4242
|
"console",
|
|
4141
|
-
"markdown"
|
|
4243
|
+
"markdown",
|
|
4244
|
+
"compact",
|
|
4245
|
+
"table"
|
|
4142
4246
|
],
|
|
4143
4247
|
"type": "option"
|
|
4144
4248
|
},
|
|
4249
|
+
"output": {
|
|
4250
|
+
"char": "o",
|
|
4251
|
+
"description": "Output file path",
|
|
4252
|
+
"name": "output",
|
|
4253
|
+
"hasDynamicHelp": false,
|
|
4254
|
+
"multiple": false,
|
|
4255
|
+
"type": "option"
|
|
4256
|
+
},
|
|
4145
4257
|
"verbose": {
|
|
4146
4258
|
"char": "v",
|
|
4147
|
-
"description": "Show detailed
|
|
4259
|
+
"description": "Show detailed execution information",
|
|
4148
4260
|
"name": "verbose",
|
|
4149
4261
|
"allowNo": false,
|
|
4150
4262
|
"type": "boolean"
|
|
4151
4263
|
},
|
|
4152
|
-
"
|
|
4153
|
-
"
|
|
4154
|
-
"
|
|
4155
|
-
"
|
|
4156
|
-
"
|
|
4157
|
-
},
|
|
4158
|
-
"no-app-packages": {
|
|
4159
|
-
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
4160
|
-
"name": "no-app-packages",
|
|
4161
|
-
"allowNo": false,
|
|
4162
|
-
"type": "boolean"
|
|
4163
|
-
},
|
|
4164
|
-
"interactive": {
|
|
4165
|
-
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
4166
|
-
"name": "interactive",
|
|
4167
|
-
"allowNo": true,
|
|
4168
|
-
"type": "boolean"
|
|
4169
|
-
},
|
|
4170
|
-
"dir": {
|
|
4171
|
-
"description": "Specific entity directory to push",
|
|
4172
|
-
"name": "dir",
|
|
4264
|
+
"delay": {
|
|
4265
|
+
"char": "d",
|
|
4266
|
+
"description": "Delay in milliseconds between test executions (avoids Auth0 rate limits)",
|
|
4267
|
+
"name": "delay",
|
|
4268
|
+
"default": 0,
|
|
4173
4269
|
"hasDynamicHelp": false,
|
|
4174
4270
|
"multiple": false,
|
|
4175
4271
|
"type": "option"
|
|
4176
4272
|
},
|
|
4177
|
-
"
|
|
4178
|
-
"
|
|
4179
|
-
"
|
|
4180
|
-
"
|
|
4181
|
-
"type": "boolean"
|
|
4182
|
-
},
|
|
4183
|
-
"ci": {
|
|
4184
|
-
"description": "CI mode - no prompts, fail on issues",
|
|
4185
|
-
"name": "ci",
|
|
4186
|
-
"allowNo": false,
|
|
4187
|
-
"type": "boolean"
|
|
4188
|
-
},
|
|
4189
|
-
"no-validate": {
|
|
4190
|
-
"description": "Skip validation before push",
|
|
4191
|
-
"name": "no-validate",
|
|
4273
|
+
"parallel": {
|
|
4274
|
+
"char": "p",
|
|
4275
|
+
"description": "Run tests in parallel with shared browser sessions",
|
|
4276
|
+
"name": "parallel",
|
|
4192
4277
|
"allowNo": false,
|
|
4193
4278
|
"type": "boolean"
|
|
4194
4279
|
},
|
|
4195
|
-
"
|
|
4196
|
-
"description": "
|
|
4197
|
-
"name": "
|
|
4198
|
-
"
|
|
4199
|
-
"
|
|
4280
|
+
"max-parallel": {
|
|
4281
|
+
"description": "Maximum number of parallel workers (default 4)",
|
|
4282
|
+
"name": "max-parallel",
|
|
4283
|
+
"default": 4,
|
|
4284
|
+
"hasDynamicHelp": false,
|
|
4285
|
+
"multiple": false,
|
|
4286
|
+
"type": "option"
|
|
4200
4287
|
},
|
|
4201
|
-
"
|
|
4202
|
-
"description": "
|
|
4203
|
-
"name": "
|
|
4204
|
-
"default": 10,
|
|
4288
|
+
"flaky-check": {
|
|
4289
|
+
"description": "Run each test N times to detect flakiness (variance > 0.3 or mixed pass/fail = flaky). Recommended: 3 or 5",
|
|
4290
|
+
"name": "flaky-check",
|
|
4205
4291
|
"hasDynamicHelp": false,
|
|
4206
4292
|
"multiple": false,
|
|
4207
4293
|
"type": "option"
|
|
4208
4294
|
},
|
|
4209
|
-
"
|
|
4210
|
-
"description": "
|
|
4211
|
-
"name": "
|
|
4295
|
+
"checks-module": {
|
|
4296
|
+
"description": "Module specifier (package name or path) side-effect-imported before the run so its integration check bundles register on the IntegrationCheckRegistry. Durable form: mj.config.cjs `testing.checkModules` (this repo loads '@memberjunction/integration-test-suite' that way).",
|
|
4297
|
+
"name": "checks-module",
|
|
4212
4298
|
"hasDynamicHelp": false,
|
|
4213
4299
|
"multiple": false,
|
|
4214
4300
|
"type": "option"
|
|
4215
4301
|
},
|
|
4216
|
-
"
|
|
4217
|
-
"description": "
|
|
4218
|
-
"name": "
|
|
4302
|
+
"oracles-module": {
|
|
4303
|
+
"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.",
|
|
4304
|
+
"name": "oracles-module",
|
|
4219
4305
|
"hasDynamicHelp": false,
|
|
4220
4306
|
"multiple": false,
|
|
4221
4307
|
"type": "option"
|
|
4222
|
-
},
|
|
4223
|
-
"incremental": {
|
|
4224
|
-
"description": "Skip unchanged files using stored checksums from last push",
|
|
4225
|
-
"name": "incremental",
|
|
4226
|
-
"allowNo": false,
|
|
4227
|
-
"type": "boolean"
|
|
4228
|
-
},
|
|
4229
|
-
"change-detail": {
|
|
4230
|
-
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
4231
|
-
"name": "change-detail",
|
|
4232
|
-
"allowNo": false,
|
|
4233
|
-
"type": "boolean"
|
|
4234
4308
|
}
|
|
4235
4309
|
},
|
|
4236
4310
|
"hasDynamicHelp": false,
|
|
4237
4311
|
"hiddenAliases": [],
|
|
4238
|
-
"id": "
|
|
4312
|
+
"id": "test:suite",
|
|
4239
4313
|
"pluginAlias": "@memberjunction/cli",
|
|
4240
4314
|
"pluginName": "@memberjunction/cli",
|
|
4241
4315
|
"pluginType": "core",
|
|
4242
4316
|
"strict": true,
|
|
4243
4317
|
"enableJsonFlag": false,
|
|
4244
|
-
"Usage": {
|
|
4245
|
-
"domain": "sync",
|
|
4246
|
-
"command": "sync:push",
|
|
4247
|
-
"summary": "Push local metadata files to the database (upsert).",
|
|
4248
|
-
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
4249
|
-
"flags": [
|
|
4250
|
-
{
|
|
4251
|
-
"name": "--dir",
|
|
4252
|
-
"type": "string",
|
|
4253
|
-
"description": "Entity directory to push"
|
|
4254
|
-
},
|
|
4255
|
-
{
|
|
4256
|
-
"name": "--dry-run",
|
|
4257
|
-
"type": "boolean",
|
|
4258
|
-
"description": "Report what would change without writing"
|
|
4259
|
-
},
|
|
4260
|
-
{
|
|
4261
|
-
"name": "--ci",
|
|
4262
|
-
"type": "boolean",
|
|
4263
|
-
"description": "No prompts; non-zero exit on error"
|
|
4264
|
-
},
|
|
4265
|
-
{
|
|
4266
|
-
"name": "--no-validate",
|
|
4267
|
-
"type": "boolean",
|
|
4268
|
-
"description": "Skip pre-push validation"
|
|
4269
|
-
},
|
|
4270
|
-
{
|
|
4271
|
-
"name": "--incremental",
|
|
4272
|
-
"type": "boolean",
|
|
4273
|
-
"description": "Skip unchanged files using stored checksums"
|
|
4274
|
-
},
|
|
4275
|
-
{
|
|
4276
|
-
"name": "--format",
|
|
4277
|
-
"type": "text|json|md",
|
|
4278
|
-
"description": "Output format (json for machine-readable result)"
|
|
4279
|
-
}
|
|
4280
|
-
],
|
|
4281
|
-
"examples": [
|
|
4282
|
-
"mj sync push --dir=ai-agents",
|
|
4283
|
-
"mj sync push --ci --format=json"
|
|
4284
|
-
],
|
|
4285
|
-
"runtime": {
|
|
4286
|
-
"class": "variable",
|
|
4287
|
-
"typicalSeconds": 20,
|
|
4288
|
-
"note": "scales with number of records in --dir"
|
|
4289
|
-
}
|
|
4290
|
-
},
|
|
4291
4318
|
"isESM": true,
|
|
4292
4319
|
"relativePath": [
|
|
4293
4320
|
"dist",
|
|
4294
4321
|
"commands",
|
|
4295
|
-
"
|
|
4296
|
-
"
|
|
4322
|
+
"test",
|
|
4323
|
+
"suite.js"
|
|
4297
4324
|
]
|
|
4298
4325
|
},
|
|
4299
|
-
"
|
|
4326
|
+
"test:usage": {
|
|
4300
4327
|
"aliases": [],
|
|
4301
4328
|
"args": {},
|
|
4302
|
-
"description": "Show
|
|
4303
|
-
"examples": [
|
|
4304
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4305
|
-
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4306
|
-
"<%= config.bin %> <%= command.id %> --verbose"
|
|
4307
|
-
],
|
|
4329
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj test` command.",
|
|
4308
4330
|
"flags": {
|
|
4309
|
-
"
|
|
4310
|
-
"description": "
|
|
4311
|
-
"name": "
|
|
4312
|
-
"hasDynamicHelp": false,
|
|
4313
|
-
"multiple": false,
|
|
4314
|
-
"type": "option"
|
|
4315
|
-
},
|
|
4316
|
-
"verbose": {
|
|
4317
|
-
"char": "v",
|
|
4318
|
-
"description": "Show detailed field-level differences",
|
|
4319
|
-
"name": "verbose",
|
|
4320
|
-
"allowNo": false,
|
|
4321
|
-
"type": "boolean"
|
|
4322
|
-
},
|
|
4323
|
-
"include": {
|
|
4324
|
-
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
4325
|
-
"name": "include",
|
|
4326
|
-
"hasDynamicHelp": false,
|
|
4327
|
-
"multiple": false,
|
|
4328
|
-
"type": "option"
|
|
4329
|
-
},
|
|
4330
|
-
"exclude": {
|
|
4331
|
-
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
4332
|
-
"name": "exclude",
|
|
4331
|
+
"format": {
|
|
4332
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
4333
|
+
"name": "format",
|
|
4333
4334
|
"hasDynamicHelp": false,
|
|
4334
4335
|
"multiple": false,
|
|
4336
|
+
"options": [
|
|
4337
|
+
"text",
|
|
4338
|
+
"json",
|
|
4339
|
+
"md"
|
|
4340
|
+
],
|
|
4335
4341
|
"type": "option"
|
|
4336
4342
|
}
|
|
4337
4343
|
},
|
|
4338
4344
|
"hasDynamicHelp": false,
|
|
4339
4345
|
"hiddenAliases": [],
|
|
4340
|
-
"id": "
|
|
4346
|
+
"id": "test:usage",
|
|
4341
4347
|
"pluginAlias": "@memberjunction/cli",
|
|
4342
4348
|
"pluginName": "@memberjunction/cli",
|
|
4343
4349
|
"pluginType": "core",
|
|
@@ -4347,31 +4353,86 @@
|
|
|
4347
4353
|
"relativePath": [
|
|
4348
4354
|
"dist",
|
|
4349
4355
|
"commands",
|
|
4350
|
-
"
|
|
4351
|
-
"
|
|
4356
|
+
"test",
|
|
4357
|
+
"usage.js"
|
|
4352
4358
|
]
|
|
4353
4359
|
},
|
|
4354
|
-
"
|
|
4360
|
+
"test:validate": {
|
|
4355
4361
|
"aliases": [],
|
|
4356
|
-
"args": {
|
|
4357
|
-
|
|
4362
|
+
"args": {
|
|
4363
|
+
"testId": {
|
|
4364
|
+
"description": "Test ID to validate",
|
|
4365
|
+
"name": "testId",
|
|
4366
|
+
"required": false
|
|
4367
|
+
}
|
|
4368
|
+
},
|
|
4369
|
+
"description": "Validate test definitions without executing",
|
|
4370
|
+
"examples": [
|
|
4371
|
+
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
4372
|
+
"<%= config.bin %> <%= command.id %> --all",
|
|
4373
|
+
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
4374
|
+
"<%= config.bin %> <%= command.id %> --all --save-report",
|
|
4375
|
+
"<%= config.bin %> <%= command.id %> --all --output=validation-report.md"
|
|
4376
|
+
],
|
|
4358
4377
|
"flags": {
|
|
4378
|
+
"all": {
|
|
4379
|
+
"char": "a",
|
|
4380
|
+
"description": "Validate all tests",
|
|
4381
|
+
"name": "all",
|
|
4382
|
+
"allowNo": false,
|
|
4383
|
+
"type": "boolean"
|
|
4384
|
+
},
|
|
4385
|
+
"type": {
|
|
4386
|
+
"char": "t",
|
|
4387
|
+
"description": "Validate tests by type",
|
|
4388
|
+
"name": "type",
|
|
4389
|
+
"hasDynamicHelp": false,
|
|
4390
|
+
"multiple": false,
|
|
4391
|
+
"type": "option"
|
|
4392
|
+
},
|
|
4393
|
+
"save-report": {
|
|
4394
|
+
"description": "Save validation report to file",
|
|
4395
|
+
"name": "save-report",
|
|
4396
|
+
"allowNo": false,
|
|
4397
|
+
"type": "boolean"
|
|
4398
|
+
},
|
|
4359
4399
|
"format": {
|
|
4360
|
-
"
|
|
4400
|
+
"char": "f",
|
|
4401
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4361
4402
|
"name": "format",
|
|
4362
4403
|
"hasDynamicHelp": false,
|
|
4363
4404
|
"multiple": false,
|
|
4364
4405
|
"options": [
|
|
4365
4406
|
"text",
|
|
4366
4407
|
"json",
|
|
4367
|
-
"md"
|
|
4408
|
+
"md",
|
|
4409
|
+
"human",
|
|
4410
|
+
"console",
|
|
4411
|
+
"markdown",
|
|
4412
|
+
"compact",
|
|
4413
|
+
"table"
|
|
4368
4414
|
],
|
|
4369
4415
|
"type": "option"
|
|
4416
|
+
},
|
|
4417
|
+
"output": {
|
|
4418
|
+
"char": "o",
|
|
4419
|
+
"description": "Output file path",
|
|
4420
|
+
"name": "output",
|
|
4421
|
+
"hasDynamicHelp": false,
|
|
4422
|
+
"multiple": false,
|
|
4423
|
+
"type": "option"
|
|
4424
|
+
},
|
|
4425
|
+
"verbose": {
|
|
4426
|
+
"char": "v",
|
|
4427
|
+
"description": "Show detailed information",
|
|
4428
|
+
"name": "verbose",
|
|
4429
|
+
"allowNo": false,
|
|
4430
|
+
"type": "boolean"
|
|
4370
4431
|
}
|
|
4371
4432
|
},
|
|
4372
4433
|
"hasDynamicHelp": false,
|
|
4373
4434
|
"hiddenAliases": [],
|
|
4374
|
-
"id": "
|
|
4435
|
+
"id": "test:validate",
|
|
4375
4436
|
"pluginAlias": "@memberjunction/cli",
|
|
4376
4437
|
"pluginName": "@memberjunction/cli",
|
|
4377
4438
|
"pluginType": "core",
|
|
@@ -4381,52 +4442,96 @@
|
|
|
4381
4442
|
"relativePath": [
|
|
4382
4443
|
"dist",
|
|
4383
4444
|
"commands",
|
|
4384
|
-
"
|
|
4385
|
-
"
|
|
4445
|
+
"test",
|
|
4446
|
+
"validate.js"
|
|
4386
4447
|
]
|
|
4387
4448
|
},
|
|
4388
|
-
"
|
|
4449
|
+
"translate-sql": {
|
|
4389
4450
|
"aliases": [],
|
|
4390
4451
|
"args": {},
|
|
4391
|
-
"description": "
|
|
4452
|
+
"description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
|
|
4392
4453
|
"examples": [
|
|
4393
|
-
"<%= config.bin %>
|
|
4394
|
-
"<%= config.bin %>
|
|
4395
|
-
"<%= config.bin %>
|
|
4396
|
-
"<%= config.bin %>
|
|
4454
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
|
|
4455
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
|
|
4456
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
|
|
4457
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
4397
4458
|
],
|
|
4398
4459
|
"flags": {
|
|
4399
|
-
"
|
|
4400
|
-
"description": "
|
|
4401
|
-
"name": "
|
|
4460
|
+
"from": {
|
|
4461
|
+
"description": "Source SQL dialect",
|
|
4462
|
+
"name": "from",
|
|
4463
|
+
"required": true,
|
|
4402
4464
|
"hasDynamicHelp": false,
|
|
4403
4465
|
"multiple": false,
|
|
4466
|
+
"options": [
|
|
4467
|
+
"sqlserver",
|
|
4468
|
+
"postgresql"
|
|
4469
|
+
],
|
|
4404
4470
|
"type": "option"
|
|
4405
4471
|
},
|
|
4406
|
-
"
|
|
4407
|
-
"
|
|
4408
|
-
"
|
|
4409
|
-
"
|
|
4472
|
+
"to": {
|
|
4473
|
+
"description": "Target SQL dialect",
|
|
4474
|
+
"name": "to",
|
|
4475
|
+
"required": true,
|
|
4476
|
+
"hasDynamicHelp": false,
|
|
4477
|
+
"multiple": false,
|
|
4478
|
+
"options": [
|
|
4479
|
+
"sqlserver",
|
|
4480
|
+
"postgresql"
|
|
4481
|
+
],
|
|
4482
|
+
"type": "option"
|
|
4483
|
+
},
|
|
4484
|
+
"scope": {
|
|
4485
|
+
"description": "What to scan for translation",
|
|
4486
|
+
"name": "scope",
|
|
4487
|
+
"default": "all",
|
|
4488
|
+
"hasDynamicHelp": false,
|
|
4489
|
+
"multiple": false,
|
|
4490
|
+
"options": [
|
|
4491
|
+
"queries",
|
|
4492
|
+
"views",
|
|
4493
|
+
"filters",
|
|
4494
|
+
"all"
|
|
4495
|
+
],
|
|
4496
|
+
"type": "option"
|
|
4497
|
+
},
|
|
4498
|
+
"sql": {
|
|
4499
|
+
"description": "Translate a single SQL fragment (inline mode)",
|
|
4500
|
+
"name": "sql",
|
|
4501
|
+
"hasDynamicHelp": false,
|
|
4502
|
+
"multiple": false,
|
|
4503
|
+
"type": "option"
|
|
4504
|
+
},
|
|
4505
|
+
"dry-run": {
|
|
4506
|
+
"description": "Show what would be translated without making changes",
|
|
4507
|
+
"name": "dry-run",
|
|
4410
4508
|
"allowNo": false,
|
|
4411
4509
|
"type": "boolean"
|
|
4412
4510
|
},
|
|
4413
|
-
"
|
|
4414
|
-
"description": "
|
|
4415
|
-
"name": "
|
|
4511
|
+
"review": {
|
|
4512
|
+
"description": "Generate review report only (no writes to database)",
|
|
4513
|
+
"name": "review",
|
|
4416
4514
|
"allowNo": false,
|
|
4417
4515
|
"type": "boolean"
|
|
4418
4516
|
},
|
|
4419
4517
|
"output": {
|
|
4420
|
-
"
|
|
4518
|
+
"char": "o",
|
|
4519
|
+
"description": "Output directory for the translation report",
|
|
4421
4520
|
"name": "output",
|
|
4422
4521
|
"hasDynamicHelp": false,
|
|
4423
4522
|
"multiple": false,
|
|
4424
4523
|
"type": "option"
|
|
4524
|
+
},
|
|
4525
|
+
"force": {
|
|
4526
|
+
"description": "Re-translate even if platform variants already exist",
|
|
4527
|
+
"name": "force",
|
|
4528
|
+
"allowNo": false,
|
|
4529
|
+
"type": "boolean"
|
|
4425
4530
|
}
|
|
4426
4531
|
},
|
|
4427
4532
|
"hasDynamicHelp": false,
|
|
4428
4533
|
"hiddenAliases": [],
|
|
4429
|
-
"id": "
|
|
4534
|
+
"id": "translate-sql",
|
|
4430
4535
|
"pluginAlias": "@memberjunction/cli",
|
|
4431
4536
|
"pluginName": "@memberjunction/cli",
|
|
4432
4537
|
"pluginType": "core",
|
|
@@ -4436,52 +4541,31 @@
|
|
|
4436
4541
|
"relativePath": [
|
|
4437
4542
|
"dist",
|
|
4438
4543
|
"commands",
|
|
4439
|
-
"
|
|
4440
|
-
"
|
|
4544
|
+
"translate-sql",
|
|
4545
|
+
"index.js"
|
|
4441
4546
|
]
|
|
4442
4547
|
},
|
|
4443
|
-
"
|
|
4548
|
+
"translate-sql:usage": {
|
|
4444
4549
|
"aliases": [],
|
|
4445
4550
|
"args": {},
|
|
4446
|
-
"description": "
|
|
4447
|
-
"examples": [
|
|
4448
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4449
|
-
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4450
|
-
"<%= config.bin %> <%= command.id %> --debounce=1000",
|
|
4451
|
-
"<%= config.bin %> <%= command.id %> --no-validate"
|
|
4452
|
-
],
|
|
4551
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj translate-sql` command.",
|
|
4453
4552
|
"flags": {
|
|
4454
|
-
"
|
|
4455
|
-
"description": "
|
|
4456
|
-
"name": "
|
|
4457
|
-
"hasDynamicHelp": false,
|
|
4458
|
-
"multiple": false,
|
|
4459
|
-
"type": "option"
|
|
4460
|
-
},
|
|
4461
|
-
"debounce": {
|
|
4462
|
-
"description": "Debounce delay in milliseconds (default: 500)",
|
|
4463
|
-
"name": "debounce",
|
|
4553
|
+
"format": {
|
|
4554
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
4555
|
+
"name": "format",
|
|
4464
4556
|
"hasDynamicHelp": false,
|
|
4465
4557
|
"multiple": false,
|
|
4558
|
+
"options": [
|
|
4559
|
+
"text",
|
|
4560
|
+
"json",
|
|
4561
|
+
"md"
|
|
4562
|
+
],
|
|
4466
4563
|
"type": "option"
|
|
4467
|
-
},
|
|
4468
|
-
"no-validate": {
|
|
4469
|
-
"description": "Skip validation before sync",
|
|
4470
|
-
"name": "no-validate",
|
|
4471
|
-
"allowNo": false,
|
|
4472
|
-
"type": "boolean"
|
|
4473
|
-
},
|
|
4474
|
-
"verbose": {
|
|
4475
|
-
"char": "v",
|
|
4476
|
-
"description": "Show detailed output",
|
|
4477
|
-
"name": "verbose",
|
|
4478
|
-
"allowNo": false,
|
|
4479
|
-
"type": "boolean"
|
|
4480
4564
|
}
|
|
4481
4565
|
},
|
|
4482
4566
|
"hasDynamicHelp": false,
|
|
4483
4567
|
"hiddenAliases": [],
|
|
4484
|
-
"id": "
|
|
4568
|
+
"id": "translate-sql:usage",
|
|
4485
4569
|
"pluginAlias": "@memberjunction/cli",
|
|
4486
4570
|
"pluginName": "@memberjunction/cli",
|
|
4487
4571
|
"pluginType": "core",
|
|
@@ -4491,199 +4575,127 @@
|
|
|
4491
4575
|
"relativePath": [
|
|
4492
4576
|
"dist",
|
|
4493
4577
|
"commands",
|
|
4494
|
-
"
|
|
4495
|
-
"
|
|
4578
|
+
"translate-sql",
|
|
4579
|
+
"usage.js"
|
|
4496
4580
|
]
|
|
4497
4581
|
},
|
|
4498
|
-
"
|
|
4582
|
+
"update:claude": {
|
|
4499
4583
|
"aliases": [],
|
|
4500
|
-
"args": {
|
|
4501
|
-
|
|
4502
|
-
"description": "First test run ID to compare",
|
|
4503
|
-
"name": "runId1",
|
|
4504
|
-
"required": false
|
|
4505
|
-
},
|
|
4506
|
-
"runId2": {
|
|
4507
|
-
"description": "Second test run ID to compare",
|
|
4508
|
-
"name": "runId2",
|
|
4509
|
-
"required": false
|
|
4510
|
-
}
|
|
4511
|
-
},
|
|
4512
|
-
"description": "Compare test runs for regression detection",
|
|
4584
|
+
"args": {},
|
|
4585
|
+
"description": "Update the Claude Code pack in the current directory.",
|
|
4513
4586
|
"examples": [
|
|
4514
|
-
"<%= config.bin %>
|
|
4515
|
-
"<%= config.bin %>
|
|
4516
|
-
"<%= config.bin %>
|
|
4517
|
-
"<%= config.bin %>
|
|
4518
|
-
"<%= config.bin %>
|
|
4519
|
-
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
4520
|
-
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
4587
|
+
"<%= config.bin %> update:claude",
|
|
4588
|
+
"<%= config.bin %> update:claude --check",
|
|
4589
|
+
"<%= config.bin %> update:claude --refresh-commands",
|
|
4590
|
+
"<%= config.bin %> update:claude --allow-major",
|
|
4591
|
+
"<%= config.bin %> update:claude --json"
|
|
4521
4592
|
],
|
|
4522
4593
|
"flags": {
|
|
4523
|
-
"
|
|
4524
|
-
"
|
|
4525
|
-
"
|
|
4526
|
-
"
|
|
4594
|
+
"dir": {
|
|
4595
|
+
"description": "Target directory",
|
|
4596
|
+
"name": "dir",
|
|
4597
|
+
"default": ".",
|
|
4527
4598
|
"hasDynamicHelp": false,
|
|
4528
|
-
"multiple":
|
|
4599
|
+
"multiple": false,
|
|
4529
4600
|
"type": "option"
|
|
4530
4601
|
},
|
|
4531
|
-
"
|
|
4532
|
-
"
|
|
4533
|
-
"
|
|
4534
|
-
"name": "commit",
|
|
4602
|
+
"major": {
|
|
4603
|
+
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
4604
|
+
"name": "major",
|
|
4535
4605
|
"hasDynamicHelp": false,
|
|
4536
|
-
"multiple":
|
|
4606
|
+
"multiple": false,
|
|
4537
4607
|
"type": "option"
|
|
4538
4608
|
},
|
|
4539
|
-
"
|
|
4540
|
-
"description": "
|
|
4541
|
-
"name": "
|
|
4609
|
+
"ref": {
|
|
4610
|
+
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
4611
|
+
"name": "ref",
|
|
4612
|
+
"hasDynamicHelp": false,
|
|
4613
|
+
"multiple": false,
|
|
4614
|
+
"type": "option"
|
|
4615
|
+
},
|
|
4616
|
+
"from": {
|
|
4617
|
+
"description": "Use a local pack source instead of fetching from GitHub",
|
|
4618
|
+
"name": "from",
|
|
4619
|
+
"hasDynamicHelp": false,
|
|
4620
|
+
"multiple": false,
|
|
4621
|
+
"type": "option"
|
|
4622
|
+
},
|
|
4623
|
+
"offline": {
|
|
4624
|
+
"description": "Forbid network; requires --from <path>",
|
|
4625
|
+
"name": "offline",
|
|
4542
4626
|
"allowNo": false,
|
|
4543
4627
|
"type": "boolean"
|
|
4544
4628
|
},
|
|
4545
|
-
"
|
|
4546
|
-
"
|
|
4547
|
-
"
|
|
4548
|
-
"name": "latest",
|
|
4629
|
+
"dry-run": {
|
|
4630
|
+
"description": "Print what would be written; change nothing",
|
|
4631
|
+
"name": "dry-run",
|
|
4549
4632
|
"allowNo": false,
|
|
4550
4633
|
"type": "boolean"
|
|
4551
4634
|
},
|
|
4552
|
-
"
|
|
4553
|
-
"
|
|
4554
|
-
"
|
|
4555
|
-
"
|
|
4556
|
-
"
|
|
4557
|
-
"type": "
|
|
4635
|
+
"yes": {
|
|
4636
|
+
"char": "y",
|
|
4637
|
+
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
4638
|
+
"name": "yes",
|
|
4639
|
+
"allowNo": false,
|
|
4640
|
+
"type": "boolean"
|
|
4558
4641
|
},
|
|
4559
|
-
"
|
|
4560
|
-
"
|
|
4561
|
-
"
|
|
4562
|
-
"
|
|
4563
|
-
"
|
|
4564
|
-
"multiple": false,
|
|
4565
|
-
"options": [
|
|
4566
|
-
"text",
|
|
4567
|
-
"json",
|
|
4568
|
-
"md",
|
|
4569
|
-
"human",
|
|
4570
|
-
"console",
|
|
4571
|
-
"markdown",
|
|
4572
|
-
"compact",
|
|
4573
|
-
"table"
|
|
4574
|
-
],
|
|
4575
|
-
"type": "option"
|
|
4642
|
+
"force": {
|
|
4643
|
+
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
4644
|
+
"name": "force",
|
|
4645
|
+
"allowNo": false,
|
|
4646
|
+
"type": "boolean"
|
|
4576
4647
|
},
|
|
4577
|
-
"
|
|
4578
|
-
"
|
|
4579
|
-
"
|
|
4580
|
-
"
|
|
4581
|
-
"
|
|
4582
|
-
"multiple": false,
|
|
4583
|
-
"type": "option"
|
|
4648
|
+
"skip-commands": {
|
|
4649
|
+
"description": "Skip seeding .claude/commands/",
|
|
4650
|
+
"name": "skip-commands",
|
|
4651
|
+
"allowNo": false,
|
|
4652
|
+
"type": "boolean"
|
|
4584
4653
|
},
|
|
4585
|
-
"
|
|
4586
|
-
"description": "
|
|
4587
|
-
"name": "
|
|
4654
|
+
"skip-skills": {
|
|
4655
|
+
"description": "Skip seeding .claude/skills/",
|
|
4656
|
+
"name": "skip-skills",
|
|
4588
4657
|
"allowNo": false,
|
|
4589
4658
|
"type": "boolean"
|
|
4590
4659
|
},
|
|
4591
|
-
"
|
|
4592
|
-
"description": "
|
|
4593
|
-
"name": "
|
|
4594
|
-
"
|
|
4595
|
-
"
|
|
4596
|
-
"type": "option"
|
|
4597
|
-
}
|
|
4598
|
-
},
|
|
4599
|
-
"hasDynamicHelp": false,
|
|
4600
|
-
"hiddenAliases": [],
|
|
4601
|
-
"id": "test:compare",
|
|
4602
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4603
|
-
"pluginName": "@memberjunction/cli",
|
|
4604
|
-
"pluginType": "core",
|
|
4605
|
-
"strict": true,
|
|
4606
|
-
"enableJsonFlag": false,
|
|
4607
|
-
"isESM": true,
|
|
4608
|
-
"relativePath": [
|
|
4609
|
-
"dist",
|
|
4610
|
-
"commands",
|
|
4611
|
-
"test",
|
|
4612
|
-
"compare.js"
|
|
4613
|
-
]
|
|
4614
|
-
},
|
|
4615
|
-
"test:history": {
|
|
4616
|
-
"aliases": [],
|
|
4617
|
-
"args": {},
|
|
4618
|
-
"description": "View test execution history",
|
|
4619
|
-
"examples": [
|
|
4620
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4621
|
-
"<%= config.bin %> <%= command.id %> --test=<test-id>",
|
|
4622
|
-
"<%= config.bin %> <%= command.id %> --suite=<suite-id>",
|
|
4623
|
-
"<%= config.bin %> <%= command.id %> --since=\"2024-01-01\"",
|
|
4624
|
-
"<%= config.bin %> <%= command.id %> --limit=50"
|
|
4625
|
-
],
|
|
4626
|
-
"flags": {
|
|
4627
|
-
"test": {
|
|
4628
|
-
"char": "t",
|
|
4629
|
-
"description": "Filter by test ID",
|
|
4630
|
-
"name": "test",
|
|
4631
|
-
"hasDynamicHelp": false,
|
|
4632
|
-
"multiple": false,
|
|
4633
|
-
"type": "option"
|
|
4660
|
+
"skip-settings": {
|
|
4661
|
+
"description": "Skip merging .claude/settings.json",
|
|
4662
|
+
"name": "skip-settings",
|
|
4663
|
+
"allowNo": false,
|
|
4664
|
+
"type": "boolean"
|
|
4634
4665
|
},
|
|
4635
|
-
"
|
|
4636
|
-
"
|
|
4637
|
-
"
|
|
4638
|
-
"
|
|
4639
|
-
"
|
|
4640
|
-
"multiple": false,
|
|
4641
|
-
"type": "option"
|
|
4666
|
+
"check": {
|
|
4667
|
+
"description": "Compare local pack version to remote without writing anything",
|
|
4668
|
+
"name": "check",
|
|
4669
|
+
"allowNo": false,
|
|
4670
|
+
"type": "boolean"
|
|
4642
4671
|
},
|
|
4643
|
-
"
|
|
4644
|
-
"description": "
|
|
4645
|
-
"name": "
|
|
4646
|
-
"
|
|
4647
|
-
"
|
|
4648
|
-
"type": "option"
|
|
4672
|
+
"refresh-commands": {
|
|
4673
|
+
"description": "Force-resync .claude/commands/* from the pack (saves .bak files)",
|
|
4674
|
+
"name": "refresh-commands",
|
|
4675
|
+
"allowNo": false,
|
|
4676
|
+
"type": "boolean"
|
|
4649
4677
|
},
|
|
4650
|
-
"
|
|
4651
|
-
"
|
|
4652
|
-
"
|
|
4653
|
-
"
|
|
4654
|
-
"
|
|
4655
|
-
"multiple": false,
|
|
4656
|
-
"type": "option"
|
|
4678
|
+
"refresh-skills": {
|
|
4679
|
+
"description": "Force-resync .claude/skills/** from the pack (saves .bak files)",
|
|
4680
|
+
"name": "refresh-skills",
|
|
4681
|
+
"allowNo": false,
|
|
4682
|
+
"type": "boolean"
|
|
4657
4683
|
},
|
|
4658
|
-
"
|
|
4659
|
-
"
|
|
4660
|
-
"
|
|
4661
|
-
"
|
|
4662
|
-
"
|
|
4663
|
-
"multiple": false,
|
|
4664
|
-
"options": [
|
|
4665
|
-
"text",
|
|
4666
|
-
"json",
|
|
4667
|
-
"md",
|
|
4668
|
-
"human",
|
|
4669
|
-
"console",
|
|
4670
|
-
"markdown",
|
|
4671
|
-
"compact",
|
|
4672
|
-
"table"
|
|
4673
|
-
],
|
|
4674
|
-
"type": "option"
|
|
4684
|
+
"allow-major": {
|
|
4685
|
+
"description": "Allow the remote pack's major to differ from local MJ's major",
|
|
4686
|
+
"name": "allow-major",
|
|
4687
|
+
"allowNo": false,
|
|
4688
|
+
"type": "boolean"
|
|
4675
4689
|
},
|
|
4676
|
-
"
|
|
4677
|
-
"
|
|
4678
|
-
"
|
|
4679
|
-
"
|
|
4680
|
-
"
|
|
4681
|
-
"multiple": false,
|
|
4682
|
-
"type": "option"
|
|
4690
|
+
"json": {
|
|
4691
|
+
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
4692
|
+
"name": "json",
|
|
4693
|
+
"allowNo": false,
|
|
4694
|
+
"type": "boolean"
|
|
4683
4695
|
},
|
|
4684
4696
|
"verbose": {
|
|
4685
4697
|
"char": "v",
|
|
4686
|
-
"description": "Show
|
|
4698
|
+
"description": "Show progress messages",
|
|
4687
4699
|
"name": "verbose",
|
|
4688
4700
|
"allowNo": false,
|
|
4689
4701
|
"type": "boolean"
|
|
@@ -4691,7 +4703,7 @@
|
|
|
4691
4703
|
},
|
|
4692
4704
|
"hasDynamicHelp": false,
|
|
4693
4705
|
"hiddenAliases": [],
|
|
4694
|
-
"id": "
|
|
4706
|
+
"id": "update:claude",
|
|
4695
4707
|
"pluginAlias": "@memberjunction/cli",
|
|
4696
4708
|
"pluginName": "@memberjunction/cli",
|
|
4697
4709
|
"pluginType": "core",
|
|
@@ -4701,26 +4713,31 @@
|
|
|
4701
4713
|
"relativePath": [
|
|
4702
4714
|
"dist",
|
|
4703
4715
|
"commands",
|
|
4704
|
-
"
|
|
4705
|
-
"
|
|
4716
|
+
"update",
|
|
4717
|
+
"claude.js"
|
|
4706
4718
|
]
|
|
4707
4719
|
},
|
|
4708
|
-
"
|
|
4720
|
+
"update:usage": {
|
|
4709
4721
|
"aliases": [],
|
|
4710
4722
|
"args": {},
|
|
4711
|
-
"description": "
|
|
4712
|
-
"
|
|
4713
|
-
"
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4723
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj update` command.",
|
|
4724
|
+
"flags": {
|
|
4725
|
+
"format": {
|
|
4726
|
+
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
4727
|
+
"name": "format",
|
|
4728
|
+
"hasDynamicHelp": false,
|
|
4729
|
+
"multiple": false,
|
|
4730
|
+
"options": [
|
|
4731
|
+
"text",
|
|
4732
|
+
"json",
|
|
4733
|
+
"md"
|
|
4734
|
+
],
|
|
4735
|
+
"type": "option"
|
|
4736
|
+
}
|
|
4737
|
+
},
|
|
4721
4738
|
"hasDynamicHelp": false,
|
|
4722
4739
|
"hiddenAliases": [],
|
|
4723
|
-
"id": "
|
|
4740
|
+
"id": "update:usage",
|
|
4724
4741
|
"pluginAlias": "@memberjunction/cli",
|
|
4725
4742
|
"pluginName": "@memberjunction/cli",
|
|
4726
4743
|
"pluginType": "core",
|
|
@@ -4730,87 +4747,56 @@
|
|
|
4730
4747
|
"relativePath": [
|
|
4731
4748
|
"dist",
|
|
4732
4749
|
"commands",
|
|
4733
|
-
"
|
|
4734
|
-
"
|
|
4750
|
+
"update",
|
|
4751
|
+
"usage.js"
|
|
4735
4752
|
]
|
|
4736
4753
|
},
|
|
4737
|
-
"
|
|
4754
|
+
"sync:file-reset": {
|
|
4738
4755
|
"aliases": [],
|
|
4739
4756
|
"args": {},
|
|
4740
|
-
"description": "
|
|
4757
|
+
"description": "Reset file metadata sections",
|
|
4741
4758
|
"examples": [
|
|
4742
4759
|
"<%= config.bin %> <%= command.id %>",
|
|
4743
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4744
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4745
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4746
|
-
"<%= config.bin %> <%= command.id %> --tag=smoke",
|
|
4747
|
-
"<%= config.bin %> <%= command.id %> --status=active --verbose"
|
|
4760
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
4761
|
+
"<%= config.bin %> <%= command.id %> --sections=\"dependencies,references\"",
|
|
4762
|
+
"<%= config.bin %> <%= command.id %> --all"
|
|
4748
4763
|
],
|
|
4749
4764
|
"flags": {
|
|
4750
|
-
"
|
|
4751
|
-
"description": "
|
|
4752
|
-
"name": "
|
|
4753
|
-
"allowNo": false,
|
|
4754
|
-
"type": "boolean"
|
|
4755
|
-
},
|
|
4756
|
-
"types": {
|
|
4757
|
-
"description": "List test types",
|
|
4758
|
-
"name": "types",
|
|
4759
|
-
"allowNo": false,
|
|
4760
|
-
"type": "boolean"
|
|
4761
|
-
},
|
|
4762
|
-
"type": {
|
|
4763
|
-
"char": "t",
|
|
4764
|
-
"description": "Filter by test type",
|
|
4765
|
-
"name": "type",
|
|
4765
|
+
"dir": {
|
|
4766
|
+
"description": "Specific entity directory to reset",
|
|
4767
|
+
"name": "dir",
|
|
4766
4768
|
"hasDynamicHelp": false,
|
|
4767
4769
|
"multiple": false,
|
|
4768
4770
|
"type": "option"
|
|
4769
4771
|
},
|
|
4770
|
-
"
|
|
4771
|
-
"description": "
|
|
4772
|
-
"name": "
|
|
4772
|
+
"sections": {
|
|
4773
|
+
"description": "Comma-separated list of sections to reset (dependencies,references,related,lookup)",
|
|
4774
|
+
"name": "sections",
|
|
4773
4775
|
"hasDynamicHelp": false,
|
|
4774
4776
|
"multiple": false,
|
|
4775
4777
|
"type": "option"
|
|
4776
4778
|
},
|
|
4777
|
-
"
|
|
4778
|
-
"
|
|
4779
|
-
"
|
|
4780
|
-
"
|
|
4781
|
-
"
|
|
4782
|
-
"multiple": false,
|
|
4783
|
-
"type": "option"
|
|
4779
|
+
"all": {
|
|
4780
|
+
"description": "Reset all metadata sections",
|
|
4781
|
+
"name": "all",
|
|
4782
|
+
"allowNo": false,
|
|
4783
|
+
"type": "boolean"
|
|
4784
4784
|
},
|
|
4785
|
-
"
|
|
4786
|
-
"
|
|
4787
|
-
"
|
|
4788
|
-
"
|
|
4789
|
-
"
|
|
4790
|
-
"multiple": false,
|
|
4791
|
-
"options": [
|
|
4792
|
-
"text",
|
|
4793
|
-
"json",
|
|
4794
|
-
"md",
|
|
4795
|
-
"human",
|
|
4796
|
-
"console",
|
|
4797
|
-
"markdown",
|
|
4798
|
-
"compact",
|
|
4799
|
-
"table"
|
|
4800
|
-
],
|
|
4801
|
-
"type": "option"
|
|
4785
|
+
"dry-run": {
|
|
4786
|
+
"description": "Show what would be reset without actually resetting",
|
|
4787
|
+
"name": "dry-run",
|
|
4788
|
+
"allowNo": false,
|
|
4789
|
+
"type": "boolean"
|
|
4802
4790
|
},
|
|
4803
|
-
"
|
|
4804
|
-
"
|
|
4805
|
-
"
|
|
4806
|
-
"
|
|
4807
|
-
"
|
|
4808
|
-
"multiple": false,
|
|
4809
|
-
"type": "option"
|
|
4791
|
+
"force": {
|
|
4792
|
+
"description": "Skip confirmation prompts",
|
|
4793
|
+
"name": "force",
|
|
4794
|
+
"allowNo": false,
|
|
4795
|
+
"type": "boolean"
|
|
4810
4796
|
},
|
|
4811
4797
|
"verbose": {
|
|
4812
4798
|
"char": "v",
|
|
4813
|
-
"description": "Show detailed
|
|
4799
|
+
"description": "Show detailed output",
|
|
4814
4800
|
"name": "verbose",
|
|
4815
4801
|
"allowNo": false,
|
|
4816
4802
|
"type": "boolean"
|
|
@@ -4818,7 +4804,7 @@
|
|
|
4818
4804
|
},
|
|
4819
4805
|
"hasDynamicHelp": false,
|
|
4820
4806
|
"hiddenAliases": [],
|
|
4821
|
-
"id": "
|
|
4807
|
+
"id": "sync:file-reset",
|
|
4822
4808
|
"pluginAlias": "@memberjunction/cli",
|
|
4823
4809
|
"pluginName": "@memberjunction/cli",
|
|
4824
4810
|
"pluginType": "core",
|
|
@@ -4828,101 +4814,69 @@
|
|
|
4828
4814
|
"relativePath": [
|
|
4829
4815
|
"dist",
|
|
4830
4816
|
"commands",
|
|
4831
|
-
"
|
|
4832
|
-
"
|
|
4817
|
+
"sync",
|
|
4818
|
+
"file-reset.js"
|
|
4833
4819
|
]
|
|
4834
4820
|
},
|
|
4835
|
-
"
|
|
4821
|
+
"sync:init": {
|
|
4836
4822
|
"aliases": [],
|
|
4837
|
-
"args": {
|
|
4838
|
-
|
|
4839
|
-
"description": "Test ID to execute",
|
|
4840
|
-
"name": "testId",
|
|
4841
|
-
"required": false
|
|
4842
|
-
}
|
|
4843
|
-
},
|
|
4844
|
-
"description": "Execute a single test by ID or name",
|
|
4823
|
+
"args": {},
|
|
4824
|
+
"description": "Initialize a directory for metadata synchronization.\n\nPrompts at a terminal; runs unattended when piped, spawned, or in CI. To script it,\npass --setup-entity (and --entity/--dir when setting up \"other\").",
|
|
4845
4825
|
"examples": [
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
"<%= config.bin %> <%= command.id %> <test-id> --format=json --output=results.json",
|
|
4850
|
-
"<%= config.bin %> <%= command.id %> <test-id> --dry-run"
|
|
4851
|
-
],
|
|
4852
|
-
"flags": {
|
|
4853
|
-
"name": {
|
|
4854
|
-
"char": "n",
|
|
4855
|
-
"description": "Test name to execute",
|
|
4856
|
-
"name": "name",
|
|
4857
|
-
"hasDynamicHelp": false,
|
|
4858
|
-
"multiple": false,
|
|
4859
|
-
"type": "option"
|
|
4826
|
+
{
|
|
4827
|
+
"command": "<%= config.bin %> <%= command.id %> --setup-entity=no",
|
|
4828
|
+
"description": "Initialize with no entity directory"
|
|
4860
4829
|
},
|
|
4861
|
-
|
|
4862
|
-
"
|
|
4863
|
-
"description": "
|
|
4864
|
-
"name": "environment",
|
|
4865
|
-
"hasDynamicHelp": false,
|
|
4866
|
-
"multiple": false,
|
|
4867
|
-
"type": "option"
|
|
4830
|
+
{
|
|
4831
|
+
"command": "<%= config.bin %> <%= command.id %> --setup-entity=ai-prompts",
|
|
4832
|
+
"description": "Initialize and set up the AI Prompts directory"
|
|
4868
4833
|
},
|
|
4869
|
-
|
|
4870
|
-
"
|
|
4871
|
-
"description": "
|
|
4872
|
-
"name": "format",
|
|
4873
|
-
"hasDynamicHelp": false,
|
|
4874
|
-
"multiple": false,
|
|
4875
|
-
"options": [
|
|
4876
|
-
"text",
|
|
4877
|
-
"json",
|
|
4878
|
-
"md",
|
|
4879
|
-
"human",
|
|
4880
|
-
"console",
|
|
4881
|
-
"markdown",
|
|
4882
|
-
"compact",
|
|
4883
|
-
"table"
|
|
4884
|
-
],
|
|
4885
|
-
"type": "option"
|
|
4834
|
+
{
|
|
4835
|
+
"command": "<%= config.bin %> <%= command.id %> --setup-entity=other --entity=\"MJ: AI Models\" --dir=ai-models",
|
|
4836
|
+
"description": "Initialize for an arbitrary entity"
|
|
4886
4837
|
},
|
|
4887
|
-
|
|
4888
|
-
"
|
|
4889
|
-
"description": "
|
|
4890
|
-
|
|
4838
|
+
{
|
|
4839
|
+
"command": "<%= config.bin %> <%= command.id %> --no-interactive --setup-entity=no",
|
|
4840
|
+
"description": "Never prompt, even at a terminal"
|
|
4841
|
+
}
|
|
4842
|
+
],
|
|
4843
|
+
"flags": {
|
|
4844
|
+
"setup-entity": {
|
|
4845
|
+
"description": "Which entity directory to set up. Use \"no\" to skip.",
|
|
4846
|
+
"name": "setup-entity",
|
|
4891
4847
|
"hasDynamicHelp": false,
|
|
4892
4848
|
"multiple": false,
|
|
4849
|
+
"options": [
|
|
4850
|
+
"ai-prompts",
|
|
4851
|
+
"other",
|
|
4852
|
+
"no"
|
|
4853
|
+
],
|
|
4893
4854
|
"type": "option"
|
|
4894
4855
|
},
|
|
4895
|
-
"
|
|
4896
|
-
"description": "
|
|
4897
|
-
"name": "
|
|
4898
|
-
"allowNo": false,
|
|
4899
|
-
"type": "boolean"
|
|
4900
|
-
},
|
|
4901
|
-
"verbose": {
|
|
4902
|
-
"char": "v",
|
|
4903
|
-
"description": "Show detailed execution information",
|
|
4904
|
-
"name": "verbose",
|
|
4905
|
-
"allowNo": false,
|
|
4906
|
-
"type": "boolean"
|
|
4907
|
-
},
|
|
4908
|
-
"checks-module": {
|
|
4909
|
-
"description": "Module specifier (package name or path) side-effect-imported before the run so its integration check bundles register on the IntegrationCheckRegistry. Durable form: mj.config.cjs `testing.checkModules` (this repo loads '@memberjunction/integration-test-suite' that way).",
|
|
4910
|
-
"name": "checks-module",
|
|
4856
|
+
"entity": {
|
|
4857
|
+
"description": "Entity name when --setup-entity=other (e.g. \"MJ: AI Models\").",
|
|
4858
|
+
"name": "entity",
|
|
4911
4859
|
"hasDynamicHelp": false,
|
|
4912
4860
|
"multiple": false,
|
|
4913
4861
|
"type": "option"
|
|
4914
4862
|
},
|
|
4915
|
-
"
|
|
4916
|
-
"description": "
|
|
4917
|
-
"name": "
|
|
4863
|
+
"dir": {
|
|
4864
|
+
"description": "Directory name when --setup-entity=other. Defaults to a slug of --entity.",
|
|
4865
|
+
"name": "dir",
|
|
4918
4866
|
"hasDynamicHelp": false,
|
|
4919
4867
|
"multiple": false,
|
|
4920
4868
|
"type": "option"
|
|
4869
|
+
},
|
|
4870
|
+
"overwrite": {
|
|
4871
|
+
"description": "Overwrite an existing configuration. Without this, an initialized directory is left untouched.",
|
|
4872
|
+
"name": "overwrite",
|
|
4873
|
+
"allowNo": true,
|
|
4874
|
+
"type": "boolean"
|
|
4921
4875
|
}
|
|
4922
4876
|
},
|
|
4923
4877
|
"hasDynamicHelp": false,
|
|
4924
4878
|
"hiddenAliases": [],
|
|
4925
|
-
"id": "
|
|
4879
|
+
"id": "sync:init",
|
|
4926
4880
|
"pluginAlias": "@memberjunction/cli",
|
|
4927
4881
|
"pluginName": "@memberjunction/cli",
|
|
4928
4882
|
"pluginType": "core",
|
|
@@ -4932,38 +4886,22 @@
|
|
|
4932
4886
|
"relativePath": [
|
|
4933
4887
|
"dist",
|
|
4934
4888
|
"commands",
|
|
4935
|
-
"
|
|
4936
|
-
"
|
|
4889
|
+
"sync",
|
|
4890
|
+
"init.js"
|
|
4937
4891
|
]
|
|
4938
4892
|
},
|
|
4939
|
-
"
|
|
4893
|
+
"sync:pull": {
|
|
4940
4894
|
"aliases": [],
|
|
4941
|
-
"args": {
|
|
4942
|
-
|
|
4943
|
-
"description": "Test suite ID to execute",
|
|
4944
|
-
"name": "suiteId",
|
|
4945
|
-
"required": false
|
|
4946
|
-
}
|
|
4947
|
-
},
|
|
4948
|
-
"description": "Execute a test suite",
|
|
4895
|
+
"args": {},
|
|
4896
|
+
"description": "Pull metadata from database to local files",
|
|
4949
4897
|
"examples": [
|
|
4950
|
-
"<%= config.bin %> <%= command.id %>
|
|
4951
|
-
"<%= config.bin %> <%= command.id %> --
|
|
4952
|
-
"<%= config.bin %> <%= command.id %>
|
|
4953
|
-
"<%= config.bin %> <%= command.id %> <suite-id> --output=suite-results.json"
|
|
4898
|
+
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Prompts\"",
|
|
4899
|
+
"<%= config.bin %> <%= command.id %> --entity=\"MJ: AI Agents\" --merge-strategy=overwrite",
|
|
4900
|
+
"<%= config.bin %> <%= command.id %> --entity=\"Templates\" --dry-run --verbose"
|
|
4954
4901
|
],
|
|
4955
4902
|
"flags": {
|
|
4956
|
-
"name": {
|
|
4957
|
-
"char": "n",
|
|
4958
|
-
"description": "Test suite name to execute",
|
|
4959
|
-
"name": "name",
|
|
4960
|
-
"hasDynamicHelp": false,
|
|
4961
|
-
"multiple": false,
|
|
4962
|
-
"type": "option"
|
|
4963
|
-
},
|
|
4964
4903
|
"format": {
|
|
4965
|
-
"
|
|
4966
|
-
"description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
|
|
4904
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced). Defaults to text on a terminal and json when stdout is piped.",
|
|
4967
4905
|
"name": "format",
|
|
4968
4906
|
"hasDynamicHelp": false,
|
|
4969
4907
|
"multiple": false,
|
|
@@ -4973,298 +4911,422 @@
|
|
|
4973
4911
|
"md",
|
|
4974
4912
|
"human",
|
|
4975
4913
|
"console",
|
|
4976
|
-
"markdown"
|
|
4977
|
-
"compact",
|
|
4978
|
-
"table"
|
|
4914
|
+
"markdown"
|
|
4979
4915
|
],
|
|
4980
4916
|
"type": "option"
|
|
4981
4917
|
},
|
|
4982
|
-
"
|
|
4983
|
-
"char": "
|
|
4984
|
-
"description": "
|
|
4985
|
-
"name": "
|
|
4918
|
+
"verbose": {
|
|
4919
|
+
"char": "v",
|
|
4920
|
+
"description": "Show detailed output",
|
|
4921
|
+
"name": "verbose",
|
|
4922
|
+
"allowNo": false,
|
|
4923
|
+
"type": "boolean"
|
|
4924
|
+
},
|
|
4925
|
+
"no-banner": {
|
|
4926
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
4927
|
+
"name": "no-banner",
|
|
4928
|
+
"allowNo": false,
|
|
4929
|
+
"type": "boolean"
|
|
4930
|
+
},
|
|
4931
|
+
"no-app-packages": {
|
|
4932
|
+
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
4933
|
+
"name": "no-app-packages",
|
|
4934
|
+
"allowNo": false,
|
|
4935
|
+
"type": "boolean"
|
|
4936
|
+
},
|
|
4937
|
+
"interactive": {
|
|
4938
|
+
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
4939
|
+
"name": "interactive",
|
|
4940
|
+
"allowNo": true,
|
|
4941
|
+
"type": "boolean"
|
|
4942
|
+
},
|
|
4943
|
+
"entity": {
|
|
4944
|
+
"description": "Entity name to pull",
|
|
4945
|
+
"name": "entity",
|
|
4946
|
+
"required": true,
|
|
4986
4947
|
"hasDynamicHelp": false,
|
|
4987
4948
|
"multiple": false,
|
|
4988
4949
|
"type": "option"
|
|
4989
4950
|
},
|
|
4990
|
-
"
|
|
4991
|
-
"
|
|
4992
|
-
"
|
|
4993
|
-
"
|
|
4951
|
+
"filter": {
|
|
4952
|
+
"description": "Additional filter for pulling specific records",
|
|
4953
|
+
"name": "filter",
|
|
4954
|
+
"hasDynamicHelp": false,
|
|
4955
|
+
"multiple": false,
|
|
4956
|
+
"type": "option"
|
|
4957
|
+
},
|
|
4958
|
+
"dry-run": {
|
|
4959
|
+
"description": "Show what would be pulled without actually pulling",
|
|
4960
|
+
"name": "dry-run",
|
|
4994
4961
|
"allowNo": false,
|
|
4995
4962
|
"type": "boolean"
|
|
4996
4963
|
},
|
|
4997
|
-
"
|
|
4998
|
-
"
|
|
4999
|
-
"
|
|
5000
|
-
"name": "delay",
|
|
5001
|
-
"default": 0,
|
|
4964
|
+
"multi-file": {
|
|
4965
|
+
"description": "Create a single file with multiple records (provide filename)",
|
|
4966
|
+
"name": "multi-file",
|
|
5002
4967
|
"hasDynamicHelp": false,
|
|
5003
4968
|
"multiple": false,
|
|
5004
4969
|
"type": "option"
|
|
5005
4970
|
},
|
|
5006
|
-
"
|
|
5007
|
-
"
|
|
5008
|
-
"
|
|
5009
|
-
"name": "parallel",
|
|
4971
|
+
"no-validate": {
|
|
4972
|
+
"description": "Skip validation before pull",
|
|
4973
|
+
"name": "no-validate",
|
|
5010
4974
|
"allowNo": false,
|
|
5011
4975
|
"type": "boolean"
|
|
5012
4976
|
},
|
|
5013
|
-
"
|
|
5014
|
-
"description": "
|
|
5015
|
-
"name": "
|
|
5016
|
-
"
|
|
4977
|
+
"update-existing": {
|
|
4978
|
+
"description": "Update existing records during pull",
|
|
4979
|
+
"name": "update-existing",
|
|
4980
|
+
"allowNo": false,
|
|
4981
|
+
"type": "boolean"
|
|
4982
|
+
},
|
|
4983
|
+
"create-new": {
|
|
4984
|
+
"description": "Create new files for records not found locally",
|
|
4985
|
+
"name": "create-new",
|
|
4986
|
+
"allowNo": false,
|
|
4987
|
+
"type": "boolean"
|
|
4988
|
+
},
|
|
4989
|
+
"backup-before-update": {
|
|
4990
|
+
"description": "Create backups before updating files",
|
|
4991
|
+
"name": "backup-before-update",
|
|
4992
|
+
"allowNo": false,
|
|
4993
|
+
"type": "boolean"
|
|
4994
|
+
},
|
|
4995
|
+
"merge-strategy": {
|
|
4996
|
+
"description": "Merge strategy for updates",
|
|
4997
|
+
"name": "merge-strategy",
|
|
4998
|
+
"default": "merge",
|
|
5017
4999
|
"hasDynamicHelp": false,
|
|
5018
5000
|
"multiple": false,
|
|
5001
|
+
"options": [
|
|
5002
|
+
"merge",
|
|
5003
|
+
"overwrite",
|
|
5004
|
+
"skip"
|
|
5005
|
+
],
|
|
5019
5006
|
"type": "option"
|
|
5020
5007
|
},
|
|
5021
|
-
"
|
|
5022
|
-
"description": "
|
|
5023
|
-
"name": "
|
|
5008
|
+
"backup-directory": {
|
|
5009
|
+
"description": "Custom backup directory (default: .backups)",
|
|
5010
|
+
"name": "backup-directory",
|
|
5024
5011
|
"hasDynamicHelp": false,
|
|
5025
5012
|
"multiple": false,
|
|
5026
5013
|
"type": "option"
|
|
5027
5014
|
},
|
|
5028
|
-
"
|
|
5029
|
-
"description": "
|
|
5030
|
-
"name": "
|
|
5015
|
+
"preserve-fields": {
|
|
5016
|
+
"description": "Comma-separated list of fields to preserve during updates",
|
|
5017
|
+
"name": "preserve-fields",
|
|
5018
|
+
"hasDynamicHelp": false,
|
|
5019
|
+
"multiple": true,
|
|
5020
|
+
"type": "option"
|
|
5021
|
+
},
|
|
5022
|
+
"exclude-fields": {
|
|
5023
|
+
"description": "Comma-separated list of fields to exclude from pull",
|
|
5024
|
+
"name": "exclude-fields",
|
|
5025
|
+
"hasDynamicHelp": false,
|
|
5026
|
+
"multiple": true,
|
|
5027
|
+
"type": "option"
|
|
5028
|
+
},
|
|
5029
|
+
"target-dir": {
|
|
5030
|
+
"description": "Specific target directory (overrides auto-discovery)",
|
|
5031
|
+
"name": "target-dir",
|
|
5031
5032
|
"hasDynamicHelp": false,
|
|
5032
5033
|
"multiple": false,
|
|
5033
5034
|
"type": "option"
|
|
5034
5035
|
},
|
|
5035
|
-
"
|
|
5036
|
-
"description": "
|
|
5037
|
-
"name": "
|
|
5036
|
+
"incremental": {
|
|
5037
|
+
"description": "Only pull records updated since last successful pull",
|
|
5038
|
+
"name": "incremental",
|
|
5039
|
+
"allowNo": false,
|
|
5040
|
+
"type": "boolean"
|
|
5041
|
+
},
|
|
5042
|
+
"since": {
|
|
5043
|
+
"description": "Only pull records updated after this ISO 8601 timestamp",
|
|
5044
|
+
"name": "since",
|
|
5038
5045
|
"hasDynamicHelp": false,
|
|
5039
5046
|
"multiple": false,
|
|
5040
5047
|
"type": "option"
|
|
5041
5048
|
}
|
|
5042
5049
|
},
|
|
5043
|
-
"hasDynamicHelp": false,
|
|
5044
|
-
"hiddenAliases": [],
|
|
5045
|
-
"id": "
|
|
5046
|
-
"pluginAlias": "@memberjunction/cli",
|
|
5047
|
-
"pluginName": "@memberjunction/cli",
|
|
5048
|
-
"pluginType": "core",
|
|
5049
|
-
"strict": true,
|
|
5050
|
-
"enableJsonFlag": false,
|
|
5050
|
+
"hasDynamicHelp": false,
|
|
5051
|
+
"hiddenAliases": [],
|
|
5052
|
+
"id": "sync:pull",
|
|
5053
|
+
"pluginAlias": "@memberjunction/cli",
|
|
5054
|
+
"pluginName": "@memberjunction/cli",
|
|
5055
|
+
"pluginType": "core",
|
|
5056
|
+
"strict": true,
|
|
5057
|
+
"enableJsonFlag": false,
|
|
5058
|
+
"Usage": {
|
|
5059
|
+
"domain": "sync",
|
|
5060
|
+
"command": "sync:pull",
|
|
5061
|
+
"summary": "Pull database records into local metadata files.",
|
|
5062
|
+
"description": "Writes records of --entity into the matching entity directory, creating or updating files per the merge strategy.",
|
|
5063
|
+
"flags": [
|
|
5064
|
+
{
|
|
5065
|
+
"name": "--entity",
|
|
5066
|
+
"type": "string",
|
|
5067
|
+
"description": "Entity name to pull (required)"
|
|
5068
|
+
},
|
|
5069
|
+
{
|
|
5070
|
+
"name": "--filter",
|
|
5071
|
+
"type": "string",
|
|
5072
|
+
"description": "Extra SQL filter for which records to pull"
|
|
5073
|
+
},
|
|
5074
|
+
{
|
|
5075
|
+
"name": "--merge-strategy",
|
|
5076
|
+
"type": "merge|overwrite|skip",
|
|
5077
|
+
"description": "How to reconcile existing files"
|
|
5078
|
+
},
|
|
5079
|
+
{
|
|
5080
|
+
"name": "--dry-run",
|
|
5081
|
+
"type": "boolean",
|
|
5082
|
+
"description": "Report what would be pulled without writing"
|
|
5083
|
+
},
|
|
5084
|
+
{
|
|
5085
|
+
"name": "--format",
|
|
5086
|
+
"type": "text|json|md",
|
|
5087
|
+
"description": "Output format (json for machine-readable result)"
|
|
5088
|
+
}
|
|
5089
|
+
],
|
|
5090
|
+
"examples": [
|
|
5091
|
+
"mj sync pull --entity=\"MJ: AI Prompts\"",
|
|
5092
|
+
"mj sync pull --entity=\"Actions\" --format=json"
|
|
5093
|
+
],
|
|
5094
|
+
"runtime": {
|
|
5095
|
+
"class": "variable",
|
|
5096
|
+
"typicalSeconds": 15,
|
|
5097
|
+
"note": "scales with number of records matched for --entity"
|
|
5098
|
+
}
|
|
5099
|
+
},
|
|
5051
5100
|
"isESM": true,
|
|
5052
5101
|
"relativePath": [
|
|
5053
5102
|
"dist",
|
|
5054
5103
|
"commands",
|
|
5055
|
-
"
|
|
5056
|
-
"
|
|
5104
|
+
"sync",
|
|
5105
|
+
"pull.js"
|
|
5057
5106
|
]
|
|
5058
5107
|
},
|
|
5059
|
-
"
|
|
5108
|
+
"sync:push": {
|
|
5060
5109
|
"aliases": [],
|
|
5061
5110
|
"args": {},
|
|
5062
|
-
"description": "
|
|
5111
|
+
"description": "Push local file changes to the database",
|
|
5112
|
+
"examples": [
|
|
5113
|
+
"<%= config.bin %> <%= command.id %>",
|
|
5114
|
+
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
5115
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
5116
|
+
"<%= config.bin %> <%= command.id %> --ci --format=json"
|
|
5117
|
+
],
|
|
5063
5118
|
"flags": {
|
|
5064
5119
|
"format": {
|
|
5065
|
-
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
5120
|
+
"description": "Output format: text (human), json (machine-readable), md (Markdown-fenced). Defaults to text on a terminal and json when stdout is piped.",
|
|
5066
5121
|
"name": "format",
|
|
5067
5122
|
"hasDynamicHelp": false,
|
|
5068
5123
|
"multiple": false,
|
|
5069
5124
|
"options": [
|
|
5070
5125
|
"text",
|
|
5071
5126
|
"json",
|
|
5072
|
-
"md"
|
|
5127
|
+
"md",
|
|
5128
|
+
"human",
|
|
5129
|
+
"console",
|
|
5130
|
+
"markdown"
|
|
5073
5131
|
],
|
|
5074
5132
|
"type": "option"
|
|
5075
|
-
}
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
"pluginAlias": "@memberjunction/cli",
|
|
5081
|
-
"pluginName": "@memberjunction/cli",
|
|
5082
|
-
"pluginType": "core",
|
|
5083
|
-
"strict": true,
|
|
5084
|
-
"enableJsonFlag": false,
|
|
5085
|
-
"isESM": true,
|
|
5086
|
-
"relativePath": [
|
|
5087
|
-
"dist",
|
|
5088
|
-
"commands",
|
|
5089
|
-
"test",
|
|
5090
|
-
"usage.js"
|
|
5091
|
-
]
|
|
5092
|
-
},
|
|
5093
|
-
"test:validate": {
|
|
5094
|
-
"aliases": [],
|
|
5095
|
-
"args": {
|
|
5096
|
-
"testId": {
|
|
5097
|
-
"description": "Test ID to validate",
|
|
5098
|
-
"name": "testId",
|
|
5099
|
-
"required": false
|
|
5100
|
-
}
|
|
5101
|
-
},
|
|
5102
|
-
"description": "Validate test definitions without executing",
|
|
5103
|
-
"examples": [
|
|
5104
|
-
"<%= config.bin %> <%= command.id %> <test-id>",
|
|
5105
|
-
"<%= config.bin %> <%= command.id %> --all",
|
|
5106
|
-
"<%= config.bin %> <%= command.id %> --type=agent-eval",
|
|
5107
|
-
"<%= config.bin %> <%= command.id %> --all --save-report",
|
|
5108
|
-
"<%= config.bin %> <%= command.id %> --all --output=validation-report.md"
|
|
5109
|
-
],
|
|
5110
|
-
"flags": {
|
|
5111
|
-
"all": {
|
|
5112
|
-
"char": "a",
|
|
5113
|
-
"description": "Validate all tests",
|
|
5114
|
-
"name": "all",
|
|
5133
|
+
},
|
|
5134
|
+
"verbose": {
|
|
5135
|
+
"char": "v",
|
|
5136
|
+
"description": "Show detailed output",
|
|
5137
|
+
"name": "verbose",
|
|
5115
5138
|
"allowNo": false,
|
|
5116
5139
|
"type": "boolean"
|
|
5117
5140
|
},
|
|
5118
|
-
"
|
|
5119
|
-
"
|
|
5120
|
-
"
|
|
5121
|
-
"
|
|
5141
|
+
"no-banner": {
|
|
5142
|
+
"description": "Suppress the startup banner and runtime advisory",
|
|
5143
|
+
"name": "no-banner",
|
|
5144
|
+
"allowNo": false,
|
|
5145
|
+
"type": "boolean"
|
|
5146
|
+
},
|
|
5147
|
+
"no-app-packages": {
|
|
5148
|
+
"description": "Do not load installed Open App server packages (or the host's generated packages) for this run, so records are written with the generic BaseEntity — no custom Save() logic or lifecycle hooks.",
|
|
5149
|
+
"name": "no-app-packages",
|
|
5150
|
+
"allowNo": false,
|
|
5151
|
+
"type": "boolean"
|
|
5152
|
+
},
|
|
5153
|
+
"interactive": {
|
|
5154
|
+
"description": "Allow interactive prompts. Defaults to on at a terminal and off when piped, spawned, or in CI, so an agent never hangs on a question. Use --no-interactive to force it off.",
|
|
5155
|
+
"name": "interactive",
|
|
5156
|
+
"allowNo": true,
|
|
5157
|
+
"type": "boolean"
|
|
5158
|
+
},
|
|
5159
|
+
"dir": {
|
|
5160
|
+
"description": "Specific entity directory to push",
|
|
5161
|
+
"name": "dir",
|
|
5122
5162
|
"hasDynamicHelp": false,
|
|
5123
5163
|
"multiple": false,
|
|
5124
5164
|
"type": "option"
|
|
5125
5165
|
},
|
|
5126
|
-
"
|
|
5127
|
-
"description": "
|
|
5128
|
-
"name": "
|
|
5166
|
+
"dry-run": {
|
|
5167
|
+
"description": "Show what would be pushed without actually pushing",
|
|
5168
|
+
"name": "dry-run",
|
|
5129
5169
|
"allowNo": false,
|
|
5130
5170
|
"type": "boolean"
|
|
5131
5171
|
},
|
|
5132
|
-
"
|
|
5133
|
-
"
|
|
5134
|
-
"
|
|
5135
|
-
"
|
|
5172
|
+
"ci": {
|
|
5173
|
+
"description": "CI mode - no prompts, fail on issues",
|
|
5174
|
+
"name": "ci",
|
|
5175
|
+
"allowNo": false,
|
|
5176
|
+
"type": "boolean"
|
|
5177
|
+
},
|
|
5178
|
+
"no-validate": {
|
|
5179
|
+
"description": "Skip validation before push",
|
|
5180
|
+
"name": "no-validate",
|
|
5181
|
+
"allowNo": false,
|
|
5182
|
+
"type": "boolean"
|
|
5183
|
+
},
|
|
5184
|
+
"delete-db-only": {
|
|
5185
|
+
"description": "Delete database-only records that reference records being deleted (prevents FK errors)",
|
|
5186
|
+
"name": "delete-db-only",
|
|
5187
|
+
"allowNo": false,
|
|
5188
|
+
"type": "boolean"
|
|
5189
|
+
},
|
|
5190
|
+
"parallel-batch-size": {
|
|
5191
|
+
"description": "JSON-root graphs to process in parallel (default: 10, not 1)",
|
|
5192
|
+
"name": "parallel-batch-size",
|
|
5193
|
+
"default": 10,
|
|
5136
5194
|
"hasDynamicHelp": false,
|
|
5137
5195
|
"multiple": false,
|
|
5138
|
-
"options": [
|
|
5139
|
-
"text",
|
|
5140
|
-
"json",
|
|
5141
|
-
"md",
|
|
5142
|
-
"human",
|
|
5143
|
-
"console",
|
|
5144
|
-
"markdown",
|
|
5145
|
-
"compact",
|
|
5146
|
-
"table"
|
|
5147
|
-
],
|
|
5148
5196
|
"type": "option"
|
|
5149
5197
|
},
|
|
5150
|
-
"
|
|
5151
|
-
"
|
|
5152
|
-
"
|
|
5153
|
-
"name": "output",
|
|
5198
|
+
"include": {
|
|
5199
|
+
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
5200
|
+
"name": "include",
|
|
5154
5201
|
"hasDynamicHelp": false,
|
|
5155
5202
|
"multiple": false,
|
|
5156
5203
|
"type": "option"
|
|
5157
5204
|
},
|
|
5158
|
-
"
|
|
5159
|
-
"
|
|
5160
|
-
"
|
|
5161
|
-
"
|
|
5205
|
+
"exclude": {
|
|
5206
|
+
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
5207
|
+
"name": "exclude",
|
|
5208
|
+
"hasDynamicHelp": false,
|
|
5209
|
+
"multiple": false,
|
|
5210
|
+
"type": "option"
|
|
5211
|
+
},
|
|
5212
|
+
"incremental": {
|
|
5213
|
+
"description": "Skip unchanged files using stored checksums from last push",
|
|
5214
|
+
"name": "incremental",
|
|
5215
|
+
"allowNo": false,
|
|
5216
|
+
"type": "boolean"
|
|
5217
|
+
},
|
|
5218
|
+
"change-detail": {
|
|
5219
|
+
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
5220
|
+
"name": "change-detail",
|
|
5162
5221
|
"allowNo": false,
|
|
5163
5222
|
"type": "boolean"
|
|
5164
5223
|
}
|
|
5165
5224
|
},
|
|
5166
5225
|
"hasDynamicHelp": false,
|
|
5167
5226
|
"hiddenAliases": [],
|
|
5168
|
-
"id": "
|
|
5227
|
+
"id": "sync:push",
|
|
5169
5228
|
"pluginAlias": "@memberjunction/cli",
|
|
5170
5229
|
"pluginName": "@memberjunction/cli",
|
|
5171
5230
|
"pluginType": "core",
|
|
5172
5231
|
"strict": true,
|
|
5173
5232
|
"enableJsonFlag": false,
|
|
5233
|
+
"Usage": {
|
|
5234
|
+
"domain": "sync",
|
|
5235
|
+
"command": "sync:push",
|
|
5236
|
+
"summary": "Push local metadata files to the database (upsert).",
|
|
5237
|
+
"description": "Reads entity directories under --dir and creates/updates matching records. Runs validation first unless --no-validate.",
|
|
5238
|
+
"flags": [
|
|
5239
|
+
{
|
|
5240
|
+
"name": "--dir",
|
|
5241
|
+
"type": "string",
|
|
5242
|
+
"description": "Entity directory to push"
|
|
5243
|
+
},
|
|
5244
|
+
{
|
|
5245
|
+
"name": "--dry-run",
|
|
5246
|
+
"type": "boolean",
|
|
5247
|
+
"description": "Report what would change without writing"
|
|
5248
|
+
},
|
|
5249
|
+
{
|
|
5250
|
+
"name": "--ci",
|
|
5251
|
+
"type": "boolean",
|
|
5252
|
+
"description": "No prompts; non-zero exit on error"
|
|
5253
|
+
},
|
|
5254
|
+
{
|
|
5255
|
+
"name": "--no-validate",
|
|
5256
|
+
"type": "boolean",
|
|
5257
|
+
"description": "Skip pre-push validation"
|
|
5258
|
+
},
|
|
5259
|
+
{
|
|
5260
|
+
"name": "--incremental",
|
|
5261
|
+
"type": "boolean",
|
|
5262
|
+
"description": "Skip unchanged files using stored checksums"
|
|
5263
|
+
},
|
|
5264
|
+
{
|
|
5265
|
+
"name": "--format",
|
|
5266
|
+
"type": "text|json|md",
|
|
5267
|
+
"description": "Output format (json for machine-readable result)"
|
|
5268
|
+
}
|
|
5269
|
+
],
|
|
5270
|
+
"examples": [
|
|
5271
|
+
"mj sync push --dir=ai-agents",
|
|
5272
|
+
"mj sync push --ci --format=json"
|
|
5273
|
+
],
|
|
5274
|
+
"runtime": {
|
|
5275
|
+
"class": "variable",
|
|
5276
|
+
"typicalSeconds": 20,
|
|
5277
|
+
"note": "scales with number of records in --dir"
|
|
5278
|
+
}
|
|
5279
|
+
},
|
|
5174
5280
|
"isESM": true,
|
|
5175
5281
|
"relativePath": [
|
|
5176
5282
|
"dist",
|
|
5177
5283
|
"commands",
|
|
5178
|
-
"
|
|
5179
|
-
"
|
|
5284
|
+
"sync",
|
|
5285
|
+
"push.js"
|
|
5180
5286
|
]
|
|
5181
5287
|
},
|
|
5182
|
-
"
|
|
5183
|
-
"aliases": [],
|
|
5184
|
-
"args": {},
|
|
5185
|
-
"description": "
|
|
5186
|
-
"examples": [
|
|
5187
|
-
"<%= config.bin %>
|
|
5188
|
-
"<%= config.bin %>
|
|
5189
|
-
"<%= config.bin %>
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
"
|
|
5195
|
-
"name": "from",
|
|
5196
|
-
"required": true,
|
|
5197
|
-
"hasDynamicHelp": false,
|
|
5198
|
-
"multiple": false,
|
|
5199
|
-
"options": [
|
|
5200
|
-
"sqlserver",
|
|
5201
|
-
"postgresql"
|
|
5202
|
-
],
|
|
5203
|
-
"type": "option"
|
|
5204
|
-
},
|
|
5205
|
-
"to": {
|
|
5206
|
-
"description": "Target SQL dialect",
|
|
5207
|
-
"name": "to",
|
|
5208
|
-
"required": true,
|
|
5288
|
+
"sync:status": {
|
|
5289
|
+
"aliases": [],
|
|
5290
|
+
"args": {},
|
|
5291
|
+
"description": "Show status of local files vs database",
|
|
5292
|
+
"examples": [
|
|
5293
|
+
"<%= config.bin %> <%= command.id %>",
|
|
5294
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
5295
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
5296
|
+
],
|
|
5297
|
+
"flags": {
|
|
5298
|
+
"dir": {
|
|
5299
|
+
"description": "Specific entity directory to check status",
|
|
5300
|
+
"name": "dir",
|
|
5209
5301
|
"hasDynamicHelp": false,
|
|
5210
5302
|
"multiple": false,
|
|
5211
|
-
"options": [
|
|
5212
|
-
"sqlserver",
|
|
5213
|
-
"postgresql"
|
|
5214
|
-
],
|
|
5215
5303
|
"type": "option"
|
|
5216
5304
|
},
|
|
5217
|
-
"
|
|
5218
|
-
"
|
|
5219
|
-
"
|
|
5220
|
-
"
|
|
5221
|
-
"
|
|
5222
|
-
"
|
|
5223
|
-
"options": [
|
|
5224
|
-
"queries",
|
|
5225
|
-
"views",
|
|
5226
|
-
"filters",
|
|
5227
|
-
"all"
|
|
5228
|
-
],
|
|
5229
|
-
"type": "option"
|
|
5305
|
+
"verbose": {
|
|
5306
|
+
"char": "v",
|
|
5307
|
+
"description": "Show detailed field-level differences",
|
|
5308
|
+
"name": "verbose",
|
|
5309
|
+
"allowNo": false,
|
|
5310
|
+
"type": "boolean"
|
|
5230
5311
|
},
|
|
5231
|
-
"
|
|
5232
|
-
"description": "
|
|
5233
|
-
"name": "
|
|
5312
|
+
"include": {
|
|
5313
|
+
"description": "Only process these directories (comma-separated, supports patterns)",
|
|
5314
|
+
"name": "include",
|
|
5234
5315
|
"hasDynamicHelp": false,
|
|
5235
5316
|
"multiple": false,
|
|
5236
5317
|
"type": "option"
|
|
5237
5318
|
},
|
|
5238
|
-
"
|
|
5239
|
-
"description": "
|
|
5240
|
-
"name": "
|
|
5241
|
-
"allowNo": false,
|
|
5242
|
-
"type": "boolean"
|
|
5243
|
-
},
|
|
5244
|
-
"review": {
|
|
5245
|
-
"description": "Generate review report only (no writes to database)",
|
|
5246
|
-
"name": "review",
|
|
5247
|
-
"allowNo": false,
|
|
5248
|
-
"type": "boolean"
|
|
5249
|
-
},
|
|
5250
|
-
"output": {
|
|
5251
|
-
"char": "o",
|
|
5252
|
-
"description": "Output directory for the translation report",
|
|
5253
|
-
"name": "output",
|
|
5319
|
+
"exclude": {
|
|
5320
|
+
"description": "Skip these directories (comma-separated, supports patterns)",
|
|
5321
|
+
"name": "exclude",
|
|
5254
5322
|
"hasDynamicHelp": false,
|
|
5255
5323
|
"multiple": false,
|
|
5256
5324
|
"type": "option"
|
|
5257
|
-
},
|
|
5258
|
-
"force": {
|
|
5259
|
-
"description": "Re-translate even if platform variants already exist",
|
|
5260
|
-
"name": "force",
|
|
5261
|
-
"allowNo": false,
|
|
5262
|
-
"type": "boolean"
|
|
5263
5325
|
}
|
|
5264
5326
|
},
|
|
5265
5327
|
"hasDynamicHelp": false,
|
|
5266
5328
|
"hiddenAliases": [],
|
|
5267
|
-
"id": "
|
|
5329
|
+
"id": "sync:status",
|
|
5268
5330
|
"pluginAlias": "@memberjunction/cli",
|
|
5269
5331
|
"pluginName": "@memberjunction/cli",
|
|
5270
5332
|
"pluginType": "core",
|
|
@@ -5274,14 +5336,14 @@
|
|
|
5274
5336
|
"relativePath": [
|
|
5275
5337
|
"dist",
|
|
5276
5338
|
"commands",
|
|
5277
|
-
"
|
|
5278
|
-
"
|
|
5339
|
+
"sync",
|
|
5340
|
+
"status.js"
|
|
5279
5341
|
]
|
|
5280
5342
|
},
|
|
5281
|
-
"
|
|
5343
|
+
"sync:usage": {
|
|
5282
5344
|
"aliases": [],
|
|
5283
5345
|
"args": {},
|
|
5284
|
-
"description": "Show usage, flags, examples, and runtime hints for every `mj
|
|
5346
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj sync` command.",
|
|
5285
5347
|
"flags": {
|
|
5286
5348
|
"format": {
|
|
5287
5349
|
"description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
|
|
@@ -5298,7 +5360,7 @@
|
|
|
5298
5360
|
},
|
|
5299
5361
|
"hasDynamicHelp": false,
|
|
5300
5362
|
"hiddenAliases": [],
|
|
5301
|
-
"id": "
|
|
5363
|
+
"id": "sync:usage",
|
|
5302
5364
|
"pluginAlias": "@memberjunction/cli",
|
|
5303
5365
|
"pluginName": "@memberjunction/cli",
|
|
5304
5366
|
"pluginType": "core",
|
|
@@ -5308,135 +5370,52 @@
|
|
|
5308
5370
|
"relativePath": [
|
|
5309
5371
|
"dist",
|
|
5310
5372
|
"commands",
|
|
5311
|
-
"
|
|
5373
|
+
"sync",
|
|
5312
5374
|
"usage.js"
|
|
5313
5375
|
]
|
|
5314
5376
|
},
|
|
5315
|
-
"
|
|
5377
|
+
"sync:validate": {
|
|
5316
5378
|
"aliases": [],
|
|
5317
5379
|
"args": {},
|
|
5318
|
-
"description": "
|
|
5380
|
+
"description": "Validate metadata files",
|
|
5319
5381
|
"examples": [
|
|
5320
|
-
"<%= config.bin %>
|
|
5321
|
-
"<%= config.bin %>
|
|
5322
|
-
"<%= config.bin %>
|
|
5323
|
-
"<%= config.bin %>
|
|
5324
|
-
"<%= config.bin %> update:claude --json"
|
|
5382
|
+
"<%= config.bin %> <%= command.id %>",
|
|
5383
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
5384
|
+
"<%= config.bin %> <%= command.id %> --save-report",
|
|
5385
|
+
"<%= config.bin %> <%= command.id %> --verbose"
|
|
5325
5386
|
],
|
|
5326
5387
|
"flags": {
|
|
5327
5388
|
"dir": {
|
|
5328
|
-
"description": "
|
|
5389
|
+
"description": "Specific entity directory to validate",
|
|
5329
5390
|
"name": "dir",
|
|
5330
|
-
"default": ".",
|
|
5331
5391
|
"hasDynamicHelp": false,
|
|
5332
5392
|
"multiple": false,
|
|
5333
5393
|
"type": "option"
|
|
5334
5394
|
},
|
|
5335
|
-
"
|
|
5336
|
-
"
|
|
5337
|
-
"
|
|
5338
|
-
"
|
|
5339
|
-
"multiple": false,
|
|
5340
|
-
"type": "option"
|
|
5341
|
-
},
|
|
5342
|
-
"ref": {
|
|
5343
|
-
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
5344
|
-
"name": "ref",
|
|
5345
|
-
"hasDynamicHelp": false,
|
|
5346
|
-
"multiple": false,
|
|
5347
|
-
"type": "option"
|
|
5348
|
-
},
|
|
5349
|
-
"from": {
|
|
5350
|
-
"description": "Use a local pack source instead of fetching from GitHub",
|
|
5351
|
-
"name": "from",
|
|
5352
|
-
"hasDynamicHelp": false,
|
|
5353
|
-
"multiple": false,
|
|
5354
|
-
"type": "option"
|
|
5355
|
-
},
|
|
5356
|
-
"offline": {
|
|
5357
|
-
"description": "Forbid network; requires --from <path>",
|
|
5358
|
-
"name": "offline",
|
|
5359
|
-
"allowNo": false,
|
|
5360
|
-
"type": "boolean"
|
|
5361
|
-
},
|
|
5362
|
-
"dry-run": {
|
|
5363
|
-
"description": "Print what would be written; change nothing",
|
|
5364
|
-
"name": "dry-run",
|
|
5365
|
-
"allowNo": false,
|
|
5366
|
-
"type": "boolean"
|
|
5367
|
-
},
|
|
5368
|
-
"yes": {
|
|
5369
|
-
"char": "y",
|
|
5370
|
-
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
5371
|
-
"name": "yes",
|
|
5372
|
-
"allowNo": false,
|
|
5373
|
-
"type": "boolean"
|
|
5374
|
-
},
|
|
5375
|
-
"force": {
|
|
5376
|
-
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
5377
|
-
"name": "force",
|
|
5378
|
-
"allowNo": false,
|
|
5379
|
-
"type": "boolean"
|
|
5380
|
-
},
|
|
5381
|
-
"skip-commands": {
|
|
5382
|
-
"description": "Skip seeding .claude/commands/",
|
|
5383
|
-
"name": "skip-commands",
|
|
5384
|
-
"allowNo": false,
|
|
5385
|
-
"type": "boolean"
|
|
5386
|
-
},
|
|
5387
|
-
"skip-skills": {
|
|
5388
|
-
"description": "Skip seeding .claude/skills/",
|
|
5389
|
-
"name": "skip-skills",
|
|
5390
|
-
"allowNo": false,
|
|
5391
|
-
"type": "boolean"
|
|
5392
|
-
},
|
|
5393
|
-
"skip-settings": {
|
|
5394
|
-
"description": "Skip merging .claude/settings.json",
|
|
5395
|
-
"name": "skip-settings",
|
|
5396
|
-
"allowNo": false,
|
|
5397
|
-
"type": "boolean"
|
|
5398
|
-
},
|
|
5399
|
-
"check": {
|
|
5400
|
-
"description": "Compare local pack version to remote without writing anything",
|
|
5401
|
-
"name": "check",
|
|
5402
|
-
"allowNo": false,
|
|
5403
|
-
"type": "boolean"
|
|
5404
|
-
},
|
|
5405
|
-
"refresh-commands": {
|
|
5406
|
-
"description": "Force-resync .claude/commands/* from the pack (saves .bak files)",
|
|
5407
|
-
"name": "refresh-commands",
|
|
5408
|
-
"allowNo": false,
|
|
5409
|
-
"type": "boolean"
|
|
5410
|
-
},
|
|
5411
|
-
"refresh-skills": {
|
|
5412
|
-
"description": "Force-resync .claude/skills/** from the pack (saves .bak files)",
|
|
5413
|
-
"name": "refresh-skills",
|
|
5414
|
-
"allowNo": false,
|
|
5415
|
-
"type": "boolean"
|
|
5416
|
-
},
|
|
5417
|
-
"allow-major": {
|
|
5418
|
-
"description": "Allow the remote pack's major to differ from local MJ's major",
|
|
5419
|
-
"name": "allow-major",
|
|
5395
|
+
"verbose": {
|
|
5396
|
+
"char": "v",
|
|
5397
|
+
"description": "Show detailed validation output",
|
|
5398
|
+
"name": "verbose",
|
|
5420
5399
|
"allowNo": false,
|
|
5421
5400
|
"type": "boolean"
|
|
5422
5401
|
},
|
|
5423
|
-
"
|
|
5424
|
-
"description": "
|
|
5425
|
-
"name": "
|
|
5402
|
+
"save-report": {
|
|
5403
|
+
"description": "Save validation report as markdown file",
|
|
5404
|
+
"name": "save-report",
|
|
5426
5405
|
"allowNo": false,
|
|
5427
5406
|
"type": "boolean"
|
|
5428
5407
|
},
|
|
5429
|
-
"
|
|
5430
|
-
"
|
|
5431
|
-
"
|
|
5432
|
-
"
|
|
5433
|
-
"
|
|
5434
|
-
"type": "
|
|
5408
|
+
"output": {
|
|
5409
|
+
"description": "Output file path for validation report (default: validation-report.md)",
|
|
5410
|
+
"name": "output",
|
|
5411
|
+
"hasDynamicHelp": false,
|
|
5412
|
+
"multiple": false,
|
|
5413
|
+
"type": "option"
|
|
5435
5414
|
}
|
|
5436
5415
|
},
|
|
5437
5416
|
"hasDynamicHelp": false,
|
|
5438
5417
|
"hiddenAliases": [],
|
|
5439
|
-
"id": "
|
|
5418
|
+
"id": "sync:validate",
|
|
5440
5419
|
"pluginAlias": "@memberjunction/cli",
|
|
5441
5420
|
"pluginName": "@memberjunction/cli",
|
|
5442
5421
|
"pluginType": "core",
|
|
@@ -5446,31 +5425,52 @@
|
|
|
5446
5425
|
"relativePath": [
|
|
5447
5426
|
"dist",
|
|
5448
5427
|
"commands",
|
|
5449
|
-
"
|
|
5450
|
-
"
|
|
5428
|
+
"sync",
|
|
5429
|
+
"validate.js"
|
|
5451
5430
|
]
|
|
5452
5431
|
},
|
|
5453
|
-
"
|
|
5432
|
+
"sync:watch": {
|
|
5454
5433
|
"aliases": [],
|
|
5455
5434
|
"args": {},
|
|
5456
|
-
"description": "
|
|
5435
|
+
"description": "Watch for file changes and sync automatically",
|
|
5436
|
+
"examples": [
|
|
5437
|
+
"<%= config.bin %> <%= command.id %>",
|
|
5438
|
+
"<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
|
|
5439
|
+
"<%= config.bin %> <%= command.id %> --debounce=1000",
|
|
5440
|
+
"<%= config.bin %> <%= command.id %> --no-validate"
|
|
5441
|
+
],
|
|
5457
5442
|
"flags": {
|
|
5458
|
-
"
|
|
5459
|
-
"description": "
|
|
5460
|
-
"name": "
|
|
5443
|
+
"dir": {
|
|
5444
|
+
"description": "Specific entity directory to watch",
|
|
5445
|
+
"name": "dir",
|
|
5446
|
+
"hasDynamicHelp": false,
|
|
5447
|
+
"multiple": false,
|
|
5448
|
+
"type": "option"
|
|
5449
|
+
},
|
|
5450
|
+
"debounce": {
|
|
5451
|
+
"description": "Debounce delay in milliseconds (default: 500)",
|
|
5452
|
+
"name": "debounce",
|
|
5461
5453
|
"hasDynamicHelp": false,
|
|
5462
5454
|
"multiple": false,
|
|
5463
|
-
"options": [
|
|
5464
|
-
"text",
|
|
5465
|
-
"json",
|
|
5466
|
-
"md"
|
|
5467
|
-
],
|
|
5468
5455
|
"type": "option"
|
|
5456
|
+
},
|
|
5457
|
+
"no-validate": {
|
|
5458
|
+
"description": "Skip validation before sync",
|
|
5459
|
+
"name": "no-validate",
|
|
5460
|
+
"allowNo": false,
|
|
5461
|
+
"type": "boolean"
|
|
5462
|
+
},
|
|
5463
|
+
"verbose": {
|
|
5464
|
+
"char": "v",
|
|
5465
|
+
"description": "Show detailed output",
|
|
5466
|
+
"name": "verbose",
|
|
5467
|
+
"allowNo": false,
|
|
5468
|
+
"type": "boolean"
|
|
5469
5469
|
}
|
|
5470
5470
|
},
|
|
5471
5471
|
"hasDynamicHelp": false,
|
|
5472
5472
|
"hiddenAliases": [],
|
|
5473
|
-
"id": "
|
|
5473
|
+
"id": "sync:watch",
|
|
5474
5474
|
"pluginAlias": "@memberjunction/cli",
|
|
5475
5475
|
"pluginName": "@memberjunction/cli",
|
|
5476
5476
|
"pluginType": "core",
|
|
@@ -5480,8 +5480,8 @@
|
|
|
5480
5480
|
"relativePath": [
|
|
5481
5481
|
"dist",
|
|
5482
5482
|
"commands",
|
|
5483
|
-
"
|
|
5484
|
-
"
|
|
5483
|
+
"sync",
|
|
5484
|
+
"watch.js"
|
|
5485
5485
|
]
|
|
5486
5486
|
},
|
|
5487
5487
|
"ai:actions:list": {
|
|
@@ -6847,5 +6847,5 @@
|
|
|
6847
6847
|
]
|
|
6848
6848
|
}
|
|
6849
6849
|
},
|
|
6850
|
-
"version": "6.1.0
|
|
6850
|
+
"version": "6.1.0"
|
|
6851
6851
|
}
|