@memberjunction/cli 2.54.0 → 2.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -206,7 +206,376 @@
206
206
  "migrate",
207
207
  "index.js"
208
208
  ]
209
+ },
210
+ "sync:file-reset": {
211
+ "aliases": [],
212
+ "args": {},
213
+ "description": "Reset file metadata sections",
214
+ "examples": [
215
+ "<%= config.bin %> <%= command.id %>",
216
+ "<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
217
+ "<%= config.bin %> <%= command.id %> --sections=\"dependencies,references\"",
218
+ "<%= config.bin %> <%= command.id %> --all"
219
+ ],
220
+ "flags": {
221
+ "dir": {
222
+ "description": "Specific entity directory to reset",
223
+ "name": "dir",
224
+ "hasDynamicHelp": false,
225
+ "multiple": false,
226
+ "type": "option"
227
+ },
228
+ "sections": {
229
+ "description": "Comma-separated list of sections to reset (dependencies,references,related,lookup)",
230
+ "name": "sections",
231
+ "hasDynamicHelp": false,
232
+ "multiple": false,
233
+ "type": "option"
234
+ },
235
+ "all": {
236
+ "description": "Reset all metadata sections",
237
+ "name": "all",
238
+ "allowNo": false,
239
+ "type": "boolean"
240
+ },
241
+ "dry-run": {
242
+ "description": "Show what would be reset without actually resetting",
243
+ "name": "dry-run",
244
+ "allowNo": false,
245
+ "type": "boolean"
246
+ },
247
+ "force": {
248
+ "description": "Skip confirmation prompts",
249
+ "name": "force",
250
+ "allowNo": false,
251
+ "type": "boolean"
252
+ },
253
+ "verbose": {
254
+ "char": "v",
255
+ "description": "Show detailed output",
256
+ "name": "verbose",
257
+ "allowNo": false,
258
+ "type": "boolean"
259
+ }
260
+ },
261
+ "hasDynamicHelp": false,
262
+ "hiddenAliases": [],
263
+ "id": "sync:file-reset",
264
+ "pluginAlias": "@memberjunction/cli",
265
+ "pluginName": "@memberjunction/cli",
266
+ "pluginType": "core",
267
+ "strict": true,
268
+ "enableJsonFlag": false,
269
+ "isESM": false,
270
+ "relativePath": [
271
+ "dist",
272
+ "commands",
273
+ "sync",
274
+ "file-reset.js"
275
+ ]
276
+ },
277
+ "sync:init": {
278
+ "aliases": [],
279
+ "args": {},
280
+ "description": "Initialize a directory for metadata synchronization",
281
+ "examples": [
282
+ "<%= config.bin %> <%= command.id %>"
283
+ ],
284
+ "flags": {},
285
+ "hasDynamicHelp": false,
286
+ "hiddenAliases": [],
287
+ "id": "sync:init",
288
+ "pluginAlias": "@memberjunction/cli",
289
+ "pluginName": "@memberjunction/cli",
290
+ "pluginType": "core",
291
+ "strict": true,
292
+ "enableJsonFlag": false,
293
+ "isESM": false,
294
+ "relativePath": [
295
+ "dist",
296
+ "commands",
297
+ "sync",
298
+ "init.js"
299
+ ]
300
+ },
301
+ "sync:pull": {
302
+ "aliases": [],
303
+ "args": {},
304
+ "description": "Pull metadata from database to local files",
305
+ "examples": [
306
+ "<%= config.bin %> <%= command.id %> --entity=\"AI Prompts\"",
307
+ "<%= config.bin %> <%= command.id %> --entity=\"AI Prompts\" --filter=\"CategoryID='customer-service-id'\""
308
+ ],
309
+ "flags": {
310
+ "entity": {
311
+ "description": "Entity name to pull",
312
+ "name": "entity",
313
+ "required": true,
314
+ "hasDynamicHelp": false,
315
+ "multiple": false,
316
+ "type": "option"
317
+ },
318
+ "filter": {
319
+ "description": "Additional filter for pulling specific records",
320
+ "name": "filter",
321
+ "hasDynamicHelp": false,
322
+ "multiple": false,
323
+ "type": "option"
324
+ },
325
+ "dry-run": {
326
+ "description": "Show what would be pulled without actually pulling",
327
+ "name": "dry-run",
328
+ "allowNo": false,
329
+ "type": "boolean"
330
+ },
331
+ "multi-file": {
332
+ "description": "Create a single file with multiple records (provide filename)",
333
+ "name": "multi-file",
334
+ "hasDynamicHelp": false,
335
+ "multiple": false,
336
+ "type": "option"
337
+ },
338
+ "verbose": {
339
+ "char": "v",
340
+ "description": "Show detailed output",
341
+ "name": "verbose",
342
+ "allowNo": false,
343
+ "type": "boolean"
344
+ },
345
+ "no-validate": {
346
+ "description": "Skip validation before pull",
347
+ "name": "no-validate",
348
+ "allowNo": false,
349
+ "type": "boolean"
350
+ }
351
+ },
352
+ "hasDynamicHelp": false,
353
+ "hiddenAliases": [],
354
+ "id": "sync:pull",
355
+ "pluginAlias": "@memberjunction/cli",
356
+ "pluginName": "@memberjunction/cli",
357
+ "pluginType": "core",
358
+ "strict": true,
359
+ "enableJsonFlag": false,
360
+ "isESM": false,
361
+ "relativePath": [
362
+ "dist",
363
+ "commands",
364
+ "sync",
365
+ "pull.js"
366
+ ]
367
+ },
368
+ "sync:push": {
369
+ "aliases": [],
370
+ "args": {},
371
+ "description": "Push local file changes to the database",
372
+ "examples": [
373
+ "<%= config.bin %> <%= command.id %>",
374
+ "<%= config.bin %> <%= command.id %> --dry-run",
375
+ "<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
376
+ "<%= config.bin %> <%= command.id %> --ci"
377
+ ],
378
+ "flags": {
379
+ "dir": {
380
+ "description": "Specific entity directory to push",
381
+ "name": "dir",
382
+ "hasDynamicHelp": false,
383
+ "multiple": false,
384
+ "type": "option"
385
+ },
386
+ "dry-run": {
387
+ "description": "Show what would be pushed without actually pushing",
388
+ "name": "dry-run",
389
+ "allowNo": false,
390
+ "type": "boolean"
391
+ },
392
+ "ci": {
393
+ "description": "CI mode - no prompts, fail on issues",
394
+ "name": "ci",
395
+ "allowNo": false,
396
+ "type": "boolean"
397
+ },
398
+ "verbose": {
399
+ "char": "v",
400
+ "description": "Show detailed field-level output",
401
+ "name": "verbose",
402
+ "allowNo": false,
403
+ "type": "boolean"
404
+ },
405
+ "no-validate": {
406
+ "description": "Skip validation before push",
407
+ "name": "no-validate",
408
+ "allowNo": false,
409
+ "type": "boolean"
410
+ }
411
+ },
412
+ "hasDynamicHelp": false,
413
+ "hiddenAliases": [],
414
+ "id": "sync:push",
415
+ "pluginAlias": "@memberjunction/cli",
416
+ "pluginName": "@memberjunction/cli",
417
+ "pluginType": "core",
418
+ "strict": true,
419
+ "enableJsonFlag": false,
420
+ "isESM": false,
421
+ "relativePath": [
422
+ "dist",
423
+ "commands",
424
+ "sync",
425
+ "push.js"
426
+ ]
427
+ },
428
+ "sync:status": {
429
+ "aliases": [],
430
+ "args": {},
431
+ "description": "Show status of local files vs database",
432
+ "examples": [
433
+ "<%= config.bin %> <%= command.id %>",
434
+ "<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
435
+ "<%= config.bin %> <%= command.id %> --verbose"
436
+ ],
437
+ "flags": {
438
+ "dir": {
439
+ "description": "Specific entity directory to check status",
440
+ "name": "dir",
441
+ "hasDynamicHelp": false,
442
+ "multiple": false,
443
+ "type": "option"
444
+ },
445
+ "verbose": {
446
+ "char": "v",
447
+ "description": "Show detailed field-level differences",
448
+ "name": "verbose",
449
+ "allowNo": false,
450
+ "type": "boolean"
451
+ }
452
+ },
453
+ "hasDynamicHelp": false,
454
+ "hiddenAliases": [],
455
+ "id": "sync:status",
456
+ "pluginAlias": "@memberjunction/cli",
457
+ "pluginName": "@memberjunction/cli",
458
+ "pluginType": "core",
459
+ "strict": true,
460
+ "enableJsonFlag": false,
461
+ "isESM": false,
462
+ "relativePath": [
463
+ "dist",
464
+ "commands",
465
+ "sync",
466
+ "status.js"
467
+ ]
468
+ },
469
+ "sync:validate": {
470
+ "aliases": [],
471
+ "args": {},
472
+ "description": "Validate metadata files",
473
+ "examples": [
474
+ "<%= config.bin %> <%= command.id %>",
475
+ "<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
476
+ "<%= config.bin %> <%= command.id %> --save-report",
477
+ "<%= config.bin %> <%= command.id %> --verbose"
478
+ ],
479
+ "flags": {
480
+ "dir": {
481
+ "description": "Specific entity directory to validate",
482
+ "name": "dir",
483
+ "hasDynamicHelp": false,
484
+ "multiple": false,
485
+ "type": "option"
486
+ },
487
+ "verbose": {
488
+ "char": "v",
489
+ "description": "Show detailed validation output",
490
+ "name": "verbose",
491
+ "allowNo": false,
492
+ "type": "boolean"
493
+ },
494
+ "save-report": {
495
+ "description": "Save validation report as markdown file",
496
+ "name": "save-report",
497
+ "allowNo": false,
498
+ "type": "boolean"
499
+ },
500
+ "output": {
501
+ "description": "Output file path for validation report (default: validation-report.md)",
502
+ "name": "output",
503
+ "hasDynamicHelp": false,
504
+ "multiple": false,
505
+ "type": "option"
506
+ }
507
+ },
508
+ "hasDynamicHelp": false,
509
+ "hiddenAliases": [],
510
+ "id": "sync:validate",
511
+ "pluginAlias": "@memberjunction/cli",
512
+ "pluginName": "@memberjunction/cli",
513
+ "pluginType": "core",
514
+ "strict": true,
515
+ "enableJsonFlag": false,
516
+ "isESM": false,
517
+ "relativePath": [
518
+ "dist",
519
+ "commands",
520
+ "sync",
521
+ "validate.js"
522
+ ]
523
+ },
524
+ "sync:watch": {
525
+ "aliases": [],
526
+ "args": {},
527
+ "description": "Watch for file changes and sync automatically",
528
+ "examples": [
529
+ "<%= config.bin %> <%= command.id %>",
530
+ "<%= config.bin %> <%= command.id %> --dir=\"ai-prompts\"",
531
+ "<%= config.bin %> <%= command.id %> --debounce=1000",
532
+ "<%= config.bin %> <%= command.id %> --no-validate"
533
+ ],
534
+ "flags": {
535
+ "dir": {
536
+ "description": "Specific entity directory to watch",
537
+ "name": "dir",
538
+ "hasDynamicHelp": false,
539
+ "multiple": false,
540
+ "type": "option"
541
+ },
542
+ "debounce": {
543
+ "description": "Debounce delay in milliseconds (default: 500)",
544
+ "name": "debounce",
545
+ "hasDynamicHelp": false,
546
+ "multiple": false,
547
+ "type": "option"
548
+ },
549
+ "no-validate": {
550
+ "description": "Skip validation before sync",
551
+ "name": "no-validate",
552
+ "allowNo": false,
553
+ "type": "boolean"
554
+ },
555
+ "verbose": {
556
+ "char": "v",
557
+ "description": "Show detailed output",
558
+ "name": "verbose",
559
+ "allowNo": false,
560
+ "type": "boolean"
561
+ }
562
+ },
563
+ "hasDynamicHelp": false,
564
+ "hiddenAliases": [],
565
+ "id": "sync:watch",
566
+ "pluginAlias": "@memberjunction/cli",
567
+ "pluginName": "@memberjunction/cli",
568
+ "pluginType": "core",
569
+ "strict": true,
570
+ "enableJsonFlag": false,
571
+ "isESM": false,
572
+ "relativePath": [
573
+ "dist",
574
+ "commands",
575
+ "sync",
576
+ "watch.js"
577
+ ]
209
578
  }
