@memberjunction/cli 5.48.0 → 5.50.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/artifacts/reclassify.d.ts.map +1 -1
- package/dist/commands/artifacts/reclassify.js +5 -2
- package/dist/commands/artifacts/reclassify.js.map +1 -1
- package/dist/commands/codegen/manifest.d.ts +15 -2
- package/dist/commands/codegen/manifest.d.ts.map +1 -1
- package/dist/commands/codegen/manifest.js +41 -5
- package/dist/commands/codegen/manifest.js.map +1 -1
- package/dist/commands/migrate/convert.d.ts +46 -0
- package/dist/commands/migrate/convert.d.ts.map +1 -1
- package/dist/commands/migrate/convert.js +106 -11
- package/dist/commands/migrate/convert.js.map +1 -1
- package/dist/commands/migrate/index.d.ts +12 -0
- package/dist/commands/migrate/index.d.ts.map +1 -1
- package/dist/commands/migrate/index.js +47 -2
- package/dist/commands/migrate/index.js.map +1 -1
- package/dist/commands/test/run.d.ts +1 -0
- package/dist/commands/test/run.d.ts.map +1 -1
- package/dist/commands/test/run.js +6 -0
- package/dist/commands/test/run.js.map +1 -1
- package/dist/commands/test/suite.d.ts +1 -0
- package/dist/commands/test/suite.d.ts.map +1 -1
- package/dist/commands/test/suite.js +6 -0
- package/dist/commands/test/suite.js.map +1 -1
- package/dist/config.d.ts +15 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -2
- package/dist/config.js.map +1 -1
- package/dist/utils/open-app-context.d.ts.map +1 -1
- package/dist/utils/open-app-context.js +3 -0
- package/dist/utils/open-app-context.js.map +1 -1
- package/oclif.manifest.json +809 -795
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reclassify.d.ts","sourceRoot":"","sources":["../../../src/commands/artifacts/reclassify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAqB7C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IACpD,MAAM,CAAC,WAAW,SAIsG;IAExH,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"reclassify.d.ts","sourceRoot":"","sources":["../../../src/commands/artifacts/reclassify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAqB7C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IACpD,MAAM,CAAC,WAAW,SAIsG;IAExH,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAkGZ,qBAAqB;CA6FtC"}
|
|
@@ -2,7 +2,7 @@ import { Command, Flags } from '@oclif/core';
|
|
|
2
2
|
import ora from 'ora-classic';
|
|
3
3
|
import sql from 'mssql';
|
|
4
4
|
import { ArtifactMetadataEngine } from '@memberjunction/core-entities';
|
|
5
|
-
import { RunView, LogStatus, SetProductionStatus } from '@memberjunction/core';
|
|
5
|
+
import { ResolveStartupMode, RunView, LogStatus, SetProductionStatus } from '@memberjunction/core';
|
|
6
6
|
import { UUIDsEqual } from '@memberjunction/global';
|
|
7
7
|
import { setupSQLServerClient, SQLServerProviderConfigData, UserCache } from '@memberjunction/sqlserver-dataprovider';
|
|
8
8
|
import { getValidatedConfig } from '../../config.js';
|
|
@@ -41,7 +41,10 @@ export default class ArtifactsReclassify extends Command {
|
|
|
41
41
|
});
|
|
42
42
|
await pool.connect();
|
|
43
43
|
const providerConfig = new SQLServerProviderConfigData(pool, config.coreSchema ?? '__mj');
|
|
44
|
-
|
|
44
|
+
// One-shot CLI command ⇒ 'task' default: skip engine pre-warm; the
|
|
45
|
+
// ArtifactMetadataEngine.Config() call below lazy-loads what it needs
|
|
46
|
+
const startupMode = ResolveStartupMode({ configValue: config.startup?.mode, defaultMode: 'task' });
|
|
47
|
+
await setupSQLServerClient(providerConfig, { mode: startupMode.mode });
|
|
45
48
|
const sysUser = UserCache.Instance.GetSystemUser();
|
|
46
49
|
if (!sysUser) {
|
|
47
50
|
spinner.fail('System user not found in UserCache.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reclassify.js","sourceRoot":"","sources":["../../../src/commands/artifacts/reclassify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"reclassify.js","sourceRoot":"","sources":["../../../src/commands/artifacts/reclassify.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,23 @@ export interface OpenAppClientEntry {
|
|
|
10
10
|
*
|
|
11
11
|
* - Strips any prior managed block first, so the result is idempotent (re-running with
|
|
12
12
|
* the same entries is a no-op; changed entries fully replace the block).
|
|
13
|
-
* - Enabled entries become `import '<pkg>'
|
|
14
|
-
*
|
|
13
|
+
* - Enabled entries become a REFERENCED namespace import (`import * as _n from '<pkg>'`)
|
|
14
|
+
* collected into an exported `unknown[]` that is anchored by an observable side effect
|
|
15
|
+
* (a `globalThis` assignment). Disabled entries become a comment so a re-enable
|
|
16
|
+
* restores the import without losing the record.
|
|
15
17
|
* - Zero entries => the block is removed entirely (no stale imports left behind).
|
|
16
18
|
*
|
|
19
|
+
* Why namespace imports and not a bare `import '<pkg>';`: a bare side-effect import
|
|
20
|
+
* is legally dropped by production bundlers (esbuild/Angular) when the imported
|
|
21
|
+
* package declares `"sideEffects": false` in its package.json — which some open-app
|
|
22
|
+
* `-ng` packages do (e.g. `@mj-biz-apps/committees-ng`). When that happens the
|
|
23
|
+
* package's module-scope `@RegisterClass(...)` calls never run, so its view/resource
|
|
24
|
+
* components (e.g. `MemberHomeComponent`) are absent from the build. A namespace
|
|
25
|
+
* import that is actually referenced forces the bundler to evaluate the module.
|
|
26
|
+
* The `globalThis` assignment guarantees the reference (and thus the whole block)
|
|
27
|
+
* survives even aggressive dead-code elimination, independent of how the host app
|
|
28
|
+
* consumes the manifest.
|
|
29
|
+
*
|
|
17
30
|
* Exported for unit testing of the idempotency / disabled / cleared cases.
|
|
18
31
|
*/
|
|
19
32
|
export declare function applyOpenAppClientBootstrapBlock(content: string, clientEntries: OpenAppClientEntry[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AASD
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAoC7G;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SAWwD;IAE1E,MAAM,CAAC,QAAQ;;;QAyBb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAwDV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;CAcvC"}
|
|
@@ -13,19 +13,55 @@ function escapeRegex(s) {
|
|
|
13
13
|
*
|
|
14
14
|
* - Strips any prior managed block first, so the result is idempotent (re-running with
|
|
15
15
|
* the same entries is a no-op; changed entries fully replace the block).
|
|
16
|
-
* - Enabled entries become `import '<pkg>'
|
|
17
|
-
*
|
|
16
|
+
* - Enabled entries become a REFERENCED namespace import (`import * as _n from '<pkg>'`)
|
|
17
|
+
* collected into an exported `unknown[]` that is anchored by an observable side effect
|
|
18
|
+
* (a `globalThis` assignment). Disabled entries become a comment so a re-enable
|
|
19
|
+
* restores the import without losing the record.
|
|
18
20
|
* - Zero entries => the block is removed entirely (no stale imports left behind).
|
|
19
21
|
*
|
|
22
|
+
* Why namespace imports and not a bare `import '<pkg>';`: a bare side-effect import
|
|
23
|
+
* is legally dropped by production bundlers (esbuild/Angular) when the imported
|
|
24
|
+
* package declares `"sideEffects": false` in its package.json — which some open-app
|
|
25
|
+
* `-ng` packages do (e.g. `@mj-biz-apps/committees-ng`). When that happens the
|
|
26
|
+
* package's module-scope `@RegisterClass(...)` calls never run, so its view/resource
|
|
27
|
+
* components (e.g. `MemberHomeComponent`) are absent from the build. A namespace
|
|
28
|
+
* import that is actually referenced forces the bundler to evaluate the module.
|
|
29
|
+
* The `globalThis` assignment guarantees the reference (and thus the whole block)
|
|
30
|
+
* survives even aggressive dead-code elimination, independent of how the host app
|
|
31
|
+
* consumes the manifest.
|
|
32
|
+
*
|
|
20
33
|
* Exported for unit testing of the idempotency / disabled / cleared cases.
|
|
21
34
|
*/
|
|
22
35
|
export function applyOpenAppClientBootstrapBlock(content, clientEntries) {
|
|
23
36
|
const blockPattern = new RegExp(`\\n*${escapeRegex(OPEN_APP_BOOTSTRAP_BEGIN)}[\\s\\S]*?${escapeRegex(OPEN_APP_BOOTSTRAP_END)}\\n*`, 'g');
|
|
24
37
|
let result = content.replace(blockPattern, '\n').replace(/\n+$/, '\n');
|
|
25
38
|
if (clientEntries.length > 0) {
|
|
26
|
-
const lines =
|
|
27
|
-
|
|
28
|
-
|
|
39
|
+
const lines = [];
|
|
40
|
+
const refs = [];
|
|
41
|
+
clientEntries.forEach((e, i) => {
|
|
42
|
+
if (e.Enabled === false) {
|
|
43
|
+
lines.push(`// '${e.PackageName}' disabled by \`mj app disable\``);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const alias = `__openAppClient${i}`;
|
|
47
|
+
lines.push(`import * as ${alias} from '${e.PackageName}';`);
|
|
48
|
+
refs.push(alias);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// Anchor: the exported array references every namespace, and the globalThis
|
|
52
|
+
// assignment is an observable side effect the bundler must preserve — which
|
|
53
|
+
// keeps the array, the namespace imports, and their @RegisterClass side effects.
|
|
54
|
+
//
|
|
55
|
+
// `unknown[]` rather than `any[]`: the elements are module namespace objects that
|
|
56
|
+
// exist only to be referenced. Nothing reads them, so there is no member access to
|
|
57
|
+
// type — `unknown` states that precisely and needs no eslint escape hatch.
|
|
58
|
+
lines.push('');
|
|
59
|
+
lines.push(`export const OPEN_APP_CLIENT_MODULES: unknown[] = [${refs.join(', ')}];`);
|
|
60
|
+
// Bracket access, not dot: `globalThis` is cast to `Record<string, unknown>`, so this
|
|
61
|
+
// property comes from an index signature. Consumers compile this generated file under
|
|
62
|
+
// their own tsconfig, and MJExplorer sets `noPropertyAccessFromIndexSignature: true`,
|
|
63
|
+
// which rejects dot access here (TS4111) and fails its build with zero JS emitted.
|
|
64
|
+
lines.push("(globalThis as Record<string, unknown>)['__mjOpenAppClientModules'] = OPEN_APP_CLIENT_MODULES;");
|
|
29
65
|
result = `${result.replace(/\n+$/, '')}\n\n${OPEN_APP_BOOTSTRAP_BEGIN}\n${lines.join('\n')}\n${OPEN_APP_BOOTSTRAP_END}\n`;
|
|
30
66
|
}
|
|
31
67
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQpD,MAAM,wBAAwB,GAAG,8FAA8F,CAAC;AAChI,MAAM,sBAAsB,GAAG,8CAA8C,CAAC;AAE9E,SAAS,WAAW,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,49 @@
|
|
|
1
1
|
import { Command } from '@oclif/core';
|
|
2
|
+
import type { MigrationConversionResult, BakedMigrationResult } from '@memberjunction/sql-converter';
|
|
3
|
+
/**
|
|
4
|
+
* The fields runSplit consumes from a per-migration conversion, shared by the transpile-only
|
|
5
|
+
* path (`convertMigration` → no `mode`) and the inline-baking path (`IncrementalBaker` → carries
|
|
6
|
+
* `mode`). An INTERSECTION (not a bare `Pick`) because `MigrationConversionResult` has no `mode`
|
|
7
|
+
* field — the baker's `mode`/`reconciliation` are optional here (issue #3252 Phase 4b).
|
|
8
|
+
*/
|
|
9
|
+
type ConvertedShape = Pick<MigrationConversionResult, 'status' | 'pgSQL' | 'unhandled' | 'handProcedural'> & {
|
|
10
|
+
mode?: BakedMigrationResult['mode'];
|
|
11
|
+
reconciliation?: MigrationConversionResult['reconciliation'];
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Decide how to write and gate one per-migration conversion result (issue #3252 Phase 4d).
|
|
15
|
+
* Pure — no I/O — so the write/halt policy is unit-testable apart from the oclif command.
|
|
16
|
+
*
|
|
17
|
+
* - `writeAsNeedsHand`: a needs-hand-authoring file OR any bake-mode `gap-no-bake` result is
|
|
18
|
+
* written `<name>.pg.sql.needs-hand` (never a discoverable `.pg.sql`), so an incomplete
|
|
19
|
+
* migration stays visibly unconverted. A non-bake `converted`+unhandled file keeps the
|
|
20
|
+
* existing behavior (a discoverable `.pg.sql` with embedded gap comments).
|
|
21
|
+
* - `isGap`: needs-hand, any unhandled statement, or a bake `gap-no-bake` — anything that must
|
|
22
|
+
* fail the run unless `--allow-gaps` (which is disallowed in bake mode, 4f).
|
|
23
|
+
* - `haltBake`: gated on the baker's `mode`, NOT on `isGap`. Only `mode === 'gap-no-bake'` means the
|
|
24
|
+
* working DB was NOT advanced past this migration (a gappy FORWARD migration the baker refused to
|
|
25
|
+
* apply); halting there stops later bakes from running against a stale schema. A baseline the baker
|
|
26
|
+
* exempts to `mode: 'baked'` despite a `needs-hand-authoring` status (its pre-seeded metadata made
|
|
27
|
+
* the capture complete — IncrementalBaker baseline path) DID advance the DB, so it must be written
|
|
28
|
+
* `.needs-hand` and reported as a gap yet must NOT halt — otherwise every subsequent migration is
|
|
29
|
+
* blocked from baking at the baseline. Keying off `status`/`unhandled` would wrongly halt it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function decideConvertWrite(result: Pick<ConvertedShape, 'status' | 'unhandled' | 'mode'>, bakeCodegen: boolean): {
|
|
32
|
+
isGap: boolean;
|
|
33
|
+
writeAsNeedsHand: boolean;
|
|
34
|
+
haltBake: boolean;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Build the `.needs-hand` file body for a conversion FAILURE (issue #3252 review P2 / Phase 4e).
|
|
38
|
+
* Pure — no I/O — so the "never emit a bare stub over a useful artifact" policy is unit-testable.
|
|
39
|
+
*
|
|
40
|
+
* A bake working-DB apply/capture failure carries the already-transpiled body (via BakeApplyError):
|
|
41
|
+
* the transpiled DDL is the expensive artifact, so it is PRESERVED under a failure banner for a
|
|
42
|
+
* human to finish. Any other failure (missing transpiler, pre-transpile infra) has no body — a
|
|
43
|
+
* blank/whitespace `preservedBody` falls back to the plain hand-author stub with no misleading
|
|
44
|
+
* "preserved DDL below" banner over nothing.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildConversionFailureArtifact(sourceFile: string, message: string, preservedBody: string): string;
|
|
2
47
|
/**
|
|
3
48
|
* CLI command to discover and convert T-SQL migrations to PostgreSQL.
|
|
4
49
|
*
|
|
@@ -86,4 +131,5 @@ export default class MigrateConvert extends Command {
|
|
|
86
131
|
private discoverUnconverted;
|
|
87
132
|
private mergeStats;
|
|
88
133
|
}
|
|
134
|
+
export {};
|
|
89
135
|
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -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;AAa7C,OAAO,KAAK,EAIV,yBAAyB,EACzB,oBAAoB,EAErB,MAAM,+BAA+B,CAAC;AAMvC;;;;;GAKG;AACH,KAAK,cAAc,GAAG,IAAI,CAAC,yBAAyB,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,gBAAgB,CAAC,GAAG;IAC3G,IAAI,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;CAC9D,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAIhC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC,EAC7D,WAAW,EAAE,OAAO,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAKlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAUjH;AAED;;;;;;;;;;;;;;;;;;;;;;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;IA2H1B;;;;;;;;;;;OAWG;YACW,QAAQ;IA6KtB;;;;;;OAMG;YACW,eAAe;IAoC7B;;;;;;;;;OASG;YACW,UAAU;IAsDxB,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAwCzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA6C3B,OAAO,CAAC,UAAU;CAmBnB"}
|
|
@@ -2,8 +2,55 @@ import { Command, Flags } from '@oclif/core';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { convertFile, getRulesForDialects, createConversionStats, deduplicateEntityFieldSequences, convertMigration, IncrementalBaker, } from '@memberjunction/sql-converter';
|
|
5
|
+
import { convertFile, getRulesForDialects, createConversionStats, deduplicateEntityFieldSequences, convertMigration, IncrementalBaker, BakeApplyError, } from '@memberjunction/sql-converter';
|
|
6
6
|
import { MJPostgresTranspiler } from '@memberjunction/sqlglot-ts';
|
|
7
|
+
/**
|
|
8
|
+
* Decide how to write and gate one per-migration conversion result (issue #3252 Phase 4d).
|
|
9
|
+
* Pure — no I/O — so the write/halt policy is unit-testable apart from the oclif command.
|
|
10
|
+
*
|
|
11
|
+
* - `writeAsNeedsHand`: a needs-hand-authoring file OR any bake-mode `gap-no-bake` result is
|
|
12
|
+
* written `<name>.pg.sql.needs-hand` (never a discoverable `.pg.sql`), so an incomplete
|
|
13
|
+
* migration stays visibly unconverted. A non-bake `converted`+unhandled file keeps the
|
|
14
|
+
* existing behavior (a discoverable `.pg.sql` with embedded gap comments).
|
|
15
|
+
* - `isGap`: needs-hand, any unhandled statement, or a bake `gap-no-bake` — anything that must
|
|
16
|
+
* fail the run unless `--allow-gaps` (which is disallowed in bake mode, 4f).
|
|
17
|
+
* - `haltBake`: gated on the baker's `mode`, NOT on `isGap`. Only `mode === 'gap-no-bake'` means the
|
|
18
|
+
* working DB was NOT advanced past this migration (a gappy FORWARD migration the baker refused to
|
|
19
|
+
* apply); halting there stops later bakes from running against a stale schema. A baseline the baker
|
|
20
|
+
* exempts to `mode: 'baked'` despite a `needs-hand-authoring` status (its pre-seeded metadata made
|
|
21
|
+
* the capture complete — IncrementalBaker baseline path) DID advance the DB, so it must be written
|
|
22
|
+
* `.needs-hand` and reported as a gap yet must NOT halt — otherwise every subsequent migration is
|
|
23
|
+
* blocked from baking at the baseline. Keying off `status`/`unhandled` would wrongly halt it.
|
|
24
|
+
*/
|
|
25
|
+
export function decideConvertWrite(
|
|
26
|
+
// Strongly typed via ConvertedShape — `status` is MigrationConversionResult['status'] and `mode`
|
|
27
|
+
// is BakedMigrationResult['mode'], NOT `string`. Widening either to `string` would let an invalid
|
|
28
|
+
// state compile and bypass the write/halt policy below (issue #3252 code review — Standards 2).
|
|
29
|
+
result, bakeCodegen) {
|
|
30
|
+
const isNoBakeGate = result.mode === 'gap-no-bake';
|
|
31
|
+
const writeAsNeedsHand = result.status === 'needs-hand-authoring' || isNoBakeGate;
|
|
32
|
+
const isGap = writeAsNeedsHand || result.unhandled.length > 0;
|
|
33
|
+
return { isGap, writeAsNeedsHand, haltBake: bakeCodegen && isNoBakeGate };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build the `.needs-hand` file body for a conversion FAILURE (issue #3252 review P2 / Phase 4e).
|
|
37
|
+
* Pure — no I/O — so the "never emit a bare stub over a useful artifact" policy is unit-testable.
|
|
38
|
+
*
|
|
39
|
+
* A bake working-DB apply/capture failure carries the already-transpiled body (via BakeApplyError):
|
|
40
|
+
* the transpiled DDL is the expensive artifact, so it is PRESERVED under a failure banner for a
|
|
41
|
+
* human to finish. Any other failure (missing transpiler, pre-transpile infra) has no body — a
|
|
42
|
+
* blank/whitespace `preservedBody` falls back to the plain hand-author stub with no misleading
|
|
43
|
+
* "preserved DDL below" banner over nothing.
|
|
44
|
+
*/
|
|
45
|
+
export function buildConversionFailureArtifact(sourceFile, message, preservedBody) {
|
|
46
|
+
const preserved = preservedBody.trim();
|
|
47
|
+
if (!preserved) {
|
|
48
|
+
return `-- CONVERSION FAILED for ${sourceFile}\n-- ${message}\n-- Hand-author the PostgreSQL form, then rename to .pg.sql.\n`;
|
|
49
|
+
}
|
|
50
|
+
return (`-- CONVERSION FAILED (working-DB apply/capture) for ${sourceFile}\n-- ${message}\n` +
|
|
51
|
+
`-- The transpiled DDL below is PRESERVED for hand-finishing; complete it, then rename to .pg.sql.\n\n` +
|
|
52
|
+
`${preserved}\n`);
|
|
53
|
+
}
|
|
7
54
|
/**
|
|
8
55
|
* CLI command to discover and convert T-SQL migrations to PostgreSQL.
|
|
9
56
|
*
|
|
@@ -92,6 +139,10 @@ export default class MigrateConvert extends Command {
|
|
|
92
139
|
this.error('--bake-codegen requires --split.');
|
|
93
140
|
if (flags['dry-run'])
|
|
94
141
|
this.error('--bake-codegen mutates a live working DB and is incompatible with --dry-run.');
|
|
142
|
+
// A baked set must deploy standalone via `mj migrate` alone, so it cannot ship with
|
|
143
|
+
// accepted gaps — `--allow-gaps` contradicts the bake contract (issue #3252 Phase 4f).
|
|
144
|
+
if (flags['allow-gaps'])
|
|
145
|
+
this.error('--bake-codegen produces standalone migrations and cannot accept gaps; --allow-gaps is incompatible. Resolve the gaps and re-run.');
|
|
95
146
|
}
|
|
96
147
|
if (flags.split) {
|
|
97
148
|
await this.runSplit(flags);
|
|
@@ -228,6 +279,9 @@ export default class MigrateConvert extends Command {
|
|
|
228
279
|
const needsHand = [];
|
|
229
280
|
const withUnhandled = [];
|
|
230
281
|
const gapReport = [];
|
|
282
|
+
// Set when a bake-mode gap or a conversion failure halts the batch: the working DB was
|
|
283
|
+
// NOT advanced past this migration, so later bakes must not run against a stale schema.
|
|
284
|
+
let halted = null;
|
|
231
285
|
for (const m of unconverted) {
|
|
232
286
|
const sql = fs.readFileSync(path.join(sourceDir, m.SourceFile), 'utf8');
|
|
233
287
|
let result;
|
|
@@ -235,17 +289,41 @@ export default class MigrateConvert extends Command {
|
|
|
235
289
|
result = await convertOne(sql, m.SourceFile);
|
|
236
290
|
}
|
|
237
291
|
catch (err) {
|
|
238
|
-
this.error
|
|
292
|
+
// NEVER `this.error` with zero artifacts (issue #3252 Phase 4e). Whatever threw
|
|
293
|
+
// (missing transpiler, a working-DB apply/capture failure in bake mode, infra), write
|
|
294
|
+
// a .needs-hand file carrying the error + record the gap, THEN halt after the loop.
|
|
295
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
296
|
+
const failName = `${m.OutputFile}.needs-hand`;
|
|
297
|
+
const failPath = path.join(outputDir, failName);
|
|
298
|
+
// A bake working-DB apply/capture failure carries the already-transpiled body (issue #3252
|
|
299
|
+
// review P2): preserve it under a failure banner so a human can finish it, instead of
|
|
300
|
+
// discarding the useful artifact for a bare stub. Other failures have no body → plain stub.
|
|
301
|
+
const preserved = err instanceof BakeApplyError ? err.transpiledBody : '';
|
|
302
|
+
const failBody = buildConversionFailureArtifact(m.SourceFile, msg, preserved);
|
|
303
|
+
// Same "never clobber on re-run" guard as the normal write path — a human may have
|
|
304
|
+
// started hand-authoring the file from a prior failed run; don't overwrite their work.
|
|
305
|
+
if (!flags['dry-run'] && !fs.existsSync(failPath)) {
|
|
306
|
+
fs.writeFileSync(failPath, failBody);
|
|
307
|
+
}
|
|
308
|
+
gapReport.push({
|
|
309
|
+
sourceFile: m.SourceFile,
|
|
310
|
+
outputFile: failName,
|
|
311
|
+
status: 'conversion-failed',
|
|
312
|
+
handProcedural: [],
|
|
313
|
+
unhandled: [{ kind: 'CONVERSION-ERROR', snippet: msg.slice(0, 300) }],
|
|
314
|
+
});
|
|
315
|
+
withUnhandled.push({ file: m.SourceFile, count: 1 });
|
|
316
|
+
halted = { file: m.SourceFile, reason: msg };
|
|
317
|
+
break;
|
|
239
318
|
}
|
|
240
|
-
|
|
241
|
-
//
|
|
242
|
-
//
|
|
243
|
-
// human (or LLM
|
|
244
|
-
const
|
|
245
|
-
const outName = isNeedsHand ? `${m.OutputFile}.needs-hand` : m.OutputFile;
|
|
319
|
+
const decision = decideConvertWrite(result, bakeCodegen);
|
|
320
|
+
// A needs-hand / gap-no-bake migration is NEVER written as a discoverable .pg.sql — that
|
|
321
|
+
// would mark it converted forever and let Skyway apply an incomplete file. The .needs-hand
|
|
322
|
+
// artifact carries the transpiled DDL + gap comments for a human (or LLM pass) to finish.
|
|
323
|
+
const outName = decision.writeAsNeedsHand ? `${m.OutputFile}.needs-hand` : m.OutputFile;
|
|
246
324
|
const outPath = path.join(outputDir, outName);
|
|
247
325
|
if (!flags['dry-run']) {
|
|
248
|
-
if (
|
|
326
|
+
if (decision.writeAsNeedsHand && fs.existsSync(outPath)) {
|
|
249
327
|
// Someone may be mid-edit on the artifact — never clobber it on a re-run.
|
|
250
328
|
this.warn(`${outName} already exists — not overwritten (delete it to regenerate).`);
|
|
251
329
|
}
|
|
@@ -253,7 +331,10 @@ export default class MigrateConvert extends Command {
|
|
|
253
331
|
fs.writeFileSync(outPath, result.pgSQL);
|
|
254
332
|
}
|
|
255
333
|
}
|
|
256
|
-
|
|
334
|
+
// Bucket by the WRITE decision, not the raw status: a bake-mode `gap-no-bake` file can
|
|
335
|
+
// carry status 'converted' yet is written .needs-hand and halts, so it must be summarized
|
|
336
|
+
// as a gap, never counted as a clean transpile (issue #3252 — summary honesty).
|
|
337
|
+
if (decision.writeAsNeedsHand) {
|
|
257
338
|
needsHand.push({ file: m.SourceFile, routines: result.handProcedural });
|
|
258
339
|
}
|
|
259
340
|
else if (result.status === 'reseed-or-regen-only') {
|
|
@@ -265,7 +346,7 @@ export default class MigrateConvert extends Command {
|
|
|
265
346
|
if (result.unhandled.length > 0) {
|
|
266
347
|
withUnhandled.push({ file: m.SourceFile, count: result.unhandled.length });
|
|
267
348
|
}
|
|
268
|
-
if (
|
|
349
|
+
if (decision.isGap) {
|
|
269
350
|
gapReport.push({
|
|
270
351
|
sourceFile: m.SourceFile,
|
|
271
352
|
outputFile: outName,
|
|
@@ -274,6 +355,12 @@ export default class MigrateConvert extends Command {
|
|
|
274
355
|
unhandled: result.unhandled,
|
|
275
356
|
});
|
|
276
357
|
}
|
|
358
|
+
// Halt-at-first-gap in bake mode (issue #3252 Phase 4d): the working DB was not advanced
|
|
359
|
+
// past this migration, so continuing would bake later migrations against a stale schema.
|
|
360
|
+
if (decision.haltBake) {
|
|
361
|
+
halted = { file: m.SourceFile, reason: 'conversion gap — the working DB was not advanced past this migration' };
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
277
364
|
}
|
|
278
365
|
// The consolidated gap artifact — everything a build engineer (or an LLM pass they
|
|
279
366
|
// drive) needs to finish the conversion, in one machine-readable file.
|
|
@@ -288,6 +375,14 @@ export default class MigrateConvert extends Command {
|
|
|
288
375
|
}
|
|
289
376
|
}
|
|
290
377
|
this.printSplitSummary(converted, regenReseed, needsHand, withUnhandled, flags['dry-run'], bakeCodegen);
|
|
378
|
+
// A halt (bake-mode gap or a conversion failure) ALWAYS ends the run non-zero, BEFORE the
|
|
379
|
+
// unconditional `process.exit(0)` below — otherwise a bake run could exit 0 despite a gap
|
|
380
|
+
// (issue #3252 Phase 4d, MAJOR-2). this.error throws a CLIError → non-zero exit.
|
|
381
|
+
if (halted) {
|
|
382
|
+
this.error(`Halted at ${halted.file}: ${halted.reason}. Resolve the gap (see conversion-gaps.report.json ` +
|
|
383
|
+
'and the .needs-hand file), apply the finished .pg.sql to the working DB, then re-run ' +
|
|
384
|
+
'(already-converted files are skipped).');
|
|
385
|
+
}
|
|
291
386
|
const gapCount = needsHand.length + withUnhandled.length;
|
|
292
387
|
if (gapCount > 0 && !flags['allow-gaps']) {
|
|
293
388
|
// In bake mode the working DB pools are open; this.error → oclif force-exits anyway.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/migrate/convert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/migrate/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,+BAA+B,CAAC;AASvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAgBlE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB;AAChC,iGAAiG;AACjG,kGAAkG;AAClG,gGAAgG;AAChG,MAA6D,EAC7D,WAAoB;IAEpB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC;IACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,KAAK,sBAAsB,IAAI,YAAY,CAAC;IAClF,MAAM,KAAK,GAAG,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,IAAI,YAAY,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,8BAA8B,CAAC,UAAkB,EAAE,OAAe,EAAE,aAAqB;IACvG,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,4BAA4B,UAAU,QAAQ,OAAO,iEAAiE,CAAC;IAChI,CAAC;IACD,OAAO,CACL,uDAAuD,UAAU,QAAQ,OAAO,IAAI;QACpF,uGAAuG;QACvG,GAAG,SAAS,IAAI,CACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;aAC1C,gBAAW,GAAG,wCAAwC,CAAC;aAEvD,aAAQ,GAAG;QAChB,2CAA2C;QAC3C,qDAAqD;QACrD,2FAA2F;QAC3F,gGAAgG;QAChG,6CAA6C;KAC9C,CAAC;aAEK,UAAK,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,iBAAiB;SAC3B,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,oBAAoB;SAC9B,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,kEAAkE;SAChF,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,oDAAoD;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,oDAAoD;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,KAAK;SACf,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EACT,wFAAwF;gBACxF,0FAA0F;gBAC1F,4FAA4F;YAC9F,OAAO,EAAE,KAAK;SACf,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1B,WAAW,EACT,wFAAwF;gBACxF,0FAA0F;YAC5F,OAAO,EAAE,KAAK;SACf,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAC5B,WAAW,EACT,yFAAyF;gBACzF,8FAA8F;gBAC9F,4FAA4F;gBAC5F,0FAA0F;gBAC1F,wEAAwE;YAC1E,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnD,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YACjH,oFAAoF;YACpF,uFAAuF;YACvF,IAAI,KAAK,CAAC,YAAY,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,kIAAkI,CAAC,CAAC;QACnJ,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAEpD,2BAA2B;QAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,wBAAwB;QACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC/D,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEb,oBAAoB;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,UAAU,GAAoB,qBAAqB,EAAE,CAAC;QAE5D,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAyB;gBACnC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;gBAClD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;gBACtD,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,aAAa,EAAE,MAAM;gBACrB,aAAa,EAAE,UAAU;gBACzB,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;gBAClC,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9E,CAAC;YAEF,MAAM,MAAM,GAAyB,WAAW,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAE1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,SAAS,aAAa,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,WAAW,CAAC,CAAC;YACtH,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,kBAAkB,WAAW,CAAC,MAAM,KAAK,YAAY,QAAQ,UAAU,UAAU,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,YAAY,WAAW,UAAU,CAAC,SAAS,eAAe,UAAU,CAAC,OAAO,aAAa,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC;QAC3J,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;QAEzD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,uCAAuC,UAAU,UAAU,CAAC,CAAC;QAC1E,CAAC;QAED,wEAAwE;QACxE,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,WAAW,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,eAAe,iCAAiC,WAAW,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;YACvH,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,gBAAgB,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,0BAA0B,WAAW,CAAC,YAAY,gCAAgC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,QAAQ,CAAC,KAStB;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEzD,0FAA0F;QAC1F,mFAAmF;QACnF,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,QAAgB,EAA2B,EAAE,CAC5E,KAAK;YACH,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;YACpC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAChH,IAAI,WAAW;YAAE,IAAI,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAExH,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAA2C,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAsC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAMT,EAAE,CAAC;QAET,uFAAuF;QACvF,wFAAwF;QACxF,IAAI,MAAM,GAA4C,IAAI,CAAC;QAE3D,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,MAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,gFAAgF;gBAChF,sFAAsF;gBACtF,oFAAoF;gBACpF,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,UAAU,aAAa,CAAC;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChD,2FAA2F;gBAC3F,sFAAsF;gBACtF,4FAA4F;gBAC5F,MAAM,SAAS,GAAG,GAAG,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,MAAM,QAAQ,GAAG,8BAA8B,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC9E,mFAAmF;gBACnF,uFAAuF;gBACvF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACvC,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC;oBACb,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,QAAQ;oBACpB,MAAM,EAAE,mBAAmB;oBAC3B,cAAc,EAAE,EAAE;oBAClB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;iBACtE,CAAC,CAAC;gBACH,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBAC7C,MAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACzD,yFAAyF;YACzF,2FAA2F;YAC3F,0FAA0F;YAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtB,IAAI,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxD,0EAA0E;oBAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,8DAA8D,CAAC,CAAC;gBACtF,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,uFAAuF;YACvF,0FAA0F;YAC1F,gFAAgF;YAChF,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;gBACpD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,SAAS,CAAC,IAAI,CAAC;oBACb,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,UAAU,EAAE,OAAO;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,yFAAyF;YACzF,yFAAyF;YACzF,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,sEAAsE,EAAE,CAAC;gBAChH,MAAM;YACR,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,uEAAuE;QACvE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;YACvE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,aAAa,CACd,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/F,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,iDAAiD;YAC9E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QAExG,0FAA0F;QAC1F,0FAA0F;QAC1F,iFAAiF;QACjF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CACR,aAAa,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,qDAAqD;gBAC7F,uFAAuF;gBACvF,wCAAwC,CAC3C,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACzD,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,qFAAqF;YACrF,IAAI,CAAC,KAAK,CACR,GAAG,SAAS,CAAC,MAAM,yCAAyC,aAAa,CAAC,MAAM,QAAQ;gBACtF,wFAAwF;gBACxF,6DAA6D,CAChE,CAAC;QACJ,CAAC;QAED,0FAA0F;QAC1F,6FAA6F;QAC7F,yCAAyC;QACzC,IAAI,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,eAAe,CAAC,SAAiB;QAC7C,MAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,mFAAmF;QACnF,+EAA+E;QAC/E,kFAAkF;QAClF,oFAAoF;QACpF,+EAA+E;QAC/E,qFAAqF;QACrF,gFAAgF;QAChF,iFAAiF;QACjF,0CAA0C;QAC1C,MAAM,SAAS,GAAG,EAAE;aACjB,WAAW,CAAC,SAAS,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aAC9F,IAAI,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC1G,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,yEAAyE;gBACzE,IAAI,CAAC,IAAI,CAAC,oCAAoC,cAAc,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,oBAAoB,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,UAAU,CAAC,UAAgC,EAAE,MAAc;QACvE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAEjI,IAAI,UAAU,EAAE,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,6HAA6H,CAAC,CAAC;QAC5I,CAAC;QACD,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhC,IAAI,EAAoB,CAAC;QACzB,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CACR,gFAAgF,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;gBAClI,2FAA2F,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,EAAE,GAAmB;YACzB,KAAK,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;gBAC3B,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,eAAe,EAAE,KAAK,IAAI,EAAE;gBAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBACpC,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,IAAI,EAAE,CAAC,CAAC;gBACjG,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC;oBAC5D,IAAI,EAAE,EAAE,CAAC,UAAU;oBACnB,MAAM;oBACN,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,8BAA8B;oBACtD,eAAe,EAAE,KAAK;oBACtB,UAAU,EAAE,KAAK;oBACjB,aAAa,EAAE,KAAK,EAAE,6DAA6D;iBACpF,CAAC,CAAC;gBACH,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YACtE,CAAC;YACD,yEAAyE;YACzE,uEAAuE;YACvE,4EAA4E;YAC5E,kFAAkF;YAClF,kFAAkF;YAClF,oBAAoB,EAAE,KAAK,IAAI,EAAE;gBAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAChG,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;qBAC1E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;QACF,OAAO,IAAI,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,+EAA+E;IACvE,iBAAiB,CACvB,SAAmB,EACnB,WAAqB,EACrB,SAAiD,EACjD,aAAgD,EAChD,MAAe,EACf,WAAW,GAAG,KAAK;QAEnB,IAAI,CAAC,GAAG,CAAC,qCAAqC,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnG,IAAI,CAAC,GAAG,CAAC,8BAA8B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,sCAAsC,CAAC;QAC3H,IAAI,CAAC,GAAG,CAAC,8BAA8B,WAAW,CAAC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,CAAC,8BAA8B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,8BAA8B,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM;YAAE,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAEvD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,iGAAiG,CAAC,CAAC;YACpH,KAAK,MAAM,CAAC,IAAI,SAAS;gBAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,0FAA0F,CAAC,CAAC;YAC7G,KAAK,MAAM,CAAC,IAAI,aAAa;gBAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;QAC7F,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;YAChG,IAAI,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC;YAC1G,IAAI,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;YAChG,IAAI,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;YAClF,IAAI,CAAC,GAAG,CAAC,qGAAqG,CAAC,CAAC;YAChH,IAAI,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,mBAAmB,CACzB,SAAiB,EACjB,SAAiB,EACjB,YAAgC;QAEhC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aAClG,IAAI,EAAE,CAAC;QAEV,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,UAAU,YAAY,iBAAiB,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;aACtB,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAC9E,CAAC;QAEF,MAAM,WAAW,GAAsD,EAAE,CAAC;QAE1E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,0DAA0D;YAC1D,IAAI,YAAY,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,2DAA2D;YAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3D,qCAAqC;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,4EAA4E;gBAC5E,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACrC,WAAW,CAAC,IAAI,CAAC;wBACf,UAAU,EAAE,UAAU;wBACtB,UAAU,EAAE,UAAU;qBACvB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,UAAU,CAAC,MAAuB,EAAE,MAAuB;QACjE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QAC3C,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;QACrC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QACjC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;QAC7C,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QAC3C,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC;QACzD,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC;QACvD,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACrD,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;QAC/C,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACnD,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;QACjD,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;QAC7C,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACnD,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC"}
|
|
@@ -38,6 +38,18 @@ export default class Migrate extends Command {
|
|
|
38
38
|
private logFetchSummary;
|
|
39
39
|
/** Runs Skyway against the prepared config and reports the outcome. */
|
|
40
40
|
private executeMigration;
|
|
41
|
+
/**
|
|
42
|
+
* Print everything Skyway captured about a failed migration.
|
|
43
|
+
*
|
|
44
|
+
* Skyway builds a `MigrationExecutionError` carrying the batch number, its line range in the
|
|
45
|
+
* script, and the lines within that batch which mention the identifiers named in the error — and
|
|
46
|
+
* we were printing only `Error.message`, discarding all of it. That is the difference between
|
|
47
|
+
* "a migration failed somewhere in 60,000 lines" and a file:line to open.
|
|
48
|
+
*
|
|
49
|
+
* Everything here is defensive: `BatchInfo` is optional on the error type, and a reporting path
|
|
50
|
+
* must never throw while reporting a failure.
|
|
51
|
+
*/
|
|
52
|
+
private printMigrationError;
|
|
41
53
|
/**
|
|
42
54
|
* Prints error details captured by OnProgress callbacks.
|
|
43
55
|
* Used when Skyway's result.Details is empty (transaction-level errors).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAY7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAuD;IAEzE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC1B;;;;OAIG;YACW,gBAAgB;IAW9B;;;OAGG;YACW,oBAAoB;IAMlC,2FAA2F;IAC3F,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;YACW,mBAAmB;IAWjC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IASvB,uEAAuE;YACzD,gBAAgB;IAgG9B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CA+B5B"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAY7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAuD;IAEzE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC1B;;;;OAIG;YACW,gBAAgB;IAW9B;;;OAGG;YACW,oBAAoB;IAMlC,2FAA2F;IAC3F,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;YACW,mBAAmB;IAWjC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IASvB,uEAAuE;YACzD,gBAAgB;IAgG9B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CA+B5B"}
|
|
@@ -208,7 +208,7 @@ export default class Migrate extends Command {
|
|
|
208
208
|
this.logToStderr(` Version: ${detail.Migration.Version ?? '(repeatable)'}`);
|
|
209
209
|
this.logToStderr(` Description: ${detail.Migration.Description}`);
|
|
210
210
|
if (detail.Error) {
|
|
211
|
-
this.
|
|
211
|
+
this.printMigrationError(detail.Error);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
}
|
|
@@ -220,6 +220,51 @@ export default class Migrate extends Command {
|
|
|
220
220
|
this.error('Migrations failed');
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Print everything Skyway captured about a failed migration.
|
|
225
|
+
*
|
|
226
|
+
* Skyway builds a `MigrationExecutionError` carrying the batch number, its line range in the
|
|
227
|
+
* script, and the lines within that batch which mention the identifiers named in the error — and
|
|
228
|
+
* we were printing only `Error.message`, discarding all of it. That is the difference between
|
|
229
|
+
* "a migration failed somewhere in 60,000 lines" and a file:line to open.
|
|
230
|
+
*
|
|
231
|
+
* Everything here is defensive: `BatchInfo` is optional on the error type, and a reporting path
|
|
232
|
+
* must never throw while reporting a failure.
|
|
233
|
+
*/
|
|
234
|
+
printMigrationError(error) {
|
|
235
|
+
this.logToStderr(` Error: ${error.message}`);
|
|
236
|
+
const batch = error.BatchInfo;
|
|
237
|
+
if (!batch) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (batch.BatchNumber != null && batch.TotalBatches != null) {
|
|
241
|
+
const range = batch.StartLine != null && batch.EndLine != null ? ` (lines ${batch.StartLine}-${batch.EndLine})` : '';
|
|
242
|
+
this.logToStderr(` Batch: ${batch.BatchNumber} of ${batch.TotalBatches}${range}`);
|
|
243
|
+
}
|
|
244
|
+
if (batch.SucceededBatches != null) {
|
|
245
|
+
this.logToStderr(` Batches applied before the failure: ${batch.SucceededBatches}`);
|
|
246
|
+
}
|
|
247
|
+
// The lines Skyway matched to identifiers in the error message. These carry FILE line numbers,
|
|
248
|
+
// so they paste straight into an editor.
|
|
249
|
+
if (batch.ContextLines?.length) {
|
|
250
|
+
this.logToStderr(' Related lines:');
|
|
251
|
+
for (const line of batch.ContextLines) {
|
|
252
|
+
this.logToStderr(` ${line.LineNumber}: ${line.Text.trim()}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
// When nothing could be matched, the batch SQL itself is the next best thing — without it the
|
|
256
|
+
// reader has a line range and no way to see what is in it.
|
|
257
|
+
else if (batch.BatchSQL) {
|
|
258
|
+
const preview = batch.BatchSQL.split('\n').slice(0, 10);
|
|
259
|
+
this.logToStderr(' Failing batch:');
|
|
260
|
+
for (const line of preview) {
|
|
261
|
+
this.logToStderr(` ${line}`);
|
|
262
|
+
}
|
|
263
|
+
if (batch.BatchSQL.split('\n').length > preview.length) {
|
|
264
|
+
this.logToStderr(' ...');
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
223
268
|
/**
|
|
224
269
|
* Prints error details captured by OnProgress callbacks.
|
|
225
270
|
* Used when Skyway's result.Details is empty (transaction-level errors).
|
|
@@ -233,7 +278,7 @@ export default class Migrate extends Command {
|
|
|
233
278
|
this.logToStderr(` Version: ${detail.Migration.Version ?? '(repeatable)'}`);
|
|
234
279
|
this.logToStderr(` Description: ${detail.Migration.Description}`);
|
|
235
280
|
if (detail.Error) {
|
|
236
|
-
this.
|
|
281
|
+
this.printMigrationError(detail.Error);
|
|
237
282
|
}
|
|
238
283
|
}
|
|
239
284
|
}
|