@memberjunction/cli 5.0.0 → 5.1.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.
Files changed (44) hide show
  1. package/bin/dev.cmd +2 -2
  2. package/bin/run.cmd +3 -3
  3. package/dist/commands/app/check-updates.d.ts +13 -0
  4. package/dist/commands/app/check-updates.d.ts.map +1 -0
  5. package/dist/commands/app/check-updates.js +54 -0
  6. package/dist/commands/app/check-updates.js.map +1 -0
  7. package/dist/commands/app/disable.d.ts +16 -0
  8. package/dist/commands/app/disable.d.ts.map +1 -0
  9. package/dist/commands/app/disable.js +47 -0
  10. package/dist/commands/app/disable.js.map +1 -0
  11. package/dist/commands/app/enable.d.ts +16 -0
  12. package/dist/commands/app/enable.d.ts.map +1 -0
  13. package/dist/commands/app/enable.js +47 -0
  14. package/dist/commands/app/enable.js.map +1 -0
  15. package/dist/commands/app/info.d.ts +16 -0
  16. package/dist/commands/app/info.d.ts.map +1 -0
  17. package/dist/commands/app/info.js +64 -0
  18. package/dist/commands/app/info.js.map +1 -0
  19. package/dist/commands/app/install.d.ts +21 -0
  20. package/dist/commands/app/install.d.ts.map +1 -0
  21. package/dist/commands/app/install.js +54 -0
  22. package/dist/commands/app/install.js.map +1 -0
  23. package/dist/commands/app/list.d.ts +16 -0
  24. package/dist/commands/app/list.d.ts.map +1 -0
  25. package/dist/commands/app/list.js +60 -0
  26. package/dist/commands/app/list.js.map +1 -0
  27. package/dist/commands/app/remove.d.ts +22 -0
  28. package/dist/commands/app/remove.d.ts.map +1 -0
  29. package/dist/commands/app/remove.js +66 -0
  30. package/dist/commands/app/remove.js.map +1 -0
  31. package/dist/commands/app/upgrade.d.ts +20 -0
  32. package/dist/commands/app/upgrade.d.ts.map +1 -0
  33. package/dist/commands/app/upgrade.js +52 -0
  34. package/dist/commands/app/upgrade.js.map +1 -0
  35. package/dist/config.d.ts +139 -0
  36. package/dist/config.d.ts.map +1 -1
  37. package/dist/config.js +31 -0
  38. package/dist/config.js.map +1 -1
  39. package/dist/utils/open-app-context.d.ts +48 -0
  40. package/dist/utils/open-app-context.d.ts.map +1 -0
  41. package/dist/utils/open-app-context.js +143 -0
  42. package/dist/utils/open-app-context.js.map +1 -0
  43. package/oclif.manifest.json +515 -217
  44. package/package.json +11 -11
