@memberjunction/cli 6.1.0-edge.2 → 6.1.0-edge.4
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/LICENSE +180 -4
- package/README.md +1 -1
- package/dist/commands/codegen/manifest.d.ts +14 -0
- package/dist/commands/codegen/manifest.d.ts.map +1 -1
- package/dist/commands/codegen/manifest.js +26 -7
- package/dist/commands/codegen/manifest.js.map +1 -1
- package/dist/commands/dev/index.d.ts +7 -0
- package/dist/commands/dev/index.d.ts.map +1 -0
- package/dist/commands/dev/index.js +11 -0
- package/dist/commands/dev/index.js.map +1 -0
- package/dist/commands/dev/usage.d.ts +7 -0
- package/dist/commands/dev/usage.d.ts.map +1 -0
- package/dist/commands/dev/usage.js +10 -0
- package/dist/commands/dev/usage.js.map +1 -0
- package/dist/commands/dev/workspace/clean.d.ts +27 -0
- package/dist/commands/dev/workspace/clean.d.ts.map +1 -0
- package/dist/commands/dev/workspace/clean.js +87 -0
- package/dist/commands/dev/workspace/clean.js.map +1 -0
- package/dist/commands/dev/workspace/doctor.d.ts +28 -0
- package/dist/commands/dev/workspace/doctor.d.ts.map +1 -0
- package/dist/commands/dev/workspace/doctor.js +62 -0
- package/dist/commands/dev/workspace/doctor.js.map +1 -0
- package/dist/commands/dev/workspace/index.d.ts +60 -0
- package/dist/commands/dev/workspace/index.d.ts.map +1 -0
- package/dist/commands/dev/workspace/index.js +279 -0
- package/dist/commands/dev/workspace/index.js.map +1 -0
- package/dist/commands/dev/workspace/status.d.ts +19 -0
- package/dist/commands/dev/workspace/status.d.ts.map +1 -0
- package/dist/commands/dev/workspace/status.js +46 -0
- package/dist/commands/dev/workspace/status.js.map +1 -0
- package/dist/commands/migrate/convert.d.ts +25 -0
- package/dist/commands/migrate/convert.d.ts.map +1 -1
- package/dist/commands/migrate/convert.js +61 -8
- package/dist/commands/migrate/convert.js.map +1 -1
- package/dist/commands/migrate/index.d.ts +9 -0
- package/dist/commands/migrate/index.d.ts.map +1 -1
- package/dist/commands/migrate/index.js +41 -1
- package/dist/commands/migrate/index.js.map +1 -1
- package/dist/lib/cli-plugins.d.ts.map +1 -1
- package/dist/lib/cli-plugins.js +5 -0
- package/dist/lib/cli-plugins.js.map +1 -1
- package/dist/lib/dev-workspace/build.d.ts +180 -0
- package/dist/lib/dev-workspace/build.d.ts.map +1 -0
- package/dist/lib/dev-workspace/build.js +570 -0
- package/dist/lib/dev-workspace/build.js.map +1 -0
- package/dist/lib/dev-workspace/clean.d.ts +40 -0
- package/dist/lib/dev-workspace/clean.d.ts.map +1 -0
- package/dist/lib/dev-workspace/clean.js +193 -0
- package/dist/lib/dev-workspace/clean.js.map +1 -0
- package/dist/lib/dev-workspace/detect.d.ts +56 -0
- package/dist/lib/dev-workspace/detect.d.ts.map +1 -0
- package/dist/lib/dev-workspace/detect.js +343 -0
- package/dist/lib/dev-workspace/detect.js.map +1 -0
- package/dist/lib/dev-workspace/dir-flag.d.ts +23 -0
- package/dist/lib/dev-workspace/dir-flag.d.ts.map +1 -0
- package/dist/lib/dev-workspace/dir-flag.js +24 -0
- package/dist/lib/dev-workspace/dir-flag.js.map +1 -0
- package/dist/lib/dev-workspace/doctor.d.ts +96 -0
- package/dist/lib/dev-workspace/doctor.d.ts.map +1 -0
- package/dist/lib/dev-workspace/doctor.js +400 -0
- package/dist/lib/dev-workspace/doctor.js.map +1 -0
- package/dist/lib/dev-workspace/lockfile.d.ts +62 -0
- package/dist/lib/dev-workspace/lockfile.d.ts.map +1 -0
- package/dist/lib/dev-workspace/lockfile.js +456 -0
- package/dist/lib/dev-workspace/lockfile.js.map +1 -0
- package/dist/lib/dev-workspace/member-installs.d.ts +35 -0
- package/dist/lib/dev-workspace/member-installs.d.ts.map +1 -0
- package/dist/lib/dev-workspace/member-installs.js +139 -0
- package/dist/lib/dev-workspace/member-installs.js.map +1 -0
- package/dist/lib/dev-workspace/pnpm.d.ts +29 -0
- package/dist/lib/dev-workspace/pnpm.d.ts.map +1 -0
- package/dist/lib/dev-workspace/pnpm.js +59 -0
- package/dist/lib/dev-workspace/pnpm.js.map +1 -0
- package/dist/lib/dev-workspace/status.d.ts +16 -0
- package/dist/lib/dev-workspace/status.d.ts.map +1 -0
- package/dist/lib/dev-workspace/status.js +185 -0
- package/dist/lib/dev-workspace/status.js.map +1 -0
- package/dist/lib/dev-workspace/types.d.ts +312 -0
- package/dist/lib/dev-workspace/types.d.ts.map +1 -0
- package/dist/lib/dev-workspace/types.js +14 -0
- package/dist/lib/dev-workspace/types.js.map +1 -0
- package/dist/lib/dev-workspace/usage.d.ts +30 -0
- package/dist/lib/dev-workspace/usage.d.ts.map +1 -0
- package/dist/lib/dev-workspace/usage.js +177 -0
- package/dist/lib/dev-workspace/usage.js.map +1 -0
- package/dist/lib/dev-workspace/write.d.ts +25 -0
- package/dist/lib/dev-workspace/write.d.ts.map +1 -0
- package/dist/lib/dev-workspace/write.js +75 -0
- package/dist/lib/dev-workspace/write.js.map +1 -0
- package/dist/light-commands.d.ts.map +1 -1
- package/dist/light-commands.js +7 -0
- package/dist/light-commands.js.map +1 -1
- package/oclif.manifest.json +1228 -969
- package/package.json +22 -22
package/oclif.manifest.json
CHANGED
|
@@ -38,403 +38,15 @@
|
|
|
38
38
|
"usage.js"
|
|
39
39
|
]
|
|
40
40
|
},
|
|
41
|
-
"
|
|
42
|
-
"aliases": [],
|
|
43
|
-
"args": {},
|
|
44
|
-
"description": "Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.",
|
|
45
|
-
"examples": [
|
|
46
|
-
"<%= config.bin %> <%= command.id %> --out ./migrations/v5/ # auto: within-major rebaseline",
|
|
47
|
-
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --out ./migrations/v5/",
|
|
48
|
-
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --out ./migrations/v6/ # explicit major-boundary",
|
|
49
|
-
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
50
|
-
],
|
|
51
|
-
"flags": {
|
|
52
|
-
"baseline-version": {
|
|
53
|
-
"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).",
|
|
54
|
-
"name": "baseline-version",
|
|
55
|
-
"hasDynamicHelp": false,
|
|
56
|
-
"multiple": false,
|
|
57
|
-
"type": "option"
|
|
58
|
-
},
|
|
59
|
-
"source-dir": {
|
|
60
|
-
"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.",
|
|
61
|
-
"name": "source-dir",
|
|
62
|
-
"hasDynamicHelp": false,
|
|
63
|
-
"multiple": false,
|
|
64
|
-
"type": "option"
|
|
65
|
-
},
|
|
66
|
-
"description": {
|
|
67
|
-
"description": "Human-readable description embedded in the file header.",
|
|
68
|
-
"name": "description",
|
|
69
|
-
"default": "MemberJunction Baseline",
|
|
70
|
-
"hasDynamicHelp": false,
|
|
71
|
-
"multiple": false,
|
|
72
|
-
"type": "option"
|
|
73
|
-
},
|
|
74
|
-
"database": {
|
|
75
|
-
"description": "Override database name (host/user/password come from MJ config).",
|
|
76
|
-
"name": "database",
|
|
77
|
-
"hasDynamicHelp": false,
|
|
78
|
-
"multiple": false,
|
|
79
|
-
"type": "option"
|
|
80
|
-
},
|
|
81
|
-
"out": {
|
|
82
|
-
"description": "Output directory. Filename is auto-generated.",
|
|
83
|
-
"name": "out",
|
|
84
|
-
"default": ".",
|
|
85
|
-
"hasDynamicHelp": false,
|
|
86
|
-
"multiple": false,
|
|
87
|
-
"type": "option"
|
|
88
|
-
},
|
|
89
|
-
"exclude-data": {
|
|
90
|
-
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
91
|
-
"name": "exclude-data",
|
|
92
|
-
"default": "",
|
|
93
|
-
"hasDynamicHelp": false,
|
|
94
|
-
"multiple": false,
|
|
95
|
-
"type": "option"
|
|
96
|
-
},
|
|
97
|
-
"batch-size": {
|
|
98
|
-
"description": "Rows per INSERT batch.",
|
|
99
|
-
"name": "batch-size",
|
|
100
|
-
"default": 1000,
|
|
101
|
-
"hasDynamicHelp": false,
|
|
102
|
-
"multiple": false,
|
|
103
|
-
"type": "option"
|
|
104
|
-
},
|
|
105
|
-
"no-data": {
|
|
106
|
-
"description": "Emit schema only, no data inserts.",
|
|
107
|
-
"name": "no-data",
|
|
108
|
-
"allowNo": false,
|
|
109
|
-
"type": "boolean"
|
|
110
|
-
},
|
|
111
|
-
"verbose": {
|
|
112
|
-
"description": "Print per-object progress.",
|
|
113
|
-
"name": "verbose",
|
|
114
|
-
"allowNo": false,
|
|
115
|
-
"type": "boolean"
|
|
116
|
-
},
|
|
117
|
-
"dry-run": {
|
|
118
|
-
"description": "Print to stdout instead of writing a file.",
|
|
119
|
-
"name": "dry-run",
|
|
120
|
-
"allowNo": false,
|
|
121
|
-
"type": "boolean"
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
"hasDynamicHelp": false,
|
|
125
|
-
"hiddenAliases": [],
|
|
126
|
-
"id": "baseline:build",
|
|
127
|
-
"pluginAlias": "@memberjunction/cli",
|
|
128
|
-
"pluginName": "@memberjunction/cli",
|
|
129
|
-
"pluginType": "core",
|
|
130
|
-
"strict": true,
|
|
131
|
-
"enableJsonFlag": false,
|
|
132
|
-
"isESM": true,
|
|
133
|
-
"relativePath": [
|
|
134
|
-
"dist",
|
|
135
|
-
"commands",
|
|
136
|
-
"baseline",
|
|
137
|
-
"build.js"
|
|
138
|
-
]
|
|
139
|
-
},
|
|
140
|
-
"baseline:compare": {
|
|
141
|
-
"aliases": [],
|
|
142
|
-
"args": {},
|
|
143
|
-
"description": "Deterministically compare two databases object-by-object and row-by-row.",
|
|
144
|
-
"examples": [
|
|
145
|
-
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
146
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
147
|
-
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
148
|
-
],
|
|
149
|
-
"flags": {
|
|
150
|
-
"left": {
|
|
151
|
-
"description": "Left database name (override).",
|
|
152
|
-
"name": "left",
|
|
153
|
-
"required": true,
|
|
154
|
-
"hasDynamicHelp": false,
|
|
155
|
-
"multiple": false,
|
|
156
|
-
"type": "option"
|
|
157
|
-
},
|
|
158
|
-
"right": {
|
|
159
|
-
"description": "Right database name (override).",
|
|
160
|
-
"name": "right",
|
|
161
|
-
"required": true,
|
|
162
|
-
"hasDynamicHelp": false,
|
|
163
|
-
"multiple": false,
|
|
164
|
-
"type": "option"
|
|
165
|
-
},
|
|
166
|
-
"dialect": {
|
|
167
|
-
"description": "Dialect of both DBs (must match).",
|
|
168
|
-
"name": "dialect",
|
|
169
|
-
"default": "mssql",
|
|
170
|
-
"hasDynamicHelp": false,
|
|
171
|
-
"multiple": false,
|
|
172
|
-
"options": [
|
|
173
|
-
"mssql",
|
|
174
|
-
"postgres"
|
|
175
|
-
],
|
|
176
|
-
"type": "option"
|
|
177
|
-
},
|
|
178
|
-
"row-compare": {
|
|
179
|
-
"description": "Row comparison mode.",
|
|
180
|
-
"name": "row-compare",
|
|
181
|
-
"default": "full",
|
|
182
|
-
"hasDynamicHelp": false,
|
|
183
|
-
"multiple": false,
|
|
184
|
-
"options": [
|
|
185
|
-
"full",
|
|
186
|
-
"hash",
|
|
187
|
-
"counts",
|
|
188
|
-
"none"
|
|
189
|
-
],
|
|
190
|
-
"type": "option"
|
|
191
|
-
},
|
|
192
|
-
"row-hash-algo": {
|
|
193
|
-
"description": "Hash algorithm when --row-compare hash.",
|
|
194
|
-
"name": "row-hash-algo",
|
|
195
|
-
"default": "sha256",
|
|
196
|
-
"hasDynamicHelp": false,
|
|
197
|
-
"multiple": false,
|
|
198
|
-
"options": [
|
|
199
|
-
"sha256",
|
|
200
|
-
"md5",
|
|
201
|
-
"checksum_agg"
|
|
202
|
-
],
|
|
203
|
-
"type": "option"
|
|
204
|
-
},
|
|
205
|
-
"ignore": {
|
|
206
|
-
"description": "Regex of object names to skip.",
|
|
207
|
-
"name": "ignore",
|
|
208
|
-
"default": "^flyway_schema_history$",
|
|
209
|
-
"hasDynamicHelp": false,
|
|
210
|
-
"multiple": false,
|
|
211
|
-
"type": "option"
|
|
212
|
-
},
|
|
213
|
-
"sample-limit": {
|
|
214
|
-
"description": "Maximum row diffs to capture per table.",
|
|
215
|
-
"name": "sample-limit",
|
|
216
|
-
"default": 100,
|
|
217
|
-
"hasDynamicHelp": false,
|
|
218
|
-
"multiple": false,
|
|
219
|
-
"type": "option"
|
|
220
|
-
},
|
|
221
|
-
"out": {
|
|
222
|
-
"description": "Directory to write JSON + Markdown reports.",
|
|
223
|
-
"name": "out",
|
|
224
|
-
"hasDynamicHelp": false,
|
|
225
|
-
"multiple": false,
|
|
226
|
-
"type": "option"
|
|
227
|
-
},
|
|
228
|
-
"fail-on-diff": {
|
|
229
|
-
"description": "Exit non-zero if any diff is found.",
|
|
230
|
-
"name": "fail-on-diff",
|
|
231
|
-
"allowNo": false,
|
|
232
|
-
"type": "boolean"
|
|
233
|
-
},
|
|
234
|
-
"verbose": {
|
|
235
|
-
"description": "Print per-phase progress.",
|
|
236
|
-
"name": "verbose",
|
|
237
|
-
"allowNo": false,
|
|
238
|
-
"type": "boolean"
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
"hasDynamicHelp": false,
|
|
242
|
-
"hiddenAliases": [],
|
|
243
|
-
"id": "baseline:compare",
|
|
244
|
-
"pluginAlias": "@memberjunction/cli",
|
|
245
|
-
"pluginName": "@memberjunction/cli",
|
|
246
|
-
"pluginType": "core",
|
|
247
|
-
"strict": true,
|
|
248
|
-
"enableJsonFlag": false,
|
|
249
|
-
"isESM": true,
|
|
250
|
-
"relativePath": [
|
|
251
|
-
"dist",
|
|
252
|
-
"commands",
|
|
253
|
-
"baseline",
|
|
254
|
-
"compare.js"
|
|
255
|
-
]
|
|
256
|
-
},
|
|
257
|
-
"baseline:roundtrip": {
|
|
258
|
-
"aliases": [],
|
|
259
|
-
"args": {},
|
|
260
|
-
"description": "Build a baseline from a V-stack database, apply it to a fresh DB, and prove byte-equivalence.",
|
|
261
|
-
"examples": [
|
|
262
|
-
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
263
|
-
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
264
|
-
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
265
|
-
],
|
|
266
|
-
"flags": {
|
|
267
|
-
"baseline-version": {
|
|
268
|
-
"description": "Major.Minor version stamp. Omit to auto-detect from --source-dir (within-major rebaseline).",
|
|
269
|
-
"name": "baseline-version",
|
|
270
|
-
"hasDynamicHelp": false,
|
|
271
|
-
"multiple": false,
|
|
272
|
-
"type": "option"
|
|
273
|
-
},
|
|
274
|
-
"source-dir": {
|
|
275
|
-
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
276
|
-
"name": "source-dir",
|
|
277
|
-
"hasDynamicHelp": false,
|
|
278
|
-
"multiple": false,
|
|
279
|
-
"type": "option"
|
|
280
|
-
},
|
|
281
|
-
"description": {
|
|
282
|
-
"description": "Header description.",
|
|
283
|
-
"name": "description",
|
|
284
|
-
"default": "MemberJunction Baseline",
|
|
285
|
-
"hasDynamicHelp": false,
|
|
286
|
-
"multiple": false,
|
|
287
|
-
"type": "option"
|
|
288
|
-
},
|
|
289
|
-
"dialect": {
|
|
290
|
-
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
291
|
-
"name": "dialect",
|
|
292
|
-
"default": "mssql",
|
|
293
|
-
"hasDynamicHelp": false,
|
|
294
|
-
"multiple": false,
|
|
295
|
-
"options": [
|
|
296
|
-
"mssql",
|
|
297
|
-
"postgres"
|
|
298
|
-
],
|
|
299
|
-
"type": "option"
|
|
300
|
-
},
|
|
301
|
-
"source": {
|
|
302
|
-
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
303
|
-
"name": "source",
|
|
304
|
-
"required": true,
|
|
305
|
-
"hasDynamicHelp": false,
|
|
306
|
-
"multiple": false,
|
|
307
|
-
"type": "option"
|
|
308
|
-
},
|
|
309
|
-
"target": {
|
|
310
|
-
"description": "Empty database name to apply the new baseline to.",
|
|
311
|
-
"name": "target",
|
|
312
|
-
"required": true,
|
|
313
|
-
"hasDynamicHelp": false,
|
|
314
|
-
"multiple": false,
|
|
315
|
-
"type": "option"
|
|
316
|
-
},
|
|
317
|
-
"out": {
|
|
318
|
-
"description": "Output directory for baseline file + reports.",
|
|
319
|
-
"name": "out",
|
|
320
|
-
"default": ".",
|
|
321
|
-
"hasDynamicHelp": false,
|
|
322
|
-
"multiple": false,
|
|
323
|
-
"type": "option"
|
|
324
|
-
},
|
|
325
|
-
"apply-cmd": {
|
|
326
|
-
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
327
|
-
"name": "apply-cmd",
|
|
328
|
-
"hasDynamicHelp": false,
|
|
329
|
-
"multiple": false,
|
|
330
|
-
"type": "option"
|
|
331
|
-
},
|
|
332
|
-
"row-compare": {
|
|
333
|
-
"description": "Row compare mode passed to the comparator.",
|
|
334
|
-
"name": "row-compare",
|
|
335
|
-
"default": "full",
|
|
336
|
-
"hasDynamicHelp": false,
|
|
337
|
-
"multiple": false,
|
|
338
|
-
"options": [
|
|
339
|
-
"full",
|
|
340
|
-
"hash",
|
|
341
|
-
"counts",
|
|
342
|
-
"none"
|
|
343
|
-
],
|
|
344
|
-
"type": "option"
|
|
345
|
-
},
|
|
346
|
-
"fail-on-diff": {
|
|
347
|
-
"name": "fail-on-diff",
|
|
348
|
-
"allowNo": false,
|
|
349
|
-
"type": "boolean"
|
|
350
|
-
},
|
|
351
|
-
"keep-target": {
|
|
352
|
-
"description": "Do not drop the target database after run (useful for debugging diffs).",
|
|
353
|
-
"name": "keep-target",
|
|
354
|
-
"allowNo": false,
|
|
355
|
-
"type": "boolean"
|
|
356
|
-
},
|
|
357
|
-
"verbose": {
|
|
358
|
-
"name": "verbose",
|
|
359
|
-
"allowNo": false,
|
|
360
|
-
"type": "boolean"
|
|
361
|
-
}
|
|
362
|
-
},
|
|
363
|
-
"hasDynamicHelp": false,
|
|
364
|
-
"hiddenAliases": [],
|
|
365
|
-
"id": "baseline:roundtrip",
|
|
366
|
-
"pluginAlias": "@memberjunction/cli",
|
|
367
|
-
"pluginName": "@memberjunction/cli",
|
|
368
|
-
"pluginType": "core",
|
|
369
|
-
"strict": true,
|
|
370
|
-
"enableJsonFlag": false,
|
|
371
|
-
"isESM": true,
|
|
372
|
-
"relativePath": [
|
|
373
|
-
"dist",
|
|
374
|
-
"commands",
|
|
375
|
-
"baseline",
|
|
376
|
-
"roundtrip.js"
|
|
377
|
-
]
|
|
378
|
-
},
|
|
379
|
-
"bump": {
|
|
41
|
+
"ai": {
|
|
380
42
|
"aliases": [],
|
|
381
43
|
"args": {},
|
|
382
|
-
"description": "
|
|
383
|
-
"
|
|
384
|
-
{
|
|
385
|
-
"command": "<%= config.bin %> <%= command.id %>",
|
|
386
|
-
"description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
|
|
387
|
-
},
|
|
388
|
-
{
|
|
389
|
-
"command": "<%= config.bin %> <%= command.id %> -rdv",
|
|
390
|
-
"description": "Preview all recursive packages bumps without writing any changes."
|
|
391
|
-
},
|
|
392
|
-
{
|
|
393
|
-
"command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
|
|
394
|
-
"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."
|
|
395
|
-
}
|
|
396
|
-
],
|
|
397
|
-
"flags": {
|
|
398
|
-
"verbose": {
|
|
399
|
-
"char": "v",
|
|
400
|
-
"description": "Enable additional logging",
|
|
401
|
-
"name": "verbose",
|
|
402
|
-
"allowNo": false,
|
|
403
|
-
"type": "boolean"
|
|
404
|
-
},
|
|
405
|
-
"recursive": {
|
|
406
|
-
"char": "r",
|
|
407
|
-
"description": "Bump version in current directory and all subdirectories",
|
|
408
|
-
"name": "recursive",
|
|
409
|
-
"allowNo": false,
|
|
410
|
-
"type": "boolean"
|
|
411
|
-
},
|
|
412
|
-
"tag": {
|
|
413
|
-
"char": "t",
|
|
414
|
-
"description": "Version tag to bump target for bump (e.g. v2.10.0), defaults to the CLI version",
|
|
415
|
-
"name": "tag",
|
|
416
|
-
"hasDynamicHelp": false,
|
|
417
|
-
"multiple": false,
|
|
418
|
-
"type": "option"
|
|
419
|
-
},
|
|
420
|
-
"quiet": {
|
|
421
|
-
"char": "q",
|
|
422
|
-
"description": "Only output paths for updated packages",
|
|
423
|
-
"name": "quiet",
|
|
424
|
-
"allowNo": false,
|
|
425
|
-
"type": "boolean"
|
|
426
|
-
},
|
|
427
|
-
"dry": {
|
|
428
|
-
"char": "d",
|
|
429
|
-
"description": "Dry run, do not write changes to package.json files",
|
|
430
|
-
"name": "dry",
|
|
431
|
-
"allowNo": false,
|
|
432
|
-
"type": "boolean"
|
|
433
|
-
}
|
|
434
|
-
},
|
|
44
|
+
"description": "Execute AI agents and actions",
|
|
45
|
+
"flags": {},
|
|
435
46
|
"hasDynamicHelp": false,
|
|
47
|
+
"hidden": false,
|
|
436
48
|
"hiddenAliases": [],
|
|
437
|
-
"id": "
|
|
49
|
+
"id": "ai",
|
|
438
50
|
"pluginAlias": "@memberjunction/cli",
|
|
439
51
|
"pluginName": "@memberjunction/cli",
|
|
440
52
|
"pluginType": "core",
|
|
@@ -444,7 +56,7 @@
|
|
|
444
56
|
"relativePath": [
|
|
445
57
|
"dist",
|
|
446
58
|
"commands",
|
|
447
|
-
"
|
|
59
|
+
"ai",
|
|
448
60
|
"index.js"
|
|
449
61
|
]
|
|
450
62
|
},
|
|
@@ -677,36 +289,254 @@
|
|
|
677
289
|
"allowNo": false,
|
|
678
290
|
"type": "boolean"
|
|
679
291
|
},
|
|
680
|
-
"force": {
|
|
681
|
-
"description": "Force removal even if other apps depend on this one",
|
|
682
|
-
"name": "force",
|
|
683
|
-
"allowNo": false,
|
|
684
|
-
"type": "boolean"
|
|
292
|
+
"force": {
|
|
293
|
+
"description": "Force removal even if other apps depend on this one",
|
|
294
|
+
"name": "force",
|
|
295
|
+
"allowNo": false,
|
|
296
|
+
"type": "boolean"
|
|
297
|
+
},
|
|
298
|
+
"yes": {
|
|
299
|
+
"char": "y",
|
|
300
|
+
"description": "Skip confirmation prompt",
|
|
301
|
+
"name": "yes",
|
|
302
|
+
"allowNo": false,
|
|
303
|
+
"type": "boolean"
|
|
304
|
+
},
|
|
305
|
+
"verbose": {
|
|
306
|
+
"char": "v",
|
|
307
|
+
"description": "Show detailed output",
|
|
308
|
+
"name": "verbose",
|
|
309
|
+
"allowNo": false,
|
|
310
|
+
"type": "boolean"
|
|
311
|
+
},
|
|
312
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
313
|
+
"hidden": true,
|
|
314
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
315
|
+
"allowNo": false,
|
|
316
|
+
"type": "boolean"
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
"hasDynamicHelp": false,
|
|
320
|
+
"hiddenAliases": [],
|
|
321
|
+
"id": "app:remove",
|
|
322
|
+
"pluginAlias": "@memberjunction/cli",
|
|
323
|
+
"pluginName": "@memberjunction/cli",
|
|
324
|
+
"pluginType": "core",
|
|
325
|
+
"strict": true,
|
|
326
|
+
"enableJsonFlag": false,
|
|
327
|
+
"isESM": true,
|
|
328
|
+
"relativePath": [
|
|
329
|
+
"dist",
|
|
330
|
+
"commands",
|
|
331
|
+
"app",
|
|
332
|
+
"remove.js"
|
|
333
|
+
]
|
|
334
|
+
},
|
|
335
|
+
"app:upgrade": {
|
|
336
|
+
"aliases": [],
|
|
337
|
+
"args": {
|
|
338
|
+
"name": {
|
|
339
|
+
"description": "Name of the installed app to upgrade",
|
|
340
|
+
"name": "name",
|
|
341
|
+
"required": true
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
"description": "Upgrade an installed MJ Open App to a newer version",
|
|
345
|
+
"examples": [
|
|
346
|
+
"<%= config.bin %> app upgrade acme-crm",
|
|
347
|
+
"<%= config.bin %> app upgrade acme-crm --version 1.3.0"
|
|
348
|
+
],
|
|
349
|
+
"flags": {
|
|
350
|
+
"version": {
|
|
351
|
+
"description": "Specific version to upgrade to (default: latest)",
|
|
352
|
+
"name": "version",
|
|
353
|
+
"hasDynamicHelp": false,
|
|
354
|
+
"multiple": false,
|
|
355
|
+
"type": "option"
|
|
356
|
+
},
|
|
357
|
+
"verbose": {
|
|
358
|
+
"char": "v",
|
|
359
|
+
"description": "Show detailed output",
|
|
360
|
+
"name": "verbose",
|
|
361
|
+
"allowNo": false,
|
|
362
|
+
"type": "boolean"
|
|
363
|
+
},
|
|
364
|
+
"non-interactive": {
|
|
365
|
+
"description": "Skip interactive prompts; post-upgrade hooks use environment variables / defaults (for CI/headless upgrades)",
|
|
366
|
+
"name": "non-interactive",
|
|
367
|
+
"allowNo": false,
|
|
368
|
+
"type": "boolean"
|
|
369
|
+
},
|
|
370
|
+
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
371
|
+
"hidden": true,
|
|
372
|
+
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
373
|
+
"allowNo": false,
|
|
374
|
+
"type": "boolean"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"hasDynamicHelp": false,
|
|
378
|
+
"hiddenAliases": [],
|
|
379
|
+
"id": "app:upgrade",
|
|
380
|
+
"pluginAlias": "@memberjunction/cli",
|
|
381
|
+
"pluginName": "@memberjunction/cli",
|
|
382
|
+
"pluginType": "core",
|
|
383
|
+
"strict": true,
|
|
384
|
+
"enableJsonFlag": false,
|
|
385
|
+
"isESM": true,
|
|
386
|
+
"relativePath": [
|
|
387
|
+
"dist",
|
|
388
|
+
"commands",
|
|
389
|
+
"app",
|
|
390
|
+
"upgrade.js"
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
"artifacts:reclassify": {
|
|
394
|
+
"aliases": [],
|
|
395
|
+
"args": {},
|
|
396
|
+
"description": "Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. Normally a no-op: the v5.35 backfill migration handles this automatically. This command is only relevant when the migration ran BEFORE the artifact-type metadata (Generic Text / Generic Binary) was pushed via `mj sync push`, in which case the migration prints a notice telling you to run this. Reports \"no candidates\" once everything is reconciled. Dry-run by default; --apply writes through Record Changes.",
|
|
397
|
+
"examples": [
|
|
398
|
+
"<%= config.bin %> <%= command.id %>",
|
|
399
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
400
|
+
],
|
|
401
|
+
"flags": {
|
|
402
|
+
"conversation-id": {
|
|
403
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
404
|
+
"name": "conversation-id",
|
|
405
|
+
"hasDynamicHelp": false,
|
|
406
|
+
"multiple": false,
|
|
407
|
+
"type": "option"
|
|
408
|
+
},
|
|
409
|
+
"since": {
|
|
410
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
411
|
+
"name": "since",
|
|
412
|
+
"hasDynamicHelp": false,
|
|
413
|
+
"multiple": false,
|
|
414
|
+
"type": "option"
|
|
415
|
+
},
|
|
416
|
+
"limit": {
|
|
417
|
+
"description": "Maximum number of rows to inspect.",
|
|
418
|
+
"name": "limit",
|
|
419
|
+
"default": 100,
|
|
420
|
+
"hasDynamicHelp": false,
|
|
421
|
+
"multiple": false,
|
|
422
|
+
"type": "option"
|
|
423
|
+
},
|
|
424
|
+
"apply": {
|
|
425
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
426
|
+
"name": "apply",
|
|
427
|
+
"allowNo": false,
|
|
428
|
+
"type": "boolean"
|
|
429
|
+
},
|
|
430
|
+
"verbose": {
|
|
431
|
+
"char": "v",
|
|
432
|
+
"description": "Print every candidate row, not just the summary.",
|
|
433
|
+
"name": "verbose",
|
|
434
|
+
"allowNo": false,
|
|
435
|
+
"type": "boolean"
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"hasDynamicHelp": false,
|
|
439
|
+
"hiddenAliases": [],
|
|
440
|
+
"id": "artifacts:reclassify",
|
|
441
|
+
"pluginAlias": "@memberjunction/cli",
|
|
442
|
+
"pluginName": "@memberjunction/cli",
|
|
443
|
+
"pluginType": "core",
|
|
444
|
+
"strict": true,
|
|
445
|
+
"enableJsonFlag": false,
|
|
446
|
+
"isESM": true,
|
|
447
|
+
"relativePath": [
|
|
448
|
+
"dist",
|
|
449
|
+
"commands",
|
|
450
|
+
"artifacts",
|
|
451
|
+
"reclassify.js"
|
|
452
|
+
]
|
|
453
|
+
},
|
|
454
|
+
"baseline:build": {
|
|
455
|
+
"aliases": [],
|
|
456
|
+
"args": {},
|
|
457
|
+
"description": "Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.",
|
|
458
|
+
"examples": [
|
|
459
|
+
"<%= config.bin %> <%= command.id %> --out ./migrations/v5/ # auto: within-major rebaseline",
|
|
460
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --out ./migrations/v5/",
|
|
461
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --out ./migrations/v6/ # explicit major-boundary",
|
|
462
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
463
|
+
],
|
|
464
|
+
"flags": {
|
|
465
|
+
"baseline-version": {
|
|
466
|
+
"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).",
|
|
467
|
+
"name": "baseline-version",
|
|
468
|
+
"hasDynamicHelp": false,
|
|
469
|
+
"multiple": false,
|
|
470
|
+
"type": "option"
|
|
471
|
+
},
|
|
472
|
+
"source-dir": {
|
|
473
|
+
"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.",
|
|
474
|
+
"name": "source-dir",
|
|
475
|
+
"hasDynamicHelp": false,
|
|
476
|
+
"multiple": false,
|
|
477
|
+
"type": "option"
|
|
478
|
+
},
|
|
479
|
+
"description": {
|
|
480
|
+
"description": "Human-readable description embedded in the file header.",
|
|
481
|
+
"name": "description",
|
|
482
|
+
"default": "MemberJunction Baseline",
|
|
483
|
+
"hasDynamicHelp": false,
|
|
484
|
+
"multiple": false,
|
|
485
|
+
"type": "option"
|
|
486
|
+
},
|
|
487
|
+
"database": {
|
|
488
|
+
"description": "Override database name (host/user/password come from MJ config).",
|
|
489
|
+
"name": "database",
|
|
490
|
+
"hasDynamicHelp": false,
|
|
491
|
+
"multiple": false,
|
|
492
|
+
"type": "option"
|
|
685
493
|
},
|
|
686
|
-
"
|
|
687
|
-
"
|
|
688
|
-
"
|
|
689
|
-
"
|
|
494
|
+
"out": {
|
|
495
|
+
"description": "Output directory. Filename is auto-generated.",
|
|
496
|
+
"name": "out",
|
|
497
|
+
"default": ".",
|
|
498
|
+
"hasDynamicHelp": false,
|
|
499
|
+
"multiple": false,
|
|
500
|
+
"type": "option"
|
|
501
|
+
},
|
|
502
|
+
"exclude-data": {
|
|
503
|
+
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
504
|
+
"name": "exclude-data",
|
|
505
|
+
"default": "",
|
|
506
|
+
"hasDynamicHelp": false,
|
|
507
|
+
"multiple": false,
|
|
508
|
+
"type": "option"
|
|
509
|
+
},
|
|
510
|
+
"batch-size": {
|
|
511
|
+
"description": "Rows per INSERT batch.",
|
|
512
|
+
"name": "batch-size",
|
|
513
|
+
"default": 1000,
|
|
514
|
+
"hasDynamicHelp": false,
|
|
515
|
+
"multiple": false,
|
|
516
|
+
"type": "option"
|
|
517
|
+
},
|
|
518
|
+
"no-data": {
|
|
519
|
+
"description": "Emit schema only, no data inserts.",
|
|
520
|
+
"name": "no-data",
|
|
690
521
|
"allowNo": false,
|
|
691
522
|
"type": "boolean"
|
|
692
523
|
},
|
|
693
524
|
"verbose": {
|
|
694
|
-
"
|
|
695
|
-
"description": "Show detailed output",
|
|
525
|
+
"description": "Print per-object progress.",
|
|
696
526
|
"name": "verbose",
|
|
697
527
|
"allowNo": false,
|
|
698
528
|
"type": "boolean"
|
|
699
529
|
},
|
|
700
|
-
"
|
|
701
|
-
"
|
|
702
|
-
"name": "
|
|
530
|
+
"dry-run": {
|
|
531
|
+
"description": "Print to stdout instead of writing a file.",
|
|
532
|
+
"name": "dry-run",
|
|
703
533
|
"allowNo": false,
|
|
704
534
|
"type": "boolean"
|
|
705
535
|
}
|
|
706
536
|
},
|
|
707
537
|
"hasDynamicHelp": false,
|
|
708
538
|
"hiddenAliases": [],
|
|
709
|
-
"id": "
|
|
539
|
+
"id": "baseline:build",
|
|
710
540
|
"pluginAlias": "@memberjunction/cli",
|
|
711
541
|
"pluginName": "@memberjunction/cli",
|
|
712
542
|
"pluginType": "core",
|
|
@@ -716,55 +546,114 @@
|
|
|
716
546
|
"relativePath": [
|
|
717
547
|
"dist",
|
|
718
548
|
"commands",
|
|
719
|
-
"
|
|
720
|
-
"
|
|
549
|
+
"baseline",
|
|
550
|
+
"build.js"
|
|
721
551
|
]
|
|
722
552
|
},
|
|
723
|
-
"
|
|
553
|
+
"baseline:compare": {
|
|
724
554
|
"aliases": [],
|
|
725
|
-
"args": {
|
|
726
|
-
|
|
727
|
-
"description": "Name of the installed app to upgrade",
|
|
728
|
-
"name": "name",
|
|
729
|
-
"required": true
|
|
730
|
-
}
|
|
731
|
-
},
|
|
732
|
-
"description": "Upgrade an installed MJ Open App to a newer version",
|
|
555
|
+
"args": {},
|
|
556
|
+
"description": "Deterministically compare two databases object-by-object and row-by-row.",
|
|
733
557
|
"examples": [
|
|
734
|
-
"<%= config.bin %>
|
|
735
|
-
"<%= config.bin %>
|
|
558
|
+
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
559
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
560
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
736
561
|
],
|
|
737
562
|
"flags": {
|
|
738
|
-
"
|
|
739
|
-
"description": "
|
|
740
|
-
"name": "
|
|
563
|
+
"left": {
|
|
564
|
+
"description": "Left database name (override).",
|
|
565
|
+
"name": "left",
|
|
566
|
+
"required": true,
|
|
741
567
|
"hasDynamicHelp": false,
|
|
742
568
|
"multiple": false,
|
|
743
569
|
"type": "option"
|
|
744
570
|
},
|
|
745
|
-
"
|
|
746
|
-
"
|
|
747
|
-
"
|
|
748
|
-
"
|
|
749
|
-
"
|
|
750
|
-
"
|
|
571
|
+
"right": {
|
|
572
|
+
"description": "Right database name (override).",
|
|
573
|
+
"name": "right",
|
|
574
|
+
"required": true,
|
|
575
|
+
"hasDynamicHelp": false,
|
|
576
|
+
"multiple": false,
|
|
577
|
+
"type": "option"
|
|
751
578
|
},
|
|
752
|
-
"
|
|
753
|
-
"description": "
|
|
754
|
-
"name": "
|
|
579
|
+
"dialect": {
|
|
580
|
+
"description": "Dialect of both DBs (must match).",
|
|
581
|
+
"name": "dialect",
|
|
582
|
+
"default": "mssql",
|
|
583
|
+
"hasDynamicHelp": false,
|
|
584
|
+
"multiple": false,
|
|
585
|
+
"options": [
|
|
586
|
+
"mssql",
|
|
587
|
+
"postgres"
|
|
588
|
+
],
|
|
589
|
+
"type": "option"
|
|
590
|
+
},
|
|
591
|
+
"row-compare": {
|
|
592
|
+
"description": "Row comparison mode.",
|
|
593
|
+
"name": "row-compare",
|
|
594
|
+
"default": "full",
|
|
595
|
+
"hasDynamicHelp": false,
|
|
596
|
+
"multiple": false,
|
|
597
|
+
"options": [
|
|
598
|
+
"full",
|
|
599
|
+
"hash",
|
|
600
|
+
"counts",
|
|
601
|
+
"none"
|
|
602
|
+
],
|
|
603
|
+
"type": "option"
|
|
604
|
+
},
|
|
605
|
+
"row-hash-algo": {
|
|
606
|
+
"description": "Hash algorithm when --row-compare hash.",
|
|
607
|
+
"name": "row-hash-algo",
|
|
608
|
+
"default": "sha256",
|
|
609
|
+
"hasDynamicHelp": false,
|
|
610
|
+
"multiple": false,
|
|
611
|
+
"options": [
|
|
612
|
+
"sha256",
|
|
613
|
+
"md5",
|
|
614
|
+
"checksum_agg"
|
|
615
|
+
],
|
|
616
|
+
"type": "option"
|
|
617
|
+
},
|
|
618
|
+
"ignore": {
|
|
619
|
+
"description": "Regex of object names to skip.",
|
|
620
|
+
"name": "ignore",
|
|
621
|
+
"default": "^flyway_schema_history$",
|
|
622
|
+
"hasDynamicHelp": false,
|
|
623
|
+
"multiple": false,
|
|
624
|
+
"type": "option"
|
|
625
|
+
},
|
|
626
|
+
"sample-limit": {
|
|
627
|
+
"description": "Maximum row diffs to capture per table.",
|
|
628
|
+
"name": "sample-limit",
|
|
629
|
+
"default": 100,
|
|
630
|
+
"hasDynamicHelp": false,
|
|
631
|
+
"multiple": false,
|
|
632
|
+
"type": "option"
|
|
633
|
+
},
|
|
634
|
+
"out": {
|
|
635
|
+
"description": "Directory to write JSON + Markdown reports.",
|
|
636
|
+
"name": "out",
|
|
637
|
+
"hasDynamicHelp": false,
|
|
638
|
+
"multiple": false,
|
|
639
|
+
"type": "option"
|
|
640
|
+
},
|
|
641
|
+
"fail-on-diff": {
|
|
642
|
+
"description": "Exit non-zero if any diff is found.",
|
|
643
|
+
"name": "fail-on-diff",
|
|
755
644
|
"allowNo": false,
|
|
756
645
|
"type": "boolean"
|
|
757
646
|
},
|
|
758
|
-
"
|
|
759
|
-
"
|
|
760
|
-
"name": "
|
|
647
|
+
"verbose": {
|
|
648
|
+
"description": "Print per-phase progress.",
|
|
649
|
+
"name": "verbose",
|
|
761
650
|
"allowNo": false,
|
|
762
651
|
"type": "boolean"
|
|
763
652
|
}
|
|
764
653
|
},
|
|
765
654
|
"hasDynamicHelp": false,
|
|
766
655
|
"hiddenAliases": [],
|
|
767
|
-
"id": "
|
|
656
|
+
"id": "baseline:compare",
|
|
768
657
|
"pluginAlias": "@memberjunction/cli",
|
|
769
658
|
"pluginName": "@memberjunction/cli",
|
|
770
659
|
"pluginType": "core",
|
|
@@ -774,50 +663,111 @@
|
|
|
774
663
|
"relativePath": [
|
|
775
664
|
"dist",
|
|
776
665
|
"commands",
|
|
777
|
-
"
|
|
778
|
-
"
|
|
666
|
+
"baseline",
|
|
667
|
+
"compare.js"
|
|
779
668
|
]
|
|
780
669
|
},
|
|
781
|
-
"
|
|
670
|
+
"baseline:roundtrip": {
|
|
782
671
|
"aliases": [],
|
|
783
672
|
"args": {},
|
|
784
|
-
"description": "
|
|
673
|
+
"description": "Build a baseline from a V-stack database, apply it to a fresh DB, and prove byte-equivalence.",
|
|
785
674
|
"examples": [
|
|
786
|
-
"<%= config.bin %> <%= command.id %>",
|
|
787
|
-
"<%= config.bin %> <%= command.id %> --
|
|
675
|
+
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
676
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
677
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
788
678
|
],
|
|
789
679
|
"flags": {
|
|
790
|
-
"
|
|
791
|
-
"description": "
|
|
792
|
-
"name": "
|
|
680
|
+
"baseline-version": {
|
|
681
|
+
"description": "Major.Minor version stamp. Omit to auto-detect from --source-dir (within-major rebaseline).",
|
|
682
|
+
"name": "baseline-version",
|
|
793
683
|
"hasDynamicHelp": false,
|
|
794
684
|
"multiple": false,
|
|
795
685
|
"type": "option"
|
|
796
686
|
},
|
|
797
|
-
"
|
|
798
|
-
"description": "
|
|
799
|
-
"name": "
|
|
687
|
+
"source-dir": {
|
|
688
|
+
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
689
|
+
"name": "source-dir",
|
|
800
690
|
"hasDynamicHelp": false,
|
|
801
691
|
"multiple": false,
|
|
802
692
|
"type": "option"
|
|
803
693
|
},
|
|
804
|
-
"
|
|
805
|
-
"description": "
|
|
806
|
-
"name": "
|
|
807
|
-
"default":
|
|
694
|
+
"description": {
|
|
695
|
+
"description": "Header description.",
|
|
696
|
+
"name": "description",
|
|
697
|
+
"default": "MemberJunction Baseline",
|
|
698
|
+
"hasDynamicHelp": false,
|
|
699
|
+
"multiple": false,
|
|
700
|
+
"type": "option"
|
|
701
|
+
},
|
|
702
|
+
"dialect": {
|
|
703
|
+
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
704
|
+
"name": "dialect",
|
|
705
|
+
"default": "mssql",
|
|
706
|
+
"hasDynamicHelp": false,
|
|
707
|
+
"multiple": false,
|
|
708
|
+
"options": [
|
|
709
|
+
"mssql",
|
|
710
|
+
"postgres"
|
|
711
|
+
],
|
|
712
|
+
"type": "option"
|
|
713
|
+
},
|
|
714
|
+
"source": {
|
|
715
|
+
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
716
|
+
"name": "source",
|
|
717
|
+
"required": true,
|
|
718
|
+
"hasDynamicHelp": false,
|
|
719
|
+
"multiple": false,
|
|
720
|
+
"type": "option"
|
|
721
|
+
},
|
|
722
|
+
"target": {
|
|
723
|
+
"description": "Empty database name to apply the new baseline to.",
|
|
724
|
+
"name": "target",
|
|
725
|
+
"required": true,
|
|
726
|
+
"hasDynamicHelp": false,
|
|
727
|
+
"multiple": false,
|
|
728
|
+
"type": "option"
|
|
729
|
+
},
|
|
730
|
+
"out": {
|
|
731
|
+
"description": "Output directory for baseline file + reports.",
|
|
732
|
+
"name": "out",
|
|
733
|
+
"default": ".",
|
|
734
|
+
"hasDynamicHelp": false,
|
|
735
|
+
"multiple": false,
|
|
736
|
+
"type": "option"
|
|
737
|
+
},
|
|
738
|
+
"apply-cmd": {
|
|
739
|
+
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
740
|
+
"name": "apply-cmd",
|
|
741
|
+
"hasDynamicHelp": false,
|
|
742
|
+
"multiple": false,
|
|
743
|
+
"type": "option"
|
|
744
|
+
},
|
|
745
|
+
"row-compare": {
|
|
746
|
+
"description": "Row compare mode passed to the comparator.",
|
|
747
|
+
"name": "row-compare",
|
|
748
|
+
"default": "full",
|
|
808
749
|
"hasDynamicHelp": false,
|
|
809
750
|
"multiple": false,
|
|
751
|
+
"options": [
|
|
752
|
+
"full",
|
|
753
|
+
"hash",
|
|
754
|
+
"counts",
|
|
755
|
+
"none"
|
|
756
|
+
],
|
|
810
757
|
"type": "option"
|
|
811
758
|
},
|
|
812
|
-
"
|
|
813
|
-
"
|
|
814
|
-
"
|
|
759
|
+
"fail-on-diff": {
|
|
760
|
+
"name": "fail-on-diff",
|
|
761
|
+
"allowNo": false,
|
|
762
|
+
"type": "boolean"
|
|
763
|
+
},
|
|
764
|
+
"keep-target": {
|
|
765
|
+
"description": "Do not drop the target database after run (useful for debugging diffs).",
|
|
766
|
+
"name": "keep-target",
|
|
815
767
|
"allowNo": false,
|
|
816
768
|
"type": "boolean"
|
|
817
769
|
},
|
|
818
770
|
"verbose": {
|
|
819
|
-
"char": "v",
|
|
820
|
-
"description": "Print every candidate row, not just the summary.",
|
|
821
771
|
"name": "verbose",
|
|
822
772
|
"allowNo": false,
|
|
823
773
|
"type": "boolean"
|
|
@@ -825,7 +775,7 @@
|
|
|
825
775
|
},
|
|
826
776
|
"hasDynamicHelp": false,
|
|
827
777
|
"hiddenAliases": [],
|
|
828
|
-
"id": "
|
|
778
|
+
"id": "baseline:roundtrip",
|
|
829
779
|
"pluginAlias": "@memberjunction/cli",
|
|
830
780
|
"pluginName": "@memberjunction/cli",
|
|
831
781
|
"pluginType": "core",
|
|
@@ -835,19 +785,69 @@
|
|
|
835
785
|
"relativePath": [
|
|
836
786
|
"dist",
|
|
837
787
|
"commands",
|
|
838
|
-
"
|
|
839
|
-
"
|
|
788
|
+
"baseline",
|
|
789
|
+
"roundtrip.js"
|
|
840
790
|
]
|
|
841
791
|
},
|
|
842
|
-
"
|
|
792
|
+
"bump": {
|
|
843
793
|
"aliases": [],
|
|
844
794
|
"args": {},
|
|
845
|
-
"description": "
|
|
846
|
-
"
|
|
795
|
+
"description": "Bumps MemberJunction dependency versions",
|
|
796
|
+
"examples": [
|
|
797
|
+
{
|
|
798
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
799
|
+
"description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"command": "<%= config.bin %> <%= command.id %> -rdv",
|
|
803
|
+
"description": "Preview all recursive packages bumps without writing any changes."
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
|
|
807
|
+
"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."
|
|
808
|
+
}
|
|
809
|
+
],
|
|
810
|
+
"flags": {
|
|
811
|
+
"verbose": {
|
|
812
|
+
"char": "v",
|
|
813
|
+
"description": "Enable additional logging",
|
|
814
|
+
"name": "verbose",
|
|
815
|
+
"allowNo": false,
|
|
816
|
+
"type": "boolean"
|
|
817
|
+
},
|
|
818
|
+
"recursive": {
|
|
819
|
+
"char": "r",
|
|
820
|
+
"description": "Bump version in current directory and all subdirectories",
|
|
821
|
+
"name": "recursive",
|
|
822
|
+
"allowNo": false,
|
|
823
|
+
"type": "boolean"
|
|
824
|
+
},
|
|
825
|
+
"tag": {
|
|
826
|
+
"char": "t",
|
|
827
|
+
"description": "Version tag to bump target for bump (e.g. v2.10.0), defaults to the CLI version",
|
|
828
|
+
"name": "tag",
|
|
829
|
+
"hasDynamicHelp": false,
|
|
830
|
+
"multiple": false,
|
|
831
|
+
"type": "option"
|
|
832
|
+
},
|
|
833
|
+
"quiet": {
|
|
834
|
+
"char": "q",
|
|
835
|
+
"description": "Only output paths for updated packages",
|
|
836
|
+
"name": "quiet",
|
|
837
|
+
"allowNo": false,
|
|
838
|
+
"type": "boolean"
|
|
839
|
+
},
|
|
840
|
+
"dry": {
|
|
841
|
+
"char": "d",
|
|
842
|
+
"description": "Dry run, do not write changes to package.json files",
|
|
843
|
+
"name": "dry",
|
|
844
|
+
"allowNo": false,
|
|
845
|
+
"type": "boolean"
|
|
846
|
+
}
|
|
847
|
+
},
|
|
847
848
|
"hasDynamicHelp": false,
|
|
848
|
-
"hidden": false,
|
|
849
849
|
"hiddenAliases": [],
|
|
850
|
-
"id": "
|
|
850
|
+
"id": "bump",
|
|
851
851
|
"pluginAlias": "@memberjunction/cli",
|
|
852
852
|
"pluginName": "@memberjunction/cli",
|
|
853
853
|
"pluginType": "core",
|
|
@@ -857,7 +857,7 @@
|
|
|
857
857
|
"relativePath": [
|
|
858
858
|
"dist",
|
|
859
859
|
"commands",
|
|
860
|
-
"
|
|
860
|
+
"bump",
|
|
861
861
|
"index.js"
|
|
862
862
|
]
|
|
863
863
|
},
|
|
@@ -1920,6 +1920,63 @@
|
|
|
1920
1920
|
"status.js"
|
|
1921
1921
|
]
|
|
1922
1922
|
},
|
|
1923
|
+
"dev": {
|
|
1924
|
+
"aliases": [],
|
|
1925
|
+
"args": {},
|
|
1926
|
+
"description": "Local development tooling: generate, inspect, and tear down the cross-repo pnpm workspace that links sibling repo clones. Run `mj dev usage` for every command's flags, examples, and runtime hints.",
|
|
1927
|
+
"flags": {},
|
|
1928
|
+
"hasDynamicHelp": false,
|
|
1929
|
+
"hidden": false,
|
|
1930
|
+
"hiddenAliases": [],
|
|
1931
|
+
"id": "dev",
|
|
1932
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1933
|
+
"pluginName": "@memberjunction/cli",
|
|
1934
|
+
"pluginType": "core",
|
|
1935
|
+
"strict": true,
|
|
1936
|
+
"enableJsonFlag": false,
|
|
1937
|
+
"isESM": true,
|
|
1938
|
+
"relativePath": [
|
|
1939
|
+
"dist",
|
|
1940
|
+
"commands",
|
|
1941
|
+
"dev",
|
|
1942
|
+
"index.js"
|
|
1943
|
+
]
|
|
1944
|
+
},
|
|
1945
|
+
"dev:usage": {
|
|
1946
|
+
"aliases": [],
|
|
1947
|
+
"args": {},
|
|
1948
|
+
"description": "Show usage, flags, examples, and runtime hints for every `mj dev` command.",
|
|
1949
|
+
"flags": {
|
|
1950
|
+
"format": {
|
|
1951
|
+
"description": "Output format",
|
|
1952
|
+
"name": "format",
|
|
1953
|
+
"default": "text",
|
|
1954
|
+
"hasDynamicHelp": false,
|
|
1955
|
+
"multiple": false,
|
|
1956
|
+
"options": [
|
|
1957
|
+
"text",
|
|
1958
|
+
"json",
|
|
1959
|
+
"md"
|
|
1960
|
+
],
|
|
1961
|
+
"type": "option"
|
|
1962
|
+
}
|
|
1963
|
+
},
|
|
1964
|
+
"hasDynamicHelp": false,
|
|
1965
|
+
"hiddenAliases": [],
|
|
1966
|
+
"id": "dev:usage",
|
|
1967
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1968
|
+
"pluginName": "@memberjunction/cli",
|
|
1969
|
+
"pluginType": "core",
|
|
1970
|
+
"strict": true,
|
|
1971
|
+
"enableJsonFlag": false,
|
|
1972
|
+
"isESM": true,
|
|
1973
|
+
"relativePath": [
|
|
1974
|
+
"dist",
|
|
1975
|
+
"commands",
|
|
1976
|
+
"dev",
|
|
1977
|
+
"usage.js"
|
|
1978
|
+
]
|
|
1979
|
+
},
|
|
1923
1980
|
"doctor": {
|
|
1924
1981
|
"aliases": [],
|
|
1925
1982
|
"args": {},
|
|
@@ -2280,7 +2337,7 @@
|
|
|
2280
2337
|
"type": "boolean"
|
|
2281
2338
|
},
|
|
2282
2339
|
"allow-gaps": {
|
|
2283
|
-
"description": "
|
|
2340
|
+
"description": "Exit 0 even when migrations have conversion gaps — with --split: hand-authoring needed or unhandled statements; on the legacy path: \"-- Could not parse\" / \"-- ERROR converting batch\" markers in the output. Gaps are still embedded as comments and listed in the summary.",
|
|
2284
2341
|
"name": "allow-gaps",
|
|
2285
2342
|
"allowNo": false,
|
|
2286
2343
|
"type": "boolean"
|
|
@@ -2377,7 +2434,7 @@
|
|
|
2377
2434
|
"migrate": {
|
|
2378
2435
|
"aliases": [],
|
|
2379
2436
|
"args": {},
|
|
2380
|
-
"description": "Migrate MemberJunction database to latest version",
|
|
2437
|
+
"description": "Migrate MemberJunction database to latest version. Open App migrates also run the core metadata-heal procs (same work as R__RefreshMetadata) scoped to the app schema, on SQL Server and PostgreSQL.",
|
|
2381
2438
|
"examples": [
|
|
2382
2439
|
"<%= config.bin %> <%= command.id %>\n",
|
|
2383
2440
|
"<%= config.bin %> <%= command.id %> --schema __BCSaaS --dir ./migrations/v1\n",
|
|
@@ -2448,156 +2505,45 @@
|
|
|
2448
2505
|
"flags": {
|
|
2449
2506
|
"source-dir": {
|
|
2450
2507
|
"description": "Source T-SQL migrations directory",
|
|
2451
|
-
"name": "source-dir",
|
|
2452
|
-
"default": "./migrations/v5",
|
|
2453
|
-
"hasDynamicHelp": false,
|
|
2454
|
-
"multiple": false,
|
|
2455
|
-
"type": "option"
|
|
2456
|
-
},
|
|
2457
|
-
"output-dir": {
|
|
2458
|
-
"description": "PG migrations directory (committed files read here + baked output written here)",
|
|
2459
|
-
"name": "output-dir",
|
|
2460
|
-
"default": "./migrations-pg/v5",
|
|
2461
|
-
"hasDynamicHelp": false,
|
|
2462
|
-
"multiple": false,
|
|
2463
|
-
"type": "option"
|
|
2464
|
-
},
|
|
2465
|
-
"schema": {
|
|
2466
|
-
"description": "Target schema name",
|
|
2467
|
-
"name": "schema",
|
|
2468
|
-
"default": "__mj",
|
|
2469
|
-
"hasDynamicHelp": false,
|
|
2470
|
-
"multiple": false,
|
|
2471
|
-
"type": "option"
|
|
2472
|
-
},
|
|
2473
|
-
"baseline-floor": {
|
|
2474
|
-
"description": "Re-bake migrations strictly AFTER this version key (default: the latest B* in output-dir)",
|
|
2475
|
-
"name": "baseline-floor",
|
|
2476
|
-
"hasDynamicHelp": false,
|
|
2477
|
-
"multiple": false,
|
|
2478
|
-
"type": "option"
|
|
2479
|
-
},
|
|
2480
|
-
"dry-run": {
|
|
2481
|
-
"description": "Report what would be re-baked without writing files",
|
|
2482
|
-
"name": "dry-run",
|
|
2483
|
-
"allowNo": false,
|
|
2484
|
-
"type": "boolean"
|
|
2485
|
-
}
|
|
2486
|
-
},
|
|
2487
|
-
"hasDynamicHelp": false,
|
|
2488
|
-
"hiddenAliases": [],
|
|
2489
|
-
"id": "migrate:rebake",
|
|
2490
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2491
|
-
"pluginName": "@memberjunction/cli",
|
|
2492
|
-
"pluginType": "core",
|
|
2493
|
-
"strict": true,
|
|
2494
|
-
"enableJsonFlag": false,
|
|
2495
|
-
"isESM": true,
|
|
2496
|
-
"relativePath": [
|
|
2497
|
-
"dist",
|
|
2498
|
-
"commands",
|
|
2499
|
-
"migrate",
|
|
2500
|
-
"rebake.js"
|
|
2501
|
-
]
|
|
2502
|
-
},
|
|
2503
|
-
"plugin:add": {
|
|
2504
|
-
"aliases": [],
|
|
2505
|
-
"args": {
|
|
2506
|
-
"package": {
|
|
2507
|
-
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
2508
|
-
"name": "package",
|
|
2509
|
-
"required": true
|
|
2510
|
-
}
|
|
2511
|
-
},
|
|
2512
|
-
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
2513
|
-
"examples": [
|
|
2514
|
-
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
2515
|
-
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
2516
|
-
],
|
|
2517
|
-
"flags": {
|
|
2518
|
-
"format": {
|
|
2519
|
-
"description": "Output format",
|
|
2520
|
-
"name": "format",
|
|
2521
|
-
"default": "text",
|
|
2522
|
-
"hasDynamicHelp": false,
|
|
2523
|
-
"multiple": false,
|
|
2524
|
-
"options": [
|
|
2525
|
-
"text",
|
|
2526
|
-
"json"
|
|
2527
|
-
],
|
|
2528
|
-
"type": "option"
|
|
2529
|
-
}
|
|
2530
|
-
},
|
|
2531
|
-
"hasDynamicHelp": false,
|
|
2532
|
-
"hiddenAliases": [],
|
|
2533
|
-
"id": "plugin:add",
|
|
2534
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2535
|
-
"pluginName": "@memberjunction/cli",
|
|
2536
|
-
"pluginType": "core",
|
|
2537
|
-
"strict": true,
|
|
2538
|
-
"enableJsonFlag": false,
|
|
2539
|
-
"isESM": true,
|
|
2540
|
-
"relativePath": [
|
|
2541
|
-
"dist",
|
|
2542
|
-
"commands",
|
|
2543
|
-
"plugin",
|
|
2544
|
-
"add.js"
|
|
2545
|
-
]
|
|
2546
|
-
},
|
|
2547
|
-
"sql-audit": {
|
|
2548
|
-
"aliases": [],
|
|
2549
|
-
"args": {},
|
|
2550
|
-
"description": "Compare source and target databases for migration verification",
|
|
2551
|
-
"examples": [
|
|
2552
|
-
"<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\"",
|
|
2553
|
-
"<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --output report.txt",
|
|
2554
|
-
"<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --source-schema __mj --target-schema __mj"
|
|
2555
|
-
],
|
|
2556
|
-
"flags": {
|
|
2557
|
-
"source": {
|
|
2558
|
-
"description": "Source database connection string (mssql://... or postgres://...)",
|
|
2559
|
-
"name": "source",
|
|
2560
|
-
"required": true,
|
|
2561
|
-
"hasDynamicHelp": false,
|
|
2562
|
-
"multiple": false,
|
|
2563
|
-
"type": "option"
|
|
2564
|
-
},
|
|
2565
|
-
"target": {
|
|
2566
|
-
"description": "Target database connection string (mssql://... or postgres://...)",
|
|
2567
|
-
"name": "target",
|
|
2568
|
-
"required": true,
|
|
2508
|
+
"name": "source-dir",
|
|
2509
|
+
"default": "./migrations/v5",
|
|
2569
2510
|
"hasDynamicHelp": false,
|
|
2570
2511
|
"multiple": false,
|
|
2571
2512
|
"type": "option"
|
|
2572
2513
|
},
|
|
2573
|
-
"
|
|
2574
|
-
"description": "
|
|
2575
|
-
"name": "
|
|
2576
|
-
"default": "
|
|
2514
|
+
"output-dir": {
|
|
2515
|
+
"description": "PG migrations directory (committed files read here + baked output written here)",
|
|
2516
|
+
"name": "output-dir",
|
|
2517
|
+
"default": "./migrations-pg/v5",
|
|
2577
2518
|
"hasDynamicHelp": false,
|
|
2578
2519
|
"multiple": false,
|
|
2579
2520
|
"type": "option"
|
|
2580
2521
|
},
|
|
2581
|
-
"
|
|
2522
|
+
"schema": {
|
|
2582
2523
|
"description": "Target schema name",
|
|
2583
|
-
"name": "
|
|
2524
|
+
"name": "schema",
|
|
2584
2525
|
"default": "__mj",
|
|
2585
2526
|
"hasDynamicHelp": false,
|
|
2586
2527
|
"multiple": false,
|
|
2587
2528
|
"type": "option"
|
|
2588
2529
|
},
|
|
2589
|
-
"
|
|
2590
|
-
"
|
|
2591
|
-
"
|
|
2592
|
-
"name": "output",
|
|
2530
|
+
"baseline-floor": {
|
|
2531
|
+
"description": "Re-bake migrations strictly AFTER this version key (default: the latest B* in output-dir)",
|
|
2532
|
+
"name": "baseline-floor",
|
|
2593
2533
|
"hasDynamicHelp": false,
|
|
2594
2534
|
"multiple": false,
|
|
2595
2535
|
"type": "option"
|
|
2536
|
+
},
|
|
2537
|
+
"dry-run": {
|
|
2538
|
+
"description": "Report what would be re-baked without writing files",
|
|
2539
|
+
"name": "dry-run",
|
|
2540
|
+
"allowNo": false,
|
|
2541
|
+
"type": "boolean"
|
|
2596
2542
|
}
|
|
2597
2543
|
},
|
|
2598
2544
|
"hasDynamicHelp": false,
|
|
2599
2545
|
"hiddenAliases": [],
|
|
2600
|
-
"id": "
|
|
2546
|
+
"id": "migrate:rebake",
|
|
2601
2547
|
"pluginAlias": "@memberjunction/cli",
|
|
2602
2548
|
"pluginName": "@memberjunction/cli",
|
|
2603
2549
|
"pluginType": "core",
|
|
@@ -2607,82 +2553,41 @@
|
|
|
2607
2553
|
"relativePath": [
|
|
2608
2554
|
"dist",
|
|
2609
2555
|
"commands",
|
|
2610
|
-
"
|
|
2611
|
-
"
|
|
2556
|
+
"migrate",
|
|
2557
|
+
"rebake.js"
|
|
2612
2558
|
]
|
|
2613
2559
|
},
|
|
2614
|
-
"
|
|
2560
|
+
"plugin:add": {
|
|
2615
2561
|
"aliases": [],
|
|
2616
2562
|
"args": {
|
|
2617
|
-
"
|
|
2618
|
-
"description": "
|
|
2619
|
-
"name": "
|
|
2563
|
+
"package": {
|
|
2564
|
+
"description": "Plugin entry-point specifier (package name, subpath, or relative path)",
|
|
2565
|
+
"name": "package",
|
|
2620
2566
|
"required": true
|
|
2621
2567
|
}
|
|
2622
2568
|
},
|
|
2623
|
-
"description": "
|
|
2569
|
+
"description": "Register a CLI plugin package in mj-cli-plugins.json so `mj` loads it at startup.",
|
|
2624
2570
|
"examples": [
|
|
2625
|
-
"<%= config.bin %>
|
|
2626
|
-
"<%= config.bin %>
|
|
2627
|
-
"<%= config.bin %> sql-convert ./migration.sql --from tsql --to postgres --schema my_schema",
|
|
2628
|
-
"<%= config.bin %> sql-convert ./migration.sql --from tsql --to postgres --no-header --verbose"
|
|
2571
|
+
"<%= config.bin %> <%= command.id %> @my-org/mj-plugin/plugins",
|
|
2572
|
+
"<%= config.bin %> <%= command.id %> ./local-plugins/my-tool"
|
|
2629
2573
|
],
|
|
2630
2574
|
"flags": {
|
|
2631
|
-
"
|
|
2632
|
-
"description": "
|
|
2633
|
-
"name": "
|
|
2634
|
-
"
|
|
2635
|
-
"hasDynamicHelp": false,
|
|
2636
|
-
"multiple": false,
|
|
2637
|
-
"type": "option"
|
|
2638
|
-
},
|
|
2639
|
-
"to": {
|
|
2640
|
-
"description": "Target SQL dialect",
|
|
2641
|
-
"name": "to",
|
|
2642
|
-
"required": true,
|
|
2643
|
-
"hasDynamicHelp": false,
|
|
2644
|
-
"multiple": false,
|
|
2645
|
-
"type": "option"
|
|
2646
|
-
},
|
|
2647
|
-
"output": {
|
|
2648
|
-
"char": "o",
|
|
2649
|
-
"description": "Output file path (default: <source>.converted.<ext>)",
|
|
2650
|
-
"name": "output",
|
|
2651
|
-
"hasDynamicHelp": false,
|
|
2652
|
-
"multiple": false,
|
|
2653
|
-
"type": "option"
|
|
2654
|
-
},
|
|
2655
|
-
"schema": {
|
|
2656
|
-
"description": "Target schema name",
|
|
2657
|
-
"name": "schema",
|
|
2658
|
-
"default": "__mj",
|
|
2575
|
+
"format": {
|
|
2576
|
+
"description": "Output format",
|
|
2577
|
+
"name": "format",
|
|
2578
|
+
"default": "text",
|
|
2659
2579
|
"hasDynamicHelp": false,
|
|
2660
2580
|
"multiple": false,
|
|
2581
|
+
"options": [
|
|
2582
|
+
"text",
|
|
2583
|
+
"json"
|
|
2584
|
+
],
|
|
2661
2585
|
"type": "option"
|
|
2662
|
-
},
|
|
2663
|
-
"no-header": {
|
|
2664
|
-
"description": "Skip PG header (extensions, schema, implicit cast)",
|
|
2665
|
-
"name": "no-header",
|
|
2666
|
-
"allowNo": false,
|
|
2667
|
-
"type": "boolean"
|
|
2668
|
-
},
|
|
2669
|
-
"no-post-process": {
|
|
2670
|
-
"description": "Skip post-processing pass",
|
|
2671
|
-
"name": "no-post-process",
|
|
2672
|
-
"allowNo": false,
|
|
2673
|
-
"type": "boolean"
|
|
2674
|
-
},
|
|
2675
|
-
"verbose": {
|
|
2676
|
-
"char": "v",
|
|
2677
|
-
"description": "Show per-statement progress and detailed report",
|
|
2678
|
-
"name": "verbose",
|
|
2679
|
-
"allowNo": false,
|
|
2680
|
-
"type": "boolean"
|
|
2681
2586
|
}
|
|
2682
2587
|
},
|
|
2683
2588
|
"hasDynamicHelp": false,
|
|
2684
2589
|
"hiddenAliases": [],
|
|
2685
|
-
"id": "
|
|
2590
|
+
"id": "plugin:add",
|
|
2686
2591
|
"pluginAlias": "@memberjunction/cli",
|
|
2687
2592
|
"pluginName": "@memberjunction/cli",
|
|
2688
2593
|
"pluginType": "core",
|
|
@@ -2692,8 +2597,8 @@
|
|
|
2692
2597
|
"relativePath": [
|
|
2693
2598
|
"dist",
|
|
2694
2599
|
"commands",
|
|
2695
|
-
"
|
|
2696
|
-
"
|
|
2600
|
+
"plugin",
|
|
2601
|
+
"add.js"
|
|
2697
2602
|
]
|
|
2698
2603
|
},
|
|
2699
2604
|
"querygen:export": {
|
|
@@ -2889,7 +2794,159 @@
|
|
|
2889
2794
|
},
|
|
2890
2795
|
"verbose": {
|
|
2891
2796
|
"char": "v",
|
|
2892
|
-
"description": "Verbose output",
|
|
2797
|
+
"description": "Verbose output",
|
|
2798
|
+
"name": "verbose",
|
|
2799
|
+
"allowNo": false,
|
|
2800
|
+
"type": "boolean"
|
|
2801
|
+
}
|
|
2802
|
+
},
|
|
2803
|
+
"hasDynamicHelp": false,
|
|
2804
|
+
"hiddenAliases": [],
|
|
2805
|
+
"id": "querygen:validate",
|
|
2806
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2807
|
+
"pluginName": "@memberjunction/cli",
|
|
2808
|
+
"pluginType": "core",
|
|
2809
|
+
"strict": true,
|
|
2810
|
+
"enableJsonFlag": false,
|
|
2811
|
+
"isESM": true,
|
|
2812
|
+
"relativePath": [
|
|
2813
|
+
"dist",
|
|
2814
|
+
"commands",
|
|
2815
|
+
"querygen",
|
|
2816
|
+
"validate.js"
|
|
2817
|
+
]
|
|
2818
|
+
},
|
|
2819
|
+
"sql-audit": {
|
|
2820
|
+
"aliases": [],
|
|
2821
|
+
"args": {},
|
|
2822
|
+
"description": "Compare source and target databases for migration verification",
|
|
2823
|
+
"examples": [
|
|
2824
|
+
"<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\"",
|
|
2825
|
+
"<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --output report.txt",
|
|
2826
|
+
"<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --source-schema __mj --target-schema __mj"
|
|
2827
|
+
],
|
|
2828
|
+
"flags": {
|
|
2829
|
+
"source": {
|
|
2830
|
+
"description": "Source database connection string (mssql://... or postgres://...)",
|
|
2831
|
+
"name": "source",
|
|
2832
|
+
"required": true,
|
|
2833
|
+
"hasDynamicHelp": false,
|
|
2834
|
+
"multiple": false,
|
|
2835
|
+
"type": "option"
|
|
2836
|
+
},
|
|
2837
|
+
"target": {
|
|
2838
|
+
"description": "Target database connection string (mssql://... or postgres://...)",
|
|
2839
|
+
"name": "target",
|
|
2840
|
+
"required": true,
|
|
2841
|
+
"hasDynamicHelp": false,
|
|
2842
|
+
"multiple": false,
|
|
2843
|
+
"type": "option"
|
|
2844
|
+
},
|
|
2845
|
+
"source-schema": {
|
|
2846
|
+
"description": "Source schema name",
|
|
2847
|
+
"name": "source-schema",
|
|
2848
|
+
"default": "__mj",
|
|
2849
|
+
"hasDynamicHelp": false,
|
|
2850
|
+
"multiple": false,
|
|
2851
|
+
"type": "option"
|
|
2852
|
+
},
|
|
2853
|
+
"target-schema": {
|
|
2854
|
+
"description": "Target schema name",
|
|
2855
|
+
"name": "target-schema",
|
|
2856
|
+
"default": "__mj",
|
|
2857
|
+
"hasDynamicHelp": false,
|
|
2858
|
+
"multiple": false,
|
|
2859
|
+
"type": "option"
|
|
2860
|
+
},
|
|
2861
|
+
"output": {
|
|
2862
|
+
"char": "o",
|
|
2863
|
+
"description": "Save report to file",
|
|
2864
|
+
"name": "output",
|
|
2865
|
+
"hasDynamicHelp": false,
|
|
2866
|
+
"multiple": false,
|
|
2867
|
+
"type": "option"
|
|
2868
|
+
}
|
|
2869
|
+
},
|
|
2870
|
+
"hasDynamicHelp": false,
|
|
2871
|
+
"hiddenAliases": [],
|
|
2872
|
+
"id": "sql-audit",
|
|
2873
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2874
|
+
"pluginName": "@memberjunction/cli",
|
|
2875
|
+
"pluginType": "core",
|
|
2876
|
+
"strict": true,
|
|
2877
|
+
"enableJsonFlag": false,
|
|
2878
|
+
"isESM": true,
|
|
2879
|
+
"relativePath": [
|
|
2880
|
+
"dist",
|
|
2881
|
+
"commands",
|
|
2882
|
+
"sql-audit",
|
|
2883
|
+
"index.js"
|
|
2884
|
+
]
|
|
2885
|
+
},
|
|
2886
|
+
"sql-convert": {
|
|
2887
|
+
"aliases": [],
|
|
2888
|
+
"args": {
|
|
2889
|
+
"source": {
|
|
2890
|
+
"description": "Source SQL file path",
|
|
2891
|
+
"name": "source",
|
|
2892
|
+
"required": true
|
|
2893
|
+
}
|
|
2894
|
+
},
|
|
2895
|
+
"description": "Convert SQL files between database dialects using rule-based BatchConverter engine",
|
|
2896
|
+
"examples": [
|
|
2897
|
+
"<%= config.bin %> sql-convert ./migration.sql --from tsql --to postgres",
|
|
2898
|
+
"<%= config.bin %> sql-convert ./migration.sql --from tsql --to postgres --output converted.sql",
|
|
2899
|
+
"<%= config.bin %> sql-convert ./migration.sql --from tsql --to postgres --schema my_schema",
|
|
2900
|
+
"<%= config.bin %> sql-convert ./migration.sql --from tsql --to postgres --no-header --verbose"
|
|
2901
|
+
],
|
|
2902
|
+
"flags": {
|
|
2903
|
+
"from": {
|
|
2904
|
+
"description": "Source SQL dialect",
|
|
2905
|
+
"name": "from",
|
|
2906
|
+
"required": true,
|
|
2907
|
+
"hasDynamicHelp": false,
|
|
2908
|
+
"multiple": false,
|
|
2909
|
+
"type": "option"
|
|
2910
|
+
},
|
|
2911
|
+
"to": {
|
|
2912
|
+
"description": "Target SQL dialect",
|
|
2913
|
+
"name": "to",
|
|
2914
|
+
"required": true,
|
|
2915
|
+
"hasDynamicHelp": false,
|
|
2916
|
+
"multiple": false,
|
|
2917
|
+
"type": "option"
|
|
2918
|
+
},
|
|
2919
|
+
"output": {
|
|
2920
|
+
"char": "o",
|
|
2921
|
+
"description": "Output file path (default: <source>.converted.<ext>)",
|
|
2922
|
+
"name": "output",
|
|
2923
|
+
"hasDynamicHelp": false,
|
|
2924
|
+
"multiple": false,
|
|
2925
|
+
"type": "option"
|
|
2926
|
+
},
|
|
2927
|
+
"schema": {
|
|
2928
|
+
"description": "Target schema name",
|
|
2929
|
+
"name": "schema",
|
|
2930
|
+
"default": "__mj",
|
|
2931
|
+
"hasDynamicHelp": false,
|
|
2932
|
+
"multiple": false,
|
|
2933
|
+
"type": "option"
|
|
2934
|
+
},
|
|
2935
|
+
"no-header": {
|
|
2936
|
+
"description": "Skip PG header (extensions, schema, implicit cast)",
|
|
2937
|
+
"name": "no-header",
|
|
2938
|
+
"allowNo": false,
|
|
2939
|
+
"type": "boolean"
|
|
2940
|
+
},
|
|
2941
|
+
"no-post-process": {
|
|
2942
|
+
"description": "Skip post-processing pass",
|
|
2943
|
+
"name": "no-post-process",
|
|
2944
|
+
"allowNo": false,
|
|
2945
|
+
"type": "boolean"
|
|
2946
|
+
},
|
|
2947
|
+
"verbose": {
|
|
2948
|
+
"char": "v",
|
|
2949
|
+
"description": "Show per-statement progress and detailed report",
|
|
2893
2950
|
"name": "verbose",
|
|
2894
2951
|
"allowNo": false,
|
|
2895
2952
|
"type": "boolean"
|
|
@@ -2897,7 +2954,7 @@
|
|
|
2897
2954
|
},
|
|
2898
2955
|
"hasDynamicHelp": false,
|
|
2899
2956
|
"hiddenAliases": [],
|
|
2900
|
-
"id": "
|
|
2957
|
+
"id": "sql-convert",
|
|
2901
2958
|
"pluginAlias": "@memberjunction/cli",
|
|
2902
2959
|
"pluginName": "@memberjunction/cli",
|
|
2903
2960
|
"pluginType": "core",
|
|
@@ -2907,8 +2964,8 @@
|
|
|
2907
2964
|
"relativePath": [
|
|
2908
2965
|
"dist",
|
|
2909
2966
|
"commands",
|
|
2910
|
-
"
|
|
2911
|
-
"
|
|
2967
|
+
"sql-convert",
|
|
2968
|
+
"index.js"
|
|
2912
2969
|
]
|
|
2913
2970
|
},
|
|
2914
2971
|
"standards:adopt": {
|
|
@@ -3099,105 +3156,6 @@
|
|
|
3099
3156
|
"list.js"
|
|
3100
3157
|
]
|
|
3101
3158
|
},
|
|
3102
|
-
"translate-sql": {
|
|
3103
|
-
"aliases": [],
|
|
3104
|
-
"args": {},
|
|
3105
|
-
"description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
|
|
3106
|
-
"examples": [
|
|
3107
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
|
|
3108
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
|
|
3109
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
|
|
3110
|
-
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
3111
|
-
],
|
|
3112
|
-
"flags": {
|
|
3113
|
-
"from": {
|
|
3114
|
-
"description": "Source SQL dialect",
|
|
3115
|
-
"name": "from",
|
|
3116
|
-
"required": true,
|
|
3117
|
-
"hasDynamicHelp": false,
|
|
3118
|
-
"multiple": false,
|
|
3119
|
-
"options": [
|
|
3120
|
-
"sqlserver",
|
|
3121
|
-
"postgresql"
|
|
3122
|
-
],
|
|
3123
|
-
"type": "option"
|
|
3124
|
-
},
|
|
3125
|
-
"to": {
|
|
3126
|
-
"description": "Target SQL dialect",
|
|
3127
|
-
"name": "to",
|
|
3128
|
-
"required": true,
|
|
3129
|
-
"hasDynamicHelp": false,
|
|
3130
|
-
"multiple": false,
|
|
3131
|
-
"options": [
|
|
3132
|
-
"sqlserver",
|
|
3133
|
-
"postgresql"
|
|
3134
|
-
],
|
|
3135
|
-
"type": "option"
|
|
3136
|
-
},
|
|
3137
|
-
"scope": {
|
|
3138
|
-
"description": "What to scan for translation",
|
|
3139
|
-
"name": "scope",
|
|
3140
|
-
"default": "all",
|
|
3141
|
-
"hasDynamicHelp": false,
|
|
3142
|
-
"multiple": false,
|
|
3143
|
-
"options": [
|
|
3144
|
-
"queries",
|
|
3145
|
-
"views",
|
|
3146
|
-
"filters",
|
|
3147
|
-
"all"
|
|
3148
|
-
],
|
|
3149
|
-
"type": "option"
|
|
3150
|
-
},
|
|
3151
|
-
"sql": {
|
|
3152
|
-
"description": "Translate a single SQL fragment (inline mode)",
|
|
3153
|
-
"name": "sql",
|
|
3154
|
-
"hasDynamicHelp": false,
|
|
3155
|
-
"multiple": false,
|
|
3156
|
-
"type": "option"
|
|
3157
|
-
},
|
|
3158
|
-
"dry-run": {
|
|
3159
|
-
"description": "Show what would be translated without making changes",
|
|
3160
|
-
"name": "dry-run",
|
|
3161
|
-
"allowNo": false,
|
|
3162
|
-
"type": "boolean"
|
|
3163
|
-
},
|
|
3164
|
-
"review": {
|
|
3165
|
-
"description": "Generate review report only (no writes to database)",
|
|
3166
|
-
"name": "review",
|
|
3167
|
-
"allowNo": false,
|
|
3168
|
-
"type": "boolean"
|
|
3169
|
-
},
|
|
3170
|
-
"output": {
|
|
3171
|
-
"char": "o",
|
|
3172
|
-
"description": "Output directory for the translation report",
|
|
3173
|
-
"name": "output",
|
|
3174
|
-
"hasDynamicHelp": false,
|
|
3175
|
-
"multiple": false,
|
|
3176
|
-
"type": "option"
|
|
3177
|
-
},
|
|
3178
|
-
"force": {
|
|
3179
|
-
"description": "Re-translate even if platform variants already exist",
|
|
3180
|
-
"name": "force",
|
|
3181
|
-
"allowNo": false,
|
|
3182
|
-
"type": "boolean"
|
|
3183
|
-
}
|
|
3184
|
-
},
|
|
3185
|
-
"hasDynamicHelp": false,
|
|
3186
|
-
"hiddenAliases": [],
|
|
3187
|
-
"id": "translate-sql",
|
|
3188
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3189
|
-
"pluginName": "@memberjunction/cli",
|
|
3190
|
-
"pluginType": "core",
|
|
3191
|
-
"strict": true,
|
|
3192
|
-
"enableJsonFlag": false,
|
|
3193
|
-
"isESM": true,
|
|
3194
|
-
"relativePath": [
|
|
3195
|
-
"dist",
|
|
3196
|
-
"commands",
|
|
3197
|
-
"translate-sql",
|
|
3198
|
-
"index.js"
|
|
3199
|
-
]
|
|
3200
|
-
},
|
|
3201
3159
|
"sync:file-reset": {
|
|
3202
3160
|
"aliases": [],
|
|
3203
3161
|
"args": {},
|
|
@@ -3820,159 +3778,21 @@
|
|
|
3820
3778
|
"type": "option"
|
|
3821
3779
|
},
|
|
3822
3780
|
"debounce": {
|
|
3823
|
-
"description": "Debounce delay in milliseconds (default: 500)",
|
|
3824
|
-
"name": "debounce",
|
|
3825
|
-
"hasDynamicHelp": false,
|
|
3826
|
-
"multiple": false,
|
|
3827
|
-
"type": "option"
|
|
3828
|
-
},
|
|
3829
|
-
"no-validate": {
|
|
3830
|
-
"description": "Skip validation before sync",
|
|
3831
|
-
"name": "no-validate",
|
|
3832
|
-
"allowNo": false,
|
|
3833
|
-
"type": "boolean"
|
|
3834
|
-
},
|
|
3835
|
-
"verbose": {
|
|
3836
|
-
"char": "v",
|
|
3837
|
-
"description": "Show detailed output",
|
|
3838
|
-
"name": "verbose",
|
|
3839
|
-
"allowNo": false,
|
|
3840
|
-
"type": "boolean"
|
|
3841
|
-
}
|
|
3842
|
-
},
|
|
3843
|
-
"hasDynamicHelp": false,
|
|
3844
|
-
"hiddenAliases": [],
|
|
3845
|
-
"id": "sync:watch",
|
|
3846
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3847
|
-
"pluginName": "@memberjunction/cli",
|
|
3848
|
-
"pluginType": "core",
|
|
3849
|
-
"strict": true,
|
|
3850
|
-
"enableJsonFlag": false,
|
|
3851
|
-
"isESM": true,
|
|
3852
|
-
"relativePath": [
|
|
3853
|
-
"dist",
|
|
3854
|
-
"commands",
|
|
3855
|
-
"sync",
|
|
3856
|
-
"watch.js"
|
|
3857
|
-
]
|
|
3858
|
-
},
|
|
3859
|
-
"update:claude": {
|
|
3860
|
-
"aliases": [],
|
|
3861
|
-
"args": {},
|
|
3862
|
-
"description": "Update the Claude Code pack in the current directory.",
|
|
3863
|
-
"examples": [
|
|
3864
|
-
"<%= config.bin %> update:claude",
|
|
3865
|
-
"<%= config.bin %> update:claude --check",
|
|
3866
|
-
"<%= config.bin %> update:claude --refresh-commands",
|
|
3867
|
-
"<%= config.bin %> update:claude --allow-major",
|
|
3868
|
-
"<%= config.bin %> update:claude --json"
|
|
3869
|
-
],
|
|
3870
|
-
"flags": {
|
|
3871
|
-
"dir": {
|
|
3872
|
-
"description": "Target directory",
|
|
3873
|
-
"name": "dir",
|
|
3874
|
-
"default": ".",
|
|
3875
|
-
"hasDynamicHelp": false,
|
|
3876
|
-
"multiple": false,
|
|
3877
|
-
"type": "option"
|
|
3878
|
-
},
|
|
3879
|
-
"major": {
|
|
3880
|
-
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
3881
|
-
"name": "major",
|
|
3882
|
-
"hasDynamicHelp": false,
|
|
3883
|
-
"multiple": false,
|
|
3884
|
-
"type": "option"
|
|
3885
|
-
},
|
|
3886
|
-
"ref": {
|
|
3887
|
-
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
3888
|
-
"name": "ref",
|
|
3889
|
-
"hasDynamicHelp": false,
|
|
3890
|
-
"multiple": false,
|
|
3891
|
-
"type": "option"
|
|
3892
|
-
},
|
|
3893
|
-
"from": {
|
|
3894
|
-
"description": "Use a local pack source instead of fetching from GitHub",
|
|
3895
|
-
"name": "from",
|
|
3896
|
-
"hasDynamicHelp": false,
|
|
3897
|
-
"multiple": false,
|
|
3898
|
-
"type": "option"
|
|
3899
|
-
},
|
|
3900
|
-
"offline": {
|
|
3901
|
-
"description": "Forbid network; requires --from <path>",
|
|
3902
|
-
"name": "offline",
|
|
3903
|
-
"allowNo": false,
|
|
3904
|
-
"type": "boolean"
|
|
3905
|
-
},
|
|
3906
|
-
"dry-run": {
|
|
3907
|
-
"description": "Print what would be written; change nothing",
|
|
3908
|
-
"name": "dry-run",
|
|
3909
|
-
"allowNo": false,
|
|
3910
|
-
"type": "boolean"
|
|
3911
|
-
},
|
|
3912
|
-
"yes": {
|
|
3913
|
-
"char": "y",
|
|
3914
|
-
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
3915
|
-
"name": "yes",
|
|
3916
|
-
"allowNo": false,
|
|
3917
|
-
"type": "boolean"
|
|
3918
|
-
},
|
|
3919
|
-
"force": {
|
|
3920
|
-
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
3921
|
-
"name": "force",
|
|
3922
|
-
"allowNo": false,
|
|
3923
|
-
"type": "boolean"
|
|
3924
|
-
},
|
|
3925
|
-
"skip-commands": {
|
|
3926
|
-
"description": "Skip seeding .claude/commands/",
|
|
3927
|
-
"name": "skip-commands",
|
|
3928
|
-
"allowNo": false,
|
|
3929
|
-
"type": "boolean"
|
|
3930
|
-
},
|
|
3931
|
-
"skip-skills": {
|
|
3932
|
-
"description": "Skip seeding .claude/skills/",
|
|
3933
|
-
"name": "skip-skills",
|
|
3934
|
-
"allowNo": false,
|
|
3935
|
-
"type": "boolean"
|
|
3936
|
-
},
|
|
3937
|
-
"skip-settings": {
|
|
3938
|
-
"description": "Skip merging .claude/settings.json",
|
|
3939
|
-
"name": "skip-settings",
|
|
3940
|
-
"allowNo": false,
|
|
3941
|
-
"type": "boolean"
|
|
3942
|
-
},
|
|
3943
|
-
"check": {
|
|
3944
|
-
"description": "Compare local pack version to remote without writing anything",
|
|
3945
|
-
"name": "check",
|
|
3946
|
-
"allowNo": false,
|
|
3947
|
-
"type": "boolean"
|
|
3948
|
-
},
|
|
3949
|
-
"refresh-commands": {
|
|
3950
|
-
"description": "Force-resync .claude/commands/* from the pack (saves .bak files)",
|
|
3951
|
-
"name": "refresh-commands",
|
|
3952
|
-
"allowNo": false,
|
|
3953
|
-
"type": "boolean"
|
|
3954
|
-
},
|
|
3955
|
-
"refresh-skills": {
|
|
3956
|
-
"description": "Force-resync .claude/skills/** from the pack (saves .bak files)",
|
|
3957
|
-
"name": "refresh-skills",
|
|
3958
|
-
"allowNo": false,
|
|
3959
|
-
"type": "boolean"
|
|
3960
|
-
},
|
|
3961
|
-
"allow-major": {
|
|
3962
|
-
"description": "Allow the remote pack's major to differ from local MJ's major",
|
|
3963
|
-
"name": "allow-major",
|
|
3964
|
-
"allowNo": false,
|
|
3965
|
-
"type": "boolean"
|
|
3781
|
+
"description": "Debounce delay in milliseconds (default: 500)",
|
|
3782
|
+
"name": "debounce",
|
|
3783
|
+
"hasDynamicHelp": false,
|
|
3784
|
+
"multiple": false,
|
|
3785
|
+
"type": "option"
|
|
3966
3786
|
},
|
|
3967
|
-
"
|
|
3968
|
-
"description": "
|
|
3969
|
-
"name": "
|
|
3787
|
+
"no-validate": {
|
|
3788
|
+
"description": "Skip validation before sync",
|
|
3789
|
+
"name": "no-validate",
|
|
3970
3790
|
"allowNo": false,
|
|
3971
3791
|
"type": "boolean"
|
|
3972
3792
|
},
|
|
3973
3793
|
"verbose": {
|
|
3974
3794
|
"char": "v",
|
|
3975
|
-
"description": "Show
|
|
3795
|
+
"description": "Show detailed output",
|
|
3976
3796
|
"name": "verbose",
|
|
3977
3797
|
"allowNo": false,
|
|
3978
3798
|
"type": "boolean"
|
|
@@ -3980,7 +3800,7 @@
|
|
|
3980
3800
|
},
|
|
3981
3801
|
"hasDynamicHelp": false,
|
|
3982
3802
|
"hiddenAliases": [],
|
|
3983
|
-
"id": "
|
|
3803
|
+
"id": "sync:watch",
|
|
3984
3804
|
"pluginAlias": "@memberjunction/cli",
|
|
3985
3805
|
"pluginName": "@memberjunction/cli",
|
|
3986
3806
|
"pluginType": "core",
|
|
@@ -3990,8 +3810,8 @@
|
|
|
3990
3810
|
"relativePath": [
|
|
3991
3811
|
"dist",
|
|
3992
3812
|
"commands",
|
|
3993
|
-
"
|
|
3994
|
-
"
|
|
3813
|
+
"sync",
|
|
3814
|
+
"watch.js"
|
|
3995
3815
|
]
|
|
3996
3816
|
},
|
|
3997
3817
|
"test:compare": {
|
|
@@ -4606,7 +4426,244 @@
|
|
|
4606
4426
|
},
|
|
4607
4427
|
"hasDynamicHelp": false,
|
|
4608
4428
|
"hiddenAliases": [],
|
|
4609
|
-
"id": "test:validate",
|
|
4429
|
+
"id": "test:validate",
|
|
4430
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4431
|
+
"pluginName": "@memberjunction/cli",
|
|
4432
|
+
"pluginType": "core",
|
|
4433
|
+
"strict": true,
|
|
4434
|
+
"enableJsonFlag": false,
|
|
4435
|
+
"isESM": true,
|
|
4436
|
+
"relativePath": [
|
|
4437
|
+
"dist",
|
|
4438
|
+
"commands",
|
|
4439
|
+
"test",
|
|
4440
|
+
"validate.js"
|
|
4441
|
+
]
|
|
4442
|
+
},
|
|
4443
|
+
"translate-sql": {
|
|
4444
|
+
"aliases": [],
|
|
4445
|
+
"args": {},
|
|
4446
|
+
"description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
|
|
4447
|
+
"examples": [
|
|
4448
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
|
|
4449
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
|
|
4450
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
|
|
4451
|
+
"<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
|
|
4452
|
+
],
|
|
4453
|
+
"flags": {
|
|
4454
|
+
"from": {
|
|
4455
|
+
"description": "Source SQL dialect",
|
|
4456
|
+
"name": "from",
|
|
4457
|
+
"required": true,
|
|
4458
|
+
"hasDynamicHelp": false,
|
|
4459
|
+
"multiple": false,
|
|
4460
|
+
"options": [
|
|
4461
|
+
"sqlserver",
|
|
4462
|
+
"postgresql"
|
|
4463
|
+
],
|
|
4464
|
+
"type": "option"
|
|
4465
|
+
},
|
|
4466
|
+
"to": {
|
|
4467
|
+
"description": "Target SQL dialect",
|
|
4468
|
+
"name": "to",
|
|
4469
|
+
"required": true,
|
|
4470
|
+
"hasDynamicHelp": false,
|
|
4471
|
+
"multiple": false,
|
|
4472
|
+
"options": [
|
|
4473
|
+
"sqlserver",
|
|
4474
|
+
"postgresql"
|
|
4475
|
+
],
|
|
4476
|
+
"type": "option"
|
|
4477
|
+
},
|
|
4478
|
+
"scope": {
|
|
4479
|
+
"description": "What to scan for translation",
|
|
4480
|
+
"name": "scope",
|
|
4481
|
+
"default": "all",
|
|
4482
|
+
"hasDynamicHelp": false,
|
|
4483
|
+
"multiple": false,
|
|
4484
|
+
"options": [
|
|
4485
|
+
"queries",
|
|
4486
|
+
"views",
|
|
4487
|
+
"filters",
|
|
4488
|
+
"all"
|
|
4489
|
+
],
|
|
4490
|
+
"type": "option"
|
|
4491
|
+
},
|
|
4492
|
+
"sql": {
|
|
4493
|
+
"description": "Translate a single SQL fragment (inline mode)",
|
|
4494
|
+
"name": "sql",
|
|
4495
|
+
"hasDynamicHelp": false,
|
|
4496
|
+
"multiple": false,
|
|
4497
|
+
"type": "option"
|
|
4498
|
+
},
|
|
4499
|
+
"dry-run": {
|
|
4500
|
+
"description": "Show what would be translated without making changes",
|
|
4501
|
+
"name": "dry-run",
|
|
4502
|
+
"allowNo": false,
|
|
4503
|
+
"type": "boolean"
|
|
4504
|
+
},
|
|
4505
|
+
"review": {
|
|
4506
|
+
"description": "Generate review report only (no writes to database)",
|
|
4507
|
+
"name": "review",
|
|
4508
|
+
"allowNo": false,
|
|
4509
|
+
"type": "boolean"
|
|
4510
|
+
},
|
|
4511
|
+
"output": {
|
|
4512
|
+
"char": "o",
|
|
4513
|
+
"description": "Output directory for the translation report",
|
|
4514
|
+
"name": "output",
|
|
4515
|
+
"hasDynamicHelp": false,
|
|
4516
|
+
"multiple": false,
|
|
4517
|
+
"type": "option"
|
|
4518
|
+
},
|
|
4519
|
+
"force": {
|
|
4520
|
+
"description": "Re-translate even if platform variants already exist",
|
|
4521
|
+
"name": "force",
|
|
4522
|
+
"allowNo": false,
|
|
4523
|
+
"type": "boolean"
|
|
4524
|
+
}
|
|
4525
|
+
},
|
|
4526
|
+
"hasDynamicHelp": false,
|
|
4527
|
+
"hiddenAliases": [],
|
|
4528
|
+
"id": "translate-sql",
|
|
4529
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4530
|
+
"pluginName": "@memberjunction/cli",
|
|
4531
|
+
"pluginType": "core",
|
|
4532
|
+
"strict": true,
|
|
4533
|
+
"enableJsonFlag": false,
|
|
4534
|
+
"isESM": true,
|
|
4535
|
+
"relativePath": [
|
|
4536
|
+
"dist",
|
|
4537
|
+
"commands",
|
|
4538
|
+
"translate-sql",
|
|
4539
|
+
"index.js"
|
|
4540
|
+
]
|
|
4541
|
+
},
|
|
4542
|
+
"update:claude": {
|
|
4543
|
+
"aliases": [],
|
|
4544
|
+
"args": {},
|
|
4545
|
+
"description": "Update the Claude Code pack in the current directory.",
|
|
4546
|
+
"examples": [
|
|
4547
|
+
"<%= config.bin %> update:claude",
|
|
4548
|
+
"<%= config.bin %> update:claude --check",
|
|
4549
|
+
"<%= config.bin %> update:claude --refresh-commands",
|
|
4550
|
+
"<%= config.bin %> update:claude --allow-major",
|
|
4551
|
+
"<%= config.bin %> update:claude --json"
|
|
4552
|
+
],
|
|
4553
|
+
"flags": {
|
|
4554
|
+
"dir": {
|
|
4555
|
+
"description": "Target directory",
|
|
4556
|
+
"name": "dir",
|
|
4557
|
+
"default": ".",
|
|
4558
|
+
"hasDynamicHelp": false,
|
|
4559
|
+
"multiple": false,
|
|
4560
|
+
"type": "option"
|
|
4561
|
+
},
|
|
4562
|
+
"major": {
|
|
4563
|
+
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
4564
|
+
"name": "major",
|
|
4565
|
+
"hasDynamicHelp": false,
|
|
4566
|
+
"multiple": false,
|
|
4567
|
+
"type": "option"
|
|
4568
|
+
},
|
|
4569
|
+
"ref": {
|
|
4570
|
+
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
4571
|
+
"name": "ref",
|
|
4572
|
+
"hasDynamicHelp": false,
|
|
4573
|
+
"multiple": false,
|
|
4574
|
+
"type": "option"
|
|
4575
|
+
},
|
|
4576
|
+
"from": {
|
|
4577
|
+
"description": "Use a local pack source instead of fetching from GitHub",
|
|
4578
|
+
"name": "from",
|
|
4579
|
+
"hasDynamicHelp": false,
|
|
4580
|
+
"multiple": false,
|
|
4581
|
+
"type": "option"
|
|
4582
|
+
},
|
|
4583
|
+
"offline": {
|
|
4584
|
+
"description": "Forbid network; requires --from <path>",
|
|
4585
|
+
"name": "offline",
|
|
4586
|
+
"allowNo": false,
|
|
4587
|
+
"type": "boolean"
|
|
4588
|
+
},
|
|
4589
|
+
"dry-run": {
|
|
4590
|
+
"description": "Print what would be written; change nothing",
|
|
4591
|
+
"name": "dry-run",
|
|
4592
|
+
"allowNo": false,
|
|
4593
|
+
"type": "boolean"
|
|
4594
|
+
},
|
|
4595
|
+
"yes": {
|
|
4596
|
+
"char": "y",
|
|
4597
|
+
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
4598
|
+
"name": "yes",
|
|
4599
|
+
"allowNo": false,
|
|
4600
|
+
"type": "boolean"
|
|
4601
|
+
},
|
|
4602
|
+
"force": {
|
|
4603
|
+
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
4604
|
+
"name": "force",
|
|
4605
|
+
"allowNo": false,
|
|
4606
|
+
"type": "boolean"
|
|
4607
|
+
},
|
|
4608
|
+
"skip-commands": {
|
|
4609
|
+
"description": "Skip seeding .claude/commands/",
|
|
4610
|
+
"name": "skip-commands",
|
|
4611
|
+
"allowNo": false,
|
|
4612
|
+
"type": "boolean"
|
|
4613
|
+
},
|
|
4614
|
+
"skip-skills": {
|
|
4615
|
+
"description": "Skip seeding .claude/skills/",
|
|
4616
|
+
"name": "skip-skills",
|
|
4617
|
+
"allowNo": false,
|
|
4618
|
+
"type": "boolean"
|
|
4619
|
+
},
|
|
4620
|
+
"skip-settings": {
|
|
4621
|
+
"description": "Skip merging .claude/settings.json",
|
|
4622
|
+
"name": "skip-settings",
|
|
4623
|
+
"allowNo": false,
|
|
4624
|
+
"type": "boolean"
|
|
4625
|
+
},
|
|
4626
|
+
"check": {
|
|
4627
|
+
"description": "Compare local pack version to remote without writing anything",
|
|
4628
|
+
"name": "check",
|
|
4629
|
+
"allowNo": false,
|
|
4630
|
+
"type": "boolean"
|
|
4631
|
+
},
|
|
4632
|
+
"refresh-commands": {
|
|
4633
|
+
"description": "Force-resync .claude/commands/* from the pack (saves .bak files)",
|
|
4634
|
+
"name": "refresh-commands",
|
|
4635
|
+
"allowNo": false,
|
|
4636
|
+
"type": "boolean"
|
|
4637
|
+
},
|
|
4638
|
+
"refresh-skills": {
|
|
4639
|
+
"description": "Force-resync .claude/skills/** from the pack (saves .bak files)",
|
|
4640
|
+
"name": "refresh-skills",
|
|
4641
|
+
"allowNo": false,
|
|
4642
|
+
"type": "boolean"
|
|
4643
|
+
},
|
|
4644
|
+
"allow-major": {
|
|
4645
|
+
"description": "Allow the remote pack's major to differ from local MJ's major",
|
|
4646
|
+
"name": "allow-major",
|
|
4647
|
+
"allowNo": false,
|
|
4648
|
+
"type": "boolean"
|
|
4649
|
+
},
|
|
4650
|
+
"json": {
|
|
4651
|
+
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
4652
|
+
"name": "json",
|
|
4653
|
+
"allowNo": false,
|
|
4654
|
+
"type": "boolean"
|
|
4655
|
+
},
|
|
4656
|
+
"verbose": {
|
|
4657
|
+
"char": "v",
|
|
4658
|
+
"description": "Show progress messages",
|
|
4659
|
+
"name": "verbose",
|
|
4660
|
+
"allowNo": false,
|
|
4661
|
+
"type": "boolean"
|
|
4662
|
+
}
|
|
4663
|
+
},
|
|
4664
|
+
"hasDynamicHelp": false,
|
|
4665
|
+
"hiddenAliases": [],
|
|
4666
|
+
"id": "update:claude",
|
|
4610
4667
|
"pluginAlias": "@memberjunction/cli",
|
|
4611
4668
|
"pluginName": "@memberjunction/cli",
|
|
4612
4669
|
"pluginType": "core",
|
|
@@ -4616,14 +4673,14 @@
|
|
|
4616
4673
|
"relativePath": [
|
|
4617
4674
|
"dist",
|
|
4618
4675
|
"commands",
|
|
4619
|
-
"
|
|
4620
|
-
"
|
|
4676
|
+
"update",
|
|
4677
|
+
"claude.js"
|
|
4621
4678
|
]
|
|
4622
4679
|
},
|
|
4623
|
-
"ai:
|
|
4680
|
+
"ai:agents:list": {
|
|
4624
4681
|
"aliases": [],
|
|
4625
4682
|
"args": {},
|
|
4626
|
-
"description": "List available AI
|
|
4683
|
+
"description": "List available AI agents",
|
|
4627
4684
|
"examples": [
|
|
4628
4685
|
"<%= config.bin %> <%= command.id %>",
|
|
4629
4686
|
"<%= config.bin %> <%= command.id %> --output=table",
|
|
@@ -4647,7 +4704,7 @@
|
|
|
4647
4704
|
},
|
|
4648
4705
|
"hasDynamicHelp": false,
|
|
4649
4706
|
"hiddenAliases": [],
|
|
4650
|
-
"id": "ai:
|
|
4707
|
+
"id": "ai:agents:list",
|
|
4651
4708
|
"pluginAlias": "@memberjunction/cli",
|
|
4652
4709
|
"pluginName": "@memberjunction/cli",
|
|
4653
4710
|
"pluginType": "core",
|
|
@@ -4658,41 +4715,47 @@
|
|
|
4658
4715
|
"dist",
|
|
4659
4716
|
"commands",
|
|
4660
4717
|
"ai",
|
|
4661
|
-
"
|
|
4718
|
+
"agents",
|
|
4662
4719
|
"list.js"
|
|
4663
4720
|
]
|
|
4664
4721
|
},
|
|
4665
|
-
"ai:
|
|
4722
|
+
"ai:agents:run": {
|
|
4666
4723
|
"aliases": [],
|
|
4667
4724
|
"args": {},
|
|
4668
|
-
"description": "Execute an AI
|
|
4725
|
+
"description": "Execute an AI agent with a prompt or start interactive chat",
|
|
4669
4726
|
"examples": [
|
|
4670
|
-
"<%= config.bin %> <%= command.id %> -
|
|
4671
|
-
"<%= config.bin %> <%= command.id %> -
|
|
4672
|
-
"<%= config.bin %> <%= command.id %> -
|
|
4673
|
-
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
4727
|
+
"<%= config.bin %> <%= command.id %> -a \"Skip: Requirements Expert\" -p \"Create a dashboard for sales metrics\"",
|
|
4728
|
+
"<%= config.bin %> <%= command.id %> -a \"Child Component Generator Sub-agent\" --chat",
|
|
4729
|
+
"<%= config.bin %> <%= command.id %> -a \"Skip: Technical Design Expert\" -p \"Build a React component\" --verbose --timeout=600000"
|
|
4674
4730
|
],
|
|
4675
4731
|
"flags": {
|
|
4676
|
-
"
|
|
4677
|
-
"char": "
|
|
4678
|
-
"description": "
|
|
4679
|
-
"name": "
|
|
4732
|
+
"agent": {
|
|
4733
|
+
"char": "a",
|
|
4734
|
+
"description": "Agent name",
|
|
4735
|
+
"name": "agent",
|
|
4680
4736
|
"required": true,
|
|
4681
4737
|
"hasDynamicHelp": false,
|
|
4682
4738
|
"multiple": false,
|
|
4683
4739
|
"type": "option"
|
|
4684
4740
|
},
|
|
4685
|
-
"
|
|
4741
|
+
"prompt": {
|
|
4686
4742
|
"char": "p",
|
|
4687
|
-
"description": "
|
|
4688
|
-
"
|
|
4743
|
+
"description": "Prompt to execute",
|
|
4744
|
+
"exclusive": [
|
|
4745
|
+
"chat"
|
|
4746
|
+
],
|
|
4747
|
+
"name": "prompt",
|
|
4689
4748
|
"hasDynamicHelp": false,
|
|
4690
|
-
"multiple":
|
|
4749
|
+
"multiple": false,
|
|
4691
4750
|
"type": "option"
|
|
4692
4751
|
},
|
|
4693
|
-
"
|
|
4694
|
-
"
|
|
4695
|
-
"
|
|
4752
|
+
"chat": {
|
|
4753
|
+
"char": "c",
|
|
4754
|
+
"description": "Start interactive chat mode",
|
|
4755
|
+
"exclusive": [
|
|
4756
|
+
"prompt"
|
|
4757
|
+
],
|
|
4758
|
+
"name": "chat",
|
|
4696
4759
|
"allowNo": false,
|
|
4697
4760
|
"type": "boolean"
|
|
4698
4761
|
},
|
|
@@ -4728,7 +4791,7 @@
|
|
|
4728
4791
|
},
|
|
4729
4792
|
"hasDynamicHelp": false,
|
|
4730
4793
|
"hiddenAliases": [],
|
|
4731
|
-
"id": "ai:
|
|
4794
|
+
"id": "ai:agents:run",
|
|
4732
4795
|
"pluginAlias": "@memberjunction/cli",
|
|
4733
4796
|
"pluginName": "@memberjunction/cli",
|
|
4734
4797
|
"pluginType": "core",
|
|
@@ -4739,7 +4802,7 @@
|
|
|
4739
4802
|
"dist",
|
|
4740
4803
|
"commands",
|
|
4741
4804
|
"ai",
|
|
4742
|
-
"
|
|
4805
|
+
"agents",
|
|
4743
4806
|
"run.js"
|
|
4744
4807
|
]
|
|
4745
4808
|
},
|
|
@@ -4959,10 +5022,10 @@
|
|
|
4959
5022
|
"index.js"
|
|
4960
5023
|
]
|
|
4961
5024
|
},
|
|
4962
|
-
"ai:
|
|
5025
|
+
"ai:actions:list": {
|
|
4963
5026
|
"aliases": [],
|
|
4964
5027
|
"args": {},
|
|
4965
|
-
"description": "List available AI
|
|
5028
|
+
"description": "List available AI actions",
|
|
4966
5029
|
"examples": [
|
|
4967
5030
|
"<%= config.bin %> <%= command.id %>",
|
|
4968
5031
|
"<%= config.bin %> <%= command.id %> --output=table",
|
|
@@ -4986,7 +5049,7 @@
|
|
|
4986
5049
|
},
|
|
4987
5050
|
"hasDynamicHelp": false,
|
|
4988
5051
|
"hiddenAliases": [],
|
|
4989
|
-
"id": "ai:
|
|
5052
|
+
"id": "ai:actions:list",
|
|
4990
5053
|
"pluginAlias": "@memberjunction/cli",
|
|
4991
5054
|
"pluginName": "@memberjunction/cli",
|
|
4992
5055
|
"pluginType": "core",
|
|
@@ -4997,47 +5060,41 @@
|
|
|
4997
5060
|
"dist",
|
|
4998
5061
|
"commands",
|
|
4999
5062
|
"ai",
|
|
5000
|
-
"
|
|
5063
|
+
"actions",
|
|
5001
5064
|
"list.js"
|
|
5002
5065
|
]
|
|
5003
5066
|
},
|
|
5004
|
-
"ai:
|
|
5067
|
+
"ai:actions:run": {
|
|
5005
5068
|
"aliases": [],
|
|
5006
5069
|
"args": {},
|
|
5007
|
-
"description": "Execute an AI
|
|
5070
|
+
"description": "Execute an AI action with parameters",
|
|
5008
5071
|
"examples": [
|
|
5009
|
-
"<%= config.bin %> <%= command.id %> -
|
|
5010
|
-
"<%= config.bin %> <%= command.id %> -
|
|
5011
|
-
"<%= config.bin %> <%= command.id %> -
|
|
5072
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Weather\" --param \"Location=Boston\"",
|
|
5073
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Stock Price\" --param \"Ticker=AAPL\"",
|
|
5074
|
+
"<%= config.bin %> <%= command.id %> -n \"Send Single Message\" --param \"To=user@example.com\" --param \"Subject=Test\" --param \"Body=Hello\" --param \"MessageType=Email\" --param \"Provider=SendGrid\"",
|
|
5075
|
+
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
5012
5076
|
],
|
|
5013
5077
|
"flags": {
|
|
5014
|
-
"
|
|
5015
|
-
"char": "
|
|
5016
|
-
"description": "
|
|
5017
|
-
"name": "
|
|
5078
|
+
"name": {
|
|
5079
|
+
"char": "n",
|
|
5080
|
+
"description": "Action name",
|
|
5081
|
+
"name": "name",
|
|
5018
5082
|
"required": true,
|
|
5019
5083
|
"hasDynamicHelp": false,
|
|
5020
5084
|
"multiple": false,
|
|
5021
5085
|
"type": "option"
|
|
5022
5086
|
},
|
|
5023
|
-
"
|
|
5087
|
+
"param": {
|
|
5024
5088
|
"char": "p",
|
|
5025
|
-
"description": "
|
|
5026
|
-
"
|
|
5027
|
-
"chat"
|
|
5028
|
-
],
|
|
5029
|
-
"name": "prompt",
|
|
5089
|
+
"description": "Action parameters in key=value format",
|
|
5090
|
+
"name": "param",
|
|
5030
5091
|
"hasDynamicHelp": false,
|
|
5031
|
-
"multiple":
|
|
5092
|
+
"multiple": true,
|
|
5032
5093
|
"type": "option"
|
|
5033
5094
|
},
|
|
5034
|
-
"
|
|
5035
|
-
"
|
|
5036
|
-
"
|
|
5037
|
-
"exclusive": [
|
|
5038
|
-
"prompt"
|
|
5039
|
-
],
|
|
5040
|
-
"name": "chat",
|
|
5095
|
+
"dry-run": {
|
|
5096
|
+
"description": "Validate without executing",
|
|
5097
|
+
"name": "dry-run",
|
|
5041
5098
|
"allowNo": false,
|
|
5042
5099
|
"type": "boolean"
|
|
5043
5100
|
},
|
|
@@ -5073,7 +5130,7 @@
|
|
|
5073
5130
|
},
|
|
5074
5131
|
"hasDynamicHelp": false,
|
|
5075
5132
|
"hiddenAliases": [],
|
|
5076
|
-
"id": "ai:
|
|
5133
|
+
"id": "ai:actions:run",
|
|
5077
5134
|
"pluginAlias": "@memberjunction/cli",
|
|
5078
5135
|
"pluginName": "@memberjunction/cli",
|
|
5079
5136
|
"pluginType": "core",
|
|
@@ -5084,7 +5141,7 @@
|
|
|
5084
5141
|
"dist",
|
|
5085
5142
|
"commands",
|
|
5086
5143
|
"ai",
|
|
5087
|
-
"
|
|
5144
|
+
"actions",
|
|
5088
5145
|
"run.js"
|
|
5089
5146
|
]
|
|
5090
5147
|
},
|
|
@@ -5227,6 +5284,208 @@
|
|
|
5227
5284
|
"run.js"
|
|
5228
5285
|
]
|
|
5229
5286
|
},
|
|
5287
|
+
"dev:workspace:clean": {
|
|
5288
|
+
"aliases": [],
|
|
5289
|
+
"args": {},
|
|
5290
|
+
"description": "Remove exactly the generated cross-repo workspace residue at a parent directory: the four generated files, the .mj-dev-workspace.json sentinel, pnpm-lock.yaml and the node_modules tree. Member repo checkouts and .bak backups are never touched. Without --force a valid sentinel must be present, so a hand-made workspace cannot be torn down by accident. Preview first with --dry-run, which deletes nothing and exits 0.",
|
|
5291
|
+
"examples": [
|
|
5292
|
+
"<%= config.bin %> dev workspace clean --dir ~/code/bluecypress --dry-run",
|
|
5293
|
+
"<%= config.bin %> dev workspace clean --dir ~/code/bluecypress",
|
|
5294
|
+
"<%= config.bin %> dev workspace clean --dir ~/code/bluecypress --dry-run --force",
|
|
5295
|
+
"<%= config.bin %> dev workspace clean --dir ~/code/bluecypress --force"
|
|
5296
|
+
],
|
|
5297
|
+
"flags": {
|
|
5298
|
+
"dir": {
|
|
5299
|
+
"description": "Parent directory holding the sibling repo clones (must NOT itself be a git repo; env: MJ_DEV_WORKSPACE_DIR)",
|
|
5300
|
+
"env": "MJ_DEV_WORKSPACE_DIR",
|
|
5301
|
+
"name": "dir",
|
|
5302
|
+
"default": ".",
|
|
5303
|
+
"hasDynamicHelp": false,
|
|
5304
|
+
"multiple": false,
|
|
5305
|
+
"type": "option"
|
|
5306
|
+
},
|
|
5307
|
+
"dry-run": {
|
|
5308
|
+
"description": "List what would be removed and exit without deleting anything",
|
|
5309
|
+
"name": "dry-run",
|
|
5310
|
+
"allowNo": false,
|
|
5311
|
+
"type": "boolean"
|
|
5312
|
+
},
|
|
5313
|
+
"force": {
|
|
5314
|
+
"description": "Clean even without the generator sentinel (hand-made or pre-sentinel workspaces)",
|
|
5315
|
+
"name": "force",
|
|
5316
|
+
"allowNo": false,
|
|
5317
|
+
"type": "boolean"
|
|
5318
|
+
}
|
|
5319
|
+
},
|
|
5320
|
+
"hasDynamicHelp": false,
|
|
5321
|
+
"hiddenAliases": [],
|
|
5322
|
+
"id": "dev:workspace:clean",
|
|
5323
|
+
"pluginAlias": "@memberjunction/cli",
|
|
5324
|
+
"pluginName": "@memberjunction/cli",
|
|
5325
|
+
"pluginType": "core",
|
|
5326
|
+
"strict": true,
|
|
5327
|
+
"enableJsonFlag": false,
|
|
5328
|
+
"isESM": true,
|
|
5329
|
+
"relativePath": [
|
|
5330
|
+
"dist",
|
|
5331
|
+
"commands",
|
|
5332
|
+
"dev",
|
|
5333
|
+
"workspace",
|
|
5334
|
+
"clean.js"
|
|
5335
|
+
]
|
|
5336
|
+
},
|
|
5337
|
+
"dev:workspace:doctor": {
|
|
5338
|
+
"aliases": [],
|
|
5339
|
+
"args": {},
|
|
5340
|
+
"description": "Health-check the generated cross-repo pnpm workspace at a parent directory: workspace files, sentinel, pnpm pin vs. active version, member directories, detected-but-unlisted repos, members carrying a standalone install, and a one-copy census of the parent package store (more than one @angular/core, rxjs, zone.js or MJ core/global is a FAIL). Prints PASS/WARN/FAIL per check and exits non-zero on any FAIL. Read-only.",
|
|
5341
|
+
"examples": [
|
|
5342
|
+
"<%= config.bin %> dev workspace doctor",
|
|
5343
|
+
"<%= config.bin %> dev workspace doctor --dir ~/code/bluecypress",
|
|
5344
|
+
"MJ_DEV_WORKSPACE_DIR=~/code/bluecypress <%= config.bin %> dev workspace doctor"
|
|
5345
|
+
],
|
|
5346
|
+
"flags": {
|
|
5347
|
+
"dir": {
|
|
5348
|
+
"description": "Parent directory holding the sibling repo clones (env: MJ_DEV_WORKSPACE_DIR)",
|
|
5349
|
+
"env": "MJ_DEV_WORKSPACE_DIR",
|
|
5350
|
+
"name": "dir",
|
|
5351
|
+
"default": ".",
|
|
5352
|
+
"hasDynamicHelp": false,
|
|
5353
|
+
"multiple": false,
|
|
5354
|
+
"type": "option"
|
|
5355
|
+
}
|
|
5356
|
+
},
|
|
5357
|
+
"hasDynamicHelp": false,
|
|
5358
|
+
"hiddenAliases": [],
|
|
5359
|
+
"id": "dev:workspace:doctor",
|
|
5360
|
+
"pluginAlias": "@memberjunction/cli",
|
|
5361
|
+
"pluginName": "@memberjunction/cli",
|
|
5362
|
+
"pluginType": "core",
|
|
5363
|
+
"strict": true,
|
|
5364
|
+
"enableJsonFlag": false,
|
|
5365
|
+
"isESM": true,
|
|
5366
|
+
"relativePath": [
|
|
5367
|
+
"dist",
|
|
5368
|
+
"commands",
|
|
5369
|
+
"dev",
|
|
5370
|
+
"workspace",
|
|
5371
|
+
"doctor.js"
|
|
5372
|
+
]
|
|
5373
|
+
},
|
|
5374
|
+
"dev:workspace": {
|
|
5375
|
+
"aliases": [],
|
|
5376
|
+
"args": {},
|
|
5377
|
+
"description": "Join sibling repo clones into one pnpm workspace: writes pnpm-workspace.yaml, .npmrc, package.json, turbo.json and the .mj-dev-workspace.json sentinel at their common parent, then runs pnpm install there. Members are the parent's immediate subdirectories carrying an mj-app.json, a @mj-biz-apps package, or the MJ monorepo root name. Existing files are never overwritten without --force (which keeps a .bak of each). Generated files are ephemeral — never commit them; tear them down with `dev workspace clean`.",
|
|
5378
|
+
"examples": [
|
|
5379
|
+
"<%= config.bin %> dev workspace --dir ~/code/bluecypress",
|
|
5380
|
+
"<%= config.bin %> dev workspace --dir ~/code/bluecypress --exclude bizapps-sonar",
|
|
5381
|
+
"<%= config.bin %> dev workspace --dir ~/code/bluecypress --include bizapps-common --include bizapps-tasks",
|
|
5382
|
+
"<%= config.bin %> dev workspace --dir ~/code/bluecypress --no-install --force",
|
|
5383
|
+
"MJ_DEV_WORKSPACE_DIR=~/code/bluecypress <%= config.bin %> dev workspace"
|
|
5384
|
+
],
|
|
5385
|
+
"flags": {
|
|
5386
|
+
"dir": {
|
|
5387
|
+
"description": "Parent directory holding the sibling repo clones (must NOT itself be a git repo; env: MJ_DEV_WORKSPACE_DIR)",
|
|
5388
|
+
"env": "MJ_DEV_WORKSPACE_DIR",
|
|
5389
|
+
"name": "dir",
|
|
5390
|
+
"default": ".",
|
|
5391
|
+
"hasDynamicHelp": false,
|
|
5392
|
+
"multiple": false,
|
|
5393
|
+
"type": "option"
|
|
5394
|
+
},
|
|
5395
|
+
"include": {
|
|
5396
|
+
"description": "Repo directory name to include as a member (repeatable; adds to the detected set)",
|
|
5397
|
+
"name": "include",
|
|
5398
|
+
"hasDynamicHelp": false,
|
|
5399
|
+
"multiple": true,
|
|
5400
|
+
"type": "option"
|
|
5401
|
+
},
|
|
5402
|
+
"exclude": {
|
|
5403
|
+
"description": "Repo directory name to exclude from the members (repeatable)",
|
|
5404
|
+
"name": "exclude",
|
|
5405
|
+
"hasDynamicHelp": false,
|
|
5406
|
+
"multiple": true,
|
|
5407
|
+
"type": "option"
|
|
5408
|
+
},
|
|
5409
|
+
"install": {
|
|
5410
|
+
"description": "Run `pnpm install` at the parent after generating (disable with --no-install)",
|
|
5411
|
+
"name": "install",
|
|
5412
|
+
"allowNo": true,
|
|
5413
|
+
"type": "boolean"
|
|
5414
|
+
},
|
|
5415
|
+
"force": {
|
|
5416
|
+
"description": "Overwrite existing workspace files at the parent (a .bak copy of each is kept)",
|
|
5417
|
+
"name": "force",
|
|
5418
|
+
"allowNo": false,
|
|
5419
|
+
"type": "boolean"
|
|
5420
|
+
},
|
|
5421
|
+
"clean-members": {
|
|
5422
|
+
"description": "Remove members' standalone node_modules trees (root AND nested, depth-independent) before the parent install; --no-clean-members keeps them. Without either flag, an interactive run asks per member.",
|
|
5423
|
+
"name": "clean-members",
|
|
5424
|
+
"allowNo": true,
|
|
5425
|
+
"type": "boolean"
|
|
5426
|
+
},
|
|
5427
|
+
"verbose": {
|
|
5428
|
+
"char": "v",
|
|
5429
|
+
"description": "Show detailed output",
|
|
5430
|
+
"name": "verbose",
|
|
5431
|
+
"allowNo": false,
|
|
5432
|
+
"type": "boolean"
|
|
5433
|
+
}
|
|
5434
|
+
},
|
|
5435
|
+
"hasDynamicHelp": false,
|
|
5436
|
+
"hiddenAliases": [],
|
|
5437
|
+
"id": "dev:workspace",
|
|
5438
|
+
"pluginAlias": "@memberjunction/cli",
|
|
5439
|
+
"pluginName": "@memberjunction/cli",
|
|
5440
|
+
"pluginType": "core",
|
|
5441
|
+
"strict": true,
|
|
5442
|
+
"enableJsonFlag": false,
|
|
5443
|
+
"isESM": true,
|
|
5444
|
+
"relativePath": [
|
|
5445
|
+
"dist",
|
|
5446
|
+
"commands",
|
|
5447
|
+
"dev",
|
|
5448
|
+
"workspace",
|
|
5449
|
+
"index.js"
|
|
5450
|
+
]
|
|
5451
|
+
},
|
|
5452
|
+
"dev:workspace:status": {
|
|
5453
|
+
"aliases": [],
|
|
5454
|
+
"args": {},
|
|
5455
|
+
"description": "Report the state of the generated cross-repo pnpm workspace at a parent directory: generated files, lockfile, node_modules, sentinel presence, members vs. detected candidates, and the pnpm pin. Read-only.",
|
|
5456
|
+
"examples": [
|
|
5457
|
+
"<%= config.bin %> dev workspace status",
|
|
5458
|
+
"<%= config.bin %> dev workspace status --dir ~/code/bluecypress",
|
|
5459
|
+
"MJ_DEV_WORKSPACE_DIR=~/code/bluecypress <%= config.bin %> dev workspace status"
|
|
5460
|
+
],
|
|
5461
|
+
"flags": {
|
|
5462
|
+
"dir": {
|
|
5463
|
+
"description": "Parent directory holding the sibling repo clones (env: MJ_DEV_WORKSPACE_DIR)",
|
|
5464
|
+
"env": "MJ_DEV_WORKSPACE_DIR",
|
|
5465
|
+
"name": "dir",
|
|
5466
|
+
"default": ".",
|
|
5467
|
+
"hasDynamicHelp": false,
|
|
5468
|
+
"multiple": false,
|
|
5469
|
+
"type": "option"
|
|
5470
|
+
}
|
|
5471
|
+
},
|
|
5472
|
+
"hasDynamicHelp": false,
|
|
5473
|
+
"hiddenAliases": [],
|
|
5474
|
+
"id": "dev:workspace:status",
|
|
5475
|
+
"pluginAlias": "@memberjunction/cli",
|
|
5476
|
+
"pluginName": "@memberjunction/cli",
|
|
5477
|
+
"pluginType": "core",
|
|
5478
|
+
"strict": true,
|
|
5479
|
+
"enableJsonFlag": false,
|
|
5480
|
+
"isESM": true,
|
|
5481
|
+
"relativePath": [
|
|
5482
|
+
"dist",
|
|
5483
|
+
"commands",
|
|
5484
|
+
"dev",
|
|
5485
|
+
"workspace",
|
|
5486
|
+
"status.js"
|
|
5487
|
+
]
|
|
5488
|
+
},
|
|
5230
5489
|
"test:regression:build": {
|
|
5231
5490
|
"aliases": [],
|
|
5232
5491
|
"args": {
|
|
@@ -5668,5 +5927,5 @@
|
|
|
5668
5927
|
]
|
|
5669
5928
|
}
|
|
5670
5929
|
},
|
|
5671
|
-
"version": "6.1.0-edge.
|
|
5930
|
+
"version": "6.1.0-edge.4"
|
|
5672
5931
|
}
|