@memberjunction/cli 3.3.0 → 4.0.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 +28 -0
- package/bin/dev.cmd +2 -2
- package/bin/dev.js +5 -6
- package/bin/run.cmd +3 -3
- package/bin/run.js +14 -5
- package/dist/commands/ai/actions/list.d.ts +1 -0
- package/dist/commands/ai/actions/list.d.ts.map +1 -0
- package/dist/commands/ai/actions/list.js +14 -19
- package/dist/commands/ai/actions/list.js.map +1 -0
- package/dist/commands/ai/actions/run.d.ts +2 -1
- package/dist/commands/ai/actions/run.d.ts.map +1 -0
- package/dist/commands/ai/actions/run.js +24 -29
- package/dist/commands/ai/actions/run.js.map +1 -0
- package/dist/commands/ai/agents/list.d.ts +1 -0
- package/dist/commands/ai/agents/list.d.ts.map +1 -0
- package/dist/commands/ai/agents/list.js +14 -19
- package/dist/commands/ai/agents/list.js.map +1 -0
- package/dist/commands/ai/agents/run.d.ts +2 -1
- package/dist/commands/ai/agents/run.d.ts.map +1 -0
- package/dist/commands/ai/agents/run.js +20 -25
- package/dist/commands/ai/agents/run.js.map +1 -0
- package/dist/commands/ai/audit/agent-run.d.ts +7 -6
- package/dist/commands/ai/audit/agent-run.d.ts.map +1 -0
- package/dist/commands/ai/audit/agent-run.js +35 -63
- package/dist/commands/ai/audit/agent-run.js.map +1 -0
- package/dist/commands/ai/audit/index.d.ts +1 -0
- package/dist/commands/ai/audit/index.d.ts.map +1 -0
- package/dist/commands/ai/audit/index.js +5 -7
- package/dist/commands/ai/audit/index.js.map +1 -0
- package/dist/commands/ai/index.d.ts +1 -0
- package/dist/commands/ai/index.d.ts.map +1 -0
- package/dist/commands/ai/index.js +5 -7
- package/dist/commands/ai/index.js.map +1 -0
- package/dist/commands/ai/prompts/list.d.ts +1 -0
- package/dist/commands/ai/prompts/list.d.ts.map +1 -0
- package/dist/commands/ai/prompts/list.js +18 -23
- package/dist/commands/ai/prompts/list.js.map +1 -0
- package/dist/commands/ai/prompts/run.d.ts +6 -5
- package/dist/commands/ai/prompts/run.d.ts.map +1 -0
- package/dist/commands/ai/prompts/run.js +22 -27
- package/dist/commands/ai/prompts/run.js.map +1 -0
- package/dist/commands/bump/index.d.ts +2 -1
- package/dist/commands/bump/index.d.ts.map +1 -0
- package/dist/commands/bump/index.js +24 -52
- package/dist/commands/bump/index.js.map +1 -0
- package/dist/commands/clean/index.d.ts +3 -2
- package/dist/commands/clean/index.d.ts.map +1 -0
- package/dist/commands/clean/index.js +16 -22
- package/dist/commands/clean/index.js.map +1 -0
- package/dist/commands/codegen/index.d.ts +3 -2
- package/dist/commands/codegen/index.d.ts.map +1 -0
- package/dist/commands/codegen/index.js +14 -17
- package/dist/commands/codegen/index.js.map +1 -0
- package/dist/commands/codegen/manifest.d.ts +15 -0
- package/dist/commands/codegen/manifest.d.ts.map +1 -0
- package/dist/commands/codegen/manifest.js +65 -0
- package/dist/commands/codegen/manifest.js.map +1 -0
- package/dist/commands/dbdoc/analyze.d.ts +2 -1
- package/dist/commands/dbdoc/analyze.d.ts.map +1 -0
- package/dist/commands/dbdoc/analyze.js +11 -36
- package/dist/commands/dbdoc/analyze.js.map +1 -0
- package/dist/commands/dbdoc/export-sample-queries.d.ts +2 -1
- package/dist/commands/dbdoc/export-sample-queries.d.ts.map +1 -0
- package/dist/commands/dbdoc/export-sample-queries.js +19 -44
- package/dist/commands/dbdoc/export-sample-queries.js.map +1 -0
- package/dist/commands/dbdoc/export.d.ts +3 -2
- package/dist/commands/dbdoc/export.d.ts.map +1 -0
- package/dist/commands/dbdoc/export.js +20 -45
- package/dist/commands/dbdoc/export.js.map +1 -0
- package/dist/commands/dbdoc/generate-queries.d.ts +4 -3
- package/dist/commands/dbdoc/generate-queries.d.ts.map +1 -0
- package/dist/commands/dbdoc/generate-queries.js +14 -39
- package/dist/commands/dbdoc/generate-queries.js.map +1 -0
- package/dist/commands/dbdoc/index.d.ts +1 -0
- package/dist/commands/dbdoc/index.d.ts.map +1 -0
- package/dist/commands/dbdoc/index.js +5 -7
- package/dist/commands/dbdoc/index.js.map +1 -0
- package/dist/commands/dbdoc/init.d.ts +1 -0
- package/dist/commands/dbdoc/init.d.ts.map +1 -0
- package/dist/commands/dbdoc/init.js +7 -32
- package/dist/commands/dbdoc/init.js.map +1 -0
- package/dist/commands/dbdoc/reset.d.ts +1 -0
- package/dist/commands/dbdoc/reset.d.ts.map +1 -0
- package/dist/commands/dbdoc/reset.js +10 -35
- package/dist/commands/dbdoc/reset.js.map +1 -0
- package/dist/commands/dbdoc/review.d.ts +10 -0
- package/dist/commands/dbdoc/review.js +81 -0
- package/dist/commands/dbdoc/status.d.ts +2 -1
- package/dist/commands/dbdoc/status.d.ts.map +1 -0
- package/dist/commands/dbdoc/status.js +10 -35
- package/dist/commands/dbdoc/status.js.map +1 -0
- package/dist/commands/install/index.d.ts +76 -75
- package/dist/commands/install/index.d.ts.map +1 -0
- package/dist/commands/install/index.js +81 -111
- package/dist/commands/install/index.js.map +1 -0
- package/dist/commands/migrate/index.d.ts +4 -1
- package/dist/commands/migrate/index.d.ts.map +1 -0
- package/dist/commands/migrate/index.js +83 -73
- package/dist/commands/migrate/index.js.map +1 -0
- package/dist/commands/querygen/export.d.ts +1 -0
- package/dist/commands/querygen/export.d.ts.map +1 -0
- package/dist/commands/querygen/export.js +15 -17
- package/dist/commands/querygen/export.js.map +1 -0
- package/dist/commands/querygen/generate.d.ts +8 -7
- package/dist/commands/querygen/generate.d.ts.map +1 -0
- package/dist/commands/querygen/generate.js +28 -30
- package/dist/commands/querygen/generate.js.map +1 -0
- package/dist/commands/querygen/validate.d.ts +1 -0
- package/dist/commands/querygen/validate.d.ts.map +1 -0
- package/dist/commands/querygen/validate.js +15 -17
- package/dist/commands/querygen/validate.js.map +1 -0
- package/dist/commands/sync/file-reset.d.ts +3 -2
- package/dist/commands/sync/file-reset.d.ts.map +1 -0
- package/dist/commands/sync/file-reset.js +36 -64
- package/dist/commands/sync/file-reset.js.map +1 -0
- package/dist/commands/sync/init.d.ts +1 -0
- package/dist/commands/sync/init.d.ts.map +1 -0
- package/dist/commands/sync/init.js +16 -21
- package/dist/commands/sync/init.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +7 -6
- package/dist/commands/sync/pull.d.ts.map +1 -0
- package/dist/commands/sync/pull.js +46 -51
- package/dist/commands/sync/pull.js.map +1 -0
- package/dist/commands/sync/push.d.ts +4 -3
- package/dist/commands/sync/push.d.ts.map +1 -0
- package/dist/commands/sync/push.js +44 -49
- package/dist/commands/sync/push.js.map +1 -0
- package/dist/commands/sync/status.d.ts +4 -3
- package/dist/commands/sync/status.d.ts.map +1 -0
- package/dist/commands/sync/status.js +28 -33
- package/dist/commands/sync/status.js.map +1 -0
- package/dist/commands/sync/validate.d.ts +3 -2
- package/dist/commands/sync/validate.d.ts.map +1 -0
- package/dist/commands/sync/validate.js +31 -59
- package/dist/commands/sync/validate.js.map +1 -0
- package/dist/commands/sync/watch.d.ts +3 -2
- package/dist/commands/sync/watch.d.ts.map +1 -0
- package/dist/commands/sync/watch.js +34 -63
- package/dist/commands/sync/watch.js.map +1 -0
- package/dist/commands/test/compare.d.ts +6 -5
- package/dist/commands/test/compare.d.ts.map +1 -0
- package/dist/commands/test/compare.js +20 -22
- package/dist/commands/test/compare.js.map +1 -0
- package/dist/commands/test/history.d.ts +6 -5
- package/dist/commands/test/history.d.ts.map +1 -0
- package/dist/commands/test/history.js +17 -19
- package/dist/commands/test/history.js.map +1 -0
- package/dist/commands/test/index.d.ts +1 -0
- package/dist/commands/test/index.d.ts.map +1 -0
- package/dist/commands/test/index.js +6 -8
- package/dist/commands/test/index.js.map +1 -0
- package/dist/commands/test/list.d.ts +5 -4
- package/dist/commands/test/list.d.ts.map +1 -0
- package/dist/commands/test/list.js +18 -20
- package/dist/commands/test/list.js.map +1 -0
- package/dist/commands/test/run.d.ts +5 -4
- package/dist/commands/test/run.d.ts.map +1 -0
- package/dist/commands/test/run.js +19 -21
- package/dist/commands/test/run.js.map +1 -0
- package/dist/commands/test/suite.d.ts +4 -3
- package/dist/commands/test/suite.d.ts.map +1 -0
- package/dist/commands/test/suite.js +17 -19
- package/dist/commands/test/suite.js.map +1 -0
- package/dist/commands/test/validate.d.ts +4 -3
- package/dist/commands/test/validate.d.ts.map +1 -0
- package/dist/commands/test/validate.js +19 -21
- package/dist/commands/test/validate.js.map +1 -0
- package/dist/config.d.ts +76 -38
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +108 -60
- package/dist/config.js.map +1 -0
- package/dist/hooks/init.d.ts +1 -0
- package/dist/hooks/init.d.ts.map +1 -0
- package/dist/hooks/init.js +5 -29
- package/dist/hooks/init.js.map +1 -0
- package/dist/hooks/prerun.d.ts +1 -0
- package/dist/hooks/prerun.d.ts.map +1 -0
- package/dist/hooks/prerun.js +4 -8
- package/dist/hooks/prerun.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -0
- package/package.json +32 -30
- package/oclif.manifest.json +0 -2504
package/dist/config.d.ts
CHANGED
|
@@ -14,47 +14,84 @@ declare const mjConfigSchema: z.ZodObject<{
|
|
|
14
14
|
mjRepoUrl: z.ZodCatch<z.ZodString>;
|
|
15
15
|
baselineVersion: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
16
16
|
baselineOnMigrate: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
|
+
SQLOutput: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
schemaPlaceholders: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
19
|
+
schema: z.ZodString;
|
|
20
|
+
placeholder: z.ZodString;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
schema?: string;
|
|
23
|
+
placeholder?: string;
|
|
24
|
+
}, {
|
|
25
|
+
schema?: string;
|
|
26
|
+
placeholder?: string;
|
|
27
|
+
}>, "many">>;
|
|
28
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
29
|
+
schemaPlaceholders: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
30
|
+
schema: z.ZodString;
|
|
31
|
+
placeholder: z.ZodString;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
schema?: string;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
}, {
|
|
36
|
+
schema?: string;
|
|
37
|
+
placeholder?: string;
|
|
38
|
+
}>, "many">>;
|
|
39
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
40
|
+
schemaPlaceholders: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
41
|
+
schema: z.ZodString;
|
|
42
|
+
placeholder: z.ZodString;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
schema?: string;
|
|
45
|
+
placeholder?: string;
|
|
46
|
+
}, {
|
|
47
|
+
schema?: string;
|
|
48
|
+
placeholder?: string;
|
|
49
|
+
}>, "many">>;
|
|
50
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
17
51
|
}, "strip", z.ZodTypeAny, {
|
|
18
|
-
dbHost
|
|
19
|
-
dbDatabase
|
|
20
|
-
dbPort
|
|
21
|
-
codeGenLogin
|
|
22
|
-
codeGenPassword
|
|
23
|
-
migrationsLocation
|
|
24
|
-
dbTrustServerCertificate
|
|
25
|
-
coreSchema
|
|
26
|
-
cleanDisabled
|
|
27
|
-
mjRepoUrl
|
|
28
|
-
baselineVersion
|
|
29
|
-
baselineOnMigrate
|
|
52
|
+
dbHost?: string;
|
|
53
|
+
dbDatabase?: string;
|
|
54
|
+
dbPort?: number;
|
|
55
|
+
codeGenLogin?: string;
|
|
56
|
+
codeGenPassword?: string;
|
|
57
|
+
migrationsLocation?: string;
|
|
58
|
+
dbTrustServerCertificate?: boolean;
|
|
59
|
+
coreSchema?: string;
|
|
60
|
+
cleanDisabled?: boolean;
|
|
61
|
+
mjRepoUrl?: string;
|
|
62
|
+
baselineVersion?: string;
|
|
63
|
+
baselineOnMigrate?: boolean;
|
|
64
|
+
SQLOutput?: {
|
|
65
|
+
schemaPlaceholders?: {
|
|
66
|
+
schema?: string;
|
|
67
|
+
placeholder?: string;
|
|
68
|
+
}[];
|
|
69
|
+
} & {
|
|
70
|
+
[k: string]: unknown;
|
|
71
|
+
};
|
|
30
72
|
}, {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
migrationsLocation?: string
|
|
37
|
-
dbTrustServerCertificate?: boolean
|
|
38
|
-
coreSchema?: string
|
|
39
|
-
cleanDisabled?: boolean
|
|
73
|
+
dbHost?: string;
|
|
74
|
+
dbDatabase?: string;
|
|
75
|
+
dbPort?: number;
|
|
76
|
+
codeGenLogin?: string;
|
|
77
|
+
codeGenPassword?: string;
|
|
78
|
+
migrationsLocation?: string;
|
|
79
|
+
dbTrustServerCertificate?: boolean;
|
|
80
|
+
coreSchema?: string;
|
|
81
|
+
cleanDisabled?: boolean;
|
|
40
82
|
mjRepoUrl?: unknown;
|
|
41
|
-
baselineVersion?: string
|
|
42
|
-
baselineOnMigrate?: boolean
|
|
83
|
+
baselineVersion?: string;
|
|
84
|
+
baselineOnMigrate?: boolean;
|
|
85
|
+
SQLOutput?: {
|
|
86
|
+
schemaPlaceholders?: {
|
|
87
|
+
schema?: string;
|
|
88
|
+
placeholder?: string;
|
|
89
|
+
}[];
|
|
90
|
+
} & {
|
|
91
|
+
[k: string]: unknown;
|
|
92
|
+
};
|
|
43
93
|
}>;
|
|
44
|
-
export declare const config:
|
|
45
|
-
dbHost: string;
|
|
46
|
-
dbDatabase: string;
|
|
47
|
-
dbPort: number;
|
|
48
|
-
codeGenLogin: string;
|
|
49
|
-
codeGenPassword: string;
|
|
50
|
-
migrationsLocation: string;
|
|
51
|
-
dbTrustServerCertificate: boolean;
|
|
52
|
-
coreSchema: string;
|
|
53
|
-
cleanDisabled: boolean;
|
|
54
|
-
mjRepoUrl: string;
|
|
55
|
-
baselineVersion: string;
|
|
56
|
-
baselineOnMigrate: boolean;
|
|
57
|
-
} | undefined;
|
|
94
|
+
export declare const config: MJConfig | undefined;
|
|
58
95
|
/**
|
|
59
96
|
* Get validated config for commands that require database connection.
|
|
60
97
|
* Throws error if config is invalid.
|
|
@@ -72,5 +109,6 @@ export declare const getOptionalConfig: () => Partial<MJConfig> | undefined;
|
|
|
72
109
|
*/
|
|
73
110
|
export declare const updatedConfig: () => MJConfig | undefined;
|
|
74
111
|
export declare const createFlywayUrl: (mjConfig: MJConfig) => string;
|
|
75
|
-
export declare const getFlywayConfig: (mjConfig: MJConfig, tag?: string) => Promise<FlywayConfig>;
|
|
112
|
+
export declare const getFlywayConfig: (mjConfig: MJConfig, tag?: string, schema?: string, dir?: string) => Promise<FlywayConfig>;
|
|
76
113
|
export {};
|
|
114
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA4CtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBlB,CAAC;AAsBH,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,eAAO,MAAM,eAAe,GAAI,UAAU,QAAQ,WAIjD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,UAAU,QAAQ,EAClB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,MAAM,MAAM,KACX,OAAO,CAAC,YAAY,CA6EtB,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const simple_git_1 = require("simple-git");
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
const config_1 = require("@memberjunction/config");
|
|
1
|
+
import { cosmiconfigSync } from 'cosmiconfig';
|
|
2
|
+
import { mkdtempSync } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { simpleGit } from 'simple-git';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { mergeConfigs, parseBooleanEnv } from '@memberjunction/config';
|
|
10
7
|
const MJ_REPO_URL = 'https://github.com/MemberJunction/MJ.git';
|
|
11
8
|
/**
|
|
12
9
|
* Default database configuration for MJCLI.
|
|
@@ -16,64 +13,75 @@ const DEFAULT_CLI_CONFIG = {
|
|
|
16
13
|
dbHost: process.env.DB_HOST ?? 'localhost',
|
|
17
14
|
dbPort: process.env.DB_PORT ? parseInt(process.env.DB_PORT) : 1433,
|
|
18
15
|
dbDatabase: process.env.DB_DATABASE ?? '',
|
|
19
|
-
dbTrustServerCertificate: process.env.DB_TRUST_SERVER_CERTIFICATE
|
|
16
|
+
dbTrustServerCertificate: parseBooleanEnv(process.env.DB_TRUST_SERVER_CERTIFICATE),
|
|
20
17
|
codeGenLogin: process.env.CODEGEN_DB_USERNAME ?? '',
|
|
21
18
|
codeGenPassword: process.env.CODEGEN_DB_PASSWORD ?? '',
|
|
22
19
|
coreSchema: '__mj',
|
|
23
20
|
cleanDisabled: true,
|
|
24
|
-
baselineVersion: '
|
|
21
|
+
baselineVersion: '202602061600',
|
|
25
22
|
baselineOnMigrate: true,
|
|
26
23
|
mjRepoUrl: MJ_REPO_URL,
|
|
27
24
|
migrationsLocation: 'filesystem:./migrations',
|
|
28
25
|
};
|
|
29
|
-
const explorer =
|
|
26
|
+
const explorer = cosmiconfigSync('mj', { searchStrategy: 'global' });
|
|
30
27
|
const searchResult = explorer.search(process.cwd());
|
|
31
28
|
// Merge user config with DEFAULT_CLI_CONFIG to support minimal config
|
|
32
29
|
// This allows database fields to come from environment variables
|
|
33
30
|
const mergedConfig = searchResult?.config
|
|
34
|
-
?
|
|
31
|
+
? mergeConfigs(DEFAULT_CLI_CONFIG, searchResult.config)
|
|
35
32
|
: DEFAULT_CLI_CONFIG;
|
|
36
33
|
// Create a result object with merged config for backward compatibility
|
|
37
34
|
const result = searchResult
|
|
38
35
|
? { ...searchResult, config: mergedConfig }
|
|
39
36
|
: { config: mergedConfig, filepath: '', isEmpty: false };
|
|
37
|
+
// Schema placeholder configuration for cross-schema references
|
|
38
|
+
const schemaPlaceholderSchema = z.object({
|
|
39
|
+
schema: z.string(),
|
|
40
|
+
placeholder: z.string(),
|
|
41
|
+
});
|
|
40
42
|
// Schema for database-dependent config (required fields)
|
|
41
|
-
const mjConfigSchema =
|
|
42
|
-
dbHost:
|
|
43
|
-
dbDatabase:
|
|
44
|
-
dbPort:
|
|
45
|
-
codeGenLogin:
|
|
46
|
-
codeGenPassword:
|
|
47
|
-
migrationsLocation:
|
|
48
|
-
dbTrustServerCertificate:
|
|
49
|
-
coreSchema:
|
|
50
|
-
cleanDisabled:
|
|
51
|
-
mjRepoUrl:
|
|
52
|
-
baselineVersion:
|
|
53
|
-
baselineOnMigrate:
|
|
43
|
+
const mjConfigSchema = z.object({
|
|
44
|
+
dbHost: z.string().default('localhost'),
|
|
45
|
+
dbDatabase: z.string(),
|
|
46
|
+
dbPort: z.number({ coerce: true }).default(1433),
|
|
47
|
+
codeGenLogin: z.string(),
|
|
48
|
+
codeGenPassword: z.string(),
|
|
49
|
+
migrationsLocation: z.string().optional().default('filesystem:./migrations'),
|
|
50
|
+
dbTrustServerCertificate: z.coerce.boolean().default(false),
|
|
51
|
+
coreSchema: z.string().optional().default('__mj'),
|
|
52
|
+
cleanDisabled: z.boolean().optional().default(true),
|
|
53
|
+
mjRepoUrl: z.string().url().catch(MJ_REPO_URL),
|
|
54
|
+
baselineVersion: z.string().optional().default('202602061600'),
|
|
55
|
+
baselineOnMigrate: z.boolean().optional().default(true),
|
|
56
|
+
SQLOutput: z.object({
|
|
57
|
+
schemaPlaceholders: z.array(schemaPlaceholderSchema).optional(),
|
|
58
|
+
}).passthrough().optional(),
|
|
54
59
|
});
|
|
55
60
|
// Schema for non-database commands (all fields optional)
|
|
56
|
-
const mjConfigSchemaOptional =
|
|
57
|
-
dbHost:
|
|
58
|
-
dbDatabase:
|
|
59
|
-
dbPort:
|
|
60
|
-
codeGenLogin:
|
|
61
|
-
codeGenPassword:
|
|
62
|
-
migrationsLocation:
|
|
63
|
-
dbTrustServerCertificate:
|
|
64
|
-
coreSchema:
|
|
65
|
-
cleanDisabled:
|
|
66
|
-
mjRepoUrl:
|
|
67
|
-
baselineVersion:
|
|
68
|
-
baselineOnMigrate:
|
|
61
|
+
const mjConfigSchemaOptional = z.object({
|
|
62
|
+
dbHost: z.string().optional(),
|
|
63
|
+
dbDatabase: z.string().optional(),
|
|
64
|
+
dbPort: z.number({ coerce: true }).optional(),
|
|
65
|
+
codeGenLogin: z.string().optional(),
|
|
66
|
+
codeGenPassword: z.string().optional(),
|
|
67
|
+
migrationsLocation: z.string().optional().default('filesystem:./migrations'),
|
|
68
|
+
dbTrustServerCertificate: z.coerce.boolean().default(false),
|
|
69
|
+
coreSchema: z.string().optional().default('__mj'),
|
|
70
|
+
cleanDisabled: z.boolean().optional().default(true),
|
|
71
|
+
mjRepoUrl: z.string().url().catch(MJ_REPO_URL),
|
|
72
|
+
baselineVersion: z.string().optional().default('202602061600'),
|
|
73
|
+
baselineOnMigrate: z.boolean().optional().default(true),
|
|
74
|
+
SQLOutput: z.object({
|
|
75
|
+
schemaPlaceholders: z.array(schemaPlaceholderSchema).optional(),
|
|
76
|
+
}).passthrough().optional(),
|
|
69
77
|
});
|
|
70
78
|
// Don't validate at module load - let commands decide when they need validated config
|
|
71
|
-
|
|
79
|
+
export const config = result?.config;
|
|
72
80
|
/**
|
|
73
81
|
* Get validated config for commands that require database connection.
|
|
74
82
|
* Throws error if config is invalid.
|
|
75
83
|
*/
|
|
76
|
-
const getValidatedConfig = () => {
|
|
84
|
+
export const getValidatedConfig = () => {
|
|
77
85
|
const parsedConfig = mjConfigSchema.safeParse(result?.config);
|
|
78
86
|
if (!parsedConfig.success) {
|
|
79
87
|
throw new Error(`Invalid or missing mj.config.cjs file. Database commands require valid configuration.\n` +
|
|
@@ -81,59 +89,99 @@ const getValidatedConfig = () => {
|
|
|
81
89
|
}
|
|
82
90
|
return parsedConfig.data;
|
|
83
91
|
};
|
|
84
|
-
exports.getValidatedConfig = getValidatedConfig;
|
|
85
92
|
/**
|
|
86
93
|
* Get optional config for commands that don't require database connection.
|
|
87
94
|
* Returns undefined if no config exists, or partial config if it exists.
|
|
88
95
|
*/
|
|
89
|
-
const getOptionalConfig = () => {
|
|
96
|
+
export const getOptionalConfig = () => {
|
|
90
97
|
const parsedConfig = mjConfigSchemaOptional.safeParse(result?.config);
|
|
91
98
|
return parsedConfig.success ? parsedConfig.data : undefined;
|
|
92
99
|
};
|
|
93
|
-
exports.getOptionalConfig = getOptionalConfig;
|
|
94
100
|
/**
|
|
95
101
|
* Legacy function for backward compatibility with codegen.
|
|
96
102
|
* Validates and returns updated config.
|
|
97
103
|
* Returns undefined silently if config is invalid (command will handle the error).
|
|
98
104
|
*/
|
|
99
|
-
const updatedConfig = () => {
|
|
105
|
+
export const updatedConfig = () => {
|
|
100
106
|
const freshSearchResult = explorer.search(process.cwd());
|
|
101
107
|
// Merge fresh config with DEFAULT_CLI_CONFIG
|
|
102
108
|
const freshMergedConfig = freshSearchResult?.config
|
|
103
|
-
?
|
|
109
|
+
? mergeConfigs(DEFAULT_CLI_CONFIG, freshSearchResult.config)
|
|
104
110
|
: DEFAULT_CLI_CONFIG;
|
|
105
111
|
const maybeConfig = mjConfigSchema.safeParse(freshMergedConfig);
|
|
106
112
|
// Don't log errors here - let the calling command handle validation
|
|
107
113
|
return maybeConfig.success ? maybeConfig.data : undefined;
|
|
108
114
|
};
|
|
109
|
-
|
|
110
|
-
const createFlywayUrl = (mjConfig) => {
|
|
115
|
+
export const createFlywayUrl = (mjConfig) => {
|
|
111
116
|
return `jdbc:sqlserver://${mjConfig.dbHost}:${mjConfig.dbPort}; databaseName=${mjConfig.dbDatabase}${mjConfig.dbTrustServerCertificate ? '; trustServerCertificate=true' : ''}`;
|
|
112
117
|
};
|
|
113
|
-
|
|
114
|
-
const
|
|
118
|
+
export const getFlywayConfig = async (mjConfig, tag, schema, dir) => {
|
|
119
|
+
const targetSchema = schema || mjConfig.coreSchema;
|
|
115
120
|
let location = mjConfig.migrationsLocation;
|
|
121
|
+
if (dir && !tag) {
|
|
122
|
+
location = dir.startsWith('filesystem:') ? dir : `filesystem:${dir}`;
|
|
123
|
+
}
|
|
116
124
|
if (tag) {
|
|
117
125
|
// when tag is set, we want to fetch migrations from the github repo using the tag specified
|
|
118
126
|
// we save those to a tmp dir and set that tmp dir as the migration location
|
|
119
|
-
const tmp =
|
|
127
|
+
const tmp = mkdtempSync(tmpdir());
|
|
120
128
|
const branch = /v?\d+\.\d+\.\d+/.test(tag) ? (tag.startsWith('v') ? tag : `v${tag}`) : tag;
|
|
121
|
-
const git =
|
|
129
|
+
const git = simpleGit(tmp);
|
|
122
130
|
await git.clone(mjConfig.mjRepoUrl, tmp, ['--sparse', '--depth=1', '--branch', branch]);
|
|
123
131
|
await git.raw(['sparse-checkout', 'set', 'migrations']);
|
|
124
132
|
location = `filesystem:${tmp}`;
|
|
133
|
+
if (dir) {
|
|
134
|
+
const subPath = dir.replace(/^filesystem:/, '').replace(/^\.\//, '');
|
|
135
|
+
location = `filesystem:${tmp}/${subPath}`;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Build advanced config - only include properties with defined values
|
|
139
|
+
const advancedConfig = {
|
|
140
|
+
schemas: [targetSchema],
|
|
141
|
+
};
|
|
142
|
+
// Only add cleanDisabled if explicitly set to false
|
|
143
|
+
if (mjConfig.cleanDisabled === false) {
|
|
144
|
+
advancedConfig.cleanDisabled = false;
|
|
145
|
+
}
|
|
146
|
+
// Enable custom placeholders for cross-schema references (e.g., BCSaaS → MJ)
|
|
147
|
+
// Uses schemaPlaceholders from mj.config.cjs SQLOutput configuration if available
|
|
148
|
+
// Falls back to legacy behavior (mjSchema placeholder) for backward compatibility
|
|
149
|
+
// NOTE: The Map entries are swapped (value, key) due to a bug in node-flyway's Map.forEach iteration
|
|
150
|
+
const schemaPlaceholders = mjConfig.SQLOutput?.schemaPlaceholders;
|
|
151
|
+
if (schemaPlaceholders && schemaPlaceholders.length > 0) {
|
|
152
|
+
// Use schemaPlaceholders from config (new behavior - supports BCSaaS and other extensions)
|
|
153
|
+
// NOTE: node-flyway seems to hang when placeHolders Map is provided
|
|
154
|
+
// Placeholders will be applied by the diagnostic Flyway CLI call instead
|
|
155
|
+
// advancedConfig.placeHolderReplacement = true;
|
|
156
|
+
// const placeholderMap = new Map();
|
|
157
|
+
//
|
|
158
|
+
// schemaPlaceholders.forEach(({ schema: schemaName, placeholder }) => {
|
|
159
|
+
// const cleanPlaceholder = placeholder.replace(/^\$\{|\}$/g, '');
|
|
160
|
+
// if (cleanPlaceholder.startsWith('flyway:')) return;
|
|
161
|
+
// placeholderMap.set(cleanPlaceholder, schemaName);
|
|
162
|
+
// });
|
|
163
|
+
//
|
|
164
|
+
// if (placeholderMap.size > 0) {
|
|
165
|
+
// advancedConfig.placeHolders = placeholderMap;
|
|
166
|
+
// }
|
|
167
|
+
}
|
|
168
|
+
else if (schema && schema !== mjConfig.coreSchema) {
|
|
169
|
+
// Legacy behavior: Add mjSchema placeholder for non-core schemas
|
|
170
|
+
advancedConfig.placeHolderReplacement = true;
|
|
171
|
+
// Map('mjSchema' => '__mj') generates -placeholders.mjSchema=__mj
|
|
172
|
+
advancedConfig.placeHolders = new Map([['mjSchema', mjConfig.coreSchema]]);
|
|
125
173
|
}
|
|
174
|
+
// Merge additional required properties into advancedConfig
|
|
175
|
+
advancedConfig.baselineVersion = mjConfig.baselineVersion;
|
|
176
|
+
advancedConfig.baselineOnMigrate = mjConfig.baselineOnMigrate;
|
|
126
177
|
return {
|
|
127
|
-
url:
|
|
178
|
+
url: createFlywayUrl(mjConfig),
|
|
128
179
|
user: mjConfig.codeGenLogin,
|
|
129
180
|
password: mjConfig.codeGenPassword,
|
|
181
|
+
// Note: Flyway uses the first schema in advanced.schemas as the default schema
|
|
182
|
+
// Setting both defaultSchema and schemas causes issues due to node-flyway's filtering logic
|
|
130
183
|
migrationLocations: [location],
|
|
131
|
-
advanced:
|
|
132
|
-
schemas: [mjConfig.coreSchema],
|
|
133
|
-
cleanDisabled: mjConfig.cleanDisabled === false ? false : undefined,
|
|
134
|
-
baselineVersion: mjConfig.baselineVersion,
|
|
135
|
-
baselineOnMigrate: mjConfig.baselineOnMigrate,
|
|
136
|
-
},
|
|
184
|
+
advanced: advancedConfig,
|
|
137
185
|
};
|
|
138
186
|
};
|
|
139
|
-
|
|
187
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/init.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInC;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,CAItB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/hooks/init.js
CHANGED
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const dotenv = __importStar(require("dotenv"));
|
|
27
|
-
const path = __importStar(require("path"));
|
|
1
|
+
import * as dotenv from 'dotenv';
|
|
2
|
+
import * as path from 'path';
|
|
28
3
|
/**
|
|
29
4
|
* Init hook runs once when the CLI starts up.
|
|
30
5
|
* Load environment variables from .env file.
|
|
@@ -32,6 +7,7 @@ const path = __importStar(require("path"));
|
|
|
32
7
|
const hook = async function () {
|
|
33
8
|
// Load environment variables from .env file in repo root
|
|
34
9
|
const envPath = path.resolve(process.cwd(), '.env');
|
|
35
|
-
dotenv.config({ path: envPath });
|
|
10
|
+
dotenv.config({ path: envPath, quiet: true });
|
|
36
11
|
};
|
|
37
|
-
|
|
12
|
+
export default hook;
|
|
13
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/hooks/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,IAAI,GAAiB,KAAK;IAC9B,yDAAyD;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/hooks/prerun.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prerun.d.ts","sourceRoot":"","sources":["../../src/hooks/prerun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,QAAQ,CAqBxB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/hooks/prerun.js
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const figlet_1 = __importDefault(require("figlet"));
|
|
1
|
+
import figlet from 'figlet';
|
|
7
2
|
const hook = async function (options) {
|
|
8
3
|
// Skip banners if --quiet flag is present (or appears to be present)
|
|
9
4
|
if (options.argv?.some((arg) => arg === '--quiet' || (/^-[^-]+/.test(arg) && arg.includes('q')))) {
|
|
10
5
|
return;
|
|
11
6
|
}
|
|
12
7
|
options.context.log(process.stdout.columns >= 81
|
|
13
|
-
?
|
|
8
|
+
? figlet.textSync('MemberJunction', {
|
|
14
9
|
font: 'Standard',
|
|
15
10
|
horizontalLayout: 'default',
|
|
16
11
|
verticalLayout: 'default',
|
|
@@ -22,4 +17,5 @@ const hook = async function (options) {
|
|
|
22
17
|
options.context.log(options.config.userAgent + '\n');
|
|
23
18
|
}
|
|
24
19
|
};
|
|
25
|
-
|
|
20
|
+
export default hook;
|
|
21
|
+
//# sourceMappingURL=prerun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prerun.js","sourceRoot":"","sources":["../../src/hooks/prerun.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,IAAI,GAAmB,KAAK,WAAW,OAAO;IAClD,qEAAqE;IACrE,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;QAC1B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAChC,IAAI,EAAE,UAAU;YAChB,gBAAgB,EAAE,SAAS;YAC3B,cAAc,EAAE,SAAS;YACzB,KAAK,EAAE,GAAG;YACV,eAAe,EAAE,IAAI;SACtB,CAAC;QACJ,CAAC,CAAC,iCAAiC,CACtC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.run = void 0;
|
|
4
|
-
var core_1 = require("@oclif/core");
|
|
5
|
-
Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
|
|
1
|
+
export { run } from '@oclif/core';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/cli",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "4.0.0",
|
|
4
5
|
"description": "MemberJunction command line tools",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"oclif"
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
"/oclif.manifest.json"
|
|
27
28
|
],
|
|
28
29
|
"scripts": {
|
|
29
|
-
"build": "tsc",
|
|
30
|
+
"build": "tsc && tsc-alias -f",
|
|
30
31
|
"prepack": "npm run build && oclif manifest && oclif readme",
|
|
31
32
|
"postpack": "rimraf oclif.manifest.json",
|
|
32
33
|
"version": "oclif readme && git add README.md"
|
|
@@ -50,42 +51,43 @@
|
|
|
50
51
|
}
|
|
51
52
|
},
|
|
52
53
|
"dependencies": {
|
|
53
|
-
"@inquirer/prompts": "^
|
|
54
|
-
"@memberjunction/ai-cli": "
|
|
55
|
-
"@memberjunction/codegen-lib": "
|
|
56
|
-
"@memberjunction/config": "
|
|
57
|
-
"@memberjunction/core": "
|
|
58
|
-
"@memberjunction/db-auto-doc": "
|
|
59
|
-
"@memberjunction/metadata-sync": "
|
|
60
|
-
"@memberjunction/query-gen": "
|
|
61
|
-
"@memberjunction/
|
|
62
|
-
"@memberjunction/
|
|
63
|
-
"@
|
|
64
|
-
"@oclif/
|
|
65
|
-
"@oclif/plugin-
|
|
66
|
-
"@oclif/plugin-
|
|
54
|
+
"@inquirer/prompts": "^8.2.0",
|
|
55
|
+
"@memberjunction/ai-cli": "4.0.0",
|
|
56
|
+
"@memberjunction/codegen-lib": "4.0.0",
|
|
57
|
+
"@memberjunction/config": "4.0.0",
|
|
58
|
+
"@memberjunction/core": "4.0.0",
|
|
59
|
+
"@memberjunction/db-auto-doc": "4.0.0",
|
|
60
|
+
"@memberjunction/metadata-sync": "4.0.0",
|
|
61
|
+
"@memberjunction/query-gen": "4.0.0",
|
|
62
|
+
"@memberjunction/server-bootstrap-lite": "4.0.0",
|
|
63
|
+
"@memberjunction/sqlserver-dataprovider": "4.0.0",
|
|
64
|
+
"@memberjunction/testing-cli": "4.0.0",
|
|
65
|
+
"@oclif/core": "^3.27.0",
|
|
66
|
+
"@oclif/plugin-help": "^6.2.37",
|
|
67
|
+
"@oclif/plugin-version": "^2.2.36",
|
|
68
|
+
"@oclif/plugin-warn-if-update-available": "^3.1.55",
|
|
67
69
|
"ajv": "^8.12.0",
|
|
68
|
-
"ajv-formats": "^
|
|
69
|
-
"chalk": "^
|
|
70
|
+
"ajv-formats": "^3.0.1",
|
|
71
|
+
"chalk": "^5.6.2",
|
|
70
72
|
"cosmiconfig": "9.0.0",
|
|
71
|
-
"dotenv": "
|
|
72
|
-
"fast-glob": "^3.3.
|
|
73
|
-
"figlet": "^1.
|
|
74
|
-
"fs-extra": "^11.
|
|
73
|
+
"dotenv": "17.2.4",
|
|
74
|
+
"fast-glob": "^3.3.3",
|
|
75
|
+
"figlet": "^1.10.0",
|
|
76
|
+
"fs-extra": "^11.3.3",
|
|
75
77
|
"node-flyway": "0.0.13",
|
|
76
78
|
"ora-classic": "^5.4.2",
|
|
77
|
-
"recast": "^0.23.
|
|
78
|
-
"simple-git": "^3.
|
|
79
|
-
"zod": "
|
|
79
|
+
"recast": "^0.23.11",
|
|
80
|
+
"simple-git": "^3.30.0",
|
|
81
|
+
"zod": "~3.24.4"
|
|
80
82
|
},
|
|
81
83
|
"devDependencies": {
|
|
82
84
|
"@oclif/prettier-config": "^0.2.1",
|
|
83
|
-
"@types/figlet": "^1.
|
|
85
|
+
"@types/figlet": "^1.7.0",
|
|
84
86
|
"@types/fs-extra": "^11.0.4",
|
|
85
|
-
"oclif": "^4",
|
|
86
|
-
"rimraf": "
|
|
87
|
-
"
|
|
88
|
-
"typescript": "^5.
|
|
87
|
+
"oclif": "^4.22.73",
|
|
88
|
+
"rimraf": "6.1.2",
|
|
89
|
+
"tsx": "^4.21.0",
|
|
90
|
+
"typescript": "^5.9.3"
|
|
89
91
|
},
|
|
90
92
|
"engines": {
|
|
91
93
|
"node": ">=20.0.0"
|