@memberjunction/cli 5.40.2 → 5.42.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/bundle/index.d.ts +1 -0
- package/dist/commands/bundle/index.d.ts.map +1 -1
- package/dist/commands/bundle/index.js +7 -1
- package/dist/commands/bundle/index.js.map +1 -1
- package/dist/commands/codegen/index.d.ts +6 -16
- package/dist/commands/codegen/index.d.ts.map +1 -1
- package/dist/commands/codegen/index.js +6 -90
- package/dist/commands/codegen/index.js.map +1 -1
- package/dist/commands/codegen/usage.d.ts +7 -0
- package/dist/commands/codegen/usage.d.ts.map +1 -0
- package/dist/commands/codegen/usage.js +10 -0
- package/dist/commands/codegen/usage.js.map +1 -0
- package/dist/commands/install/claude.d.ts +35 -0
- package/dist/commands/install/claude.d.ts.map +1 -0
- package/dist/commands/install/claude.js +108 -0
- package/dist/commands/install/claude.js.map +1 -0
- package/dist/commands/install/index.d.ts +1 -0
- package/dist/commands/install/index.d.ts.map +1 -1
- package/dist/commands/install/index.js +4 -0
- package/dist/commands/install/index.js.map +1 -1
- package/dist/commands/migrate/convert.d.ts +59 -12
- package/dist/commands/migrate/convert.d.ts.map +1 -1
- package/dist/commands/migrate/convert.js +294 -21
- package/dist/commands/migrate/convert.js.map +1 -1
- package/dist/commands/migrate/rebake.d.ts +41 -0
- package/dist/commands/migrate/rebake.d.ts.map +1 -0
- package/dist/commands/migrate/rebake.js +193 -0
- package/dist/commands/migrate/rebake.js.map +1 -0
- package/dist/commands/plugin/add.d.ts +18 -0
- package/dist/commands/plugin/add.d.ts.map +1 -0
- package/dist/commands/plugin/add.js +53 -0
- package/dist/commands/plugin/add.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +6 -26
- package/dist/commands/sync/pull.d.ts.map +1 -1
- package/dist/commands/sync/pull.js +6 -281
- package/dist/commands/sync/pull.js.map +1 -1
- package/dist/commands/sync/push.d.ts +8 -18
- package/dist/commands/sync/push.d.ts.map +1 -1
- package/dist/commands/sync/push.js +8 -257
- package/dist/commands/sync/push.js.map +1 -1
- package/dist/commands/sync/usage.d.ts +7 -0
- package/dist/commands/sync/usage.d.ts.map +1 -0
- package/dist/commands/sync/usage.js +10 -0
- package/dist/commands/sync/usage.js.map +1 -0
- package/dist/commands/update/claude.d.ts +37 -0
- package/dist/commands/update/claude.d.ts.map +1 -0
- package/dist/commands/update/claude.js +90 -0
- package/dist/commands/update/claude.js.map +1 -0
- package/dist/commands/usage.d.ts +17 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +29 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/hooks/prerun.d.ts.map +1 -1
- package/dist/hooks/prerun.js +62 -15
- package/dist/hooks/prerun.js.map +1 -1
- package/dist/lib/claude-pack/ManagedBlockEditor.d.ts +40 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.d.ts.map +1 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.js +127 -0
- package/dist/lib/claude-pack/ManagedBlockEditor.js.map +1 -0
- package/dist/lib/claude-pack/PackFetcher.d.ts +86 -0
- package/dist/lib/claude-pack/PackFetcher.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackFetcher.js +163 -0
- package/dist/lib/claude-pack/PackFetcher.js.map +1 -0
- package/dist/lib/claude-pack/PackInstaller.d.ts +62 -0
- package/dist/lib/claude-pack/PackInstaller.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackInstaller.js +197 -0
- package/dist/lib/claude-pack/PackInstaller.js.map +1 -0
- package/dist/lib/claude-pack/PackMerger.d.ts +61 -0
- package/dist/lib/claude-pack/PackMerger.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackMerger.js +315 -0
- package/dist/lib/claude-pack/PackMerger.js.map +1 -0
- package/dist/lib/claude-pack/PackOutputFormatter.d.ts +29 -0
- package/dist/lib/claude-pack/PackOutputFormatter.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackOutputFormatter.js +82 -0
- package/dist/lib/claude-pack/PackOutputFormatter.js.map +1 -0
- package/dist/lib/claude-pack/PackPaths.d.ts +80 -0
- package/dist/lib/claude-pack/PackPaths.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackPaths.js +182 -0
- package/dist/lib/claude-pack/PackPaths.js.map +1 -0
- package/dist/lib/claude-pack/PackTypes.d.ts +124 -0
- package/dist/lib/claude-pack/PackTypes.d.ts.map +1 -0
- package/dist/lib/claude-pack/PackTypes.js +32 -0
- package/dist/lib/claude-pack/PackTypes.js.map +1 -0
- package/dist/lib/claude-pack/SettingsMerger.d.ts +47 -0
- package/dist/lib/claude-pack/SettingsMerger.d.ts.map +1 -0
- package/dist/lib/claude-pack/SettingsMerger.js +163 -0
- package/dist/lib/claude-pack/SettingsMerger.js.map +1 -0
- package/dist/lib/cli-plugins.d.ts +16 -0
- package/dist/lib/cli-plugins.d.ts.map +1 -0
- package/dist/lib/cli-plugins.js +26 -0
- package/dist/lib/cli-plugins.js.map +1 -0
- package/dist/lib/domain-usage-command.d.ts +16 -0
- package/dist/lib/domain-usage-command.d.ts.map +1 -0
- package/dist/lib/domain-usage-command.js +23 -0
- package/dist/lib/domain-usage-command.js.map +1 -0
- package/dist/lib/usage-render.d.ts +14 -0
- package/dist/lib/usage-render.d.ts.map +1 -0
- package/dist/lib/usage-render.js +64 -0
- package/dist/lib/usage-render.js.map +1 -0
- package/dist/light-commands.d.ts.map +1 -1
- package/dist/light-commands.js +11 -0
- package/dist/light-commands.js.map +1 -1
- package/oclif.manifest.json +1240 -554
- package/package.json +20 -18
|
@@ -14,6 +14,7 @@ export default class Bundle extends Command {
|
|
|
14
14
|
source: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
15
|
'with-migrations': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
16
|
'db-platform': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
'no-claude-pack': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
18
|
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
19
|
};
|
|
19
20
|
run(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAA6F;IAE/G,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAA6F;IAE/G,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAgBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC3B"}
|
|
@@ -30,6 +30,9 @@ export default class Bundle extends Command {
|
|
|
30
30
|
options: ['sqlserver', 'postgresql'],
|
|
31
31
|
dependsOn: ['with-migrations'],
|
|
32
32
|
}),
|
|
33
|
+
'no-claude-pack': Flags.boolean({
|
|
34
|
+
description: 'Exclude the Claude Code pack (CLAUDE.md + .claude/) from the bundle. By default the pack is included so air-gapped installs get the same out-of-the-box Claude experience as online installs.',
|
|
35
|
+
}),
|
|
33
36
|
verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
|
|
34
37
|
}; }
|
|
35
38
|
async run() {
|
|
@@ -44,6 +47,7 @@ export default class Bundle extends Command {
|
|
|
44
47
|
// oclif validates the value against `options`, but types it as a plain string;
|
|
45
48
|
// map it to the literal union without an assertion.
|
|
46
49
|
const dbPlatform = flags['db-platform'] === 'postgresql' ? 'postgresql' : flags['db-platform'] === 'sqlserver' ? 'sqlserver' : undefined;
|
|
50
|
+
const includeClaudePack = !flags['no-claude-pack'];
|
|
47
51
|
const result = await createDistributionBundle({
|
|
48
52
|
Out: out,
|
|
49
53
|
Ref: ref,
|
|
@@ -51,12 +55,14 @@ export default class Bundle extends Command {
|
|
|
51
55
|
SourceDir: source,
|
|
52
56
|
IncludeMigrations: flags['with-migrations'],
|
|
53
57
|
MigrationPlatform: dbPlatform,
|
|
58
|
+
IncludeClaudePack: includeClaudePack,
|
|
54
59
|
});
|
|
55
60
|
if (flags.verbose && result.UsedFallback) {
|
|
56
61
|
this.log('Blobless partial clone unavailable; used the full sparse-checkout fallback.');
|
|
57
62
|
}
|
|
58
63
|
const migrationsNote = flags['with-migrations'] ? `, including migrations${dbPlatform ? ` (${dbPlatform})` : ''}` : '';
|
|
59
|
-
|
|
64
|
+
const packNote = includeClaudePack ? '' : ' (Claude pack excluded)';
|
|
65
|
+
this.log(`Created ${result.Out} (${result.EntryCount} entries${migrationsNote}${packNote}).`);
|
|
60
66
|
}
|
|
61
67
|
}
|
|
62
68
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;aAClC,gBAAW,GAAG,yFAAyF,CAAC;aAExG,aAAQ,GAAG;QAChB,4DAA4D;QAC5D,0EAA0E;QAC1E,uEAAuE;QACvE,4FAA4F;QAC5F,uGAAuG;KACxG,CAAC;aAEK,UAAK,GAAG;QACb,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,0EAA0E,EAAE,CAAC;QACzH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8EAA8E,EAAE,CAAC;QACrH,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,qIAAqI;SACnJ,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,kFAAkF;YAC/F,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;YACpC,SAAS,EAAE,CAAC,iBAAiB,CAAC;SAC/B,CAAC;QACF,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,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,2FAA2F;QAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,MAAM,EAAE,YAAY,IAAI,MAAM,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,OAAO,IAAI,mCAAmC,KAAK,CAAC,CAAC;QAEzI,+EAA+E;QAC/E,oDAAoD;QACpD,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzI,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;YAC5C,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM;YACjB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;YAC3C,iBAAiB,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
description: string;
|
|
8
|
-
}[];
|
|
9
|
-
static flags: {
|
|
10
|
-
skipdb: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
-
skipfiles: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
|
-
'force-advanced-gen': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
};
|
|
14
|
-
flags: ParserOutput<CodeGen>['flags'];
|
|
15
|
-
run(): Promise<void>;
|
|
16
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Thin oclif shim — the real logic lives in {@link CodeGenPlugin} in
|
|
3
|
+
* `@memberjunction/codegen-lib/plugins` (plan §3). See sync/push.ts for the
|
|
4
|
+
* shim rationale. Adds `--format=json` and the slow-command runtime advisory.
|
|
5
|
+
*/
|
|
6
|
+
export { CodeGenPlugin as default } from '@memberjunction/codegen-lib/plugins';
|
|
17
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1,91 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
generates synchronized code across the entire stack:
|
|
8
|
-
|
|
9
|
-
- SQL views, stored procedures, indexes, and permissions
|
|
10
|
-
- TypeScript entity classes with Zod validation schemas
|
|
11
|
-
- Angular form components with AI-driven layouts
|
|
12
|
-
- GraphQL resolvers and type definitions
|
|
13
|
-
- Action subclasses and DB schema JSON
|
|
14
|
-
|
|
15
|
-
Configuration is loaded from mj.config.cjs in the current directory (or parent
|
|
16
|
-
directories). Database connection can also be set via environment variables:
|
|
17
|
-
DB_HOST, DB_DATABASE, CODEGEN_DB_USERNAME, CODEGEN_DB_PASSWORD.
|
|
18
|
-
|
|
19
|
-
Use --skipdb to skip all database operations (metadata sync, SQL object
|
|
20
|
-
generation) and only regenerate TypeScript, Angular, and GraphQL output from
|
|
21
|
-
existing metadata.
|
|
22
|
-
|
|
23
|
-
Use --skipfiles to skip all file-generation operations (TypeScript entities,
|
|
24
|
-
Angular components, GraphQL resolvers, action subclasses, DB schema JSON) and
|
|
25
|
-
only run database-side operations (metadata sync, SQL object generation,
|
|
26
|
-
permissions, custom SQL scripts).
|
|
27
|
-
|
|
28
|
-
--skipdb and --skipfiles are independent and can be combined in any mix.
|
|
29
|
-
|
|
30
|
-
Use --force-advanced-gen to bypass Pass 2 entity scoping and re-run the LLM-driven
|
|
31
|
-
advanced generation (smart fields, form layout) for ALL entities. Useful when AI
|
|
32
|
-
prompts have changed and you want unchanged entities re-evaluated.`; }
|
|
33
|
-
static { this.examples = [
|
|
34
|
-
{
|
|
35
|
-
command: '<%= config.bin %> <%= command.id %>',
|
|
36
|
-
description: 'Run the full code generation pipeline',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
command: '<%= config.bin %> <%= command.id %> --skipdb',
|
|
40
|
-
description: 'Regenerate code files without touching the database',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
command: '<%= config.bin %> <%= command.id %> --skipfiles',
|
|
44
|
-
description: 'Run database-side operations only, without regenerating any code files',
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
command: '<%= config.bin %> <%= command.id %> --force-advanced-gen',
|
|
48
|
-
description: 'Re-run advanced generation for all entities (bypasses changed-entity scoping)',
|
|
49
|
-
},
|
|
50
|
-
]; }
|
|
51
|
-
static { this.flags = {
|
|
52
|
-
skipdb: Flags.boolean({
|
|
53
|
-
description: 'Skip database operations (metadata sync, SQL generation). Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.',
|
|
54
|
-
}),
|
|
55
|
-
skipfiles: Flags.boolean({
|
|
56
|
-
description: 'Skip file-generation operations (TypeScript entities, Angular components, GraphQL resolvers, action subclasses, DB schema JSON). Only run database-side operations.',
|
|
57
|
-
}),
|
|
58
|
-
'force-advanced-gen': Flags.boolean({
|
|
59
|
-
description: 'Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities. Used when AI prompts have changed and unchanged entities should be re-evaluated.',
|
|
60
|
-
}),
|
|
61
|
-
}; }
|
|
62
|
-
async run() {
|
|
63
|
-
const { runMemberJunctionCodeGeneration, initializeConfig, configInfo } = await import('@memberjunction/codegen-lib');
|
|
64
|
-
const parsed = await this.parse(CodeGen);
|
|
65
|
-
this.flags = parsed.flags;
|
|
66
|
-
const config = updatedConfig();
|
|
67
|
-
if (!config) {
|
|
68
|
-
this.error('No configuration found. Ensure mj.config.cjs exists in the current directory or a parent directory.');
|
|
69
|
-
}
|
|
70
|
-
// Initialize configuration
|
|
71
|
-
initializeConfig(process.cwd());
|
|
72
|
-
// --force-advanced-gen bypasses Pass 2 scoping by toggling the existing
|
|
73
|
-
// forceRegeneration.enabled config flag. Both the Pass 2 scoping logic in
|
|
74
|
-
// sql_codegen.ts and the advanced-generation scope check in manage-metadata.ts
|
|
75
|
-
// honor this same flag, so flipping it here gives a uniform "process all entities"
|
|
76
|
-
// override across both code paths.
|
|
77
|
-
if (this.flags['force-advanced-gen']) {
|
|
78
|
-
if (!configInfo.forceRegeneration) {
|
|
79
|
-
// Initialize the object if it's missing — don't crash if config schema is sparse
|
|
80
|
-
configInfo.forceRegeneration = { enabled: true };
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
configInfo.forceRegeneration.enabled = true;
|
|
84
|
-
}
|
|
85
|
-
this.log('--force-advanced-gen: bypassing entity scoping; advanced generation will re-run for all entities.');
|
|
86
|
-
}
|
|
87
|
-
// Call the function with the determined arguments
|
|
88
|
-
runMemberJunctionCodeGeneration(this.flags.skipdb, this.flags.skipfiles);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Thin oclif shim — the real logic lives in {@link CodeGenPlugin} in
|
|
3
|
+
* `@memberjunction/codegen-lib/plugins` (plan §3). See sync/push.ts for the
|
|
4
|
+
* shim rationale. Adds `--format=json` and the slow-command runtime advisory.
|
|
5
|
+
*/
|
|
6
|
+
export { CodeGenPlugin as default } from '@memberjunction/codegen-lib/plugins';
|
|
91
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DomainUsageCommand } from '../../lib/domain-usage-command.js';
|
|
2
|
+
/** Tier-2 usage for the `codegen` domain (`mj codegen usage`). */
|
|
3
|
+
export default class CodeGenUsage extends DomainUsageCommand {
|
|
4
|
+
static description: string;
|
|
5
|
+
protected Domain: string;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,WAAW,SAAsE;IACxF,SAAS,CAAC,MAAM,SAAa;CAC9B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainUsageCommand } from '../../lib/domain-usage-command.js';
|
|
2
|
+
/** Tier-2 usage for the `codegen` domain (`mj codegen usage`). */
|
|
3
|
+
export default class CodeGenUsage extends DomainUsageCommand {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.Domain = 'codegen';
|
|
7
|
+
}
|
|
8
|
+
static { this.description = 'Show usage, flags, examples, and runtime hints for `mj codegen`.'; }
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/commands/codegen/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,kBAAkB;IAA5D;;QAEY,WAAM,GAAG,SAAS,CAAC;IAC/B,CAAC;aAFQ,gBAAW,GAAG,kEAAkE,AAArE,CAAsE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
import { type InstallPackOptions } from '../../lib/claude-pack/PackInstaller.js';
|
|
3
|
+
/**
|
|
4
|
+
* `mj install:claude` — install or refresh the Claude Code pack in the
|
|
5
|
+
* current directory.
|
|
6
|
+
*
|
|
7
|
+
* Pure flag-parsing + output-rendering wrapper around `installPack()`.
|
|
8
|
+
* See plans/claude-install-pack.md §7.4 (flags) and §7.5 (--json shape).
|
|
9
|
+
*/
|
|
10
|
+
export default class InstallClaude extends Command {
|
|
11
|
+
static description: string;
|
|
12
|
+
static examples: string[];
|
|
13
|
+
static flags: {
|
|
14
|
+
dir: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
+
major: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
16
|
+
ref: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
17
|
+
from: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
18
|
+
offline: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
|
+
'dry-run': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
20
|
+
yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
21
|
+
force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
22
|
+
'skip-commands': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
23
|
+
'skip-skills': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
24
|
+
'skip-settings': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
25
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
26
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
27
|
+
};
|
|
28
|
+
run(): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Translate oclif flag bag → `installPack` options. Extracted so update:claude
|
|
32
|
+
* can reuse the shared install-style options (it adds its own on top).
|
|
33
|
+
*/
|
|
34
|
+
export declare function mapFlagsToInstallOptions(flags: Record<string, unknown>, onProgress?: (msg: string) => void): InstallPackOptions;
|
|
35
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/commands/install/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAG9F;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAAuE;IAEzF,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MA2CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,kBAAkB,CAcpB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import { installPack } from '../../lib/claude-pack/PackInstaller.js';
|
|
3
|
+
import { formatJson, formatPretty } from '../../lib/claude-pack/PackOutputFormatter.js';
|
|
4
|
+
/**
|
|
5
|
+
* `mj install:claude` — install or refresh the Claude Code pack in the
|
|
6
|
+
* current directory.
|
|
7
|
+
*
|
|
8
|
+
* Pure flag-parsing + output-rendering wrapper around `installPack()`.
|
|
9
|
+
* See plans/claude-install-pack.md §7.4 (flags) and §7.5 (--json shape).
|
|
10
|
+
*/
|
|
11
|
+
export default class InstallClaude extends Command {
|
|
12
|
+
static { this.description = 'Install or refresh the Claude Code pack in the current directory.'; }
|
|
13
|
+
static { this.examples = [
|
|
14
|
+
'<%= config.bin %> install:claude',
|
|
15
|
+
'<%= config.bin %> install:claude --dry-run',
|
|
16
|
+
'<%= config.bin %> install:claude --from ./local-pack',
|
|
17
|
+
'<%= config.bin %> install:claude --json',
|
|
18
|
+
]; }
|
|
19
|
+
static { this.flags = {
|
|
20
|
+
dir: Flags.string({
|
|
21
|
+
description: 'Target directory for the install',
|
|
22
|
+
default: '.',
|
|
23
|
+
}),
|
|
24
|
+
major: Flags.string({
|
|
25
|
+
description: 'Force a specific MJ major (default: detected from package.json)',
|
|
26
|
+
}),
|
|
27
|
+
ref: Flags.string({
|
|
28
|
+
description: 'Git ref to fetch from (branch or tag). Default: main.',
|
|
29
|
+
}),
|
|
30
|
+
from: Flags.string({
|
|
31
|
+
description: 'Use a local pack source instead of fetching from GitHub',
|
|
32
|
+
}),
|
|
33
|
+
offline: Flags.boolean({
|
|
34
|
+
description: 'Forbid network; requires --from <path>',
|
|
35
|
+
}),
|
|
36
|
+
'dry-run': Flags.boolean({
|
|
37
|
+
description: 'Print what would be written; change nothing',
|
|
38
|
+
}),
|
|
39
|
+
yes: Flags.boolean({
|
|
40
|
+
char: 'y',
|
|
41
|
+
description: "Don't prompt (reserved for future interactive paths; currently no-op)",
|
|
42
|
+
}),
|
|
43
|
+
force: Flags.boolean({
|
|
44
|
+
description: 'Overwrite user-customized commands/skills (saves .bak files)',
|
|
45
|
+
}),
|
|
46
|
+
'skip-commands': Flags.boolean({
|
|
47
|
+
description: 'Skip seeding .claude/commands/',
|
|
48
|
+
}),
|
|
49
|
+
'skip-skills': Flags.boolean({
|
|
50
|
+
description: 'Skip seeding .claude/skills/',
|
|
51
|
+
}),
|
|
52
|
+
'skip-settings': Flags.boolean({
|
|
53
|
+
description: 'Skip merging .claude/settings.json',
|
|
54
|
+
}),
|
|
55
|
+
json: Flags.boolean({
|
|
56
|
+
description: 'Output as JSON (matches plan §7.5 schema)',
|
|
57
|
+
}),
|
|
58
|
+
verbose: Flags.boolean({
|
|
59
|
+
char: 'v',
|
|
60
|
+
description: 'Show progress messages from the fetcher and merger',
|
|
61
|
+
}),
|
|
62
|
+
}; }
|
|
63
|
+
async run() {
|
|
64
|
+
const { flags } = await this.parse(InstallClaude);
|
|
65
|
+
const opts = mapFlagsToInstallOptions(flags, (msg) => {
|
|
66
|
+
if (flags.verbose && !flags.json)
|
|
67
|
+
this.log(msg);
|
|
68
|
+
});
|
|
69
|
+
const result = await installPack(opts);
|
|
70
|
+
if (flags.json) {
|
|
71
|
+
this.log(formatJson(result));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.log(formatPretty(result));
|
|
75
|
+
}
|
|
76
|
+
if (!result.ok)
|
|
77
|
+
this.exit(1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Translate oclif flag bag → `installPack` options. Extracted so update:claude
|
|
82
|
+
* can reuse the shared install-style options (it adds its own on top).
|
|
83
|
+
*/
|
|
84
|
+
export function mapFlagsToInstallOptions(flags, onProgress) {
|
|
85
|
+
return {
|
|
86
|
+
TargetDir: asString(flags.dir, '.'),
|
|
87
|
+
Major: asOptString(flags.major),
|
|
88
|
+
Ref: asOptString(flags.ref),
|
|
89
|
+
FromPath: asOptString(flags.from),
|
|
90
|
+
Offline: asBool(flags.offline),
|
|
91
|
+
DryRun: asBool(flags['dry-run']),
|
|
92
|
+
Force: asBool(flags.force),
|
|
93
|
+
SkipCommands: asBool(flags['skip-commands']),
|
|
94
|
+
SkipSkills: asBool(flags['skip-skills']),
|
|
95
|
+
SkipSettings: asBool(flags['skip-settings']),
|
|
96
|
+
OnProgress: onProgress,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function asString(v, fallback) {
|
|
100
|
+
return typeof v === 'string' && v.length > 0 ? v : fallback;
|
|
101
|
+
}
|
|
102
|
+
function asOptString(v) {
|
|
103
|
+
return typeof v === 'string' && v.length > 0 ? v : undefined;
|
|
104
|
+
}
|
|
105
|
+
function asBool(v) {
|
|
106
|
+
return v === true;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/commands/install/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export default class Install extends Command {
|
|
|
16
16
|
fast: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
17
17
|
'overwrite-config': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
18
|
monorepo: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
|
+
'no-claude-pack': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
20
|
};
|
|
20
21
|
run(): Promise<void>;
|
|
21
22
|
private runEngineInstall;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAe7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAkD;IAEpE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAe7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAkD;IAEpE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;MAiDV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAeZ,gBAAgB;IAqD9B,OAAO,CAAC,iBAAiB;YA0CX,iBAAiB;IA0C/B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,cAAc;CAQvB"}
|
|
@@ -57,6 +57,9 @@ export default class Install extends Command {
|
|
|
57
57
|
monorepo: Flags.boolean({
|
|
58
58
|
description: 'Install the full MemberJunction source repository instead of the lightweight distribution. Use this for MJ framework development.',
|
|
59
59
|
}),
|
|
60
|
+
'no-claude-pack': Flags.boolean({
|
|
61
|
+
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.',
|
|
62
|
+
}),
|
|
60
63
|
}; }
|
|
61
64
|
async run() {
|
|
62
65
|
const { flags } = await this.parse(Install);
|
|
@@ -79,6 +82,7 @@ export default class Install extends Command {
|
|
|
79
82
|
SkipDB: flags['skip-db'],
|
|
80
83
|
SkipStart: flags['skip-start'],
|
|
81
84
|
Fast: fast,
|
|
85
|
+
NoClaudePack: flags['no-claude-pack'],
|
|
82
86
|
});
|
|
83
87
|
if (flags['dry-run']) {
|
|
84
88
|
this.renderDryRun(plan);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,eAAe,GAQhB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;aACnC,gBAAW,GAAG,8CAA8C,CAAC;aAE7D,aAAQ,GAAG;QAChB,qCAAqC;QACrC,+CAA+C;QAC/C,+CAA+C;QAC/C,2CAA2C;KAC5C,CAAC;aAEK,UAAK,GAAG;QACb,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2EAA2E;SACzF,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,uCAAuC;YACpD,OAAO,EAAE,GAAG;SACb,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,8EAA8E;SAC5F,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,8DAA8D;YAC3E,MAAM,EAAE,IAAI;SACb,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,4CAA4C;SAC1D,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,sEAAsE;SACpF,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,sBAAsB;SACpC,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,mCAAmC;SACjD,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1B,WAAW,EAAE,sCAAsC;SACpD,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,gDAAgD;SAC9D,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,4GAA4G;SAC1H,CAAC;QACF,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,WAAW,EAAE,kGAAkG;SAChH,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,mIAAmI;SACjJ,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAEtE,KAAK,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,23 @@ import { Command } from '@oclif/core';
|
|
|
4
4
|
*
|
|
5
5
|
* Scans the SQL Server migrations directory, identifies files that don't
|
|
6
6
|
* have a corresponding .pg.sql counterpart in the PG migrations directory,
|
|
7
|
-
* and converts them
|
|
7
|
+
* and converts them.
|
|
8
|
+
*
|
|
9
|
+
* Two strategies:
|
|
10
|
+
* - `--split` (split-and-regenerate, the standard path): classify content by the
|
|
11
|
+
* generator that produced it, transpile only hand-written DDL via the AST dialect
|
|
12
|
+
* (sqlglot `mj_postgres.py`), drop CodeGen objects (regenerated by `mj codegen`)
|
|
13
|
+
* and mj-sync metadata (re-seeded by `mj sync push`), and surface every gap loudly.
|
|
14
|
+
* Requires Python 3 with sqlglot (`pip install sqlglot`; set MJ_SQLGLOT_PYTHON if
|
|
15
|
+
* not `python3` on PATH).
|
|
16
|
+
* - default (legacy): the regex-based BatchConverter rule pipeline, which converts
|
|
17
|
+
* everything including appended CodeGen output. Retained for compatibility.
|
|
8
18
|
*
|
|
9
19
|
* Usage:
|
|
10
|
-
* mj migrate convert
|
|
11
|
-
* mj migrate convert --file V20260401__foo.sql
|
|
12
|
-
* mj migrate convert --dry-run
|
|
13
|
-
* mj migrate convert
|
|
20
|
+
* mj migrate convert --split # Standard split-and-regenerate conversion
|
|
21
|
+
* mj migrate convert --split --file V20260401__foo.sql
|
|
22
|
+
* mj migrate convert --split --dry-run
|
|
23
|
+
* mj migrate convert # Legacy regex pipeline
|
|
14
24
|
*/
|
|
15
25
|
export default class MigrateConvert extends Command {
|
|
16
26
|
static description: string;
|
|
@@ -23,18 +33,55 @@ export default class MigrateConvert extends Command {
|
|
|
23
33
|
'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
24
34
|
'no-header': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
25
35
|
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
36
|
+
split: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
37
|
+
'allow-gaps': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
38
|
+
'bake-codegen': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
26
39
|
};
|
|
27
40
|
run(): Promise<void>;
|
|
28
41
|
/**
|
|
29
|
-
*
|
|
42
|
+
* Split-and-regenerate conversion (the standard path). Classification routes
|
|
43
|
+
* content by the generator that produced it; the AST dialect transpiles what's
|
|
44
|
+
* kept. Contract: nothing is dropped silently —
|
|
45
|
+
* - needs-hand migrations are written as `<name>.pg.sql.needs-hand` (NOT a
|
|
46
|
+
* discoverable `.pg.sql`, so the migration stays visibly unconverted until a
|
|
47
|
+
* human finishes it) and fail the run;
|
|
48
|
+
* - statements the dialect couldn't emit are embedded as gap comments in the
|
|
49
|
+
* output, listed in the summary, and fail the run unless --allow-gaps.
|
|
50
|
+
*
|
|
51
|
+
* See plans/pg-migration-architecture/SPLIT_AND_REGENERATE_PROPOSAL.md.
|
|
52
|
+
*/
|
|
53
|
+
private runSplit;
|
|
54
|
+
/**
|
|
55
|
+
* Construct the AST transpiler with the cross-file BIT/BOOLEAN column registry
|
|
56
|
+
* collected from the baselines (they declare the core tables, e.g. User.IsActive),
|
|
57
|
+
* so per-file transpiles can coerce 1/0 → TRUE/FALSE in seed INSERTs that target
|
|
58
|
+
* tables defined outside the migration being converted. Fails fast with install
|
|
59
|
+
* guidance when Python/sqlglot is unavailable.
|
|
60
|
+
*/
|
|
61
|
+
private buildTranspiler;
|
|
62
|
+
/**
|
|
63
|
+
* Build the inline-baking driver: connect to the live working PG database (the same
|
|
64
|
+
* config/env `mj codegen` uses) and wire its apply / metadata-refresh / per-entity capture
|
|
65
|
+
* into an IncrementalBaker.
|
|
30
66
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
67
|
+
* The codegen engine + data-provider stack is heavy and only this opt-in path needs it, so
|
|
68
|
+
* the value graph is loaded with a dynamic import here (Rule 8 case 3 — bundle-size deferral;
|
|
69
|
+
* codegen-lib + core are declared MJCLI deps) to keep a plain `convert --split` light. The
|
|
70
|
+
* matching `import type` at the top is erased at runtime, so it does not defeat the deferral.
|
|
71
|
+
*/
|
|
72
|
+
private buildBaker;
|
|
73
|
+
/** Print the split-and-regenerate run summary and the mandatory next steps. */
|
|
74
|
+
private printSplitSummary;
|
|
75
|
+
/**
|
|
76
|
+
* Discovers T-SQL migrations that don't have a corresponding PG counterpart.
|
|
33
77
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
78
|
+
* A T-SQL file like `V202604060452__v5.24.x__Foo.sql` maps to
|
|
79
|
+
* `V202604060452__v5.24.x__Foo.pg.sql` in the output directory; a `.pg-only.sql`
|
|
80
|
+
* variant also counts as a counterpart (manual PG-specific override). Counterpart
|
|
81
|
+
* presence is the only filter — baselines (B__) convert like any other file when
|
|
82
|
+
* their `.pg.sql` is missing (statement-mode classification handles them).
|
|
83
|
+
* `.needs-hand` artifacts are deliberately NOT counterparts: a migration stays
|
|
84
|
+
* unconverted until its gaps are resolved and the file is renamed to `.pg.sql`.
|
|
38
85
|
*/
|
|
39
86
|
private discoverUnconverted;
|
|
40
87
|
private mergeStats;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AA4B7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,MAAM,CAAC,WAAW,SAA4C;IAE9D,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAmDV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAuH1B;;;;;;;;;;;OAWG;YACW,QAAQ;IA4HtB;;;;;;OAMG;YACW,eAAe;IA0B7B;;;;;;;;;OASG;YACW,UAAU;IA2CxB,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAwCzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA6C3B,OAAO,CAAC,UAAU;CAmBnB"}
|