@memberjunction/cli 5.36.0 → 5.38.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 +74 -0
- package/dist/baseline/cli-helpers.d.ts +12 -0
- package/dist/baseline/cli-helpers.d.ts.map +1 -0
- package/dist/baseline/cli-helpers.js +40 -0
- package/dist/baseline/cli-helpers.js.map +1 -0
- package/dist/baseline/comparator.d.ts +26 -0
- package/dist/baseline/comparator.d.ts.map +1 -0
- package/dist/baseline/comparator.js +527 -0
- package/dist/baseline/comparator.js.map +1 -0
- package/dist/baseline/connection.d.ts +39 -0
- package/dist/baseline/connection.d.ts.map +1 -0
- package/dist/baseline/connection.js +104 -0
- package/dist/baseline/connection.js.map +1 -0
- package/dist/baseline/data-dumper.d.ts +23 -0
- package/dist/baseline/data-dumper.d.ts.map +1 -0
- package/dist/baseline/data-dumper.js +94 -0
- package/dist/baseline/data-dumper.js.map +1 -0
- package/dist/baseline/emitter.d.ts +36 -0
- package/dist/baseline/emitter.d.ts.map +1 -0
- package/dist/baseline/emitter.js +512 -0
- package/dist/baseline/emitter.js.map +1 -0
- package/dist/baseline/index.d.ts +18 -0
- package/dist/baseline/index.d.ts.map +1 -0
- package/dist/baseline/index.js +14 -0
- package/dist/baseline/index.js.map +1 -0
- package/dist/baseline/introspector-mssql.d.ts +15 -0
- package/dist/baseline/introspector-mssql.d.ts.map +1 -0
- package/dist/baseline/introspector-mssql.js +673 -0
- package/dist/baseline/introspector-mssql.js.map +1 -0
- package/dist/baseline/introspector-postgres.d.ts +14 -0
- package/dist/baseline/introspector-postgres.d.ts.map +1 -0
- package/dist/baseline/introspector-postgres.js +277 -0
- package/dist/baseline/introspector-postgres.js.map +1 -0
- package/dist/baseline/report.d.ts +7 -0
- package/dist/baseline/report.d.ts.map +1 -0
- package/dist/baseline/report.js +105 -0
- package/dist/baseline/report.js.map +1 -0
- package/dist/baseline/types.d.ts +286 -0
- package/dist/baseline/types.d.ts.map +1 -0
- package/dist/baseline/types.js +10 -0
- package/dist/baseline/types.js.map +1 -0
- package/dist/baseline/util.d.ts +112 -0
- package/dist/baseline/util.d.ts.map +1 -0
- package/dist/baseline/util.js +325 -0
- package/dist/baseline/util.js.map +1 -0
- package/dist/commands/baseline/build.d.ts +29 -0
- package/dist/commands/baseline/build.d.ts.map +1 -0
- package/dist/commands/baseline/build.js +188 -0
- package/dist/commands/baseline/build.js.map +1 -0
- package/dist/commands/baseline/compare.d.ts +19 -0
- package/dist/commands/baseline/compare.d.ts.map +1 -0
- package/dist/commands/baseline/compare.js +133 -0
- package/dist/commands/baseline/compare.js.map +1 -0
- package/dist/commands/baseline/roundtrip.d.ts +23 -0
- package/dist/commands/baseline/roundtrip.d.ts.map +1 -0
- package/dist/commands/baseline/roundtrip.js +245 -0
- package/dist/commands/baseline/roundtrip.js.map +1 -0
- package/dist/commands/test/compare.d.ts +3 -0
- package/dist/commands/test/compare.d.ts.map +1 -1
- package/dist/commands/test/compare.js +23 -3
- package/dist/commands/test/compare.js.map +1 -1
- package/dist/commands/test/regression/build.d.ts +14 -0
- package/dist/commands/test/regression/build.d.ts.map +1 -0
- package/dist/commands/test/regression/build.js +48 -0
- package/dist/commands/test/regression/build.js.map +1 -0
- package/dist/commands/test/regression/compare.d.ts +15 -0
- package/dist/commands/test/regression/compare.d.ts.map +1 -0
- package/dist/commands/test/regression/compare.js +66 -0
- package/dist/commands/test/regression/compare.js.map +1 -0
- package/dist/commands/test/regression/down.d.ts +10 -0
- package/dist/commands/test/regression/down.d.ts.map +1 -0
- package/dist/commands/test/regression/down.js +29 -0
- package/dist/commands/test/regression/down.js.map +1 -0
- package/dist/commands/test/regression/export.d.ts +11 -0
- package/dist/commands/test/regression/export.d.ts.map +1 -0
- package/dist/commands/test/regression/export.js +56 -0
- package/dist/commands/test/regression/export.js.map +1 -0
- package/dist/commands/test/regression/gen-forms.d.ts +7 -0
- package/dist/commands/test/regression/gen-forms.d.ts.map +1 -0
- package/dist/commands/test/regression/gen-forms.js +18 -0
- package/dist/commands/test/regression/gen-forms.js.map +1 -0
- package/dist/commands/test/regression/index.d.ts +7 -0
- package/dist/commands/test/regression/index.d.ts.map +1 -0
- package/dist/commands/test/regression/index.js +33 -0
- package/dist/commands/test/regression/index.js.map +1 -0
- package/dist/commands/test/regression/init.d.ts +21 -0
- package/dist/commands/test/regression/init.d.ts.map +1 -0
- package/dist/commands/test/regression/init.js +111 -0
- package/dist/commands/test/regression/init.js.map +1 -0
- package/dist/commands/test/regression/remote.d.ts +23 -0
- package/dist/commands/test/regression/remote.d.ts.map +1 -0
- package/dist/commands/test/regression/remote.js +140 -0
- package/dist/commands/test/regression/remote.js.map +1 -0
- package/dist/commands/test/regression/up.d.ts +21 -0
- package/dist/commands/test/regression/up.d.ts.map +1 -0
- package/dist/commands/test/regression/up.js +111 -0
- package/dist/commands/test/regression/up.js.map +1 -0
- package/dist/commands/test/run.d.ts +1 -0
- package/dist/commands/test/run.d.ts.map +1 -1
- package/dist/commands/test/run.js +6 -0
- package/dist/commands/test/run.js.map +1 -1
- package/dist/commands/test/suite.d.ts +5 -0
- package/dist/commands/test/suite.d.ts.map +1 -1
- package/dist/commands/test/suite.js +27 -0
- package/dist/commands/test/suite.js.map +1 -1
- package/dist/commands/translate-sql/index.d.ts.map +1 -1
- package/dist/commands/translate-sql/index.js +3 -2
- package/dist/commands/translate-sql/index.js.map +1 -1
- package/dist/init-templates/bring-your-own-app/README.md +74 -0
- package/dist/init-templates/bring-your-own-app/byo-metadata/.mj-sync.json +10 -0
- package/dist/init-templates/bring-your-own-app/byo-metadata/test-suites/.byo-suite.json +51 -0
- package/dist/init-templates/bring-your-own-app/byo-metadata/test-suites/.mj-sync.json +12 -0
- package/dist/init-templates/bring-your-own-app/byo-metadata/tests/.T01-counter-increment.json +63 -0
- package/dist/init-templates/bring-your-own-app/byo-metadata/tests/.T02-contact-form-submit.json +63 -0
- package/dist/init-templates/bring-your-own-app/byo-metadata/tests/.mj-sync.json +12 -0
- package/dist/init-templates/bring-your-own-app/docker-compose.app.yml +76 -0
- package/dist/init-templates/bring-your-own-app/target.json +23 -0
- package/dist/init-templates/generic-web/README.md +115 -0
- package/dist/init-templates/generic-web/metadata/.mj-sync.json +10 -0
- package/dist/init-templates/generic-web/metadata/test-suites/.generic-web-suite.json +48 -0
- package/dist/init-templates/generic-web/metadata/test-suites/.mj-sync.json +12 -0
- package/dist/init-templates/generic-web/metadata/tests/.GW01-home-loads.json +74 -0
- package/dist/init-templates/generic-web/metadata/tests/.GW02-search-array-map.json +82 -0
- package/dist/init-templates/generic-web/metadata/tests/.mj-sync.json +12 -0
- package/dist/init-templates/generic-web/oracles/mdn-oracles.cjs +121 -0
- package/dist/init-templates/generic-web/target.json +25 -0
- package/dist/init-templates/github-actions/README.md +26 -0
- package/dist/init-templates/github-actions/regression.yml +52 -0
- package/dist/init-templates/remote-mj/README.md +95 -0
- package/dist/init-templates/remote-mj/target.json +22 -0
- package/dist/init-templates/static-file-server/Dockerfile +23 -0
- package/dist/init-templates/static-file-server/README.md +88 -0
- package/dist/init-templates/static-file-server/docker-compose.app.yml +44 -0
- package/dist/init-templates/static-file-server/metadata/.mj-sync.json +10 -0
- package/dist/init-templates/static-file-server/metadata/test-suites/.mj-sync.json +12 -0
- package/dist/init-templates/static-file-server/metadata/test-suites/.static-server-suite.json +27 -0
- package/dist/init-templates/static-file-server/metadata/tests/.SS01-home-loads.json +45 -0
- package/dist/init-templates/static-file-server/metadata/tests/.SS02-navigate-about.json +45 -0
- package/dist/init-templates/static-file-server/metadata/tests/.mj-sync.json +12 -0
- package/dist/init-templates/static-file-server/public/about.html +12 -0
- package/dist/init-templates/static-file-server/public/index.html +27 -0
- package/dist/init-templates/static-file-server/target.json +16 -0
- package/dist/lib/regression/docker-helpers.d.ts +98 -0
- package/dist/lib/regression/docker-helpers.d.ts.map +1 -0
- package/dist/lib/regression/docker-helpers.js +184 -0
- package/dist/lib/regression/docker-helpers.js.map +1 -0
- package/oclif.manifest.json +1167 -320
- package/package.json +22 -17
- package/regression-compose/docker-compose.bacpac-standalone.yml +109 -0
- package/regression-compose/docker-compose.standalone.yml +50 -0
package/oclif.manifest.json
CHANGED
|
@@ -338,6 +338,344 @@
|
|
|
338
338
|
"upgrade.js"
|
|
339
339
|
]
|
|
340
340
|
},
|
|
341
|
+
"baseline:build": {
|
|
342
|
+
"aliases": [],
|
|
343
|
+
"args": {},
|
|
344
|
+
"description": "Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.",
|
|
345
|
+
"examples": [
|
|
346
|
+
"<%= config.bin %> <%= command.id %> --out ./migrations/v5/ # auto: within-major rebaseline",
|
|
347
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --out ./migrations/v5/",
|
|
348
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --out ./migrations/v6/ # explicit major-boundary",
|
|
349
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 5.32 --database MJ_BL_Stack --out /tmp/baseline/"
|
|
350
|
+
],
|
|
351
|
+
"flags": {
|
|
352
|
+
"baseline-version": {
|
|
353
|
+
"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).",
|
|
354
|
+
"name": "baseline-version",
|
|
355
|
+
"hasDynamicHelp": false,
|
|
356
|
+
"multiple": false,
|
|
357
|
+
"type": "option"
|
|
358
|
+
},
|
|
359
|
+
"source-dir": {
|
|
360
|
+
"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.",
|
|
361
|
+
"name": "source-dir",
|
|
362
|
+
"hasDynamicHelp": false,
|
|
363
|
+
"multiple": false,
|
|
364
|
+
"type": "option"
|
|
365
|
+
},
|
|
366
|
+
"description": {
|
|
367
|
+
"description": "Human-readable description embedded in the file header.",
|
|
368
|
+
"name": "description",
|
|
369
|
+
"default": "MemberJunction Baseline",
|
|
370
|
+
"hasDynamicHelp": false,
|
|
371
|
+
"multiple": false,
|
|
372
|
+
"type": "option"
|
|
373
|
+
},
|
|
374
|
+
"database": {
|
|
375
|
+
"description": "Override database name (host/user/password come from MJ config).",
|
|
376
|
+
"name": "database",
|
|
377
|
+
"hasDynamicHelp": false,
|
|
378
|
+
"multiple": false,
|
|
379
|
+
"type": "option"
|
|
380
|
+
},
|
|
381
|
+
"out": {
|
|
382
|
+
"description": "Output directory. Filename is auto-generated.",
|
|
383
|
+
"name": "out",
|
|
384
|
+
"default": ".",
|
|
385
|
+
"hasDynamicHelp": false,
|
|
386
|
+
"multiple": false,
|
|
387
|
+
"type": "option"
|
|
388
|
+
},
|
|
389
|
+
"exclude-data": {
|
|
390
|
+
"description": "Comma-separated list of tables (schema-qualified or not) to skip data dump for.",
|
|
391
|
+
"name": "exclude-data",
|
|
392
|
+
"default": "",
|
|
393
|
+
"hasDynamicHelp": false,
|
|
394
|
+
"multiple": false,
|
|
395
|
+
"type": "option"
|
|
396
|
+
},
|
|
397
|
+
"batch-size": {
|
|
398
|
+
"description": "Rows per INSERT batch.",
|
|
399
|
+
"name": "batch-size",
|
|
400
|
+
"default": 1000,
|
|
401
|
+
"hasDynamicHelp": false,
|
|
402
|
+
"multiple": false,
|
|
403
|
+
"type": "option"
|
|
404
|
+
},
|
|
405
|
+
"no-data": {
|
|
406
|
+
"description": "Emit schema only, no data inserts.",
|
|
407
|
+
"name": "no-data",
|
|
408
|
+
"allowNo": false,
|
|
409
|
+
"type": "boolean"
|
|
410
|
+
},
|
|
411
|
+
"verbose": {
|
|
412
|
+
"description": "Print per-object progress.",
|
|
413
|
+
"name": "verbose",
|
|
414
|
+
"allowNo": false,
|
|
415
|
+
"type": "boolean"
|
|
416
|
+
},
|
|
417
|
+
"dry-run": {
|
|
418
|
+
"description": "Print to stdout instead of writing a file.",
|
|
419
|
+
"name": "dry-run",
|
|
420
|
+
"allowNo": false,
|
|
421
|
+
"type": "boolean"
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
"hasDynamicHelp": false,
|
|
425
|
+
"hiddenAliases": [],
|
|
426
|
+
"id": "baseline:build",
|
|
427
|
+
"pluginAlias": "@memberjunction/cli",
|
|
428
|
+
"pluginName": "@memberjunction/cli",
|
|
429
|
+
"pluginType": "core",
|
|
430
|
+
"strict": true,
|
|
431
|
+
"enableJsonFlag": false,
|
|
432
|
+
"isESM": true,
|
|
433
|
+
"relativePath": [
|
|
434
|
+
"dist",
|
|
435
|
+
"commands",
|
|
436
|
+
"baseline",
|
|
437
|
+
"build.js"
|
|
438
|
+
]
|
|
439
|
+
},
|
|
440
|
+
"baseline:compare": {
|
|
441
|
+
"aliases": [],
|
|
442
|
+
"args": {},
|
|
443
|
+
"description": "Deterministically compare two databases object-by-object and row-by-row.",
|
|
444
|
+
"examples": [
|
|
445
|
+
"<%= config.bin %> <%= command.id %> --left MJ_BL_Stack --right MJ_BL_New",
|
|
446
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --row-compare counts",
|
|
447
|
+
"<%= config.bin %> <%= command.id %> --left A --right B --fail-on-diff --out ./diffs/"
|
|
448
|
+
],
|
|
449
|
+
"flags": {
|
|
450
|
+
"left": {
|
|
451
|
+
"description": "Left database name (override).",
|
|
452
|
+
"name": "left",
|
|
453
|
+
"required": true,
|
|
454
|
+
"hasDynamicHelp": false,
|
|
455
|
+
"multiple": false,
|
|
456
|
+
"type": "option"
|
|
457
|
+
},
|
|
458
|
+
"right": {
|
|
459
|
+
"description": "Right database name (override).",
|
|
460
|
+
"name": "right",
|
|
461
|
+
"required": true,
|
|
462
|
+
"hasDynamicHelp": false,
|
|
463
|
+
"multiple": false,
|
|
464
|
+
"type": "option"
|
|
465
|
+
},
|
|
466
|
+
"dialect": {
|
|
467
|
+
"description": "Dialect of both DBs (must match).",
|
|
468
|
+
"name": "dialect",
|
|
469
|
+
"default": "mssql",
|
|
470
|
+
"hasDynamicHelp": false,
|
|
471
|
+
"multiple": false,
|
|
472
|
+
"options": [
|
|
473
|
+
"mssql",
|
|
474
|
+
"postgres"
|
|
475
|
+
],
|
|
476
|
+
"type": "option"
|
|
477
|
+
},
|
|
478
|
+
"row-compare": {
|
|
479
|
+
"description": "Row comparison mode.",
|
|
480
|
+
"name": "row-compare",
|
|
481
|
+
"default": "full",
|
|
482
|
+
"hasDynamicHelp": false,
|
|
483
|
+
"multiple": false,
|
|
484
|
+
"options": [
|
|
485
|
+
"full",
|
|
486
|
+
"hash",
|
|
487
|
+
"counts",
|
|
488
|
+
"none"
|
|
489
|
+
],
|
|
490
|
+
"type": "option"
|
|
491
|
+
},
|
|
492
|
+
"row-hash-algo": {
|
|
493
|
+
"description": "Hash algorithm when --row-compare hash.",
|
|
494
|
+
"name": "row-hash-algo",
|
|
495
|
+
"default": "sha256",
|
|
496
|
+
"hasDynamicHelp": false,
|
|
497
|
+
"multiple": false,
|
|
498
|
+
"options": [
|
|
499
|
+
"sha256",
|
|
500
|
+
"md5",
|
|
501
|
+
"checksum_agg"
|
|
502
|
+
],
|
|
503
|
+
"type": "option"
|
|
504
|
+
},
|
|
505
|
+
"ignore": {
|
|
506
|
+
"description": "Regex of object names to skip.",
|
|
507
|
+
"name": "ignore",
|
|
508
|
+
"default": "^flyway_schema_history$",
|
|
509
|
+
"hasDynamicHelp": false,
|
|
510
|
+
"multiple": false,
|
|
511
|
+
"type": "option"
|
|
512
|
+
},
|
|
513
|
+
"sample-limit": {
|
|
514
|
+
"description": "Maximum row diffs to capture per table.",
|
|
515
|
+
"name": "sample-limit",
|
|
516
|
+
"default": 100,
|
|
517
|
+
"hasDynamicHelp": false,
|
|
518
|
+
"multiple": false,
|
|
519
|
+
"type": "option"
|
|
520
|
+
},
|
|
521
|
+
"out": {
|
|
522
|
+
"description": "Directory to write JSON + Markdown reports.",
|
|
523
|
+
"name": "out",
|
|
524
|
+
"hasDynamicHelp": false,
|
|
525
|
+
"multiple": false,
|
|
526
|
+
"type": "option"
|
|
527
|
+
},
|
|
528
|
+
"fail-on-diff": {
|
|
529
|
+
"description": "Exit non-zero if any diff is found.",
|
|
530
|
+
"name": "fail-on-diff",
|
|
531
|
+
"allowNo": false,
|
|
532
|
+
"type": "boolean"
|
|
533
|
+
},
|
|
534
|
+
"verbose": {
|
|
535
|
+
"description": "Print per-phase progress.",
|
|
536
|
+
"name": "verbose",
|
|
537
|
+
"allowNo": false,
|
|
538
|
+
"type": "boolean"
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
"hasDynamicHelp": false,
|
|
542
|
+
"hiddenAliases": [],
|
|
543
|
+
"id": "baseline:compare",
|
|
544
|
+
"pluginAlias": "@memberjunction/cli",
|
|
545
|
+
"pluginName": "@memberjunction/cli",
|
|
546
|
+
"pluginType": "core",
|
|
547
|
+
"strict": true,
|
|
548
|
+
"enableJsonFlag": false,
|
|
549
|
+
"isESM": true,
|
|
550
|
+
"relativePath": [
|
|
551
|
+
"dist",
|
|
552
|
+
"commands",
|
|
553
|
+
"baseline",
|
|
554
|
+
"compare.js"
|
|
555
|
+
]
|
|
556
|
+
},
|
|
557
|
+
"baseline:roundtrip": {
|
|
558
|
+
"aliases": [],
|
|
559
|
+
"args": {},
|
|
560
|
+
"description": "Build a baseline from a V-stack database, apply it to a fresh DB, and prove byte-equivalence.",
|
|
561
|
+
"examples": [
|
|
562
|
+
"<%= config.bin %> <%= command.id %> --source MJ_BL_Stack --target MJ_BL_New # auto: within-major",
|
|
563
|
+
"<%= config.bin %> <%= command.id %> --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New # explicit major-boundary",
|
|
564
|
+
"<%= config.bin %> <%= command.id %> --source-dir ./migrations/v5 --source MJ_BL_Stack --target MJ_BL_New"
|
|
565
|
+
],
|
|
566
|
+
"flags": {
|
|
567
|
+
"baseline-version": {
|
|
568
|
+
"description": "Major.Minor version stamp. Omit to auto-detect from --source-dir (within-major rebaseline).",
|
|
569
|
+
"name": "baseline-version",
|
|
570
|
+
"hasDynamicHelp": false,
|
|
571
|
+
"multiple": false,
|
|
572
|
+
"type": "option"
|
|
573
|
+
},
|
|
574
|
+
"source-dir": {
|
|
575
|
+
"description": "Migrations source directory used to auto-detect baseline version + timestamp when --baseline-version is omitted. Defaults to the highest migrations/v*/ near cwd.",
|
|
576
|
+
"name": "source-dir",
|
|
577
|
+
"hasDynamicHelp": false,
|
|
578
|
+
"multiple": false,
|
|
579
|
+
"type": "option"
|
|
580
|
+
},
|
|
581
|
+
"description": {
|
|
582
|
+
"description": "Header description.",
|
|
583
|
+
"name": "description",
|
|
584
|
+
"default": "MemberJunction Baseline",
|
|
585
|
+
"hasDynamicHelp": false,
|
|
586
|
+
"multiple": false,
|
|
587
|
+
"type": "option"
|
|
588
|
+
},
|
|
589
|
+
"dialect": {
|
|
590
|
+
"description": "Dialect to test. PG path runs the converter via /pg-migrate first.",
|
|
591
|
+
"name": "dialect",
|
|
592
|
+
"default": "mssql",
|
|
593
|
+
"hasDynamicHelp": false,
|
|
594
|
+
"multiple": false,
|
|
595
|
+
"options": [
|
|
596
|
+
"mssql",
|
|
597
|
+
"postgres"
|
|
598
|
+
],
|
|
599
|
+
"type": "option"
|
|
600
|
+
},
|
|
601
|
+
"source": {
|
|
602
|
+
"description": "Database name with the V-stack already applied (used as comparison gold standard).",
|
|
603
|
+
"name": "source",
|
|
604
|
+
"required": true,
|
|
605
|
+
"hasDynamicHelp": false,
|
|
606
|
+
"multiple": false,
|
|
607
|
+
"type": "option"
|
|
608
|
+
},
|
|
609
|
+
"target": {
|
|
610
|
+
"description": "Empty database name to apply the new baseline to.",
|
|
611
|
+
"name": "target",
|
|
612
|
+
"required": true,
|
|
613
|
+
"hasDynamicHelp": false,
|
|
614
|
+
"multiple": false,
|
|
615
|
+
"type": "option"
|
|
616
|
+
},
|
|
617
|
+
"out": {
|
|
618
|
+
"description": "Output directory for baseline file + reports.",
|
|
619
|
+
"name": "out",
|
|
620
|
+
"default": ".",
|
|
621
|
+
"hasDynamicHelp": false,
|
|
622
|
+
"multiple": false,
|
|
623
|
+
"type": "option"
|
|
624
|
+
},
|
|
625
|
+
"apply-cmd": {
|
|
626
|
+
"description": "Command template to apply the baseline. Tokens: {file} {database}. Defaults to sqlcmd.",
|
|
627
|
+
"name": "apply-cmd",
|
|
628
|
+
"hasDynamicHelp": false,
|
|
629
|
+
"multiple": false,
|
|
630
|
+
"type": "option"
|
|
631
|
+
},
|
|
632
|
+
"row-compare": {
|
|
633
|
+
"description": "Row compare mode passed to the comparator.",
|
|
634
|
+
"name": "row-compare",
|
|
635
|
+
"default": "full",
|
|
636
|
+
"hasDynamicHelp": false,
|
|
637
|
+
"multiple": false,
|
|
638
|
+
"options": [
|
|
639
|
+
"full",
|
|
640
|
+
"hash",
|
|
641
|
+
"counts",
|
|
642
|
+
"none"
|
|
643
|
+
],
|
|
644
|
+
"type": "option"
|
|
645
|
+
},
|
|
646
|
+
"fail-on-diff": {
|
|
647
|
+
"name": "fail-on-diff",
|
|
648
|
+
"allowNo": false,
|
|
649
|
+
"type": "boolean"
|
|
650
|
+
},
|
|
651
|
+
"keep-target": {
|
|
652
|
+
"description": "Do not drop the target database after run (useful for debugging diffs).",
|
|
653
|
+
"name": "keep-target",
|
|
654
|
+
"allowNo": false,
|
|
655
|
+
"type": "boolean"
|
|
656
|
+
},
|
|
657
|
+
"verbose": {
|
|
658
|
+
"name": "verbose",
|
|
659
|
+
"allowNo": false,
|
|
660
|
+
"type": "boolean"
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
"hasDynamicHelp": false,
|
|
664
|
+
"hiddenAliases": [],
|
|
665
|
+
"id": "baseline:roundtrip",
|
|
666
|
+
"pluginAlias": "@memberjunction/cli",
|
|
667
|
+
"pluginName": "@memberjunction/cli",
|
|
668
|
+
"pluginType": "core",
|
|
669
|
+
"strict": true,
|
|
670
|
+
"enableJsonFlag": false,
|
|
671
|
+
"isESM": true,
|
|
672
|
+
"relativePath": [
|
|
673
|
+
"dist",
|
|
674
|
+
"commands",
|
|
675
|
+
"baseline",
|
|
676
|
+
"roundtrip.js"
|
|
677
|
+
]
|
|
678
|
+
},
|
|
341
679
|
"artifacts:reclassify": {
|
|
342
680
|
"aliases": [],
|
|
343
681
|
"args": {},
|
|
@@ -906,45 +1244,102 @@
|
|
|
906
1244
|
"manifest.js"
|
|
907
1245
|
]
|
|
908
1246
|
},
|
|
909
|
-
"
|
|
1247
|
+
"doctor": {
|
|
910
1248
|
"aliases": [],
|
|
911
1249
|
"args": {},
|
|
912
|
-
"description": "
|
|
1250
|
+
"description": "Diagnose a MemberJunction installation",
|
|
913
1251
|
"examples": [
|
|
914
1252
|
"<%= config.bin %> <%= command.id %>",
|
|
915
|
-
"<%= config.bin %> <%= command.id %> --
|
|
916
|
-
"<%= config.bin %> <%= command.id %> --
|
|
1253
|
+
"<%= config.bin %> <%= command.id %> --dir ./my-mj-project",
|
|
1254
|
+
"<%= config.bin %> <%= command.id %> --verbose",
|
|
1255
|
+
"<%= config.bin %> <%= command.id %> --report",
|
|
1256
|
+
"<%= config.bin %> <%= command.id %> --report_extended"
|
|
917
1257
|
],
|
|
918
1258
|
"flags": {
|
|
919
|
-
"
|
|
920
|
-
"
|
|
921
|
-
"
|
|
922
|
-
"
|
|
923
|
-
"required": false,
|
|
1259
|
+
"dir": {
|
|
1260
|
+
"description": "Target directory to diagnose",
|
|
1261
|
+
"name": "dir",
|
|
1262
|
+
"default": ".",
|
|
924
1263
|
"hasDynamicHelp": false,
|
|
925
1264
|
"multiple": false,
|
|
926
1265
|
"type": "option"
|
|
927
1266
|
},
|
|
928
|
-
"
|
|
929
|
-
"char": "
|
|
930
|
-
"description": "
|
|
931
|
-
"name": "
|
|
932
|
-
"
|
|
933
|
-
"
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
1267
|
+
"verbose": {
|
|
1268
|
+
"char": "v",
|
|
1269
|
+
"description": "Show detailed output including suggested fixes inline",
|
|
1270
|
+
"name": "verbose",
|
|
1271
|
+
"allowNo": false,
|
|
1272
|
+
"type": "boolean"
|
|
1273
|
+
},
|
|
1274
|
+
"report": {
|
|
1275
|
+
"char": "r",
|
|
1276
|
+
"description": "Generate a diagnostic report file (mj-diagnostic-report.md) for sharing with support",
|
|
1277
|
+
"name": "report",
|
|
1278
|
+
"allowNo": false,
|
|
1279
|
+
"type": "boolean"
|
|
1280
|
+
},
|
|
1281
|
+
"report_extended": {
|
|
1282
|
+
"description": "Generate an extended report with config file snapshots and service startup log capture (~60s longer)",
|
|
1283
|
+
"name": "report_extended",
|
|
1284
|
+
"allowNo": false,
|
|
1285
|
+
"type": "boolean"
|
|
1286
|
+
}
|
|
1287
|
+
},
|
|
1288
|
+
"hasDynamicHelp": false,
|
|
1289
|
+
"hiddenAliases": [],
|
|
1290
|
+
"id": "doctor",
|
|
1291
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1292
|
+
"pluginName": "@memberjunction/cli",
|
|
1293
|
+
"pluginType": "core",
|
|
1294
|
+
"strict": true,
|
|
1295
|
+
"enableJsonFlag": false,
|
|
1296
|
+
"isESM": true,
|
|
1297
|
+
"relativePath": [
|
|
1298
|
+
"dist",
|
|
1299
|
+
"commands",
|
|
1300
|
+
"doctor",
|
|
1301
|
+
"index.js"
|
|
1302
|
+
]
|
|
1303
|
+
},
|
|
1304
|
+
"dbdoc:analyze": {
|
|
1305
|
+
"aliases": [],
|
|
1306
|
+
"args": {},
|
|
1307
|
+
"description": "Analyze database and generate documentation (delegates to db-auto-doc analyze)",
|
|
1308
|
+
"examples": [
|
|
1309
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1310
|
+
"<%= config.bin %> <%= command.id %> --resume ./output/run-6/state.json",
|
|
1311
|
+
"<%= config.bin %> <%= command.id %> --config ./my-config.json"
|
|
1312
|
+
],
|
|
1313
|
+
"flags": {
|
|
1314
|
+
"resume": {
|
|
1315
|
+
"char": "r",
|
|
1316
|
+
"description": "Resume from an existing state file",
|
|
1317
|
+
"name": "resume",
|
|
1318
|
+
"required": false,
|
|
1319
|
+
"hasDynamicHelp": false,
|
|
1320
|
+
"multiple": false,
|
|
1321
|
+
"type": "option"
|
|
1322
|
+
},
|
|
1323
|
+
"config": {
|
|
1324
|
+
"char": "c",
|
|
1325
|
+
"description": "Path to config file",
|
|
1326
|
+
"name": "config",
|
|
1327
|
+
"default": "./config.json",
|
|
1328
|
+
"hasDynamicHelp": false,
|
|
1329
|
+
"multiple": false,
|
|
1330
|
+
"type": "option"
|
|
1331
|
+
}
|
|
1332
|
+
},
|
|
1333
|
+
"hasDynamicHelp": false,
|
|
1334
|
+
"hiddenAliases": [],
|
|
1335
|
+
"id": "dbdoc:analyze",
|
|
1336
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1337
|
+
"pluginName": "@memberjunction/cli",
|
|
1338
|
+
"pluginType": "core",
|
|
1339
|
+
"strict": true,
|
|
1340
|
+
"enableJsonFlag": false,
|
|
1341
|
+
"isESM": true,
|
|
1342
|
+
"relativePath": [
|
|
948
1343
|
"dist",
|
|
949
1344
|
"commands",
|
|
950
1345
|
"dbdoc",
|
|
@@ -1343,178 +1738,6 @@
|
|
|
1343
1738
|
"status.js"
|
|
1344
1739
|
]
|
|
1345
1740
|
},
|
|
1346
|
-
"doctor": {
|
|
1347
|
-
"aliases": [],
|
|
1348
|
-
"args": {},
|
|
1349
|
-
"description": "Diagnose a MemberJunction installation",
|
|
1350
|
-
"examples": [
|
|
1351
|
-
"<%= config.bin %> <%= command.id %>",
|
|
1352
|
-
"<%= config.bin %> <%= command.id %> --dir ./my-mj-project",
|
|
1353
|
-
"<%= config.bin %> <%= command.id %> --verbose",
|
|
1354
|
-
"<%= config.bin %> <%= command.id %> --report",
|
|
1355
|
-
"<%= config.bin %> <%= command.id %> --report_extended"
|
|
1356
|
-
],
|
|
1357
|
-
"flags": {
|
|
1358
|
-
"dir": {
|
|
1359
|
-
"description": "Target directory to diagnose",
|
|
1360
|
-
"name": "dir",
|
|
1361
|
-
"default": ".",
|
|
1362
|
-
"hasDynamicHelp": false,
|
|
1363
|
-
"multiple": false,
|
|
1364
|
-
"type": "option"
|
|
1365
|
-
},
|
|
1366
|
-
"verbose": {
|
|
1367
|
-
"char": "v",
|
|
1368
|
-
"description": "Show detailed output including suggested fixes inline",
|
|
1369
|
-
"name": "verbose",
|
|
1370
|
-
"allowNo": false,
|
|
1371
|
-
"type": "boolean"
|
|
1372
|
-
},
|
|
1373
|
-
"report": {
|
|
1374
|
-
"char": "r",
|
|
1375
|
-
"description": "Generate a diagnostic report file (mj-diagnostic-report.md) for sharing with support",
|
|
1376
|
-
"name": "report",
|
|
1377
|
-
"allowNo": false,
|
|
1378
|
-
"type": "boolean"
|
|
1379
|
-
},
|
|
1380
|
-
"report_extended": {
|
|
1381
|
-
"description": "Generate an extended report with config file snapshots and service startup log capture (~60s longer)",
|
|
1382
|
-
"name": "report_extended",
|
|
1383
|
-
"allowNo": false,
|
|
1384
|
-
"type": "boolean"
|
|
1385
|
-
}
|
|
1386
|
-
},
|
|
1387
|
-
"hasDynamicHelp": false,
|
|
1388
|
-
"hiddenAliases": [],
|
|
1389
|
-
"id": "doctor",
|
|
1390
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1391
|
-
"pluginName": "@memberjunction/cli",
|
|
1392
|
-
"pluginType": "core",
|
|
1393
|
-
"strict": true,
|
|
1394
|
-
"enableJsonFlag": false,
|
|
1395
|
-
"isESM": true,
|
|
1396
|
-
"relativePath": [
|
|
1397
|
-
"dist",
|
|
1398
|
-
"commands",
|
|
1399
|
-
"doctor",
|
|
1400
|
-
"index.js"
|
|
1401
|
-
]
|
|
1402
|
-
},
|
|
1403
|
-
"install": {
|
|
1404
|
-
"aliases": [],
|
|
1405
|
-
"args": {},
|
|
1406
|
-
"description": "Install MemberJunction from a GitHub release",
|
|
1407
|
-
"examples": [
|
|
1408
|
-
"<%= config.bin %> <%= command.id %>",
|
|
1409
|
-
"<%= config.bin %> <%= command.id %> -t v4.3.0",
|
|
1410
|
-
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
1411
|
-
"<%= config.bin %> <%= command.id %> --yes"
|
|
1412
|
-
],
|
|
1413
|
-
"flags": {
|
|
1414
|
-
"tag": {
|
|
1415
|
-
"char": "t",
|
|
1416
|
-
"description": "Release tag to install (e.g. v4.3.0). If omitted, shows a version picker.",
|
|
1417
|
-
"name": "tag",
|
|
1418
|
-
"hasDynamicHelp": false,
|
|
1419
|
-
"multiple": false,
|
|
1420
|
-
"type": "option"
|
|
1421
|
-
},
|
|
1422
|
-
"dir": {
|
|
1423
|
-
"description": "Target directory for the installation",
|
|
1424
|
-
"name": "dir",
|
|
1425
|
-
"default": ".",
|
|
1426
|
-
"hasDynamicHelp": false,
|
|
1427
|
-
"multiple": false,
|
|
1428
|
-
"type": "option"
|
|
1429
|
-
},
|
|
1430
|
-
"config": {
|
|
1431
|
-
"char": "c",
|
|
1432
|
-
"description": "Path to JSON config file with install settings (database, auth, ports, etc.)",
|
|
1433
|
-
"name": "config",
|
|
1434
|
-
"hasDynamicHelp": false,
|
|
1435
|
-
"multiple": false,
|
|
1436
|
-
"type": "option"
|
|
1437
|
-
},
|
|
1438
|
-
"legacy": {
|
|
1439
|
-
"description": "Use the legacy interactive installer (ZIP-only distribution)",
|
|
1440
|
-
"hidden": true,
|
|
1441
|
-
"name": "legacy",
|
|
1442
|
-
"allowNo": false,
|
|
1443
|
-
"type": "boolean"
|
|
1444
|
-
},
|
|
1445
|
-
"dry-run": {
|
|
1446
|
-
"description": "Show the install plan without executing it",
|
|
1447
|
-
"name": "dry-run",
|
|
1448
|
-
"allowNo": false,
|
|
1449
|
-
"type": "boolean"
|
|
1450
|
-
},
|
|
1451
|
-
"yes": {
|
|
1452
|
-
"char": "y",
|
|
1453
|
-
"description": "Non-interactive mode: auto-select latest version and accept defaults",
|
|
1454
|
-
"name": "yes",
|
|
1455
|
-
"allowNo": false,
|
|
1456
|
-
"type": "boolean"
|
|
1457
|
-
},
|
|
1458
|
-
"verbose": {
|
|
1459
|
-
"char": "v",
|
|
1460
|
-
"description": "Show detailed output",
|
|
1461
|
-
"name": "verbose",
|
|
1462
|
-
"allowNo": false,
|
|
1463
|
-
"type": "boolean"
|
|
1464
|
-
},
|
|
1465
|
-
"skip-db": {
|
|
1466
|
-
"description": "Skip database provisioning phases",
|
|
1467
|
-
"name": "skip-db",
|
|
1468
|
-
"allowNo": false,
|
|
1469
|
-
"type": "boolean"
|
|
1470
|
-
},
|
|
1471
|
-
"skip-start": {
|
|
1472
|
-
"description": "Skip service startup and smoke tests",
|
|
1473
|
-
"name": "skip-start",
|
|
1474
|
-
"allowNo": false,
|
|
1475
|
-
"type": "boolean"
|
|
1476
|
-
},
|
|
1477
|
-
"no-resume": {
|
|
1478
|
-
"description": "Ignore any existing checkpoint and start fresh",
|
|
1479
|
-
"name": "no-resume",
|
|
1480
|
-
"allowNo": false,
|
|
1481
|
-
"type": "boolean"
|
|
1482
|
-
},
|
|
1483
|
-
"fast": {
|
|
1484
|
-
"description": "Fast mode: skip smoke test and optimize post-codegen steps. Re-run without --fast if you encounter issues.",
|
|
1485
|
-
"name": "fast",
|
|
1486
|
-
"allowNo": false,
|
|
1487
|
-
"type": "boolean"
|
|
1488
|
-
},
|
|
1489
|
-
"overwrite-config": {
|
|
1490
|
-
"description": "Overwrite existing config files (.env, mj.config.cjs, environment.ts) instead of preserving them",
|
|
1491
|
-
"name": "overwrite-config",
|
|
1492
|
-
"allowNo": false,
|
|
1493
|
-
"type": "boolean"
|
|
1494
|
-
},
|
|
1495
|
-
"monorepo": {
|
|
1496
|
-
"description": "Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.",
|
|
1497
|
-
"name": "monorepo",
|
|
1498
|
-
"allowNo": false,
|
|
1499
|
-
"type": "boolean"
|
|
1500
|
-
}
|
|
1501
|
-
},
|
|
1502
|
-
"hasDynamicHelp": false,
|
|
1503
|
-
"hiddenAliases": [],
|
|
1504
|
-
"id": "install",
|
|
1505
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1506
|
-
"pluginName": "@memberjunction/cli",
|
|
1507
|
-
"pluginType": "core",
|
|
1508
|
-
"strict": true,
|
|
1509
|
-
"enableJsonFlag": false,
|
|
1510
|
-
"isESM": true,
|
|
1511
|
-
"relativePath": [
|
|
1512
|
-
"dist",
|
|
1513
|
-
"commands",
|
|
1514
|
-
"install",
|
|
1515
|
-
"index.js"
|
|
1516
|
-
]
|
|
1517
|
-
},
|
|
1518
1741
|
"migrate:convert": {
|
|
1519
1742
|
"aliases": [],
|
|
1520
1743
|
"args": {},
|
|
@@ -2593,10 +2816,13 @@
|
|
|
2593
2816
|
},
|
|
2594
2817
|
"description": "Compare test runs for regression detection",
|
|
2595
2818
|
"examples": [
|
|
2819
|
+
"<%= config.bin %> <%= command.id %>",
|
|
2820
|
+
"<%= config.bin %> <%= command.id %> --latest",
|
|
2596
2821
|
"<%= config.bin %> <%= command.id %> <run-id-1> <run-id-2>",
|
|
2597
|
-
"<%= config.bin %> <%= command.id %>
|
|
2598
|
-
"<%= config.bin %> <%= command.id %>
|
|
2599
|
-
"<%= config.bin %> <%= command.id %>
|
|
2822
|
+
"<%= config.bin %> <%= command.id %> -v 5.17.0 -v 5.18.0",
|
|
2823
|
+
"<%= config.bin %> <%= command.id %> -c abc1234 -c def5678",
|
|
2824
|
+
"<%= config.bin %> <%= command.id %> --from-json baseline.json latest.json",
|
|
2825
|
+
"<%= config.bin %> <%= command.id %> --latest --format=markdown --output=report.md"
|
|
2600
2826
|
],
|
|
2601
2827
|
"flags": {
|
|
2602
2828
|
"version": {
|
|
@@ -2621,13 +2847,27 @@
|
|
|
2621
2847
|
"allowNo": false,
|
|
2622
2848
|
"type": "boolean"
|
|
2623
2849
|
},
|
|
2624
|
-
"
|
|
2625
|
-
"char": "
|
|
2626
|
-
"description": "
|
|
2627
|
-
"name": "
|
|
2628
|
-
"
|
|
2629
|
-
"
|
|
2630
|
-
|
|
2850
|
+
"latest": {
|
|
2851
|
+
"char": "l",
|
|
2852
|
+
"description": "Compare the two most recent completed suite runs",
|
|
2853
|
+
"name": "latest",
|
|
2854
|
+
"allowNo": false,
|
|
2855
|
+
"type": "boolean"
|
|
2856
|
+
},
|
|
2857
|
+
"from-json": {
|
|
2858
|
+
"description": "Compare two results.json files directly (no DB). Pass twice: --from-json PREV --from-json CURR",
|
|
2859
|
+
"name": "from-json",
|
|
2860
|
+
"hasDynamicHelp": false,
|
|
2861
|
+
"multiple": true,
|
|
2862
|
+
"type": "option"
|
|
2863
|
+
},
|
|
2864
|
+
"format": {
|
|
2865
|
+
"char": "f",
|
|
2866
|
+
"description": "Output format",
|
|
2867
|
+
"name": "format",
|
|
2868
|
+
"default": "console",
|
|
2869
|
+
"hasDynamicHelp": false,
|
|
2870
|
+
"multiple": false,
|
|
2631
2871
|
"options": [
|
|
2632
2872
|
"console",
|
|
2633
2873
|
"json",
|
|
@@ -2648,6 +2888,13 @@
|
|
|
2648
2888
|
"name": "verbose",
|
|
2649
2889
|
"allowNo": false,
|
|
2650
2890
|
"type": "boolean"
|
|
2891
|
+
},
|
|
2892
|
+
"tag": {
|
|
2893
|
+
"description": "Filter suite runs by tag (matches against MJTestSuiteRunEntity.Tags). Useful for isolating runs from a specific source environment in an archive MJ. DB mode only — --from-json ignores this flag.",
|
|
2894
|
+
"name": "tag",
|
|
2895
|
+
"hasDynamicHelp": false,
|
|
2896
|
+
"multiple": false,
|
|
2897
|
+
"type": "option"
|
|
2651
2898
|
}
|
|
2652
2899
|
},
|
|
2653
2900
|
"hasDynamicHelp": false,
|
|
@@ -2946,6 +3193,13 @@
|
|
|
2946
3193
|
"name": "verbose",
|
|
2947
3194
|
"allowNo": false,
|
|
2948
3195
|
"type": "boolean"
|
|
3196
|
+
},
|
|
3197
|
+
"oracles-module": {
|
|
3198
|
+
"description": "Path to a JS/TS module that exports custom IOracle classes or instances. Each export is registered on the engine before the test runs — used by non-MJ adopters to plug app-specific oracle types without modifying TestingFramework.",
|
|
3199
|
+
"name": "oracles-module",
|
|
3200
|
+
"hasDynamicHelp": false,
|
|
3201
|
+
"multiple": false,
|
|
3202
|
+
"type": "option"
|
|
2949
3203
|
}
|
|
2950
3204
|
},
|
|
2951
3205
|
"hasDynamicHelp": false,
|
|
@@ -3017,6 +3271,44 @@
|
|
|
3017
3271
|
"name": "verbose",
|
|
3018
3272
|
"allowNo": false,
|
|
3019
3273
|
"type": "boolean"
|
|
3274
|
+
},
|
|
3275
|
+
"delay": {
|
|
3276
|
+
"char": "d",
|
|
3277
|
+
"description": "Delay in milliseconds between test executions (avoids Auth0 rate limits)",
|
|
3278
|
+
"name": "delay",
|
|
3279
|
+
"default": 0,
|
|
3280
|
+
"hasDynamicHelp": false,
|
|
3281
|
+
"multiple": false,
|
|
3282
|
+
"type": "option"
|
|
3283
|
+
},
|
|
3284
|
+
"parallel": {
|
|
3285
|
+
"char": "p",
|
|
3286
|
+
"description": "Run tests in parallel with shared browser sessions",
|
|
3287
|
+
"name": "parallel",
|
|
3288
|
+
"allowNo": false,
|
|
3289
|
+
"type": "boolean"
|
|
3290
|
+
},
|
|
3291
|
+
"max-parallel": {
|
|
3292
|
+
"description": "Maximum number of parallel workers (default 4)",
|
|
3293
|
+
"name": "max-parallel",
|
|
3294
|
+
"default": 4,
|
|
3295
|
+
"hasDynamicHelp": false,
|
|
3296
|
+
"multiple": false,
|
|
3297
|
+
"type": "option"
|
|
3298
|
+
},
|
|
3299
|
+
"flaky-check": {
|
|
3300
|
+
"description": "Run each test N times to detect flakiness (variance > 0.3 or mixed pass/fail = flaky). Recommended: 3 or 5",
|
|
3301
|
+
"name": "flaky-check",
|
|
3302
|
+
"hasDynamicHelp": false,
|
|
3303
|
+
"multiple": false,
|
|
3304
|
+
"type": "option"
|
|
3305
|
+
},
|
|
3306
|
+
"oracles-module": {
|
|
3307
|
+
"description": "Path to a JS/TS module that exports custom IOracle classes or instances. Each export is registered on the engine before the suite runs — used by non-MJ adopters to plug app-specific oracle types without modifying TestingFramework.",
|
|
3308
|
+
"name": "oracles-module",
|
|
3309
|
+
"hasDynamicHelp": false,
|
|
3310
|
+
"multiple": false,
|
|
3311
|
+
"type": "option"
|
|
3020
3312
|
}
|
|
3021
3313
|
},
|
|
3022
3314
|
"hasDynamicHelp": false,
|
|
@@ -3219,115 +3511,108 @@
|
|
|
3219
3511
|
"index.js"
|
|
3220
3512
|
]
|
|
3221
3513
|
},
|
|
3222
|
-
"
|
|
3514
|
+
"install": {
|
|
3223
3515
|
"aliases": [],
|
|
3224
3516
|
"args": {},
|
|
3225
|
-
"description": "
|
|
3517
|
+
"description": "Install MemberJunction from a GitHub release",
|
|
3226
3518
|
"examples": [
|
|
3227
3519
|
"<%= config.bin %> <%= command.id %>",
|
|
3228
|
-
"<%= config.bin %> <%= command.id %>
|
|
3229
|
-
"<%= config.bin %> <%= command.id %> --
|
|
3520
|
+
"<%= config.bin %> <%= command.id %> -t v4.3.0",
|
|
3521
|
+
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
3522
|
+
"<%= config.bin %> <%= command.id %> --yes"
|
|
3230
3523
|
],
|
|
3231
3524
|
"flags": {
|
|
3232
|
-
"
|
|
3233
|
-
"char": "
|
|
3234
|
-
"description": "
|
|
3235
|
-
"name": "
|
|
3236
|
-
"default": "compact",
|
|
3525
|
+
"tag": {
|
|
3526
|
+
"char": "t",
|
|
3527
|
+
"description": "Release tag to install (e.g. v4.3.0). If omitted, shows a version picker.",
|
|
3528
|
+
"name": "tag",
|
|
3237
3529
|
"hasDynamicHelp": false,
|
|
3238
3530
|
"multiple": false,
|
|
3239
|
-
"options": [
|
|
3240
|
-
"compact",
|
|
3241
|
-
"json",
|
|
3242
|
-
"table"
|
|
3243
|
-
],
|
|
3244
3531
|
"type": "option"
|
|
3245
|
-
}
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
"pluginAlias": "@memberjunction/cli",
|
|
3251
|
-
"pluginName": "@memberjunction/cli",
|
|
3252
|
-
"pluginType": "core",
|
|
3253
|
-
"strict": true,
|
|
3254
|
-
"enableJsonFlag": false,
|
|
3255
|
-
"isESM": true,
|
|
3256
|
-
"relativePath": [
|
|
3257
|
-
"dist",
|
|
3258
|
-
"commands",
|
|
3259
|
-
"ai",
|
|
3260
|
-
"actions",
|
|
3261
|
-
"list.js"
|
|
3262
|
-
]
|
|
3263
|
-
},
|
|
3264
|
-
"ai:actions:run": {
|
|
3265
|
-
"aliases": [],
|
|
3266
|
-
"args": {},
|
|
3267
|
-
"description": "Execute an AI action with parameters",
|
|
3268
|
-
"examples": [
|
|
3269
|
-
"<%= config.bin %> <%= command.id %> -n \"Get Weather\" --param \"Location=Boston\"",
|
|
3270
|
-
"<%= config.bin %> <%= command.id %> -n \"Get Stock Price\" --param \"Ticker=AAPL\"",
|
|
3271
|
-
"<%= 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\"",
|
|
3272
|
-
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
3273
|
-
],
|
|
3274
|
-
"flags": {
|
|
3275
|
-
"name": {
|
|
3276
|
-
"char": "n",
|
|
3277
|
-
"description": "Action name",
|
|
3278
|
-
"name": "name",
|
|
3279
|
-
"required": true,
|
|
3532
|
+
},
|
|
3533
|
+
"dir": {
|
|
3534
|
+
"description": "Target directory for the installation",
|
|
3535
|
+
"name": "dir",
|
|
3536
|
+
"default": ".",
|
|
3280
3537
|
"hasDynamicHelp": false,
|
|
3281
3538
|
"multiple": false,
|
|
3282
3539
|
"type": "option"
|
|
3283
3540
|
},
|
|
3284
|
-
"
|
|
3285
|
-
"char": "
|
|
3286
|
-
"description": "
|
|
3287
|
-
"name": "
|
|
3541
|
+
"config": {
|
|
3542
|
+
"char": "c",
|
|
3543
|
+
"description": "Path to JSON config file with install settings (database, auth, ports, etc.)",
|
|
3544
|
+
"name": "config",
|
|
3288
3545
|
"hasDynamicHelp": false,
|
|
3289
|
-
"multiple":
|
|
3546
|
+
"multiple": false,
|
|
3290
3547
|
"type": "option"
|
|
3291
3548
|
},
|
|
3549
|
+
"legacy": {
|
|
3550
|
+
"description": "Use the legacy interactive installer (ZIP-only distribution)",
|
|
3551
|
+
"hidden": true,
|
|
3552
|
+
"name": "legacy",
|
|
3553
|
+
"allowNo": false,
|
|
3554
|
+
"type": "boolean"
|
|
3555
|
+
},
|
|
3292
3556
|
"dry-run": {
|
|
3293
|
-
"description": "
|
|
3557
|
+
"description": "Show the install plan without executing it",
|
|
3294
3558
|
"name": "dry-run",
|
|
3295
3559
|
"allowNo": false,
|
|
3296
3560
|
"type": "boolean"
|
|
3297
3561
|
},
|
|
3298
|
-
"
|
|
3299
|
-
"char": "
|
|
3300
|
-
"description": "
|
|
3301
|
-
"name": "
|
|
3302
|
-
"
|
|
3303
|
-
"
|
|
3304
|
-
"multiple": false,
|
|
3305
|
-
"options": [
|
|
3306
|
-
"compact",
|
|
3307
|
-
"json",
|
|
3308
|
-
"table"
|
|
3309
|
-
],
|
|
3310
|
-
"type": "option"
|
|
3562
|
+
"yes": {
|
|
3563
|
+
"char": "y",
|
|
3564
|
+
"description": "Non-interactive mode: auto-select latest version and accept defaults",
|
|
3565
|
+
"name": "yes",
|
|
3566
|
+
"allowNo": false,
|
|
3567
|
+
"type": "boolean"
|
|
3311
3568
|
},
|
|
3312
3569
|
"verbose": {
|
|
3313
3570
|
"char": "v",
|
|
3314
|
-
"description": "Show detailed
|
|
3571
|
+
"description": "Show detailed output",
|
|
3315
3572
|
"name": "verbose",
|
|
3316
3573
|
"allowNo": false,
|
|
3317
3574
|
"type": "boolean"
|
|
3318
3575
|
},
|
|
3319
|
-
"
|
|
3320
|
-
"description": "
|
|
3321
|
-
"name": "
|
|
3322
|
-
"
|
|
3323
|
-
"
|
|
3324
|
-
|
|
3325
|
-
|
|
3576
|
+
"skip-db": {
|
|
3577
|
+
"description": "Skip database provisioning phases",
|
|
3578
|
+
"name": "skip-db",
|
|
3579
|
+
"allowNo": false,
|
|
3580
|
+
"type": "boolean"
|
|
3581
|
+
},
|
|
3582
|
+
"skip-start": {
|
|
3583
|
+
"description": "Skip service startup and smoke tests",
|
|
3584
|
+
"name": "skip-start",
|
|
3585
|
+
"allowNo": false,
|
|
3586
|
+
"type": "boolean"
|
|
3587
|
+
},
|
|
3588
|
+
"no-resume": {
|
|
3589
|
+
"description": "Ignore any existing checkpoint and start fresh",
|
|
3590
|
+
"name": "no-resume",
|
|
3591
|
+
"allowNo": false,
|
|
3592
|
+
"type": "boolean"
|
|
3593
|
+
},
|
|
3594
|
+
"fast": {
|
|
3595
|
+
"description": "Fast mode: skip smoke test and optimize post-codegen steps. Re-run without --fast if you encounter issues.",
|
|
3596
|
+
"name": "fast",
|
|
3597
|
+
"allowNo": false,
|
|
3598
|
+
"type": "boolean"
|
|
3599
|
+
},
|
|
3600
|
+
"overwrite-config": {
|
|
3601
|
+
"description": "Overwrite existing config files (.env, mj.config.cjs, environment.ts) instead of preserving them",
|
|
3602
|
+
"name": "overwrite-config",
|
|
3603
|
+
"allowNo": false,
|
|
3604
|
+
"type": "boolean"
|
|
3605
|
+
},
|
|
3606
|
+
"monorepo": {
|
|
3607
|
+
"description": "Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.",
|
|
3608
|
+
"name": "monorepo",
|
|
3609
|
+
"allowNo": false,
|
|
3610
|
+
"type": "boolean"
|
|
3326
3611
|
}
|
|
3327
3612
|
},
|
|
3328
3613
|
"hasDynamicHelp": false,
|
|
3329
3614
|
"hiddenAliases": [],
|
|
3330
|
-
"id": "
|
|
3615
|
+
"id": "install",
|
|
3331
3616
|
"pluginAlias": "@memberjunction/cli",
|
|
3332
3617
|
"pluginName": "@memberjunction/cli",
|
|
3333
3618
|
"pluginType": "core",
|
|
@@ -3337,9 +3622,8 @@
|
|
|
3337
3622
|
"relativePath": [
|
|
3338
3623
|
"dist",
|
|
3339
3624
|
"commands",
|
|
3340
|
-
"
|
|
3341
|
-
"
|
|
3342
|
-
"run.js"
|
|
3625
|
+
"install",
|
|
3626
|
+
"index.js"
|
|
3343
3627
|
]
|
|
3344
3628
|
},
|
|
3345
3629
|
"ai:agents:list": {
|
|
@@ -3687,25 +3971,34 @@
|
|
|
3687
3971
|
"index.js"
|
|
3688
3972
|
]
|
|
3689
3973
|
},
|
|
3690
|
-
"ai:
|
|
3974
|
+
"ai:actions:list": {
|
|
3691
3975
|
"aliases": [],
|
|
3692
3976
|
"args": {},
|
|
3693
|
-
"description": "List available
|
|
3977
|
+
"description": "List available AI actions",
|
|
3694
3978
|
"examples": [
|
|
3695
|
-
"<%= config.bin %> <%= command.id %>"
|
|
3979
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3980
|
+
"<%= config.bin %> <%= command.id %> --output=table",
|
|
3981
|
+
"<%= config.bin %> <%= command.id %> --output=json"
|
|
3696
3982
|
],
|
|
3697
3983
|
"flags": {
|
|
3698
|
-
"
|
|
3699
|
-
"char": "
|
|
3700
|
-
"description": "
|
|
3701
|
-
"name": "
|
|
3702
|
-
"
|
|
3703
|
-
"
|
|
3984
|
+
"output": {
|
|
3985
|
+
"char": "o",
|
|
3986
|
+
"description": "Output format",
|
|
3987
|
+
"name": "output",
|
|
3988
|
+
"default": "compact",
|
|
3989
|
+
"hasDynamicHelp": false,
|
|
3990
|
+
"multiple": false,
|
|
3991
|
+
"options": [
|
|
3992
|
+
"compact",
|
|
3993
|
+
"json",
|
|
3994
|
+
"table"
|
|
3995
|
+
],
|
|
3996
|
+
"type": "option"
|
|
3704
3997
|
}
|
|
3705
3998
|
},
|
|
3706
3999
|
"hasDynamicHelp": false,
|
|
3707
4000
|
"hiddenAliases": [],
|
|
3708
|
-
"id": "ai:
|
|
4001
|
+
"id": "ai:actions:list",
|
|
3709
4002
|
"pluginAlias": "@memberjunction/cli",
|
|
3710
4003
|
"pluginName": "@memberjunction/cli",
|
|
3711
4004
|
"pluginType": "core",
|
|
@@ -3716,37 +4009,151 @@
|
|
|
3716
4009
|
"dist",
|
|
3717
4010
|
"commands",
|
|
3718
4011
|
"ai",
|
|
3719
|
-
"
|
|
4012
|
+
"actions",
|
|
3720
4013
|
"list.js"
|
|
3721
4014
|
]
|
|
3722
4015
|
},
|
|
3723
|
-
"ai:
|
|
4016
|
+
"ai:actions:run": {
|
|
3724
4017
|
"aliases": [],
|
|
3725
4018
|
"args": {},
|
|
3726
|
-
"description": "Execute
|
|
4019
|
+
"description": "Execute an AI action with parameters",
|
|
3727
4020
|
"examples": [
|
|
3728
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3729
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3730
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3731
|
-
"<%= config.bin %> <%= command.id %> -
|
|
4021
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Weather\" --param \"Location=Boston\"",
|
|
4022
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Stock Price\" --param \"Ticker=AAPL\"",
|
|
4023
|
+
"<%= 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\"",
|
|
4024
|
+
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
3732
4025
|
],
|
|
3733
4026
|
"flags": {
|
|
3734
|
-
"
|
|
3735
|
-
"char": "
|
|
3736
|
-
"description": "
|
|
3737
|
-
"name": "
|
|
4027
|
+
"name": {
|
|
4028
|
+
"char": "n",
|
|
4029
|
+
"description": "Action name",
|
|
4030
|
+
"name": "name",
|
|
3738
4031
|
"required": true,
|
|
3739
4032
|
"hasDynamicHelp": false,
|
|
3740
4033
|
"multiple": false,
|
|
3741
4034
|
"type": "option"
|
|
3742
4035
|
},
|
|
3743
|
-
"
|
|
3744
|
-
"char": "
|
|
3745
|
-
"description": "
|
|
3746
|
-
"name": "
|
|
3747
|
-
"hasDynamicHelp": false,
|
|
3748
|
-
"multiple":
|
|
3749
|
-
"type": "option"
|
|
4036
|
+
"param": {
|
|
4037
|
+
"char": "p",
|
|
4038
|
+
"description": "Action parameters in key=value format",
|
|
4039
|
+
"name": "param",
|
|
4040
|
+
"hasDynamicHelp": false,
|
|
4041
|
+
"multiple": true,
|
|
4042
|
+
"type": "option"
|
|
4043
|
+
},
|
|
4044
|
+
"dry-run": {
|
|
4045
|
+
"description": "Validate without executing",
|
|
4046
|
+
"name": "dry-run",
|
|
4047
|
+
"allowNo": false,
|
|
4048
|
+
"type": "boolean"
|
|
4049
|
+
},
|
|
4050
|
+
"output": {
|
|
4051
|
+
"char": "o",
|
|
4052
|
+
"description": "Output format",
|
|
4053
|
+
"name": "output",
|
|
4054
|
+
"default": "compact",
|
|
4055
|
+
"hasDynamicHelp": false,
|
|
4056
|
+
"multiple": false,
|
|
4057
|
+
"options": [
|
|
4058
|
+
"compact",
|
|
4059
|
+
"json",
|
|
4060
|
+
"table"
|
|
4061
|
+
],
|
|
4062
|
+
"type": "option"
|
|
4063
|
+
},
|
|
4064
|
+
"verbose": {
|
|
4065
|
+
"char": "v",
|
|
4066
|
+
"description": "Show detailed execution information",
|
|
4067
|
+
"name": "verbose",
|
|
4068
|
+
"allowNo": false,
|
|
4069
|
+
"type": "boolean"
|
|
4070
|
+
},
|
|
4071
|
+
"timeout": {
|
|
4072
|
+
"description": "Execution timeout in milliseconds",
|
|
4073
|
+
"name": "timeout",
|
|
4074
|
+
"default": 300000,
|
|
4075
|
+
"hasDynamicHelp": false,
|
|
4076
|
+
"multiple": false,
|
|
4077
|
+
"type": "option"
|
|
4078
|
+
}
|
|
4079
|
+
},
|
|
4080
|
+
"hasDynamicHelp": false,
|
|
4081
|
+
"hiddenAliases": [],
|
|
4082
|
+
"id": "ai:actions:run",
|
|
4083
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4084
|
+
"pluginName": "@memberjunction/cli",
|
|
4085
|
+
"pluginType": "core",
|
|
4086
|
+
"strict": true,
|
|
4087
|
+
"enableJsonFlag": false,
|
|
4088
|
+
"isESM": true,
|
|
4089
|
+
"relativePath": [
|
|
4090
|
+
"dist",
|
|
4091
|
+
"commands",
|
|
4092
|
+
"ai",
|
|
4093
|
+
"actions",
|
|
4094
|
+
"run.js"
|
|
4095
|
+
]
|
|
4096
|
+
},
|
|
4097
|
+
"ai:prompts:list": {
|
|
4098
|
+
"aliases": [],
|
|
4099
|
+
"args": {},
|
|
4100
|
+
"description": "List available models for prompt execution",
|
|
4101
|
+
"examples": [
|
|
4102
|
+
"<%= config.bin %> <%= command.id %>"
|
|
4103
|
+
],
|
|
4104
|
+
"flags": {
|
|
4105
|
+
"verbose": {
|
|
4106
|
+
"char": "v",
|
|
4107
|
+
"description": "Show detailed model information",
|
|
4108
|
+
"name": "verbose",
|
|
4109
|
+
"allowNo": false,
|
|
4110
|
+
"type": "boolean"
|
|
4111
|
+
}
|
|
4112
|
+
},
|
|
4113
|
+
"hasDynamicHelp": false,
|
|
4114
|
+
"hiddenAliases": [],
|
|
4115
|
+
"id": "ai:prompts:list",
|
|
4116
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4117
|
+
"pluginName": "@memberjunction/cli",
|
|
4118
|
+
"pluginType": "core",
|
|
4119
|
+
"strict": true,
|
|
4120
|
+
"enableJsonFlag": false,
|
|
4121
|
+
"isESM": true,
|
|
4122
|
+
"relativePath": [
|
|
4123
|
+
"dist",
|
|
4124
|
+
"commands",
|
|
4125
|
+
"ai",
|
|
4126
|
+
"prompts",
|
|
4127
|
+
"list.js"
|
|
4128
|
+
]
|
|
4129
|
+
},
|
|
4130
|
+
"ai:prompts:run": {
|
|
4131
|
+
"aliases": [],
|
|
4132
|
+
"args": {},
|
|
4133
|
+
"description": "Execute a direct prompt with an AI model",
|
|
4134
|
+
"examples": [
|
|
4135
|
+
"<%= config.bin %> <%= command.id %> -p \"Explain quantum computing in simple terms\"",
|
|
4136
|
+
"<%= config.bin %> <%= command.id %> -p \"Write a Python function to sort a list\" --model \"gpt-4\"",
|
|
4137
|
+
"<%= config.bin %> <%= command.id %> -p \"Translate to French: Hello world\" --temperature 0.3",
|
|
4138
|
+
"<%= config.bin %> <%= command.id %> -p \"Generate a haiku\" --system \"You are a poet\" --max-tokens 100"
|
|
4139
|
+
],
|
|
4140
|
+
"flags": {
|
|
4141
|
+
"prompt": {
|
|
4142
|
+
"char": "p",
|
|
4143
|
+
"description": "The prompt to execute",
|
|
4144
|
+
"name": "prompt",
|
|
4145
|
+
"required": true,
|
|
4146
|
+
"hasDynamicHelp": false,
|
|
4147
|
+
"multiple": false,
|
|
4148
|
+
"type": "option"
|
|
4149
|
+
},
|
|
4150
|
+
"model": {
|
|
4151
|
+
"char": "m",
|
|
4152
|
+
"description": "AI model to use (e.g., gpt-4, claude-3-opus)",
|
|
4153
|
+
"name": "model",
|
|
4154
|
+
"hasDynamicHelp": false,
|
|
4155
|
+
"multiple": false,
|
|
4156
|
+
"type": "option"
|
|
3750
4157
|
},
|
|
3751
4158
|
"system": {
|
|
3752
4159
|
"char": "s",
|
|
@@ -3825,7 +4232,447 @@
|
|
|
3825
4232
|
"prompts",
|
|
3826
4233
|
"run.js"
|
|
3827
4234
|
]
|
|
4235
|
+
},
|
|
4236
|
+
"test:regression:build": {
|
|
4237
|
+
"aliases": [],
|
|
4238
|
+
"args": {
|
|
4239
|
+
"service": {
|
|
4240
|
+
"description": "Optional service name(s) to rebuild (e.g. mjexplorer, test-runner).",
|
|
4241
|
+
"name": "service",
|
|
4242
|
+
"required": false
|
|
4243
|
+
}
|
|
4244
|
+
},
|
|
4245
|
+
"description": "Build Docker images for the regression stack. On first run (or whenever .docker-generated/ is empty) this also invokes `gen-forms` to generate Angular entity forms — that step takes ~5 minutes but only happens when the form output is missing.",
|
|
4246
|
+
"examples": [
|
|
4247
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4248
|
+
"<%= config.bin %> <%= command.id %> mjexplorer # rebuild a specific service",
|
|
4249
|
+
"<%= config.bin %> <%= command.id %> --skip-gen-forms"
|
|
4250
|
+
],
|
|
4251
|
+
"flags": {
|
|
4252
|
+
"skip-gen-forms": {
|
|
4253
|
+
"description": "Skip the gen-forms guard, even when .docker-generated/ is empty. Use when you know the entity forms are already generated.",
|
|
4254
|
+
"name": "skip-gen-forms",
|
|
4255
|
+
"allowNo": false,
|
|
4256
|
+
"type": "boolean"
|
|
4257
|
+
}
|
|
4258
|
+
},
|
|
4259
|
+
"hasDynamicHelp": false,
|
|
4260
|
+
"hiddenAliases": [],
|
|
4261
|
+
"id": "test:regression:build",
|
|
4262
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4263
|
+
"pluginName": "@memberjunction/cli",
|
|
4264
|
+
"pluginType": "core",
|
|
4265
|
+
"strict": false,
|
|
4266
|
+
"enableJsonFlag": false,
|
|
4267
|
+
"isESM": true,
|
|
4268
|
+
"relativePath": [
|
|
4269
|
+
"dist",
|
|
4270
|
+
"commands",
|
|
4271
|
+
"test",
|
|
4272
|
+
"regression",
|
|
4273
|
+
"build.js"
|
|
4274
|
+
]
|
|
4275
|
+
},
|
|
4276
|
+
"test:regression:compare": {
|
|
4277
|
+
"aliases": [],
|
|
4278
|
+
"args": {},
|
|
4279
|
+
"description": "Diff the two most recent regression runs from docker/regression/test-results/. Thin alias for `mj test compare --from-json <dir>` that handles the path.",
|
|
4280
|
+
"examples": [
|
|
4281
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4282
|
+
"<%= config.bin %> <%= command.id %> --diff-only",
|
|
4283
|
+
"<%= config.bin %> <%= command.id %> --format=markdown --output=delta.md"
|
|
4284
|
+
],
|
|
4285
|
+
"flags": {
|
|
4286
|
+
"diff-only": {
|
|
4287
|
+
"description": "Show only differences.",
|
|
4288
|
+
"name": "diff-only",
|
|
4289
|
+
"allowNo": false,
|
|
4290
|
+
"type": "boolean"
|
|
4291
|
+
},
|
|
4292
|
+
"format": {
|
|
4293
|
+
"char": "f",
|
|
4294
|
+
"description": "Output format.",
|
|
4295
|
+
"name": "format",
|
|
4296
|
+
"default": "console",
|
|
4297
|
+
"hasDynamicHelp": false,
|
|
4298
|
+
"multiple": false,
|
|
4299
|
+
"options": [
|
|
4300
|
+
"console",
|
|
4301
|
+
"json",
|
|
4302
|
+
"markdown"
|
|
4303
|
+
],
|
|
4304
|
+
"type": "option"
|
|
4305
|
+
},
|
|
4306
|
+
"output": {
|
|
4307
|
+
"char": "o",
|
|
4308
|
+
"description": "Output file path.",
|
|
4309
|
+
"name": "output",
|
|
4310
|
+
"hasDynamicHelp": false,
|
|
4311
|
+
"multiple": false,
|
|
4312
|
+
"type": "option"
|
|
4313
|
+
},
|
|
4314
|
+
"verbose": {
|
|
4315
|
+
"description": "Show detailed information.",
|
|
4316
|
+
"name": "verbose",
|
|
4317
|
+
"allowNo": false,
|
|
4318
|
+
"type": "boolean"
|
|
4319
|
+
},
|
|
4320
|
+
"tag": {
|
|
4321
|
+
"description": "Filter suite runs by tag. Compares the two most recent runs whose Tags array contains the tag — useful when an archive MJ holds runs from multiple environments.",
|
|
4322
|
+
"name": "tag",
|
|
4323
|
+
"hasDynamicHelp": false,
|
|
4324
|
+
"multiple": false,
|
|
4325
|
+
"type": "option"
|
|
4326
|
+
}
|
|
4327
|
+
},
|
|
4328
|
+
"hasDynamicHelp": false,
|
|
4329
|
+
"hiddenAliases": [],
|
|
4330
|
+
"id": "test:regression:compare",
|
|
4331
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4332
|
+
"pluginName": "@memberjunction/cli",
|
|
4333
|
+
"pluginType": "core",
|
|
4334
|
+
"strict": false,
|
|
4335
|
+
"enableJsonFlag": false,
|
|
4336
|
+
"isESM": true,
|
|
4337
|
+
"relativePath": [
|
|
4338
|
+
"dist",
|
|
4339
|
+
"commands",
|
|
4340
|
+
"test",
|
|
4341
|
+
"regression",
|
|
4342
|
+
"compare.js"
|
|
4343
|
+
]
|
|
4344
|
+
},
|
|
4345
|
+
"test:regression:down": {
|
|
4346
|
+
"aliases": [],
|
|
4347
|
+
"args": {},
|
|
4348
|
+
"description": "Stop the regression stack and wipe DB volumes (docker compose down -v).",
|
|
4349
|
+
"examples": [
|
|
4350
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4351
|
+
"<%= config.bin %> <%= command.id %> --keep-volumes"
|
|
4352
|
+
],
|
|
4353
|
+
"flags": {
|
|
4354
|
+
"keep-volumes": {
|
|
4355
|
+
"description": "Skip the `-v` flag — preserves the ephemeral DB volume.",
|
|
4356
|
+
"name": "keep-volumes",
|
|
4357
|
+
"allowNo": false,
|
|
4358
|
+
"type": "boolean"
|
|
4359
|
+
}
|
|
4360
|
+
},
|
|
4361
|
+
"hasDynamicHelp": false,
|
|
4362
|
+
"hiddenAliases": [],
|
|
4363
|
+
"id": "test:regression:down",
|
|
4364
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4365
|
+
"pluginName": "@memberjunction/cli",
|
|
4366
|
+
"pluginType": "core",
|
|
4367
|
+
"strict": true,
|
|
4368
|
+
"enableJsonFlag": false,
|
|
4369
|
+
"isESM": true,
|
|
4370
|
+
"relativePath": [
|
|
4371
|
+
"dist",
|
|
4372
|
+
"commands",
|
|
4373
|
+
"test",
|
|
4374
|
+
"regression",
|
|
4375
|
+
"down.js"
|
|
4376
|
+
]
|
|
4377
|
+
},
|
|
4378
|
+
"test:regression:export": {
|
|
4379
|
+
"aliases": [],
|
|
4380
|
+
"args": {},
|
|
4381
|
+
"description": "Export a regression run's HTML report as a single self-contained file (screenshots inlined as base64), producing report.standalone.html. Portable for sharing or attaching as a CI artifact.",
|
|
4382
|
+
"examples": [
|
|
4383
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4384
|
+
"<%= config.bin %> <%= command.id %> --run=run-20260526T220118Z",
|
|
4385
|
+
"<%= config.bin %> <%= command.id %> --run=./some/other/run-dir"
|
|
4386
|
+
],
|
|
4387
|
+
"flags": {
|
|
4388
|
+
"run": {
|
|
4389
|
+
"char": "r",
|
|
4390
|
+
"description": "Which run to export. A folder name (under test-results/) or a path. Defaults to the latest run.",
|
|
4391
|
+
"name": "run",
|
|
4392
|
+
"hasDynamicHelp": false,
|
|
4393
|
+
"multiple": false,
|
|
4394
|
+
"type": "option"
|
|
4395
|
+
},
|
|
4396
|
+
"image": {
|
|
4397
|
+
"description": "(external) Published image used to inline reports. Default: memberjunction/agentic-test-runner:latest.",
|
|
4398
|
+
"name": "image",
|
|
4399
|
+
"hasDynamicHelp": false,
|
|
4400
|
+
"multiple": false,
|
|
4401
|
+
"type": "option"
|
|
4402
|
+
}
|
|
4403
|
+
},
|
|
4404
|
+
"hasDynamicHelp": false,
|
|
4405
|
+
"hiddenAliases": [],
|
|
4406
|
+
"id": "test:regression:export",
|
|
4407
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4408
|
+
"pluginName": "@memberjunction/cli",
|
|
4409
|
+
"pluginType": "core",
|
|
4410
|
+
"strict": true,
|
|
4411
|
+
"enableJsonFlag": false,
|
|
4412
|
+
"isESM": true,
|
|
4413
|
+
"relativePath": [
|
|
4414
|
+
"dist",
|
|
4415
|
+
"commands",
|
|
4416
|
+
"test",
|
|
4417
|
+
"regression",
|
|
4418
|
+
"export.js"
|
|
4419
|
+
]
|
|
4420
|
+
},
|
|
4421
|
+
"test:regression:gen-forms": {
|
|
4422
|
+
"aliases": [],
|
|
4423
|
+
"args": {},
|
|
4424
|
+
"description": "Regenerate Angular entity forms used by the regression MJExplorer image. Slow (~5 min) — only required after schema or codegen changes.",
|
|
4425
|
+
"examples": [
|
|
4426
|
+
"<%= config.bin %> <%= command.id %>"
|
|
4427
|
+
],
|
|
4428
|
+
"flags": {},
|
|
4429
|
+
"hasDynamicHelp": false,
|
|
4430
|
+
"hiddenAliases": [],
|
|
4431
|
+
"id": "test:regression:gen-forms",
|
|
4432
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4433
|
+
"pluginName": "@memberjunction/cli",
|
|
4434
|
+
"pluginType": "core",
|
|
4435
|
+
"strict": true,
|
|
4436
|
+
"enableJsonFlag": false,
|
|
4437
|
+
"isESM": true,
|
|
4438
|
+
"relativePath": [
|
|
4439
|
+
"dist",
|
|
4440
|
+
"commands",
|
|
4441
|
+
"test",
|
|
4442
|
+
"regression",
|
|
4443
|
+
"gen-forms.js"
|
|
4444
|
+
]
|
|
4445
|
+
},
|
|
4446
|
+
"test:regression": {
|
|
4447
|
+
"aliases": [],
|
|
4448
|
+
"args": {},
|
|
4449
|
+
"description": "MJ Explorer regression test suite — Docker-based LLM-driven browser tests",
|
|
4450
|
+
"examples": [
|
|
4451
|
+
"<%= config.bin %> <%= command.id %> build # Build images (incl. gen-forms on first run)",
|
|
4452
|
+
"<%= config.bin %> <%= command.id %> up # Run the full self-contained MJ stack (Mode A)",
|
|
4453
|
+
"<%= config.bin %> <%= command.id %> down # Tear down + wipe DB volumes",
|
|
4454
|
+
"<%= config.bin %> <%= command.id %> gen-forms # Regenerate Angular entity forms",
|
|
4455
|
+
"<%= config.bin %> <%= command.id %> compare # Diff the two most recent runs",
|
|
4456
|
+
"<%= config.bin %> <%= command.id %> export # Export a run as a portable standalone HTML",
|
|
4457
|
+
"<%= config.bin %> <%= command.id %> remote --target=staging-mj # Mode B/C/D against a remote URL",
|
|
4458
|
+
"<%= config.bin %> <%= command.id %> init generic-web # Scaffold one of the example dirs"
|
|
4459
|
+
],
|
|
4460
|
+
"flags": {},
|
|
4461
|
+
"hasDynamicHelp": false,
|
|
4462
|
+
"hiddenAliases": [],
|
|
4463
|
+
"id": "test:regression",
|
|
4464
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4465
|
+
"pluginName": "@memberjunction/cli",
|
|
4466
|
+
"pluginType": "core",
|
|
4467
|
+
"strict": true,
|
|
4468
|
+
"enableJsonFlag": false,
|
|
4469
|
+
"isESM": true,
|
|
4470
|
+
"relativePath": [
|
|
4471
|
+
"dist",
|
|
4472
|
+
"commands",
|
|
4473
|
+
"test",
|
|
4474
|
+
"regression",
|
|
4475
|
+
"index.js"
|
|
4476
|
+
]
|
|
4477
|
+
},
|
|
4478
|
+
"test:regression:init": {
|
|
4479
|
+
"aliases": [],
|
|
4480
|
+
"args": {
|
|
4481
|
+
"name": {
|
|
4482
|
+
"description": "Template name to scaffold (run with --list to see available).",
|
|
4483
|
+
"name": "name",
|
|
4484
|
+
"required": false
|
|
4485
|
+
}
|
|
4486
|
+
},
|
|
4487
|
+
"description": "Scaffold one of the bundled regression-suite mode templates into the current directory. Adapt the generated files (target profile + optional compose overlay + tests) to point at your app, then run `mj test regression remote --target=...` to execute the suite against it.",
|
|
4488
|
+
"examples": [
|
|
4489
|
+
"<%= config.bin %> <%= command.id %> generic-web",
|
|
4490
|
+
"<%= config.bin %> <%= command.id %> static-file-server",
|
|
4491
|
+
"<%= config.bin %> <%= command.id %> remote-mj",
|
|
4492
|
+
"<%= config.bin %> <%= command.id %> bring-your-own-app",
|
|
4493
|
+
"<%= config.bin %> <%= command.id %> --list"
|
|
4494
|
+
],
|
|
4495
|
+
"flags": {
|
|
4496
|
+
"list": {
|
|
4497
|
+
"description": "List available templates and exit.",
|
|
4498
|
+
"name": "list",
|
|
4499
|
+
"allowNo": false,
|
|
4500
|
+
"type": "boolean"
|
|
4501
|
+
}
|
|
4502
|
+
},
|
|
4503
|
+
"hasDynamicHelp": false,
|
|
4504
|
+
"hiddenAliases": [],
|
|
4505
|
+
"id": "test:regression:init",
|
|
4506
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4507
|
+
"pluginName": "@memberjunction/cli",
|
|
4508
|
+
"pluginType": "core",
|
|
4509
|
+
"strict": true,
|
|
4510
|
+
"enableJsonFlag": false,
|
|
4511
|
+
"isESM": true,
|
|
4512
|
+
"relativePath": [
|
|
4513
|
+
"dist",
|
|
4514
|
+
"commands",
|
|
4515
|
+
"test",
|
|
4516
|
+
"regression",
|
|
4517
|
+
"init.js"
|
|
4518
|
+
]
|
|
4519
|
+
},
|
|
4520
|
+
"test:regression:remote": {
|
|
4521
|
+
"aliases": [],
|
|
4522
|
+
"args": {},
|
|
4523
|
+
"description": "Run the regression suite against a remote URL (Mode B/C/D). Inside the MJ monorepo it drives the local compose stack; outside it runs the published agentic-test-runner image (no monorepo needed).",
|
|
4524
|
+
"examples": [
|
|
4525
|
+
"<%= config.bin %> <%= command.id %> --target=staging-mj",
|
|
4526
|
+
"<%= config.bin %> <%= command.id %> --target=./my/custom.target.json",
|
|
4527
|
+
"<%= config.bin %> <%= command.id %> --target=./app/target.json --overlay=./app/docker-compose.app.yml",
|
|
4528
|
+
"<%= config.bin %> <%= command.id %> --target=./t.json --image=memberjunction/agentic-test-runner:v5.30.0 --env-file=./.env"
|
|
4529
|
+
],
|
|
4530
|
+
"flags": {
|
|
4531
|
+
"target": {
|
|
4532
|
+
"char": "t",
|
|
4533
|
+
"description": "Target profile. Bare name (monorepo: docker/regression/targets/<name>.target.json) or a path.",
|
|
4534
|
+
"name": "target",
|
|
4535
|
+
"required": true,
|
|
4536
|
+
"hasDynamicHelp": false,
|
|
4537
|
+
"multiple": false,
|
|
4538
|
+
"type": "option"
|
|
4539
|
+
},
|
|
4540
|
+
"no-local-stack": {
|
|
4541
|
+
"description": "(monorepo only) Use the lean `remote-target` profile (test-runner only) instead of the full local stack.",
|
|
4542
|
+
"name": "no-local-stack",
|
|
4543
|
+
"allowNo": false,
|
|
4544
|
+
"type": "boolean"
|
|
4545
|
+
},
|
|
4546
|
+
"overlay": {
|
|
4547
|
+
"description": "docker-compose overlay (Mode D) that boots your app alongside the runner on the same network. May repeat.",
|
|
4548
|
+
"name": "overlay",
|
|
4549
|
+
"hasDynamicHelp": false,
|
|
4550
|
+
"multiple": true,
|
|
4551
|
+
"type": "option"
|
|
4552
|
+
},
|
|
4553
|
+
"image": {
|
|
4554
|
+
"description": "(external) Published image tag to run. Default: memberjunction/agentic-test-runner:latest. Pin for reproducibility.",
|
|
4555
|
+
"name": "image",
|
|
4556
|
+
"hasDynamicHelp": false,
|
|
4557
|
+
"multiple": false,
|
|
4558
|
+
"type": "option"
|
|
4559
|
+
},
|
|
4560
|
+
"env-file": {
|
|
4561
|
+
"description": "(external) Path to a .env injected into the runner (DB_*, AI_VENDOR_API_KEY__GeminiLLM, auth env: refs).",
|
|
4562
|
+
"name": "env-file",
|
|
4563
|
+
"hasDynamicHelp": false,
|
|
4564
|
+
"multiple": false,
|
|
4565
|
+
"type": "option"
|
|
4566
|
+
},
|
|
4567
|
+
"detach": {
|
|
4568
|
+
"char": "d",
|
|
4569
|
+
"description": "(monorepo) Run in the background (docker compose up -d).",
|
|
4570
|
+
"name": "detach",
|
|
4571
|
+
"allowNo": false,
|
|
4572
|
+
"type": "boolean"
|
|
4573
|
+
}
|
|
4574
|
+
},
|
|
4575
|
+
"hasDynamicHelp": false,
|
|
4576
|
+
"hiddenAliases": [],
|
|
4577
|
+
"id": "test:regression:remote",
|
|
4578
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4579
|
+
"pluginName": "@memberjunction/cli",
|
|
4580
|
+
"pluginType": "core",
|
|
4581
|
+
"strict": true,
|
|
4582
|
+
"enableJsonFlag": false,
|
|
4583
|
+
"isESM": true,
|
|
4584
|
+
"relativePath": [
|
|
4585
|
+
"dist",
|
|
4586
|
+
"commands",
|
|
4587
|
+
"test",
|
|
4588
|
+
"regression",
|
|
4589
|
+
"remote.js"
|
|
4590
|
+
]
|
|
4591
|
+
},
|
|
4592
|
+
"test:regression:up": {
|
|
4593
|
+
"aliases": [],
|
|
4594
|
+
"args": {},
|
|
4595
|
+
"description": "Run the self-contained MJ regression stack (Mode A). With --bacpac, the DB is imported from a .bacpac. Inside the monorepo this builds from source; outside, --bacpac runs the published-image stack (plain `up` is monorepo-only).",
|
|
4596
|
+
"examples": [
|
|
4597
|
+
"<%= config.bin %> <%= command.id %>",
|
|
4598
|
+
"<%= config.bin %> <%= command.id %> --detach",
|
|
4599
|
+
"<%= config.bin %> <%= command.id %> --bacpac=./db.bacpac --suite=\"My Suite\" --metadata=./my-suite-metadata",
|
|
4600
|
+
"<%= config.bin %> <%= command.id %> --bacpac=./db.bacpac --bacpac-no-upgrade"
|
|
4601
|
+
],
|
|
4602
|
+
"flags": {
|
|
4603
|
+
"detach": {
|
|
4604
|
+
"char": "d",
|
|
4605
|
+
"description": "Run containers in the background (docker compose up -d).",
|
|
4606
|
+
"name": "detach",
|
|
4607
|
+
"allowNo": false,
|
|
4608
|
+
"type": "boolean"
|
|
4609
|
+
},
|
|
4610
|
+
"bacpac": {
|
|
4611
|
+
"description": "Path to a .bacpac of a real MJ database to import and test against.",
|
|
4612
|
+
"name": "bacpac",
|
|
4613
|
+
"hasDynamicHelp": false,
|
|
4614
|
+
"multiple": false,
|
|
4615
|
+
"type": "option"
|
|
4616
|
+
},
|
|
4617
|
+
"bacpac-no-upgrade": {
|
|
4618
|
+
"description": "Import the bacpac as-is — skip migrate/codegen. Only safe at the current MJ version. Requires --bacpac.",
|
|
4619
|
+
"name": "bacpac-no-upgrade",
|
|
4620
|
+
"allowNo": false,
|
|
4621
|
+
"type": "boolean"
|
|
4622
|
+
},
|
|
4623
|
+
"suite": {
|
|
4624
|
+
"description": "Test suite to run (TEST_SUITE_NAME). Use with --bacpac + --metadata.",
|
|
4625
|
+
"name": "suite",
|
|
4626
|
+
"hasDynamicHelp": false,
|
|
4627
|
+
"multiple": false,
|
|
4628
|
+
"type": "option"
|
|
4629
|
+
},
|
|
4630
|
+
"metadata": {
|
|
4631
|
+
"description": "Directory of your test + test-suite metadata (pushed before the run). Requires --bacpac.",
|
|
4632
|
+
"name": "metadata",
|
|
4633
|
+
"hasDynamicHelp": false,
|
|
4634
|
+
"multiple": false,
|
|
4635
|
+
"type": "option"
|
|
4636
|
+
},
|
|
4637
|
+
"image": {
|
|
4638
|
+
"description": "(external) Published agentic-test-runner image. Default: memberjunction/agentic-test-runner:latest.",
|
|
4639
|
+
"name": "image",
|
|
4640
|
+
"hasDynamicHelp": false,
|
|
4641
|
+
"multiple": false,
|
|
4642
|
+
"type": "option"
|
|
4643
|
+
},
|
|
4644
|
+
"explorer-image": {
|
|
4645
|
+
"description": "(external bacpac) Published Explorer image (prerequisite). Default: memberjunction/explorer:latest.",
|
|
4646
|
+
"name": "explorer-image",
|
|
4647
|
+
"hasDynamicHelp": false,
|
|
4648
|
+
"multiple": false,
|
|
4649
|
+
"type": "option"
|
|
4650
|
+
},
|
|
4651
|
+
"env-file": {
|
|
4652
|
+
"description": "(external) .env injected into the runner (auth env: refs).",
|
|
4653
|
+
"name": "env-file",
|
|
4654
|
+
"hasDynamicHelp": false,
|
|
4655
|
+
"multiple": false,
|
|
4656
|
+
"type": "option"
|
|
4657
|
+
}
|
|
4658
|
+
},
|
|
4659
|
+
"hasDynamicHelp": false,
|
|
4660
|
+
"hiddenAliases": [],
|
|
4661
|
+
"id": "test:regression:up",
|
|
4662
|
+
"pluginAlias": "@memberjunction/cli",
|
|
4663
|
+
"pluginName": "@memberjunction/cli",
|
|
4664
|
+
"pluginType": "core",
|
|
4665
|
+
"strict": true,
|
|
4666
|
+
"enableJsonFlag": false,
|
|
4667
|
+
"isESM": true,
|
|
4668
|
+
"relativePath": [
|
|
4669
|
+
"dist",
|
|
4670
|
+
"commands",
|
|
4671
|
+
"test",
|
|
4672
|
+
"regression",
|
|
4673
|
+
"up.js"
|
|
4674
|
+
]
|
|
3828
4675
|
}
|
|
3829
4676
|
},
|
|
3830
|
-
"version": "5.
|
|
4677
|
+
"version": "5.38.0"
|
|
3831
4678
|
}
|