@memberjunction/cli 2.55.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.
- package/README.md +34 -0
- package/dist/commands/sync/file-reset.d.ts +14 -0
- package/dist/commands/sync/file-reset.js +197 -0
- package/dist/commands/sync/init.d.ts +6 -0
- package/dist/commands/sync/init.js +101 -0
- package/dist/commands/sync/pull.d.ts +15 -0
- package/dist/commands/sync/pull.js +185 -0
- package/dist/commands/sync/push.d.ts +13 -0
- package/dist/commands/sync/push.js +183 -0
- package/dist/commands/sync/status.d.ts +10 -0
- package/dist/commands/sync/status.js +112 -0
- package/dist/commands/sync/validate.d.ts +12 -0
- package/dist/commands/sync/validate.js +131 -0
- package/dist/commands/sync/watch.d.ts +13 -0
- package/dist/commands/sync/watch.js +148 -0
- package/oclif.manifest.json +385 -16
- package/package.json +7 -3
package/oclif.manifest.json
CHANGED
|
@@ -72,6 +72,38 @@
|
|
|
72
72
|
"index.js"
|
|
73
73
|
]
|
|
74
74
|
},
|
|
75
|
+
"clean": {
|
|
76
|
+
"aliases": [],
|
|
77
|
+
"args": {},
|
|
78
|
+
"description": "Resets the MemberJunction database to a pre-installation state",
|
|
79
|
+
"examples": [
|
|
80
|
+
"<%= config.bin %> <%= command.id %>\n"
|
|
81
|
+
],
|
|
82
|
+
"flags": {
|
|
83
|
+
"verbose": {
|
|
84
|
+
"char": "v",
|
|
85
|
+
"description": "Enable additional logging",
|
|
86
|
+
"name": "verbose",
|
|
87
|
+
"allowNo": false,
|
|
88
|
+
"type": "boolean"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"hasDynamicHelp": false,
|
|
92
|
+
"hiddenAliases": [],
|
|
93
|
+
"id": "clean",
|
|
94
|
+
"pluginAlias": "@memberjunction/cli",
|
|
95
|
+
"pluginName": "@memberjunction/cli",
|
|
96
|
+
"pluginType": "core",
|
|
97
|
+
"strict": true,
|
|
98
|
+
"enableJsonFlag": false,
|
|
99
|
+
"isESM": false,
|
|
100
|
+
"relativePath": [
|
|
101
|
+
"dist",
|
|
102
|
+
"commands",
|
|
103
|
+
"clean",
|
|
104
|
+
"index.js"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
75
107
|
"codegen": {
|
|
76
108
|
"aliases": [],
|
|
77
109
|
"args": {},
|
|
@@ -135,10 +167,10 @@
|
|
|
135
167
|
"index.js"
|
|
136
168
|
]
|
|
137
169
|
},
|
|
138
|
-
"
|
|
170
|
+
"migrate": {
|
|
139
171
|
"aliases": [],
|
|
140
172
|
"args": {},
|
|
141
|
-
"description": "
|
|
173
|
+
"description": "Migrate MemberJunction database to latest version",
|
|
142
174
|
"examples": [
|
|
143
175
|
"<%= config.bin %> <%= command.id %>\n"
|
|
144
176
|
],
|
|
@@ -149,11 +181,19 @@
|
|
|
149
181
|
"name": "verbose",
|
|
150
182
|
"allowNo": false,
|
|
151
183
|
"type": "boolean"
|
|
184
|
+
},
|
|
185
|
+
"tag": {
|
|
186
|
+
"char": "t",
|
|
187
|
+
"description": "Version tag to use for running remote migrations",
|
|
188
|
+
"name": "tag",
|
|
189
|
+
"hasDynamicHelp": false,
|
|
190
|
+
"multiple": false,
|
|
191
|
+
"type": "option"
|
|
152
192
|
}
|
|
153
193
|
},
|
|
154
194
|
"hasDynamicHelp": false,
|
|
155
195
|
"hiddenAliases": [],
|
|
156
|
-
"id": "
|
|
196
|
+
"id": "migrate",
|
|
157
197
|
"pluginAlias": "@memberjunction/cli",
|
|
158
198
|
"pluginName": "@memberjunction/cli",
|
|
159
199
|
"pluginType": "core",
|
|
@@ -163,37 +203,155 @@
|
|
|
163
203
|
"relativePath": [
|
|
164
204
|
"dist",
|
|
165
205
|
"commands",
|
|
166
|
-
"
|
|
206
|
+
"migrate",
|
|
167
207
|
"index.js"
|
|
168
208
|
]
|
|
169
209
|
},
|
|
170
|
-
"
|
|
210
|
+
"sync:file-reset": {
|
|
171
211
|
"aliases": [],
|
|
172
212
|
"args": {},
|
|
173
|
-
"description": "
|
|
213
|
+
"description": "Reset file metadata sections",
|
|
174
214
|
"examples": [
|
|
175
|
-
"<%= config.bin %> <%= command.id
|
|
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"
|
|
176
219
|
],
|
|
177
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
|
+
},
|
|
178
253
|
"verbose": {
|
|
179
254
|
"char": "v",
|
|
180
|
-
"description": "
|
|
255
|
+
"description": "Show detailed output",
|
|
181
256
|
"name": "verbose",
|
|
182
257
|
"allowNo": false,
|
|
183
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"
|
|
184
330
|
},
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
"name": "tag",
|
|
331
|
+
"multi-file": {
|
|
332
|
+
"description": "Create a single file with multiple records (provide filename)",
|
|
333
|
+
"name": "multi-file",
|
|
189
334
|
"hasDynamicHelp": false,
|
|
190
335
|
"multiple": false,
|
|
191
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"
|
|
192
350
|
}
|
|
193
351
|
},
|
|
194
352
|
"hasDynamicHelp": false,
|
|
195
353
|
"hiddenAliases": [],
|
|
196
|
-
"id": "
|
|
354
|
+
"id": "sync:pull",
|
|
197
355
|
"pluginAlias": "@memberjunction/cli",
|
|
198
356
|
"pluginName": "@memberjunction/cli",
|
|
199
357
|
"pluginType": "core",
|
|
@@ -203,10 +361,221 @@
|
|
|
203
361
|
"relativePath": [
|
|
204
362
|
"dist",
|
|
205
363
|
"commands",
|
|
206
|
-
"
|
|
207
|
-
"
|
|
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"
|
|
208
577
|
]
|
|
209
578
|
}
|
|
210
579
|
},
|
|
211
|
-
"version": "2.
|
|
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.
|
|
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
|
+
"@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",
|