210
579
  },
211
- "version": "2.54.0"
580
+ "version": "2.56.0"
212
581
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/cli",
3
- "version": "2.54.0",
3
+ "version": "2.56.0",
4
4
  "description": "MemberJunction command line tools",
5
5
  "keywords": [
6
6
  "oclif"
@@ -39,6 +39,7 @@
39
39
  "prerun": "./dist/hooks/prerun"
40
40
  },
41
41
  "dirname": "mj",
42
+ "topicSeparator": " ",
42
43
  "plugins": [
43
44
  "@oclif/plugin-help",
44
45
  "@oclif/plugin-warn-if-update-available",
@@ -50,7 +51,9 @@
50
51
  },
51
52
  "dependencies": {
52
53
  "@inquirer/prompts": "^5.0.1",
53
- "@memberjunction/codegen-lib": "2.54.0",
54
+ "@memberjunction/codegen-lib": "2.56.0",
55
+ "@memberjunction/metadata-sync": "2.56.0",
56
+ "@memberjunction/sqlserver-dataprovider": "2.56.0",
54
57
  "@oclif/core": "^3",
55
58
  "@oclif/plugin-help": "^6",
56
59
  "@oclif/plugin-version": "^2.0.17",
@@ -64,7 +67,8 @@
64
67
  "ora-classic": "^5.4.2",
65
68
  "recast": "^0.23.9",
66
69
  "simple-git": "^3.27.0",
67
- "zod": "^3.23.4"
70
+ "zod": "^3.23.4",
71
+ "chalk": "^4.1.2"
68
72
  },
69
73
  "devDependencies": {
70
74
  "@oclif/prettier-config": "^0.2.1",