@@ -0,0 +1,52 @@
1
+ import { Args, Command, Flags } from '@oclif/core';
2
+ import ora from 'ora-classic';
3
+ import chalk from 'chalk';
4
+ import { buildOrchestratorContext } from '../../utils/open-app-context.js';
5
+ /**
6
+ * CLI command: `mj app upgrade <name>`.
7
+ *
8
+ * Upgrades an installed Open App to a newer version, running new migrations,
9
+ * updating packages, and recording upgrade history.
10
+ */
11
+ export default class AppUpgrade extends Command {
12
+ static { this.description = 'Upgrade an installed MJ Open App to a newer version'; }
13
+ static { this.examples = [
14
+ '<%= config.bin %> app upgrade acme-crm',
15
+ '<%= config.bin %> app upgrade acme-crm --version 1.3.0',
16
+ ]; }
17
+ static { this.args = {
18
+ name: Args.string({
19
+ description: 'Name of the installed app to upgrade',
20
+ required: true,
21
+ }),
22
+ }; }
23
+ static { this.flags = {
24
+ version: Flags.string({ description: 'Specific version to upgrade to (default: latest)' }),
25
+ verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
26
+ }; }
27
+ async run() {
28
+ const { args, flags } = await this.parse(AppUpgrade);
29
+ const spinner = ora();
30
+ try {
31
+ const { UpgradeApp } = await import('@memberjunction/open-app-engine');
32
+ const context = await buildOrchestratorContext(this, flags.verbose);
33
+ const result = await UpgradeApp({ AppName: args.name, Version: flags.version, Verbose: flags.verbose }, context);
34
+ if (result.Success) {
35
+ spinner.succeed(chalk.green(`Upgraded ${result.AppName} to v${result.Version}`));
36
+ if (result.Summary) {
37
+ this.log(`\n${result.Summary}`);
38
+ }
39
+ }
40
+ else {
41
+ spinner.fail(chalk.red(`Upgrade failed: ${result.ErrorMessage}`));
42
+ this.exit(1);
43
+ }
44
+ }
45
+ catch (error) {
46
+ spinner.fail('Upgrade failed');
47
+ const message = error instanceof Error ? error.message : String(error);
48
+ this.error(message);
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +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,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;KAC3E,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,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EACtE,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"}
package/dist/config.d.ts CHANGED
@@ -49,6 +49,99 @@ declare const mjConfigSchema: z.ZodObject<{
49
49
  placeholder?: string;
50
50
  }>, "many">>;
51
51
  }, z.ZodTypeAny, "passthrough">>>;
52
+ openApps: z.ZodOptional<z.ZodObject<{
53
+ github: z.ZodOptional<z.ZodObject<{
54
+ token: z.ZodOptional<z.ZodString>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ token?: string;
57
+ }, {
58
+ token?: string;
59
+ }>>;
60
+ registries: z.ZodOptional<z.ZodArray<z.ZodObject<{
61
+ name: z.ZodString;
62
+ url: z.ZodString;
63
+ token: z.ZodOptional<z.ZodString>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ token?: string;
66
+ name?: string;
67
+ url?: string;
68
+ }, {
69
+ token?: string;
70
+ name?: string;
71
+ url?: string;
72
+ }>, "many">>;
73
+ codeGenExclusions: z.ZodOptional<z.ZodObject<{
74
+ includeAppSchemas: z.ZodDefault<z.ZodBoolean>;
75
+ overrideApps: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ includeAppSchemas?: boolean;
78
+ overrideApps?: string[];
79
+ }, {
80
+ includeAppSchemas?: boolean;
81
+ overrideApps?: string[];
82
+ }>>;
83
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ github?: {
86
+ token?: string;
87
+ };
88
+ registries?: {
89
+ token?: string;
90
+ name?: string;
91
+ url?: string;
92
+ }[];
93
+ codeGenExclusions?: {
94
+ includeAppSchemas?: boolean;
95
+ overrideApps?: string[];
96
+ };
97
+ config?: Record<string, unknown>;
98
+ }, {
99
+ github?: {
100
+ token?: string;
101
+ };
102
+ registries?: {
103
+ token?: string;
104
+ name?: string;
105
+ url?: string;
106
+ }[];
107
+ codeGenExclusions?: {
108
+ includeAppSchemas?: boolean;
109
+ overrideApps?: string[];
110
+ };
111
+ config?: Record<string, unknown>;
112
+ }>>;
113
+ dynamicPackages: z.ZodOptional<z.ZodObject<{
114
+ server: z.ZodOptional<z.ZodArray<z.ZodObject<{
115
+ PackageName: z.ZodString;
116
+ StartupExport: z.ZodString;
117
+ AppName: z.ZodString;
118
+ Enabled: z.ZodDefault<z.ZodBoolean>;
119
+ }, "strip", z.ZodTypeAny, {
120
+ PackageName?: string;
121
+ StartupExport?: string;
122
+ AppName?: string;
123
+ Enabled?: boolean;
124
+ }, {
125
+ PackageName?: string;
126
+ StartupExport?: string;
127
+ AppName?: string;
128
+ Enabled?: boolean;
129
+ }>, "many">>;
130
+ }, "strip", z.ZodTypeAny, {
131
+ server?: {
132
+ PackageName?: string;
133
+ StartupExport?: string;
134
+ AppName?: string;
135
+ Enabled?: boolean;
136
+ }[];
137
+ }, {
138
+ server?: {
139
+ PackageName?: string;
140
+ StartupExport?: string;
141
+ AppName?: string;
142
+ Enabled?: boolean;
143
+ }[];
144
+ }>>;
52
145
  }, "strip", z.ZodTypeAny, {
53
146
  dbHost?: string;
54
147
  dbDatabase?: string;
@@ -71,6 +164,29 @@ declare const mjConfigSchema: z.ZodObject<{
71
164
  } & {
72
165
  [k: string]: unknown;
73
166
  };
167
+ openApps?: {
168
+ github?: {
169
+ token?: string;
170
+ };
171
+ registries?: {
172
+ token?: string;
173
+ name?: string;
174
+ url?: string;
175
+ }[];
176
+ codeGenExclusions?: {
177
+ includeAppSchemas?: boolean;
178
+ overrideApps?: string[];
179
+ };
180
+ config?: Record<string, unknown>;
181
+ };
182
+ dynamicPackages?: {
183
+ server?: {
184
+ PackageName?: string;
185
+ StartupExport?: string;
186
+ AppName?: string;
187
+ Enabled?: boolean;
188
+ }[];
189
+ };
74
190
  }, {
75
191
  dbHost?: string;
76
192
  dbDatabase?: string;
@@ -93,6 +209,29 @@ declare const mjConfigSchema: z.ZodObject<{
93
209
  } & {
94
210
  [k: string]: unknown;
95
211
  };
212
+ openApps?: {
213
+ github?: {
214
+ token?: string;
215
+ };
216
+ registries?: {
217
+ token?: string;
218
+ name?: string;
219
+ url?: string;
220
+ }[];
221
+ codeGenExclusions?: {
222
+ includeAppSchemas?: boolean;
223
+ overrideApps?: string[];
224
+ };
225
+ config?: Record<string, unknown>;
226
+ };
227
+ dynamicPackages?: {
228
+ server?: {
229
+ PackageName?: string;
230
+ StartupExport?: string;
231
+ AppName?: string;
232
+ Enabled?: boolean;
233
+ }[];
234
+ };
96
235
  }>;
97
236
  export declare const config: MJConfig | undefined;
98
237
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA4CtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlB,CAAC;AAuBH,eAAO,MAAM,MAAM,EAAqB,QAAQ,GAAG,SAAS,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,QASrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,SAGxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAO,QAAQ,GAAG,SAU3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,MAAM,MAAM,KACX,OAAO,CAAC,YAAY,CAuEtB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA0EtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBlB,CAAC;AAyBH,eAAO,MAAM,MAAM,EAAqB,QAAQ,GAAG,SAAS,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,QASrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,SAGxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAO,QAAQ,GAAG,SAU3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,MAAM,MAAM,KACX,OAAO,CAAC,YAAY,CAuEtB,CAAC"}
package/dist/config.js CHANGED
@@ -39,6 +39,33 @@ const schemaPlaceholderSchema = z.object({
39
39
  schema: z.string(),
40
40
  placeholder: z.string(),
41
41
  });
42
+ // Schema for dynamic package entries managed by `mj app install/remove`
43
+ const dynamicPackageEntrySchema = z.object({
44
+ PackageName: z.string(),
45
+ StartupExport: z.string(),
46
+ AppName: z.string(),
47
+ Enabled: z.boolean().default(true),
48
+ });
49
+ // Schema for Open App configuration section
50
+ const openAppsConfigSchema = z.object({
51
+ github: z.object({
52
+ token: z.string().optional(),
53
+ }).optional(),
54
+ registries: z.array(z.object({
55
+ name: z.string(),
56
+ url: z.string().url(),
57
+ token: z.string().optional(),
58
+ })).optional(),
59
+ codeGenExclusions: z.object({
60
+ includeAppSchemas: z.boolean().default(false),
61
+ overrideApps: z.array(z.string()).default([]),
62
+ }).optional(),
63
+ config: z.record(z.string(), z.unknown()).optional(),
64
+ }).optional();
65
+ // Schema for dynamic packages section
66
+ const dynamicPackagesSchema = z.object({
67
+ server: z.array(dynamicPackageEntrySchema).optional(),
68
+ }).optional();
42
69
  // Schema for database-dependent config (required fields)
43
70
  const mjConfigSchema = z.object({
44
71
  dbHost: z.string().default('localhost'),
@@ -57,6 +84,8 @@ const mjConfigSchema = z.object({
57
84
  SQLOutput: z.object({
58
85
  schemaPlaceholders: z.array(schemaPlaceholderSchema).optional(),
59
86
  }).passthrough().optional(),
87
+ openApps: openAppsConfigSchema,
88
+ dynamicPackages: dynamicPackagesSchema,
60
89
  });
61
90
  // Schema for non-database commands (all fields optional)
62
91
  const mjConfigSchemaOptional = z.object({
@@ -76,6 +105,8 @@ const mjConfigSchemaOptional = z.object({
76
105
  SQLOutput: z.object({
77
106
  schemaPlaceholders: z.array(schemaPlaceholderSchema).optional(),
78
107
  }).passthrough().optional(),
108
+ openApps: openAppsConfigSchema,
109
+ dynamicPackages: dynamicPackagesSchema,
79
110
  });
80
111
  // Don't validate at module load - let commands decide when they need validated config
81
112
  export const config = result?.config;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { UserInfo } from '@memberjunction/core';
2
+ import { SQLServerDataProvider } from '@memberjunction/sqlserver-dataprovider';
3
+ /**
4
+ * Closes the shared connection pool. Call on CLI exit for cleanup.
5
+ */
6
+ export declare function closeConnectionPool(): Promise<void>;
7
+ /**
8
+ * Builds a context user for read-only commands (list, info, check-updates).
9
+ * Initializes the MJ runtime and returns the system user.
10
+ */
11
+ export declare function buildContextUser(): Promise<UserInfo>;
12
+ /**
13
+ * Builds the full OrchestratorContext for install/upgrade/remove/disable/enable commands.
14
+ */
15
+ export declare function buildOrchestratorContext(command: {
16
+ log: (msg: string) => void;
17
+ warn: (msg: string | Error) => void;
18
+ }, verbose?: boolean): Promise<OrchestratorContextShape>;
19
+ /**
20
+ * Structural type matching OrchestratorContext from the engine.
21
+ * Defined here to avoid a compile-time import of the engine package.
22
+ */
23
+ interface OrchestratorContextShape {
24
+ ContextUser: UserInfo;
25
+ DatabaseProvider: SQLServerDataProvider;
26
+ DatabaseConfig: {
27
+ Host: string;
28
+ Port: number;
29
+ Database: string;
30
+ User: string;
31
+ Password: string;
32
+ TrustedConnection?: boolean;
33
+ };
34
+ GitHubOptions: {
35
+ Token?: string;
36
+ };
37
+ RepoRoot: string;
38
+ MJVersion: string;
39
+ Callbacks?: {
40
+ OnProgress?: (phase: string, message: string) => void;
41
+ OnSuccess?: (phase: string, message: string) => void;
42
+ OnError?: (phase: string, message: string) => void;
43
+ OnWarn?: (phase: string, message: string) => void;
44
+ OnLog?: (message: string) => void;
45
+ };
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=open-app-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-app-context.d.ts","sourceRoot":"","sources":["../../src/utils/open-app-context.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAqD,qBAAqB,EAAa,MAAM,wCAAwC,CAAC;AAyD7I;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOzD;AAmCD;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAG1D;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE;IAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,CAAA;CAAE,EAC5E,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,wBAAwB,CAAC,CA6BnC;AAED;;;GAGG;AACH,UAAU,wBAAwB;IAChC,WAAW,EAAE,QAAQ,CAAC;IACtB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,aAAa,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QACtD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAClD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC,CAAC;CACH"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Shared context builder for MJ Open App CLI commands.
3
+ *
4
+ * Constructs the OrchestratorContext needed by the engine's install/upgrade/remove
5
+ * functions, using the MJ entity framework (Metadata, RunView, BaseEntity) backed
6
+ * by the SQL Server data provider.
7
+ */
8
+ import sql from 'mssql';
9
+ import ora from 'ora-classic';
10
+ import { setupSQLServerClient, SQLServerProviderConfigData, UserCache } from '@memberjunction/sqlserver-dataprovider';
11
+ import { getValidatedConfig } from '../config.js';
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ // Provider initialization (lazy singleton)
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ let _pool = null;
16
+ let _provider = null;
17
+ let _initPromise = null;
18
+ /**
19
+ * Initializes the MJ SQL Server provider if not already done.
20
+ * Creates a connection pool, configures the provider, and populates UserCache.
21
+ */
22
+ async function ensureProviderInitialized() {
23
+ if (_provider && _pool?.connected) {
24
+ return { pool: _pool, provider: _provider };
25
+ }
26
+ if (_initPromise) {
27
+ const provider = await _initPromise;
28
+ return { pool: _pool, provider };
29
+ }
30
+ _initPromise = (async () => {
31
+ const config = getValidatedConfig();
32
+ const poolConfig = {
33
+ server: config.dbHost,
34
+ port: config.dbPort,
35
+ database: config.dbDatabase,
36
+ user: config.codeGenLogin,
37
+ password: config.codeGenPassword,
38
+ options: {
39
+ encrypt: false,
40
+ trustServerCertificate: config.dbTrustServerCertificate ?? true,
41
+ enableArithAbort: true,
42
+ },
43
+ };
44
+ _pool = new sql.ConnectionPool(poolConfig);
45
+ await _pool.connect();
46
+ const providerConfig = new SQLServerProviderConfigData(_pool, config.coreSchema ?? '__mj');
47
+ _provider = await setupSQLServerClient(providerConfig);
48
+ return _provider;
49
+ })();
50
+ const provider = await _initPromise;
51
+ return { pool: _pool, provider };
52
+ }
53
+ /**
54
+ * Closes the shared connection pool. Call on CLI exit for cleanup.
55
+ */
56
+ export async function closeConnectionPool() {
57
+ if (_pool?.connected) {
58
+ await _pool.close();
59
+ _pool = null;
60
+ }
61
+ _provider = null;
62
+ _initPromise = null;
63
+ }
64
+ // ─────────────────────────────────────────────────────────────────────────────
65
+ // System User
66
+ // ─────────────────────────────────────────────────────────────────────────────
67
+ /**
68
+ * Resolves the system user for Open App operations.
69
+ * Falls back to Owner user, then first active user if no system user exists.
70
+ */
71
+ function getSystemUserInfo() {
72
+ const sysUser = UserCache.Instance.GetSystemUser();
73
+ if (sysUser) {
74
+ return sysUser;
75
+ }
76
+ // Fallback: find first Owner user
77
+ const ownerUser = UserCache.Instance.Users.find(u => u.IsActive && u.Type === 'Owner');
78
+ if (ownerUser) {
79
+ return ownerUser;
80
+ }
81
+ // Last resort: first active user
82
+ const firstUser = UserCache.Instance.Users.find(u => u.IsActive);
83
+ if (firstUser) {
84
+ return firstUser;
85
+ }
86
+ throw new Error('No users found in UserCache. Cannot determine system user for Open App operations.');
87
+ }
88
+ // ─────────────────────────────────────────────────────────────────────────────
89
+ // Public API
90
+ // ─────────────────────────────────────────────────────────────────────────────
91
+ /**
92
+ * Builds a context user for read-only commands (list, info, check-updates).
93
+ * Initializes the MJ runtime and returns the system user.
94
+ */
95
+ export async function buildContextUser() {
96
+ await ensureProviderInitialized();
97
+ return getSystemUserInfo();
98
+ }
99
+ /**
100
+ * Builds the full OrchestratorContext for install/upgrade/remove/disable/enable commands.
101
+ */
102
+ export async function buildOrchestratorContext(command, verbose) {
103
+ const config = getValidatedConfig();
104
+ const { provider } = await ensureProviderInitialized();
105
+ const contextUser = getSystemUserInfo();
106
+ const spinner = verbose ? ora() : undefined;
107
+ return {
108
+ ContextUser: contextUser,
109
+ DatabaseProvider: provider,
110
+ DatabaseConfig: {
111
+ Host: config.dbHost,
112
+ Port: config.dbPort,
113
+ Database: config.dbDatabase,
114
+ User: config.codeGenLogin,
115
+ Password: config.codeGenPassword,
116
+ },
117
+ GitHubOptions: {
118
+ Token: config.openApps?.github?.token ?? process.env.GITHUB_TOKEN,
119
+ },
120
+ RepoRoot: process.cwd(),
121
+ MJVersion: getMJVersion(),
122
+ Callbacks: {
123
+ OnProgress: (phase, message) => spinner?.start(`[${phase}] ${message}`),
124
+ OnSuccess: (phase, message) => spinner?.succeed(`[${phase}] ${message}`),
125
+ OnError: (phase, message) => command.warn(`[${phase}] ${message}`),
126
+ OnWarn: (phase, message) => command.warn(`[${phase}] ${message}`),
127
+ OnLog: (message) => command.log(message),
128
+ },
129
+ };
130
+ }
131
+ /** Reads the current MJ version from MJGlobal's package.json. */
132
+ function getMJVersion() {
133
+ try {
134
+ const { readFileSync } = require('node:fs');
135
+ const { resolve } = require('node:path');
136
+ const pkgJson = JSON.parse(readFileSync(resolve(process.cwd(), 'packages/MJGlobal/package.json'), 'utf-8'));
137
+ return pkgJson.version;
138
+ }
139
+ catch {
140
+ return '4.3.1';
141
+ }
142
+ }
143
+ //# sourceMappingURL=open-app-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-app-context.js","sourceRoot":"","sources":["../../src/utils/open-app-context.ts"],"names":[],"mappings":"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"}