@memberjunction/cli 5.44.0 → 5.45.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/dist/commands/app/install.d.ts +1 -0
- package/dist/commands/app/install.d.ts.map +1 -1
- package/dist/commands/app/install.js +6 -1
- package/dist/commands/app/install.js.map +1 -1
- package/dist/commands/app/upgrade.d.ts +1 -0
- package/dist/commands/app/upgrade.d.ts.map +1 -1
- package/dist/commands/app/upgrade.js +5 -1
- package/dist/commands/app/upgrade.js.map +1 -1
- package/dist/utils/open-app-context.d.ts +12 -1
- package/dist/utils/open-app-context.d.ts.map +1 -1
- package/dist/utils/open-app-context.js +34 -1
- package/dist/utils/open-app-context.js.map +1 -1
- package/oclif.manifest.json +368 -355
- package/package.json +17 -17
|
@@ -15,6 +15,7 @@ export default class AppInstall extends Command {
|
|
|
15
15
|
static flags: {
|
|
16
16
|
version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
17
17
|
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
|
+
'non-interactive': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
19
|
'dangerously-ignore-dbl-underscore-schema-rule': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
20
|
};
|
|
20
21
|
run(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAqD;IAEvE,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAqD;IAEvE,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
|
|
@@ -17,6 +17,7 @@ export default class AppInstall extends Command {
|
|
|
17
17
|
'<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0',
|
|
18
18
|
'<%= config.bin %> app install https://github.com/acme/mj-crm --verbose',
|
|
19
19
|
'<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot',
|
|
20
|
+
'<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive',
|
|
20
21
|
]; }
|
|
21
22
|
static { this.args = {
|
|
22
23
|
source: Args.string({
|
|
@@ -27,6 +28,10 @@ export default class AppInstall extends Command {
|
|
|
27
28
|
static { this.flags = {
|
|
28
29
|
version: Flags.string({ description: 'Specific version to install (default: latest)' }),
|
|
29
30
|
verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
|
|
31
|
+
'non-interactive': Flags.boolean({
|
|
32
|
+
description: 'Skip interactive setup prompts; post-install hooks use environment variables / defaults (for CI/headless installs)',
|
|
33
|
+
default: false,
|
|
34
|
+
}),
|
|
30
35
|
'dangerously-ignore-dbl-underscore-schema-rule': Flags.boolean({
|
|
31
36
|
hidden: true,
|
|
32
37
|
default: false,
|
|
@@ -36,7 +41,7 @@ export default class AppInstall extends Command {
|
|
|
36
41
|
const { args, flags } = await this.parse(AppInstall);
|
|
37
42
|
const spinner = ora();
|
|
38
43
|
try {
|
|
39
|
-
const context = await buildOrchestratorContext(this, flags.verbose);
|
|
44
|
+
const context = await buildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
|
|
40
45
|
const result = await InstallApp({
|
|
41
46
|
Source: args.source,
|
|
42
47
|
Version: flags.version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,iDAAiD,CAAC;aAEhE,aAAQ,GAAG;QAChB,8DAA8D;QAC9D,8EAA8E;QAC9E,wEAAwE;QACxE,0FAA0F;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,iDAAiD,CAAC;aAEhE,aAAQ,GAAG;QAChB,8DAA8D;QAC9D,8EAA8E;QAC9E,wEAAwE;QACxE,0FAA0F;QAC1F,gFAAgF;KACjF,CAAC;aAEK,SAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EACT,oKAAoK;YACtK,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,oHAAoH;YACjI,OAAO,EAAE,KAAK;SACf,CAAC;QACF,+CAA+C,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE/F,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,2BAA2B,EAAE,KAAK,CAAC,+CAA+C,CAAC;aACpF,EACD,OAAO,CACR,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC"}
|
|
@@ -14,6 +14,7 @@ export default class AppUpgrade extends Command {
|
|
|
14
14
|
static flags: {
|
|
15
15
|
version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
16
16
|
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
17
|
+
'non-interactive': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
17
18
|
'dangerously-ignore-dbl-underscore-schema-rule': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
19
|
};
|
|
19
20
|
run(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/commands/app/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/commands/app/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
|
|
@@ -24,6 +24,10 @@ export default class AppUpgrade extends Command {
|
|
|
24
24
|
static { this.flags = {
|
|
25
25
|
version: Flags.string({ description: 'Specific version to upgrade to (default: latest)' }),
|
|
26
26
|
verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
|
|
27
|
+
'non-interactive': Flags.boolean({
|
|
28
|
+
description: 'Skip interactive prompts; post-upgrade hooks use environment variables / defaults (for CI/headless upgrades)',
|
|
29
|
+
default: false,
|
|
30
|
+
}),
|
|
27
31
|
'dangerously-ignore-dbl-underscore-schema-rule': Flags.boolean({
|
|
28
32
|
hidden: true,
|
|
29
33
|
default: false,
|
|
@@ -33,7 +37,7 @@ export default class AppUpgrade extends Command {
|
|
|
33
37
|
const { args, flags } = await this.parse(AppUpgrade);
|
|
34
38
|
const spinner = ora();
|
|
35
39
|
try {
|
|
36
|
-
const context = await buildOrchestratorContext(this, flags.verbose);
|
|
40
|
+
const context = await buildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
|
|
37
41
|
const result = await UpgradeApp({
|
|
38
42
|
AppName: args.name,
|
|
39
43
|
Version: flags.version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/commands/app/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,qDAAqD,CAAC;aAEpE,aAAQ,GAAG;QAChB,wCAAwC;QACxC,wDAAwD;KACzD,CAAC;aAEK,SAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;QAC1F,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,+CAA+C,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/commands/app/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,qDAAqD,CAAC;aAEpE,aAAQ,GAAG;QAChB,wCAAwC;QACxC,wDAAwD;KACzD,CAAC;aAEK,SAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;QAC1F,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,8GAA8G;YAC3H,OAAO,EAAE,KAAK;SACf,CAAC;QACF,+CAA+C,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE/F,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B;gBACE,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,2BAA2B,EAAE,KAAK,CAAC,+CAA+C,CAAC;aACpF,EACD,OAAO,CACR,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACjF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC"}
|
|
@@ -16,7 +16,7 @@ export declare function buildContextUser(): Promise<UserInfo>;
|
|
|
16
16
|
export declare function buildOrchestratorContext(command: {
|
|
17
17
|
log: (msg: string) => void;
|
|
18
18
|
warn: (msg: string | Error) => void;
|
|
19
|
-
}, verbose?: boolean): Promise<OrchestratorContextShape>;
|
|
19
|
+
}, verbose?: boolean, interactive?: boolean): Promise<OrchestratorContextShape>;
|
|
20
20
|
/**
|
|
21
21
|
* Structural type matching OrchestratorContext from the engine.
|
|
22
22
|
* Defined here to avoid a compile-time import of the engine package.
|
|
@@ -57,6 +57,17 @@ interface OrchestratorContextShape {
|
|
|
57
57
|
OnError?: (phase: string, message: string) => void;
|
|
58
58
|
OnWarn?: (phase: string, message: string) => void;
|
|
59
59
|
OnLog?: (message: string) => void;
|
|
60
|
+
OnPromptInput?: (message: string, opts?: {
|
|
61
|
+
default?: string;
|
|
62
|
+
}) => Promise<string>;
|
|
63
|
+
OnPromptConfirm?: (message: string, opts?: {
|
|
64
|
+
default?: boolean;
|
|
65
|
+
}) => Promise<boolean>;
|
|
66
|
+
OnPromptSelect?: (message: string, choices: Array<{
|
|
67
|
+
name: string;
|
|
68
|
+
value: string;
|
|
69
|
+
}>) => Promise<string>;
|
|
70
|
+
OnPromptPassword?: (message: string) => Promise<string>;
|
|
60
71
|
};
|
|
61
72
|
}
|
|
62
73
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-app-context.d.ts","sourceRoot":"","sources":["../../src/utils/open-app-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"open-app-context.d.ts","sourceRoot":"","sources":["../../src/utils/open-app-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* paths receive a provider whose `Dialect.PlatformKey` matches the real database.
|
|
11
11
|
*/
|
|
12
12
|
import ora from 'ora-classic';
|
|
13
|
+
import { input, confirm, select, password } from '@inquirer/prompts';
|
|
13
14
|
import { createRequire } from 'node:module';
|
|
14
15
|
import { UserCache } from '@memberjunction/sqlserver-dataprovider';
|
|
15
16
|
import { initializeProvider, cleanupProvider } from '@memberjunction/metadata-sync';
|
|
@@ -46,6 +47,11 @@ function toMJConfig(config) {
|
|
|
46
47
|
dbPassword: config.codeGenPassword,
|
|
47
48
|
dbEncrypt: config.dbHost.includes('.database.windows.net') ? 'Y' : 'N',
|
|
48
49
|
dbTrustServerCertificate: config.dbTrustServerCertificate ? 'Y' : 'N',
|
|
50
|
+
// Plumb the configured request timeout through to the shared provider pool so
|
|
51
|
+
// long-running `mj app …` operations (e.g. remove dropping a large schema) don't
|
|
52
|
+
// hit mssql's 15s default. Without this, RequestTimeout only reached the migration
|
|
53
|
+
// runner and never the pool that executes the schema DROPs.
|
|
54
|
+
dbRequestTimeout: config.dbRequestTimeout,
|
|
49
55
|
mjCoreSchema: config.coreSchema ?? '__mj',
|
|
50
56
|
};
|
|
51
57
|
}
|
|
@@ -97,11 +103,15 @@ export async function buildContextUser() {
|
|
|
97
103
|
/**
|
|
98
104
|
* Builds the full OrchestratorContext for install/upgrade/remove/disable/enable commands.
|
|
99
105
|
*/
|
|
100
|
-
export async function buildOrchestratorContext(command, verbose) {
|
|
106
|
+
export async function buildOrchestratorContext(command, verbose, interactive = true) {
|
|
101
107
|
const config = getValidatedConfig();
|
|
102
108
|
const provider = await ensureProviderInitialized();
|
|
103
109
|
const contextUser = getSystemUserInfo();
|
|
104
110
|
const spinner = verbose ? ora() : undefined;
|
|
111
|
+
// Only wire interactive prompt callbacks for a real TTY when not explicitly disabled.
|
|
112
|
+
// Their ABSENCE signals headless mode to in-process hook modules (e.g. the setup wizard),
|
|
113
|
+
// which then fall back to env/defaults instead of blocking on @inquirer (which errors in CI).
|
|
114
|
+
const wantPrompts = interactive && process.stdin.isTTY === true;
|
|
105
115
|
return {
|
|
106
116
|
ContextUser: contextUser,
|
|
107
117
|
DatabaseProvider: provider,
|
|
@@ -135,6 +145,29 @@ export async function buildOrchestratorContext(command, verbose) {
|
|
|
135
145
|
OnError: (phase, message) => command.warn(`[${phase}] ${message}`),
|
|
136
146
|
OnWarn: (phase, message) => command.warn(`[${phase}] ${message}`),
|
|
137
147
|
OnLog: (message) => command.log(message),
|
|
148
|
+
// Interactive prompt callbacks for in-process hook modules (e.g. a setup wizard) are
|
|
149
|
+
// wired ONLY for an interactive TTY; the spinner is paused so the prompt renders cleanly.
|
|
150
|
+
// When omitted (non-interactive / non-TTY), hook modules take their headless path.
|
|
151
|
+
...(wantPrompts
|
|
152
|
+
? {
|
|
153
|
+
OnPromptInput: async (message, opts) => {
|
|
154
|
+
spinner?.stop();
|
|
155
|
+
return await input({ message, default: opts?.default });
|
|
156
|
+
},
|
|
157
|
+
OnPromptConfirm: async (message, opts) => {
|
|
158
|
+
spinner?.stop();
|
|
159
|
+
return await confirm({ message, default: opts?.default });
|
|
160
|
+
},
|
|
161
|
+
OnPromptSelect: async (message, choices) => {
|
|
162
|
+
spinner?.stop();
|
|
163
|
+
return await select({ message, choices });
|
|
164
|
+
},
|
|
165
|
+
OnPromptPassword: async (message) => {
|
|
166
|
+
spinner?.stop();
|
|
167
|
+
return await password({ message, mask: true });
|
|
168
|
+
},
|
|
169
|
+
}
|
|
170
|
+
: {}),
|
|
138
171
|
},
|
|
139
172
|
};
|
|
140
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-app-context.js","sourceRoot":"","sources":["../../src/utils/open-app-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIlD,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,iFAAiF;AACjF,qFAAqF;AACrF,gFAAgF;AAEhF;;;;GAIG;AACH,KAAK,UAAU,yBAAyB;IACtC,OAAO,kBAAkB,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,MAAsB;IACxC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,YAAY;QAC/B,UAAU,EAAE,MAAM,CAAC,eAAe;QAClC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QACtE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QACrE,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM;KAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,iBAAiB;IACxB,6EAA6E;IAC7E,kFAAkF;IAClF,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACnD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kCAAkC;IAClC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACvF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;AACxG,CAAC;AAED,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,yBAAyB,EAAE,CAAC;IAClC,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA4E,EAC5E,OAAiB;
|
|
1
|
+
{"version":3,"file":"open-app-context.js","sourceRoot":"","sources":["../../src/utils/open-app-context.ts"],"names":[],"mappings":"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"}
|
package/oclif.manifest.json
CHANGED
|
@@ -188,7 +188,8 @@
|
|
|
188
188
|
"<%= config.bin %> app install https://github.com/acme/mj-crm",
|
|
189
189
|
"<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0",
|
|
190
190
|
"<%= config.bin %> app install https://github.com/acme/mj-crm --verbose",
|
|
191
|
-
"<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot"
|
|
191
|
+
"<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot",
|
|
192
|
+
"<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive"
|
|
192
193
|
],
|
|
193
194
|
"flags": {
|
|
194
195
|
"version": {
|
|
@@ -205,6 +206,12 @@
|
|
|
205
206
|
"allowNo": false,
|
|
206
207
|
"type": "boolean"
|
|
207
208
|
},
|
|
209
|
+
"non-interactive": {
|
|
210
|
+
"description": "Skip interactive setup prompts; post-install hooks use environment variables / defaults (for CI/headless installs)",
|
|
211
|
+
"name": "non-interactive",
|
|
212
|
+
"allowNo": false,
|
|
213
|
+
"type": "boolean"
|
|
214
|
+
},
|
|
208
215
|
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
209
216
|
"hidden": true,
|
|
210
217
|
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
@@ -354,6 +361,12 @@
|
|
|
354
361
|
"allowNo": false,
|
|
355
362
|
"type": "boolean"
|
|
356
363
|
},
|
|
364
|
+
"non-interactive": {
|
|
365
|
+
"description": "Skip interactive prompts; post-upgrade hooks use environment variables / defaults (for CI/headless upgrades)",
|
|
366
|
+
"name": "non-interactive",
|
|
367
|
+
"allowNo": false,
|
|
368
|
+
"type": "boolean"
|
|
369
|
+
},
|
|
357
370
|
"dangerously-ignore-dbl-underscore-schema-rule": {
|
|
358
371
|
"hidden": true,
|
|
359
372
|
"name": "dangerously-ignore-dbl-underscore-schema-rule",
|
|
@@ -377,6 +390,67 @@
|
|
|
377
390
|
"upgrade.js"
|
|
378
391
|
]
|
|
379
392
|
},
|
|
393
|
+
"artifacts:reclassify": {
|
|
394
|
+
"aliases": [],
|
|
395
|
+
"args": {},
|
|
396
|
+
"description": "Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. Normally a no-op: the v5.35 backfill migration handles this automatically. This command is only relevant when the migration ran BEFORE the artifact-type metadata (Generic Text / Generic Binary) was pushed via `mj sync push`, in which case the migration prints a notice telling you to run this. Reports \"no candidates\" once everything is reconciled. Dry-run by default; --apply writes through Record Changes.",
|
|
397
|
+
"examples": [
|
|
398
|
+
"<%= config.bin %> <%= command.id %>",
|
|
399
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
400
|
+
],
|
|
401
|
+
"flags": {
|
|
402
|
+
"conversation-id": {
|
|
403
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
404
|
+
"name": "conversation-id",
|
|
405
|
+
"hasDynamicHelp": false,
|
|
406
|
+
"multiple": false,
|
|
407
|
+
"type": "option"
|
|
408
|
+
},
|
|
409
|
+
"since": {
|
|
410
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
411
|
+
"name": "since",
|
|
412
|
+
"hasDynamicHelp": false,
|
|
413
|
+
"multiple": false,
|
|
414
|
+
"type": "option"
|
|
415
|
+
},
|
|
416
|
+
"limit": {
|
|
417
|
+
"description": "Maximum number of rows to inspect.",
|
|
418
|
+
"name": "limit",
|
|
419
|
+
"default": 100,
|
|
420
|
+
"hasDynamicHelp": false,
|
|
421
|
+
"multiple": false,
|
|
422
|
+
"type": "option"
|
|
423
|
+
},
|
|
424
|
+
"apply": {
|
|
425
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
426
|
+
"name": "apply",
|
|
427
|
+
"allowNo": false,
|
|
428
|
+
"type": "boolean"
|
|
429
|
+
},
|
|
430
|
+
"verbose": {
|
|
431
|
+
"char": "v",
|
|
432
|
+
"description": "Print every candidate row, not just the summary.",
|
|
433
|
+
"name": "verbose",
|
|
434
|
+
"allowNo": false,
|
|
435
|
+
"type": "boolean"
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"hasDynamicHelp": false,
|
|
439
|
+
"hiddenAliases": [],
|
|
440
|
+
"id": "artifacts:reclassify",
|
|
441
|
+
"pluginAlias": "@memberjunction/cli",
|
|
442
|
+
"pluginName": "@memberjunction/cli",
|
|
443
|
+
"pluginType": "core",
|
|
444
|
+
"strict": true,
|
|
445
|
+
"enableJsonFlag": false,
|
|
446
|
+
"isESM": true,
|
|
447
|
+
"relativePath": [
|
|
448
|
+
"dist",
|
|
449
|
+
"commands",
|
|
450
|
+
"artifacts",
|
|
451
|
+
"reclassify.js"
|
|
452
|
+
]
|
|
453
|
+
},
|
|
380
454
|
"baseline:build": {
|
|
381
455
|
"aliases": [],
|
|
382
456
|
"args": {},
|
|
@@ -905,67 +979,6 @@
|
|
|
905
979
|
"index.js"
|
|
906
980
|
]
|
|
907
981
|
},
|
|
908
|
-
"artifacts:reclassify": {
|
|
909
|
-
"aliases": [],
|
|
910
|
-
"args": {},
|
|
911
|
-
"description": "Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. Normally a no-op: the v5.35 backfill migration handles this automatically. This command is only relevant when the migration ran BEFORE the artifact-type metadata (Generic Text / Generic Binary) was pushed via `mj sync push`, in which case the migration prints a notice telling you to run this. Reports \"no candidates\" once everything is reconciled. Dry-run by default; --apply writes through Record Changes.",
|
|
912
|
-
"examples": [
|
|
913
|
-
"<%= config.bin %> <%= command.id %>",
|
|
914
|
-
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
915
|
-
],
|
|
916
|
-
"flags": {
|
|
917
|
-
"conversation-id": {
|
|
918
|
-
"description": "Scope to artifacts attached to the given conversation.",
|
|
919
|
-
"name": "conversation-id",
|
|
920
|
-
"hasDynamicHelp": false,
|
|
921
|
-
"multiple": false,
|
|
922
|
-
"type": "option"
|
|
923
|
-
},
|
|
924
|
-
"since": {
|
|
925
|
-
"description": "Scope to artifacts created on/after this ISO date.",
|
|
926
|
-
"name": "since",
|
|
927
|
-
"hasDynamicHelp": false,
|
|
928
|
-
"multiple": false,
|
|
929
|
-
"type": "option"
|
|
930
|
-
},
|
|
931
|
-
"limit": {
|
|
932
|
-
"description": "Maximum number of rows to inspect.",
|
|
933
|
-
"name": "limit",
|
|
934
|
-
"default": 100,
|
|
935
|
-
"hasDynamicHelp": false,
|
|
936
|
-
"multiple": false,
|
|
937
|
-
"type": "option"
|
|
938
|
-
},
|
|
939
|
-
"apply": {
|
|
940
|
-
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
941
|
-
"name": "apply",
|
|
942
|
-
"allowNo": false,
|
|
943
|
-
"type": "boolean"
|
|
944
|
-
},
|
|
945
|
-
"verbose": {
|
|
946
|
-
"char": "v",
|
|
947
|
-
"description": "Print every candidate row, not just the summary.",
|
|
948
|
-
"name": "verbose",
|
|
949
|
-
"allowNo": false,
|
|
950
|
-
"type": "boolean"
|
|
951
|
-
}
|
|
952
|
-
},
|
|
953
|
-
"hasDynamicHelp": false,
|
|
954
|
-
"hiddenAliases": [],
|
|
955
|
-
"id": "artifacts:reclassify",
|
|
956
|
-
"pluginAlias": "@memberjunction/cli",
|
|
957
|
-
"pluginName": "@memberjunction/cli",
|
|
958
|
-
"pluginType": "core",
|
|
959
|
-
"strict": true,
|
|
960
|
-
"enableJsonFlag": false,
|
|
961
|
-
"isESM": true,
|
|
962
|
-
"relativePath": [
|
|
963
|
-
"dist",
|
|
964
|
-
"commands",
|
|
965
|
-
"artifacts",
|
|
966
|
-
"reclassify.js"
|
|
967
|
-
]
|
|
968
|
-
},
|
|
969
982
|
"codegen:5-0-fix-entity-names": {
|
|
970
983
|
"aliases": [],
|
|
971
984
|
"args": {},
|
|
@@ -1964,106 +1977,90 @@
|
|
|
1964
1977
|
"index.js"
|
|
1965
1978
|
]
|
|
1966
1979
|
},
|
|
1967
|
-
"
|
|
1980
|
+
"migrate:convert": {
|
|
1968
1981
|
"aliases": [],
|
|
1969
1982
|
"args": {},
|
|
1970
|
-
"description": "
|
|
1983
|
+
"description": "Convert T-SQL migrations to PostgreSQL",
|
|
1971
1984
|
"examples": [
|
|
1972
|
-
"<%= config.bin %>
|
|
1973
|
-
"<%= config.bin %>
|
|
1974
|
-
"<%= config.bin %>
|
|
1975
|
-
"<%= config.bin %>
|
|
1985
|
+
"<%= config.bin %> migrate convert --split",
|
|
1986
|
+
"<%= config.bin %> migrate convert --split --dry-run",
|
|
1987
|
+
"<%= config.bin %> migrate convert --split --file V202604060452__v5.24.x__KnowledgeHub.sql",
|
|
1988
|
+
"<%= config.bin %> migrate convert --source-dir ./migrations/v5 --output-dir ./migrations-pg/v5",
|
|
1989
|
+
"<%= config.bin %> migrate convert --verbose"
|
|
1976
1990
|
],
|
|
1977
1991
|
"flags": {
|
|
1978
|
-
"dir": {
|
|
1979
|
-
"description": "
|
|
1980
|
-
"name": "dir",
|
|
1981
|
-
"default": "
|
|
1992
|
+
"source-dir": {
|
|
1993
|
+
"description": "Source T-SQL migrations directory",
|
|
1994
|
+
"name": "source-dir",
|
|
1995
|
+
"default": "./migrations/v5",
|
|
1982
1996
|
"hasDynamicHelp": false,
|
|
1983
1997
|
"multiple": false,
|
|
1984
1998
|
"type": "option"
|
|
1985
1999
|
},
|
|
1986
|
-
"
|
|
1987
|
-
"description": "
|
|
1988
|
-
"name": "
|
|
2000
|
+
"output-dir": {
|
|
2001
|
+
"description": "Output PG migrations directory",
|
|
2002
|
+
"name": "output-dir",
|
|
2003
|
+
"default": "./migrations-pg/v5",
|
|
1989
2004
|
"hasDynamicHelp": false,
|
|
1990
2005
|
"multiple": false,
|
|
1991
2006
|
"type": "option"
|
|
1992
2007
|
},
|
|
1993
|
-
"
|
|
1994
|
-
"description": "
|
|
1995
|
-
"name": "
|
|
2008
|
+
"file": {
|
|
2009
|
+
"description": "Convert a specific file (filename only, looked up in source-dir)",
|
|
2010
|
+
"name": "file",
|
|
1996
2011
|
"hasDynamicHelp": false,
|
|
1997
2012
|
"multiple": false,
|
|
1998
2013
|
"type": "option"
|
|
1999
2014
|
},
|
|
2000
|
-
"
|
|
2001
|
-
"description": "
|
|
2002
|
-
"name": "
|
|
2015
|
+
"schema": {
|
|
2016
|
+
"description": "Target schema name",
|
|
2017
|
+
"name": "schema",
|
|
2018
|
+
"default": "__mj",
|
|
2003
2019
|
"hasDynamicHelp": false,
|
|
2004
2020
|
"multiple": false,
|
|
2005
2021
|
"type": "option"
|
|
2006
2022
|
},
|
|
2007
|
-
"offline": {
|
|
2008
|
-
"description": "Forbid network; requires --from <path>",
|
|
2009
|
-
"name": "offline",
|
|
2010
|
-
"allowNo": false,
|
|
2011
|
-
"type": "boolean"
|
|
2012
|
-
},
|
|
2013
2023
|
"dry-run": {
|
|
2014
|
-
"description": "
|
|
2024
|
+
"description": "Show what would be converted without writing files",
|
|
2015
2025
|
"name": "dry-run",
|
|
2016
2026
|
"allowNo": false,
|
|
2017
2027
|
"type": "boolean"
|
|
2018
2028
|
},
|
|
2019
|
-
"
|
|
2020
|
-
"
|
|
2021
|
-
"
|
|
2022
|
-
"name": "yes",
|
|
2023
|
-
"allowNo": false,
|
|
2024
|
-
"type": "boolean"
|
|
2025
|
-
},
|
|
2026
|
-
"force": {
|
|
2027
|
-
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
2028
|
-
"name": "force",
|
|
2029
|
-
"allowNo": false,
|
|
2030
|
-
"type": "boolean"
|
|
2031
|
-
},
|
|
2032
|
-
"skip-commands": {
|
|
2033
|
-
"description": "Skip seeding .claude/commands/",
|
|
2034
|
-
"name": "skip-commands",
|
|
2029
|
+
"no-header": {
|
|
2030
|
+
"description": "Skip PG header (extensions, schema, implicit cast)",
|
|
2031
|
+
"name": "no-header",
|
|
2035
2032
|
"allowNo": false,
|
|
2036
2033
|
"type": "boolean"
|
|
2037
2034
|
},
|
|
2038
|
-
"
|
|
2039
|
-
"
|
|
2040
|
-
"
|
|
2035
|
+
"verbose": {
|
|
2036
|
+
"char": "v",
|
|
2037
|
+
"description": "Show per-statement progress",
|
|
2038
|
+
"name": "verbose",
|
|
2041
2039
|
"allowNo": false,
|
|
2042
2040
|
"type": "boolean"
|
|
2043
2041
|
},
|
|
2044
|
-
"
|
|
2045
|
-
"description": "
|
|
2046
|
-
"name": "
|
|
2042
|
+
"split": {
|
|
2043
|
+
"description": "Split-and-regenerate (the standard path): transpile only hand-written DDL via the AST dialect; CodeGen objects are regenerated by `mj codegen` and mj-sync metadata re-seeded by `mj sync push`; every conversion gap is surfaced and fails the run unless --allow-gaps.",
|
|
2044
|
+
"name": "split",
|
|
2047
2045
|
"allowNo": false,
|
|
2048
2046
|
"type": "boolean"
|
|
2049
2047
|
},
|
|
2050
|
-
"
|
|
2051
|
-
"description": "
|
|
2052
|
-
"name": "
|
|
2048
|
+
"allow-gaps": {
|
|
2049
|
+
"description": "With --split: exit 0 even when migrations have conversion gaps (hand-authoring needed or unhandled statements). Gaps are still embedded as comments and listed in the summary.",
|
|
2050
|
+
"name": "allow-gaps",
|
|
2053
2051
|
"allowNo": false,
|
|
2054
2052
|
"type": "boolean"
|
|
2055
2053
|
},
|
|
2056
|
-
"
|
|
2057
|
-
"
|
|
2058
|
-
"
|
|
2059
|
-
"name": "verbose",
|
|
2054
|
+
"bake-codegen": {
|
|
2055
|
+
"description": "With --split: bake native PG CodeGen objects inline per migration (Path C), so the set deploys with `mj migrate` alone — no `mj codegen` step. Requires a LIVE working PG database (DB_PLATFORM=postgresql + PG_* env, same as `mj codegen`) seeded to the state just BEFORE the migrations being converted (typically the latest baseline); the converter brings it forward in committed order as it bakes. Not compatible with --dry-run.",
|
|
2056
|
+
"name": "bake-codegen",
|
|
2060
2057
|
"allowNo": false,
|
|
2061
2058
|
"type": "boolean"
|
|
2062
2059
|
}
|
|
2063
2060
|
},
|
|
2064
2061
|
"hasDynamicHelp": false,
|
|
2065
2062
|
"hiddenAliases": [],
|
|
2066
|
-
"id": "
|
|
2063
|
+
"id": "migrate:convert",
|
|
2067
2064
|
"pluginAlias": "@memberjunction/cli",
|
|
2068
2065
|
"pluginName": "@memberjunction/cli",
|
|
2069
2066
|
"pluginType": "core",
|
|
@@ -2073,248 +2070,30 @@
|
|
|
2073
2070
|
"relativePath": [
|
|
2074
2071
|
"dist",
|
|
2075
2072
|
"commands",
|
|
2076
|
-
"
|
|
2077
|
-
"
|
|
2073
|
+
"migrate",
|
|
2074
|
+
"convert.js"
|
|
2078
2075
|
]
|
|
2079
2076
|
},
|
|
2080
|
-
"
|
|
2077
|
+
"migrate:create": {
|
|
2081
2078
|
"aliases": [],
|
|
2082
|
-
"args": {
|
|
2083
|
-
|
|
2079
|
+
"args": {
|
|
2080
|
+
"description": {
|
|
2081
|
+
"description": "Short description (will be converted to PascalCase with underscores)",
|
|
2082
|
+
"name": "description",
|
|
2083
|
+
"required": true
|
|
2084
|
+
}
|
|
2085
|
+
},
|
|
2086
|
+
"description": "Scaffold a new migration file for the current database platform",
|
|
2084
2087
|
"examples": [
|
|
2085
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2086
|
-
"<%= config.bin %> <%= command.id %>
|
|
2087
|
-
"<%= config.bin %> <%= command.id %> --
|
|
2088
|
-
"<%= config.bin %> <%= command.id %> --yes"
|
|
2088
|
+
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\"",
|
|
2089
|
+
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\" --version 5.25 --platform postgresql",
|
|
2090
|
+
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\" --dir ./migrations/v5"
|
|
2089
2091
|
],
|
|
2090
2092
|
"flags": {
|
|
2091
|
-
"
|
|
2092
|
-
"char": "
|
|
2093
|
-
"description": "
|
|
2094
|
-
"name": "
|
|
2095
|
-
"hasDynamicHelp": false,
|
|
2096
|
-
"multiple": false,
|
|
2097
|
-
"type": "option"
|
|
2098
|
-
},
|
|
2099
|
-
"dir": {
|
|
2100
|
-
"description": "Target directory for the installation",
|
|
2101
|
-
"name": "dir",
|
|
2102
|
-
"default": ".",
|
|
2103
|
-
"hasDynamicHelp": false,
|
|
2104
|
-
"multiple": false,
|
|
2105
|
-
"type": "option"
|
|
2106
|
-
},
|
|
2107
|
-
"config": {
|
|
2108
|
-
"char": "c",
|
|
2109
|
-
"description": "Path to JSON config file with install settings (database, auth, ports, etc.)",
|
|
2110
|
-
"name": "config",
|
|
2111
|
-
"hasDynamicHelp": false,
|
|
2112
|
-
"multiple": false,
|
|
2113
|
-
"type": "option"
|
|
2114
|
-
},
|
|
2115
|
-
"legacy": {
|
|
2116
|
-
"description": "Use the legacy interactive installer (ZIP-only distribution)",
|
|
2117
|
-
"hidden": true,
|
|
2118
|
-
"name": "legacy",
|
|
2119
|
-
"allowNo": false,
|
|
2120
|
-
"type": "boolean"
|
|
2121
|
-
},
|
|
2122
|
-
"dry-run": {
|
|
2123
|
-
"description": "Show the install plan without executing it",
|
|
2124
|
-
"name": "dry-run",
|
|
2125
|
-
"allowNo": false,
|
|
2126
|
-
"type": "boolean"
|
|
2127
|
-
},
|
|
2128
|
-
"yes": {
|
|
2129
|
-
"char": "y",
|
|
2130
|
-
"description": "Non-interactive mode: auto-select latest version and accept defaults",
|
|
2131
|
-
"name": "yes",
|
|
2132
|
-
"allowNo": false,
|
|
2133
|
-
"type": "boolean"
|
|
2134
|
-
},
|
|
2135
|
-
"verbose": {
|
|
2136
|
-
"char": "v",
|
|
2137
|
-
"description": "Show detailed output",
|
|
2138
|
-
"name": "verbose",
|
|
2139
|
-
"allowNo": false,
|
|
2140
|
-
"type": "boolean"
|
|
2141
|
-
},
|
|
2142
|
-
"skip-db": {
|
|
2143
|
-
"description": "Skip database provisioning phases",
|
|
2144
|
-
"name": "skip-db",
|
|
2145
|
-
"allowNo": false,
|
|
2146
|
-
"type": "boolean"
|
|
2147
|
-
},
|
|
2148
|
-
"skip-start": {
|
|
2149
|
-
"description": "Skip service startup and smoke tests",
|
|
2150
|
-
"name": "skip-start",
|
|
2151
|
-
"allowNo": false,
|
|
2152
|
-
"type": "boolean"
|
|
2153
|
-
},
|
|
2154
|
-
"no-resume": {
|
|
2155
|
-
"description": "Ignore any existing checkpoint and start fresh",
|
|
2156
|
-
"name": "no-resume",
|
|
2157
|
-
"allowNo": false,
|
|
2158
|
-
"type": "boolean"
|
|
2159
|
-
},
|
|
2160
|
-
"fast": {
|
|
2161
|
-
"description": "Fast mode: skip smoke test and optimize post-codegen steps. Re-run without --fast if you encounter issues.",
|
|
2162
|
-
"name": "fast",
|
|
2163
|
-
"allowNo": false,
|
|
2164
|
-
"type": "boolean"
|
|
2165
|
-
},
|
|
2166
|
-
"overwrite-config": {
|
|
2167
|
-
"description": "Overwrite existing config files (.env, mj.config.cjs, environment.ts) instead of preserving them",
|
|
2168
|
-
"name": "overwrite-config",
|
|
2169
|
-
"allowNo": false,
|
|
2170
|
-
"type": "boolean"
|
|
2171
|
-
},
|
|
2172
|
-
"monorepo": {
|
|
2173
|
-
"description": "Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.",
|
|
2174
|
-
"name": "monorepo",
|
|
2175
|
-
"allowNo": false,
|
|
2176
|
-
"type": "boolean"
|
|
2177
|
-
},
|
|
2178
|
-
"no-claude-pack": {
|
|
2179
|
-
"description": "Exclude the Claude Code pack (CLAUDE.md + .claude/ tree) from the scaffold. By default the pack ships with the install so opening Claude Code in your new MJ project gives you the curated MJ-aware experience immediately.",
|
|
2180
|
-
"name": "no-claude-pack",
|
|
2181
|
-
"allowNo": false,
|
|
2182
|
-
"type": "boolean"
|
|
2183
|
-
}
|
|
2184
|
-
},
|
|
2185
|
-
"hasDynamicHelp": false,
|
|
2186
|
-
"hiddenAliases": [],
|
|
2187
|
-
"id": "install",
|
|
2188
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2189
|
-
"pluginName": "@memberjunction/cli",
|
|
2190
|
-
"pluginType": "core",
|
|
2191
|
-
"strict": true,
|
|
2192
|
-
"enableJsonFlag": false,
|
|
2193
|
-
"isESM": true,
|
|
2194
|
-
"relativePath": [
|
|
2195
|
-
"dist",
|
|
2196
|
-
"commands",
|
|
2197
|
-
"install",
|
|
2198
|
-
"index.js"
|
|
2199
|
-
]
|
|
2200
|
-
},
|
|
2201
|
-
"migrate:convert": {
|
|
2202
|
-
"aliases": [],
|
|
2203
|
-
"args": {},
|
|
2204
|
-
"description": "Convert T-SQL migrations to PostgreSQL",
|
|
2205
|
-
"examples": [
|
|
2206
|
-
"<%= config.bin %> migrate convert --split",
|
|
2207
|
-
"<%= config.bin %> migrate convert --split --dry-run",
|
|
2208
|
-
"<%= config.bin %> migrate convert --split --file V202604060452__v5.24.x__KnowledgeHub.sql",
|
|
2209
|
-
"<%= config.bin %> migrate convert --source-dir ./migrations/v5 --output-dir ./migrations-pg/v5",
|
|
2210
|
-
"<%= config.bin %> migrate convert --verbose"
|
|
2211
|
-
],
|
|
2212
|
-
"flags": {
|
|
2213
|
-
"source-dir": {
|
|
2214
|
-
"description": "Source T-SQL migrations directory",
|
|
2215
|
-
"name": "source-dir",
|
|
2216
|
-
"default": "./migrations/v5",
|
|
2217
|
-
"hasDynamicHelp": false,
|
|
2218
|
-
"multiple": false,
|
|
2219
|
-
"type": "option"
|
|
2220
|
-
},
|
|
2221
|
-
"output-dir": {
|
|
2222
|
-
"description": "Output PG migrations directory",
|
|
2223
|
-
"name": "output-dir",
|
|
2224
|
-
"default": "./migrations-pg/v5",
|
|
2225
|
-
"hasDynamicHelp": false,
|
|
2226
|
-
"multiple": false,
|
|
2227
|
-
"type": "option"
|
|
2228
|
-
},
|
|
2229
|
-
"file": {
|
|
2230
|
-
"description": "Convert a specific file (filename only, looked up in source-dir)",
|
|
2231
|
-
"name": "file",
|
|
2232
|
-
"hasDynamicHelp": false,
|
|
2233
|
-
"multiple": false,
|
|
2234
|
-
"type": "option"
|
|
2235
|
-
},
|
|
2236
|
-
"schema": {
|
|
2237
|
-
"description": "Target schema name",
|
|
2238
|
-
"name": "schema",
|
|
2239
|
-
"default": "__mj",
|
|
2240
|
-
"hasDynamicHelp": false,
|
|
2241
|
-
"multiple": false,
|
|
2242
|
-
"type": "option"
|
|
2243
|
-
},
|
|
2244
|
-
"dry-run": {
|
|
2245
|
-
"description": "Show what would be converted without writing files",
|
|
2246
|
-
"name": "dry-run",
|
|
2247
|
-
"allowNo": false,
|
|
2248
|
-
"type": "boolean"
|
|
2249
|
-
},
|
|
2250
|
-
"no-header": {
|
|
2251
|
-
"description": "Skip PG header (extensions, schema, implicit cast)",
|
|
2252
|
-
"name": "no-header",
|
|
2253
|
-
"allowNo": false,
|
|
2254
|
-
"type": "boolean"
|
|
2255
|
-
},
|
|
2256
|
-
"verbose": {
|
|
2257
|
-
"char": "v",
|
|
2258
|
-
"description": "Show per-statement progress",
|
|
2259
|
-
"name": "verbose",
|
|
2260
|
-
"allowNo": false,
|
|
2261
|
-
"type": "boolean"
|
|
2262
|
-
},
|
|
2263
|
-
"split": {
|
|
2264
|
-
"description": "Split-and-regenerate (the standard path): transpile only hand-written DDL via the AST dialect; CodeGen objects are regenerated by `mj codegen` and mj-sync metadata re-seeded by `mj sync push`; every conversion gap is surfaced and fails the run unless --allow-gaps.",
|
|
2265
|
-
"name": "split",
|
|
2266
|
-
"allowNo": false,
|
|
2267
|
-
"type": "boolean"
|
|
2268
|
-
},
|
|
2269
|
-
"allow-gaps": {
|
|
2270
|
-
"description": "With --split: exit 0 even when migrations have conversion gaps (hand-authoring needed or unhandled statements). Gaps are still embedded as comments and listed in the summary.",
|
|
2271
|
-
"name": "allow-gaps",
|
|
2272
|
-
"allowNo": false,
|
|
2273
|
-
"type": "boolean"
|
|
2274
|
-
},
|
|
2275
|
-
"bake-codegen": {
|
|
2276
|
-
"description": "With --split: bake native PG CodeGen objects inline per migration (Path C), so the set deploys with `mj migrate` alone — no `mj codegen` step. Requires a LIVE working PG database (DB_PLATFORM=postgresql + PG_* env, same as `mj codegen`) seeded to the state just BEFORE the migrations being converted (typically the latest baseline); the converter brings it forward in committed order as it bakes. Not compatible with --dry-run.",
|
|
2277
|
-
"name": "bake-codegen",
|
|
2278
|
-
"allowNo": false,
|
|
2279
|
-
"type": "boolean"
|
|
2280
|
-
}
|
|
2281
|
-
},
|
|
2282
|
-
"hasDynamicHelp": false,
|
|
2283
|
-
"hiddenAliases": [],
|
|
2284
|
-
"id": "migrate:convert",
|
|
2285
|
-
"pluginAlias": "@memberjunction/cli",
|
|
2286
|
-
"pluginName": "@memberjunction/cli",
|
|
2287
|
-
"pluginType": "core",
|
|
2288
|
-
"strict": true,
|
|
2289
|
-
"enableJsonFlag": false,
|
|
2290
|
-
"isESM": true,
|
|
2291
|
-
"relativePath": [
|
|
2292
|
-
"dist",
|
|
2293
|
-
"commands",
|
|
2294
|
-
"migrate",
|
|
2295
|
-
"convert.js"
|
|
2296
|
-
]
|
|
2297
|
-
},
|
|
2298
|
-
"migrate:create": {
|
|
2299
|
-
"aliases": [],
|
|
2300
|
-
"args": {
|
|
2301
|
-
"description": {
|
|
2302
|
-
"description": "Short description (will be converted to PascalCase with underscores)",
|
|
2303
|
-
"name": "description",
|
|
2304
|
-
"required": true
|
|
2305
|
-
}
|
|
2306
|
-
},
|
|
2307
|
-
"description": "Scaffold a new migration file for the current database platform",
|
|
2308
|
-
"examples": [
|
|
2309
|
-
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\"",
|
|
2310
|
-
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\" --version 5.25 --platform postgresql",
|
|
2311
|
-
"<%= config.bin %> <%= command.id %> \"Add FooID to Bar\" --dir ./migrations/v5"
|
|
2312
|
-
],
|
|
2313
|
-
"flags": {
|
|
2314
|
-
"version": {
|
|
2315
|
-
"char": "v",
|
|
2316
|
-
"description": "Migration version tag, e.g. \"5.25\" (default: parsed from repo baseline or \"0.0\")",
|
|
2317
|
-
"name": "version",
|
|
2093
|
+
"version": {
|
|
2094
|
+
"char": "v",
|
|
2095
|
+
"description": "Migration version tag, e.g. \"5.25\" (default: parsed from repo baseline or \"0.0\")",
|
|
2096
|
+
"name": "version",
|
|
2318
2097
|
"hasDynamicHelp": false,
|
|
2319
2098
|
"multiple": false,
|
|
2320
2099
|
"type": "option"
|
|
@@ -2487,6 +2266,240 @@
|
|
|
2487
2266
|
"rebake.js"
|
|
2488
2267
|
]
|
|
2489
2268
|
},
|
|
2269
|
+
"install:claude": {
|
|
2270
|
+
"aliases": [],
|
|
2271
|
+
"args": {},
|
|
2272
|
+
"description": "Install or refresh the Claude Code pack in the current directory.",
|
|
2273
|
+
"examples": [
|
|
2274
|
+
"<%= config.bin %> install:claude",
|
|
2275
|
+
"<%= config.bin %> install:claude --dry-run",
|
|
2276
|
+
"<%= config.bin %> install:claude --from ./local-pack",
|
|
2277
|
+
"<%= config.bin %> install:claude --json"
|
|
2278
|
+
],
|
|
2279
|
+
"flags": {
|
|
2280
|
+
"dir": {
|
|
2281
|
+
"description": "Target directory for the install",
|
|
2282
|
+
"name": "dir",
|
|
2283
|
+
"default": ".",
|
|
2284
|
+
"hasDynamicHelp": false,
|
|
2285
|
+
"multiple": false,
|
|
2286
|
+
"type": "option"
|
|
2287
|
+
},
|
|
2288
|
+
"major": {
|
|
2289
|
+
"description": "Force a specific MJ major (default: detected from package.json)",
|
|
2290
|
+
"name": "major",
|
|
2291
|
+
"hasDynamicHelp": false,
|
|
2292
|
+
"multiple": false,
|
|
2293
|
+
"type": "option"
|
|
2294
|
+
},
|
|
2295
|
+
"ref": {
|
|
2296
|
+
"description": "Git ref to fetch from (branch or tag). Default: main.",
|
|
2297
|
+
"name": "ref",
|
|
2298
|
+
"hasDynamicHelp": false,
|
|
2299
|
+
"multiple": false,
|
|
2300
|
+
"type": "option"
|
|
2301
|
+
},
|
|
2302
|
+
"from": {
|
|
2303
|
+
"description": "Use a local pack source instead of fetching from GitHub",
|
|
2304
|
+
"name": "from",
|
|
2305
|
+
"hasDynamicHelp": false,
|
|
2306
|
+
"multiple": false,
|
|
2307
|
+
"type": "option"
|
|
2308
|
+
},
|
|
2309
|
+
"offline": {
|
|
2310
|
+
"description": "Forbid network; requires --from <path>",
|
|
2311
|
+
"name": "offline",
|
|
2312
|
+
"allowNo": false,
|
|
2313
|
+
"type": "boolean"
|
|
2314
|
+
},
|
|
2315
|
+
"dry-run": {
|
|
2316
|
+
"description": "Print what would be written; change nothing",
|
|
2317
|
+
"name": "dry-run",
|
|
2318
|
+
"allowNo": false,
|
|
2319
|
+
"type": "boolean"
|
|
2320
|
+
},
|
|
2321
|
+
"yes": {
|
|
2322
|
+
"char": "y",
|
|
2323
|
+
"description": "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
2324
|
+
"name": "yes",
|
|
2325
|
+
"allowNo": false,
|
|
2326
|
+
"type": "boolean"
|
|
2327
|
+
},
|
|
2328
|
+
"force": {
|
|
2329
|
+
"description": "Overwrite user-customized commands/skills (saves .bak files)",
|
|
2330
|
+
"name": "force",
|
|
2331
|
+
"allowNo": false,
|
|
2332
|
+
"type": "boolean"
|
|
2333
|
+
},
|
|
2334
|
+
"skip-commands": {
|
|
2335
|
+
"description": "Skip seeding .claude/commands/",
|
|
2336
|
+
"name": "skip-commands",
|
|
2337
|
+
"allowNo": false,
|
|
2338
|
+
"type": "boolean"
|
|
2339
|
+
},
|
|
2340
|
+
"skip-skills": {
|
|
2341
|
+
"description": "Skip seeding .claude/skills/",
|
|
2342
|
+
"name": "skip-skills",
|
|
2343
|
+
"allowNo": false,
|
|
2344
|
+
"type": "boolean"
|
|
2345
|
+
},
|
|
2346
|
+
"skip-settings": {
|
|
2347
|
+
"description": "Skip merging .claude/settings.json",
|
|
2348
|
+
"name": "skip-settings",
|
|
2349
|
+
"allowNo": false,
|
|
2350
|
+
"type": "boolean"
|
|
2351
|
+
},
|
|
2352
|
+
"json": {
|
|
2353
|
+
"description": "Output as JSON (matches plan §7.5 schema)",
|
|
2354
|
+
"name": "json",
|
|
2355
|
+
"allowNo": false,
|
|
2356
|
+
"type": "boolean"
|
|
2357
|
+
},
|
|
2358
|
+
"verbose": {
|
|
2359
|
+
"char": "v",
|
|
2360
|
+
"description": "Show progress messages from the fetcher and merger",
|
|
2361
|
+
"name": "verbose",
|
|
2362
|
+
"allowNo": false,
|
|
2363
|
+
"type": "boolean"
|
|
2364
|
+
}
|
|
2365
|
+
},
|
|
2366
|
+
"hasDynamicHelp": false,
|
|
2367
|
+
"hiddenAliases": [],
|
|
2368
|
+
"id": "install:claude",
|
|
2369
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2370
|
+
"pluginName": "@memberjunction/cli",
|
|
2371
|
+
"pluginType": "core",
|
|
2372
|
+
"strict": true,
|
|
2373
|
+
"enableJsonFlag": false,
|
|
2374
|
+
"isESM": true,
|
|
2375
|
+
"relativePath": [
|
|
2376
|
+
"dist",
|
|
2377
|
+
"commands",
|
|
2378
|
+
"install",
|
|
2379
|
+
"claude.js"
|
|
2380
|
+
]
|
|
2381
|
+
},
|
|
2382
|
+
"install": {
|
|
2383
|
+
"aliases": [],
|
|
2384
|
+
"args": {},
|
|
2385
|
+
"description": "Install MemberJunction from a GitHub release",
|
|
2386
|
+
"examples": [
|
|
2387
|
+
"<%= config.bin %> <%= command.id %>",
|
|
2388
|
+
"<%= config.bin %> <%= command.id %> -t v4.3.0",
|
|
2389
|
+
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
2390
|
+
"<%= config.bin %> <%= command.id %> --yes"
|
|
2391
|
+
],
|
|
2392
|
+
"flags": {
|
|
2393
|
+
"tag": {
|
|
2394
|
+
"char": "t",
|
|
2395
|
+
"description": "Release tag to install (e.g. v4.3.0). If omitted, shows a version picker.",
|
|
2396
|
+
"name": "tag",
|
|
2397
|
+
"hasDynamicHelp": false,
|
|
2398
|
+
"multiple": false,
|
|
2399
|
+
"type": "option"
|
|
2400
|
+
},
|
|
2401
|
+
"dir": {
|
|
2402
|
+
"description": "Target directory for the installation",
|
|
2403
|
+
"name": "dir",
|
|
2404
|
+
"default": ".",
|
|
2405
|
+
"hasDynamicHelp": false,
|
|
2406
|
+
"multiple": false,
|
|
2407
|
+
"type": "option"
|
|
2408
|
+
},
|
|
2409
|
+
"config": {
|
|
2410
|
+
"char": "c",
|
|
2411
|
+
"description": "Path to JSON config file with install settings (database, auth, ports, etc.)",
|
|
2412
|
+
"name": "config",
|
|
2413
|
+
"hasDynamicHelp": false,
|
|
2414
|
+
"multiple": false,
|
|
2415
|
+
"type": "option"
|
|
2416
|
+
},
|
|
2417
|
+
"legacy": {
|
|
2418
|
+
"description": "Use the legacy interactive installer (ZIP-only distribution)",
|
|
2419
|
+
"hidden": true,
|
|
2420
|
+
"name": "legacy",
|
|
2421
|
+
"allowNo": false,
|
|
2422
|
+
"type": "boolean"
|
|
2423
|
+
},
|
|
2424
|
+
"dry-run": {
|
|
2425
|
+
"description": "Show the install plan without executing it",
|
|
2426
|
+
"name": "dry-run",
|
|
2427
|
+
"allowNo": false,
|
|
2428
|
+
"type": "boolean"
|
|
2429
|
+
},
|
|
2430
|
+
"yes": {
|
|
2431
|
+
"char": "y",
|
|
2432
|
+
"description": "Non-interactive mode: auto-select latest version and accept defaults",
|
|
2433
|
+
"name": "yes",
|
|
2434
|
+
"allowNo": false,
|
|
2435
|
+
"type": "boolean"
|
|
2436
|
+
},
|
|
2437
|
+
"verbose": {
|
|
2438
|
+
"char": "v",
|
|
2439
|
+
"description": "Show detailed output",
|
|
2440
|
+
"name": "verbose",
|
|
2441
|
+
"allowNo": false,
|
|
2442
|
+
"type": "boolean"
|
|
2443
|
+
},
|
|
2444
|
+
"skip-db": {
|
|
2445
|
+
"description": "Skip database provisioning phases",
|
|
2446
|
+
"name": "skip-db",
|
|
2447
|
+
"allowNo": false,
|
|
2448
|
+
"type": "boolean"
|
|
2449
|
+
},
|
|
2450
|
+
"skip-start": {
|
|
2451
|
+
"description": "Skip service startup and smoke tests",
|
|
2452
|
+
"name": "skip-start",
|
|
2453
|
+
"allowNo": false,
|
|
2454
|
+
"type": "boolean"
|
|
2455
|
+
},
|
|
2456
|
+
"no-resume": {
|
|
2457
|
+
"description": "Ignore any existing checkpoint and start fresh",
|
|
2458
|
+
"name": "no-resume",
|
|
2459
|
+
"allowNo": false,
|
|
2460
|
+
"type": "boolean"
|
|
2461
|
+
},
|
|
2462
|
+
"fast": {
|
|
2463
|
+
"description": "Fast mode: skip smoke test and optimize post-codegen steps. Re-run without --fast if you encounter issues.",
|
|
2464
|
+
"name": "fast",
|
|
2465
|
+
"allowNo": false,
|
|
2466
|
+
"type": "boolean"
|
|
2467
|
+
},
|
|
2468
|
+
"overwrite-config": {
|
|
2469
|
+
"description": "Overwrite existing config files (.env, mj.config.cjs, environment.ts) instead of preserving them",
|
|
2470
|
+
"name": "overwrite-config",
|
|
2471
|
+
"allowNo": false,
|
|
2472
|
+
"type": "boolean"
|
|
2473
|
+
},
|
|
2474
|
+
"monorepo": {
|
|
2475
|
+
"description": "Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.",
|
|
2476
|
+
"name": "monorepo",
|
|
2477
|
+
"allowNo": false,
|
|
2478
|
+
"type": "boolean"
|
|
2479
|
+
},
|
|
2480
|
+
"no-claude-pack": {
|
|
2481
|
+
"description": "Exclude the Claude Code pack (CLAUDE.md + .claude/ tree) from the scaffold. By default the pack ships with the install so opening Claude Code in your new MJ project gives you the curated MJ-aware experience immediately.",
|
|
2482
|
+
"name": "no-claude-pack",
|
|
2483
|
+
"allowNo": false,
|
|
2484
|
+
"type": "boolean"
|
|
2485
|
+
}
|
|
2486
|
+
},
|
|
2487
|
+
"hasDynamicHelp": false,
|
|
2488
|
+
"hiddenAliases": [],
|
|
2489
|
+
"id": "install",
|
|
2490
|
+
"pluginAlias": "@memberjunction/cli",
|
|
2491
|
+
"pluginName": "@memberjunction/cli",
|
|
2492
|
+
"pluginType": "core",
|
|
2493
|
+
"strict": true,
|
|
2494
|
+
"enableJsonFlag": false,
|
|
2495
|
+
"isESM": true,
|
|
2496
|
+
"relativePath": [
|
|
2497
|
+
"dist",
|
|
2498
|
+
"commands",
|
|
2499
|
+
"install",
|
|
2500
|
+
"index.js"
|
|
2501
|
+
]
|
|
2502
|
+
},
|
|
2490
2503
|
"plugin:add": {
|
|
2491
2504
|
"aliases": [],
|
|
2492
2505
|
"args": {
|
|
@@ -5453,5 +5466,5 @@
|
|
|
5453
5466
|
]
|
|
5454
5467
|
}
|
|
5455
5468
|
},
|
|
5456
|
-
"version": "5.
|
|
5469
|
+
"version": "5.45.0"
|
|
5457
5470
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.45.0",
|
|
5
5
|
"description": "MemberJunction command line tools",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"oclif"
|
|
@@ -55,25 +55,25 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@inquirer/prompts": "^8.2.0",
|
|
58
|
-
"@memberjunction/ai-cli": "5.
|
|
59
|
-
"@memberjunction/cli-core": "5.
|
|
60
|
-
"@memberjunction/codegen-lib": "5.
|
|
61
|
-
"@memberjunction/config": "5.
|
|
62
|
-
"@memberjunction/core": "5.
|
|
63
|
-
"@memberjunction/generic-database-provider": "5.
|
|
64
|
-
"@memberjunction/installer": "5.
|
|
65
|
-
"@memberjunction/db-auto-doc": "5.
|
|
66
|
-
"@memberjunction/metadata-sync": "5.
|
|
67
|
-
"@memberjunction/open-app-engine": "5.
|
|
68
|
-
"@memberjunction/query-gen": "5.
|
|
69
|
-
"@memberjunction/server-bootstrap-lite": "5.
|
|
58
|
+
"@memberjunction/ai-cli": "5.45.0",
|
|
59
|
+
"@memberjunction/cli-core": "5.45.0",
|
|
60
|
+
"@memberjunction/codegen-lib": "5.45.0",
|
|
61
|
+
"@memberjunction/config": "5.45.0",
|
|
62
|
+
"@memberjunction/core": "5.45.0",
|
|
63
|
+
"@memberjunction/generic-database-provider": "5.45.0",
|
|
64
|
+
"@memberjunction/installer": "5.45.0",
|
|
65
|
+
"@memberjunction/db-auto-doc": "5.45.0",
|
|
66
|
+
"@memberjunction/metadata-sync": "5.45.0",
|
|
67
|
+
"@memberjunction/open-app-engine": "5.45.0",
|
|
68
|
+
"@memberjunction/query-gen": "5.45.0",
|
|
69
|
+
"@memberjunction/server-bootstrap-lite": "5.45.0",
|
|
70
70
|
"@memberjunction/skyway-core": "^0.6.2",
|
|
71
71
|
"@memberjunction/skyway-postgres": "^0.6.2",
|
|
72
72
|
"@memberjunction/skyway-sqlserver": "^0.6.2",
|
|
73
|
-
"@memberjunction/sql-converter": "5.
|
|
74
|
-
"@memberjunction/sqlglot-ts": "5.
|
|
75
|
-
"@memberjunction/sqlserver-dataprovider": "5.
|
|
76
|
-
"@memberjunction/testing-cli": "5.
|
|
73
|
+
"@memberjunction/sql-converter": "5.45.0",
|
|
74
|
+
"@memberjunction/sqlglot-ts": "5.45.0",
|
|
75
|
+
"@memberjunction/sqlserver-dataprovider": "5.45.0",
|
|
76
|
+
"@memberjunction/testing-cli": "5.45.0",
|
|
77
77
|
"@oclif/core": "^3.27.0",
|
|
78
78
|
"@oclif/plugin-help": "^6.2.37",
|
|
79
79
|
"@oclif/plugin-version": "^2.2.36",
|