@metaobjectsdev/cli 1.0.9-rc.1 → 1.0.9-rc.3
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/src/commands/eject.d.ts +3 -0
- package/dist/src/commands/eject.d.ts.map +1 -1
- package/dist/src/commands/eject.js +10 -2
- package/dist/src/commands/eject.js.map +1 -1
- package/dist/src/commands/gen.d.ts +0 -5
- package/dist/src/commands/gen.d.ts.map +1 -1
- package/dist/src/commands/gen.js +15 -1
- package/dist/src/commands/gen.js.map +1 -1
- package/dist/src/commands/migrate.d.ts.map +1 -1
- package/dist/src/commands/migrate.js +26 -1
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/verify.d.ts.map +1 -1
- package/dist/src/commands/verify.js +18 -3
- package/dist/src/commands/verify.js.map +1 -1
- package/dist/src/lib/advisory.d.ts +9 -0
- package/dist/src/lib/advisory.d.ts.map +1 -1
- package/dist/src/lib/advisory.js +13 -0
- package/dist/src/lib/advisory.js.map +1 -1
- package/dist/src/lib/allow.d.ts.map +1 -1
- package/dist/src/lib/allow.js +9 -1
- package/dist/src/lib/allow.js.map +1 -1
- package/dist/src/lib/catalog-listing.d.ts +3 -0
- package/dist/src/lib/catalog-listing.d.ts.map +1 -1
- package/dist/src/lib/catalog-listing.js +40 -5
- package/dist/src/lib/catalog-listing.js.map +1 -1
- package/dist/src/lib/config.d.ts +8 -0
- package/dist/src/lib/config.d.ts.map +1 -1
- package/dist/src/lib/config.js +11 -0
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/gen-migrate-advice.d.ts +17 -0
- package/dist/src/lib/gen-migrate-advice.d.ts.map +1 -0
- package/dist/src/lib/gen-migrate-advice.js +105 -0
- package/dist/src/lib/gen-migrate-advice.js.map +1 -0
- package/dist/src/lib/install-set.d.ts +5 -1
- package/dist/src/lib/install-set.d.ts.map +1 -1
- package/dist/src/lib/install-set.js +9 -1
- package/dist/src/lib/install-set.js.map +1 -1
- package/dist/src/lib/output.d.ts +5 -0
- package/dist/src/lib/output.d.ts.map +1 -1
- package/dist/src/lib/output.js +1 -1
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/referential-action-advisory.d.ts +14 -0
- package/dist/src/lib/referential-action-advisory.d.ts.map +1 -0
- package/dist/src/lib/referential-action-advisory.js +38 -0
- package/dist/src/lib/referential-action-advisory.js.map +1 -0
- package/package.json +10 -10
- package/src/commands/eject.ts +12 -2
- package/src/commands/gen.ts +17 -1
- package/src/commands/migrate.ts +26 -0
- package/src/commands/verify.ts +20 -1
- package/src/lib/advisory.ts +16 -0
- package/src/lib/allow.ts +9 -1
- package/src/lib/catalog-listing.ts +46 -7
- package/src/lib/config.ts +14 -0
- package/src/lib/gen-migrate-advice.ts +129 -0
- package/src/lib/install-set.ts +11 -1
- package/src/lib/output.ts +6 -1
- package/src/lib/referential-action-advisory.ts +58 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// The "now migrate" next step `meta gen` prints — WHEN a schema change is plausible,
|
|
2
|
+
// and in the project's own dialect.
|
|
3
|
+
//
|
|
4
|
+
// It used to be one hardcoded line on every run that wrote a file:
|
|
5
|
+
// `meta migrate --from-db --db <url> --dialect <sqlite|postgres> --slug init --apply`.
|
|
6
|
+
// That was wrong twice over for a D1 project (whose migrate takes `--dialect d1 --d1
|
|
7
|
+
// <binding>` and applies through wrangler), and it was noise after any change that
|
|
8
|
+
// cannot reach the database — a value object or a prompt payload has no table.
|
|
9
|
+
//
|
|
10
|
+
// The decision, most precise evidence first:
|
|
11
|
+
// 1. No table-backed object in the model → no advice (nothing to migrate, ever).
|
|
12
|
+
// 2. Nothing written this run → no advice.
|
|
13
|
+
// 3. A committed schema snapshot exists → advise exactly when the expected schema's
|
|
14
|
+
// TABLES differ from it (the same diff `meta migrate` runs offline).
|
|
15
|
+
// 4. No snapshot (a D1 project, or before the first migrate) → advise when a file
|
|
16
|
+
// generated for a table-backed object, or the shared enums module (enum members
|
|
17
|
+
// are CHECK constraints), changed this run. Files of value objects, prompts and
|
|
18
|
+
// other sourceless declarations do not count.
|
|
19
|
+
import { existsSync } from "node:fs";
|
|
20
|
+
import { basename, resolve as resolvePath } from "node:path";
|
|
21
|
+
import { buildExpectedSchemaWithProvenance, diff, findWranglerConfig, parseWranglerConfig, readSnapshot, snapshotPath, } from "@metaobjectsdev/migrate-ts";
|
|
22
|
+
/** The FQN separator; an object's short name is the segment after the last one. */
|
|
23
|
+
const FQN_SEPARATOR = "::";
|
|
24
|
+
/** The shared enums module `entityFile()` emits (its members back CHECK constraints). */
|
|
25
|
+
const SHARED_ENUMS_BASENAME = "enums.ts";
|
|
26
|
+
const VIEW_CHANGE_KINDS = new Set(["create-view", "drop-view", "replace-view"]);
|
|
27
|
+
/** The next-step line, or undefined when this run cannot have changed the schema. */
|
|
28
|
+
export async function genMigrateAdvice(input) {
|
|
29
|
+
if (input.dialect === undefined || input.changedFiles.length === 0)
|
|
30
|
+
return undefined;
|
|
31
|
+
const d1 = d1BindingFor(input);
|
|
32
|
+
const schemaDialect = d1 !== undefined ? "d1" : input.dialect;
|
|
33
|
+
let built;
|
|
34
|
+
try {
|
|
35
|
+
built = buildExpectedSchemaWithProvenance(input.metadata, {
|
|
36
|
+
dialect: schemaDialect,
|
|
37
|
+
...(input.columnNamingStrategy !== undefined ? { columnNamingStrategy: input.columnNamingStrategy } : {}),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// A model `meta migrate` would refuse (it says why); gen is not the place to report it.
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
const expected = { tables: built.snapshot.tables, views: [] };
|
|
45
|
+
if (expected.tables.length === 0)
|
|
46
|
+
return undefined;
|
|
47
|
+
const snapPath = snapshotPath(resolvePath(input.projectRoot, input.migrateOutDir), schemaDialect);
|
|
48
|
+
const snapshot = existsSync(snapPath) ? await readSnapshot(snapPath) : null;
|
|
49
|
+
if (snapshot !== null) {
|
|
50
|
+
const actual = { ...snapshot, views: [] };
|
|
51
|
+
try {
|
|
52
|
+
const d = await diff({ expected, actual, dialect: schemaDialect });
|
|
53
|
+
if (d.changes.every((c) => VIEW_CHANGE_KINDS.has(c.kind)))
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// A diff the engine refuses (a primary-key move, say) is still a schema change.
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (!touchesTableBackedObject(input.changedFiles, built.provenance)) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
if (d1 !== undefined) {
|
|
64
|
+
const db = d1.database_name.length > 0 ? d1.database_name : "<database>";
|
|
65
|
+
return `write the schema change as a D1 migration with \`meta migrate --dialect d1 --d1 ${d1.binding} ` +
|
|
66
|
+
`--slug <name>\`, then apply it with \`wrangler d1 migrations apply ${db} --local\``;
|
|
67
|
+
}
|
|
68
|
+
return snapshot === null
|
|
69
|
+
? `create your database tables with \`meta migrate --from-db --db <url> --dialect ${input.dialect} --slug init --apply\``
|
|
70
|
+
: `migrate the schema change with \`meta migrate --db <url> --dialect ${input.dialect} --slug <name> --apply\``;
|
|
71
|
+
}
|
|
72
|
+
/** The project's D1 binding when it migrates through D1, else undefined. */
|
|
73
|
+
function d1BindingFor(input) {
|
|
74
|
+
if (input.dialect !== "sqlite" && input.migrateDialect !== "d1")
|
|
75
|
+
return undefined;
|
|
76
|
+
const path = findWranglerConfig(input.projectRoot);
|
|
77
|
+
if (path === undefined)
|
|
78
|
+
return undefined;
|
|
79
|
+
try {
|
|
80
|
+
return parseWranglerConfig(path).d1Bindings[0];
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether a changed file was generated for a table-backed object: its basename starts
|
|
88
|
+
* with that object's short name followed by a `.` (`Pet.ts`, `Pet.queries.ts`), or it
|
|
89
|
+
* is the shared enums module.
|
|
90
|
+
*/
|
|
91
|
+
function touchesTableBackedObject(changedFiles, provenance) {
|
|
92
|
+
const shortName = (fqn) => {
|
|
93
|
+
const at = fqn.lastIndexOf(FQN_SEPARATOR);
|
|
94
|
+
return at === -1 ? fqn : fqn.slice(at + FQN_SEPARATOR.length);
|
|
95
|
+
};
|
|
96
|
+
const names = new Set([...provenance.values()].map(shortName));
|
|
97
|
+
return changedFiles.some((f) => {
|
|
98
|
+
const base = basename(f);
|
|
99
|
+
if (base === SHARED_ENUMS_BASENAME)
|
|
100
|
+
return true;
|
|
101
|
+
const dot = base.indexOf(".");
|
|
102
|
+
return dot > 0 && names.has(base.slice(0, dot));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=gen-migrate-advice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen-migrate-advice.js","sourceRoot":"","sources":["../../../src/lib/gen-migrate-advice.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,5 +27,9 @@ export interface InstallSet {
|
|
|
27
27
|
* `@metaobjectsdev/codegen-ts-tanstack` ONCE, and an adopter handed the same package
|
|
28
28
|
* twice reasonably wonders which one to run.
|
|
29
29
|
*/
|
|
30
|
-
export declare function installSetFor(entries: readonly GeneratorRegistryEntry[]
|
|
30
|
+
export declare function installSetFor(entries: readonly GeneratorRegistryEntry[],
|
|
31
|
+
/** `@metaobjectsdev/*` packages an ejected generator FILE imports at gen time (the
|
|
32
|
+
* catalog does not know them). Build-time, so dev — unless the runtime set already
|
|
33
|
+
* installs the package, which satisfies the build too. */
|
|
34
|
+
templatePackages?: readonly string[]): InstallSet;
|
|
31
35
|
//# sourceMappingURL=install-set.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-set.d.ts","sourceRoot":"","sources":["../../../src/lib/install-set.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKzE;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxE;AAED,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,wFAAwF;IACxF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"install-set.d.ts","sourceRoot":"","sources":["../../../src/lib/install-set.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKzE;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxE;AAED,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,wFAAwF;IACxF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,sBAAsB,EAAE;AAC1C;;2DAE2D;AAC3D,gBAAgB,GAAE,SAAS,MAAM,EAAO,GACvC,UAAU,CAkCZ"}
|
|
@@ -91,7 +91,11 @@ function specs(from) {
|
|
|
91
91
|
* `@metaobjectsdev/codegen-ts-tanstack` ONCE, and an adopter handed the same package
|
|
92
92
|
* twice reasonably wonders which one to run.
|
|
93
93
|
*/
|
|
94
|
-
export function installSetFor(entries
|
|
94
|
+
export function installSetFor(entries,
|
|
95
|
+
/** `@metaobjectsdev/*` packages an ejected generator FILE imports at gen time (the
|
|
96
|
+
* catalog does not know them). Build-time, so dev — unless the runtime set already
|
|
97
|
+
* installs the package, which satisfies the build too. */
|
|
98
|
+
templatePackages = []) {
|
|
95
99
|
const version = cliVersion();
|
|
96
100
|
const dev = new Map();
|
|
97
101
|
const runtime = new Map();
|
|
@@ -114,6 +118,10 @@ export function installSetFor(entries) {
|
|
|
114
118
|
addPackage(runtime, peer, ranges[peer]);
|
|
115
119
|
}
|
|
116
120
|
}
|
|
121
|
+
for (const p of templatePackages) {
|
|
122
|
+
if (!runtime.has(p))
|
|
123
|
+
addPackage(dev, p, `^${version}`);
|
|
124
|
+
}
|
|
117
125
|
const devList = specs(dev);
|
|
118
126
|
const runtimeList = specs(runtime);
|
|
119
127
|
const parts = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-set.js","sourceRoot":"","sources":["../../../src/lib/install-set.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,kEAAkE;AAClE,EAAE;AACF,qDAAqD;AACrD,EAAE;AACF,uFAAuF;AACvF,qFAAqF;AACrF,mFAAmF;AACnF,8EAA8E;AAC9E,uFAAuF;AACvF,oFAAoF;AACpF,0EAA0E;AAC1E,EAAE;AACF,uFAAuF;AACvF,iFAAiF;AACjF,gFAAgF;AAChF,oFAAoF;AACpF,oEAAoE;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5C,4EAA4E;QAC5E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC5C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAE1D,CAAC;gBACF,8EAA8E;gBAC9E,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAA2B,CAAC;gBACrE,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,EAAE,KAAK,GAAG;gBAAE,MAAM;YACtB,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAWD,SAAS,IAAI,CAAC,IAAY,EAAE,KAAyB;IACnD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,IAAqC,EAAE,IAAY,EAAE,KAAyB;IAChG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;iFAEiF;AACjF,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,KAAK,CAAC,IAAqC;IAClD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"install-set.js","sourceRoot":"","sources":["../../../src/lib/install-set.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/output.d.ts
CHANGED
|
@@ -48,6 +48,11 @@ export interface GenResultShape {
|
|
|
48
48
|
* already correct. The output's own first line (`gen: []`) already knew.
|
|
49
49
|
*/
|
|
50
50
|
generatorCount: number;
|
|
51
|
+
/**
|
|
52
|
+
* The "now migrate" next step, worded for this project's dialect — or absent when
|
|
53
|
+
* this run cannot have changed the database schema (see gen-migrate-advice.ts).
|
|
54
|
+
*/
|
|
55
|
+
migrateAdvice?: string;
|
|
51
56
|
}
|
|
52
57
|
export declare function formatGenResult(result: GenResultShape, opts: FormatOptions): string;
|
|
53
58
|
export interface BlockedEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/output.js
CHANGED
|
@@ -155,7 +155,7 @@ export function genResultToData(result) {
|
|
|
155
155
|
? "no generators are wired in metaobjects.config.ts, so nothing was generated"
|
|
156
156
|
: `no entities to generate in ${result.outDir}`;
|
|
157
157
|
const help = result.files.length !== 0
|
|
158
|
-
? ["typecheck the generated code with `npx tsc`",
|
|
158
|
+
? ["typecheck the generated code with `npx tsc`", ...(result.migrateAdvice !== undefined ? [result.migrateAdvice] : [])]
|
|
159
159
|
: noGenerators
|
|
160
160
|
? ["add generators to the `generators: []` array in metaobjects.config.ts — `meta eject --list` names every generator you can own, and `meta init` scaffolds the usual set"]
|
|
161
161
|
: ["author entities in this project's metadata sources then re-run `meta gen`"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,0EAA0E;AAC1E,mEAAmE;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAiD,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkE9C,MAAM,UAAU,GAAkC;IAChD,GAAG,EAAE,GAAG;IACR,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,SAAS,GAAkC;IAC/C,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,IAAmB;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,mFAAmF;IACnF,MAAM,MAAM,GAAG,WAAW,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAE/H,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,MAAM,kCAAkC,CAAC;IACrD,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,UAAU,KAAK,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,WAAW,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACT,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CACnG,CAAC;IACF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,iFAAiF;IACjF,kFAAkF;IAClF,6DAA6D;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9C,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,WAAW,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,YAAY,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAChE,sFAAsF;IACtF,wFAAwF;IACxF,uFAAuF;IACvF,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAsDD,MAAM,UAAU,mBAAmB,CAAC,MAA0B,EAAE,KAAoB;IAClF,MAAM,MAAM,GAAG,eAAe,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;IAC5G,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/F,OAAO,GAAG,MAAM,4BAA4B,CAAC;IAC/C,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;QACvG,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,mDAAmD,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAAC,MAAsB;IAMpD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACrD,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CACnG,CAAC;IACF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,0EAA0E;IAC1E,0CAA0C;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9C,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,WAAW,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,YAAY,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IAC5D,kFAAkF;IAClF,iFAAiF;IACjF,iFAAiF;IACjF,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,KAAK,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACvC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,YAAY;YACZ,CAAC,CAAC,4EAA4E;YAC9E,CAAC,CAAC,8BAA8B,MAAM,CAAC,MAAM,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC,6CAA6C,EAAE,sHAAsH,CAAC;QACzK,CAAC,CAAC,YAAY;YACZ,CAAC,CAAC,CAAC,wKAAwK,CAAC;YAC5K,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC;IACpF,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY;WACnC,cAAc,CAAqB,4DAA4D,CAAC,CAAC;IACtG,8EAA8E;IAC9E,2EAA2E;IAC3E,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CACP,GAAG,YAAY,CAAC,KAAK,qHAAqH,CAC3I,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO;QACP,IAAI;QACJ,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,OAAO,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAO5D,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;IAChD,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,gFAAgF;IAChF,yEAAyE;IACzE,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,uCAAuC;IACvC,IAAI,OAAe,CAAC;IACpB,IAAI,IAAc,CAAC;IACnB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,GAAG,aAAa,eAAe,CAAC;QAC1C,sFAAsF;QACtF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACxE,IAAI,GAAG;YACL,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,MAAM,CAAC,CAAC,WAAW,mBAAmB,CAAC,CAAC,QAAQ,IAAI,kBAAkB,iBAAiB,CAAC,CAAC,UAAU,mBAAmB;gBACtH,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,6DAA6D,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3H,aAAa,CAAC,CAAC,SAAS,8CAA8C,CAAC;YACzE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YACrF,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0CAA0C,CAAC,CAAC,IAAI,EAAE,CAAC;SACnF,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,kCAAkC,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAChG,IAAI,GAAG,UAAU;YACf,CAAC,CAAC,CAAC,iDAAiD,CAAC;YACrD,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,OAAO,GAAG,GAAG,MAAM,cAAc,CAAC;QAClC,IAAI,GAAG,CAAC,mEAAmE,CAAC,CAAC;IAC/E,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,GAAG,MAAM,WAAW,OAAO,CAAC,MAAM,eAAe,CAAC;QAC5D,IAAI,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,GAAG,MAAM,SAAS,MAAM,CAAC,YAAY,CAAC,MAAM,oBAAoB,CAAC;QAC3E,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC/B,CAAC,CAAC,CAAC,wEAAwE,CAAC;YAC5E,uEAAuE;YACvE,uEAAuE;YACvE,oEAAoE;YACpE,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,GAAG,mBAAmB,CAAC;QAC9B,IAAI,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,GAAG,aAAa,eAAe,CAAC;QAC1C,IAAI,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,OAAO;QACL,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI;QACpD,uEAAuE;QACvE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA0B;IAChE,OAAO,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MetaData } from "@metaobjectsdev/metadata";
|
|
2
|
+
export interface ReferentialActionConflictFinding {
|
|
3
|
+
/** The metadata file declaring the FK-owning entity ("" when the loader recorded none). */
|
|
4
|
+
file: string;
|
|
5
|
+
/** `<entity FQN>.<reference name>` — the FK, which is where the fix is declared. */
|
|
6
|
+
construct: string;
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ReferentialActionConflictOptions {
|
|
10
|
+
/** Skip an entity by FQN — imported (dependency) metadata is not the adopter's to fix. */
|
|
11
|
+
skip?: (fqn: string) => boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function scanForReferentialActionConflicts(root: MetaData, opts?: ReferentialActionConflictOptions): ReferentialActionConflictFinding[];
|
|
14
|
+
//# sourceMappingURL=referential-action-advisory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referential-action-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/referential-action-advisory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,MAAM,WAAW,gCAAgC;IAC/C,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAC/C,0FAA0F;IAC1F,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACjC;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE,gCAAqC,GAC1C,gCAAgC,EAAE,CAkBpC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Two relationships over one foreign key that disagree on its referential action.
|
|
2
|
+
//
|
|
3
|
+
// A 1:N may be declared on either side — the parent (`Author` composition `books`) or the
|
|
4
|
+
// FK-owning child (`Book` association `author`) — and each side's subtype implies an
|
|
5
|
+
// ON DELETE default (composition → cascade, association → restrict). When BOTH are
|
|
6
|
+
// declared and disagree, the documented precedence (ADR-0047) lets the FK-owning side
|
|
7
|
+
// govern, so the parent's relationship has no effect on the constraint. That is a
|
|
8
|
+
// defensible rule and a silent one: an adopter declared a composition, read "cascade" in
|
|
9
|
+
// the docs, and got ON DELETE RESTRICT and a 409 with nothing saying why.
|
|
10
|
+
//
|
|
11
|
+
// Advisory, never a gate: changing the precedence would change the DDL of every model
|
|
12
|
+
// that relies on it. This names each such key, the action that governs, and the two
|
|
13
|
+
// one-line ways to say which one the author means. Read off the SAME walk that emits the
|
|
14
|
+
// FK (`buildExpectedSchema`'s `onReferentialActionConflict`), so it can only ever name a
|
|
15
|
+
// constraint migrate actually writes. `meta verify` lists them; `meta migrate` warns.
|
|
16
|
+
import { buildExpectedSchema, describeReferentialActionConflict, } from "@metaobjectsdev/migrate-ts";
|
|
17
|
+
export function scanForReferentialActionConflicts(root, opts = {}) {
|
|
18
|
+
const conflicts = [];
|
|
19
|
+
buildExpectedSchema(root, { onReferentialActionConflict: (c) => conflicts.push(c) });
|
|
20
|
+
const out = [];
|
|
21
|
+
const seen = new Set();
|
|
22
|
+
for (const c of conflicts) {
|
|
23
|
+
const fqn = c.entity.resolutionKey();
|
|
24
|
+
if (opts.skip?.(fqn) === true)
|
|
25
|
+
continue;
|
|
26
|
+
const construct = `${fqn}.${c.ref.name}`;
|
|
27
|
+
if (seen.has(construct))
|
|
28
|
+
continue;
|
|
29
|
+
seen.add(construct);
|
|
30
|
+
const files = "files" in c.entity.source ? c.entity.source.files : [];
|
|
31
|
+
// A node a shipped library contributed is the library's design, not the adopter's.
|
|
32
|
+
if (files.some((f) => f.startsWith("library:")))
|
|
33
|
+
continue;
|
|
34
|
+
out.push({ file: files[0] ?? "", construct, message: describeReferentialActionConflict(c) });
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=referential-action-advisory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referential-action-advisory.js","sourceRoot":"","sources":["../../../src/lib/referential-action-advisory.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,0FAA0F;AAC1F,qFAAqF;AACrF,mFAAmF;AACnF,sFAAsF;AACtF,kFAAkF;AAClF,yFAAyF;AACzF,0EAA0E;AAC1E,EAAE;AACF,sFAAsF;AACtF,oFAAoF;AACpF,yFAAyF;AACzF,yFAAyF;AACzF,sFAAsF;AAGtF,OAAO,EACL,mBAAmB,EACnB,iCAAiC,GAElC,MAAM,4BAA4B,CAAC;AAepC,MAAM,UAAU,iCAAiC,CAC/C,IAAc,EACd,OAAyC,EAAE;IAE3C,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,mBAAmB,CAAC,IAAI,EAAE,EAAE,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAErF,MAAM,GAAG,GAAuC,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,SAAS;QACxC,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,mFAAmF;QACnF,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAAE,SAAS;QAC1D,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/cli",
|
|
3
|
-
"version": "1.0.9-rc.
|
|
3
|
+
"version": "1.0.9-rc.3",
|
|
4
4
|
"description": "CLI for MetaObjects: scaffold, codegen, migrate, and drift-detection commands.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|
|
@@ -51,15 +51,15 @@
|
|
|
51
51
|
"@biomejs/js-api": "^0.7.0",
|
|
52
52
|
"@biomejs/wasm-nodejs": "^1.9.4",
|
|
53
53
|
"@libsql/kysely-libsql": "^0.4.0",
|
|
54
|
-
"@metaobjectsdev/codegen-ts": "1.0.9-rc.
|
|
55
|
-
"@metaobjectsdev/codegen-ts-react": "1.0.9-rc.
|
|
56
|
-
"@metaobjectsdev/codegen-ts-tanstack": "1.0.9-rc.
|
|
57
|
-
"@metaobjectsdev/docs-site": "1.0.9-rc.
|
|
58
|
-
"@metaobjectsdev/metadata": "1.0.9-rc.
|
|
59
|
-
"@metaobjectsdev/migrate-ts": "1.0.9-rc.
|
|
60
|
-
"@metaobjectsdev/render": "1.0.9-rc.
|
|
61
|
-
"@metaobjectsdev/runtime-ts": "1.0.9-rc.
|
|
62
|
-
"@metaobjectsdev/sdk": "1.0.9-rc.
|
|
54
|
+
"@metaobjectsdev/codegen-ts": "1.0.9-rc.3",
|
|
55
|
+
"@metaobjectsdev/codegen-ts-react": "1.0.9-rc.3",
|
|
56
|
+
"@metaobjectsdev/codegen-ts-tanstack": "1.0.9-rc.3",
|
|
57
|
+
"@metaobjectsdev/docs-site": "1.0.9-rc.3",
|
|
58
|
+
"@metaobjectsdev/metadata": "1.0.9-rc.3",
|
|
59
|
+
"@metaobjectsdev/migrate-ts": "1.0.9-rc.3",
|
|
60
|
+
"@metaobjectsdev/render": "1.0.9-rc.3",
|
|
61
|
+
"@metaobjectsdev/runtime-ts": "1.0.9-rc.3",
|
|
62
|
+
"@metaobjectsdev/sdk": "1.0.9-rc.3",
|
|
63
63
|
"@toon-format/toon": "^2.3.0",
|
|
64
64
|
"jiti": "^2.4.0"
|
|
65
65
|
},
|
package/src/commands/eject.ts
CHANGED
|
@@ -142,6 +142,9 @@ export interface EjectResult {
|
|
|
142
142
|
packageName: string;
|
|
143
143
|
/** Advisory lines about packages the ejected file imports but the project lacks. */
|
|
144
144
|
dependencyNotes: string[];
|
|
145
|
+
/** Every `@metaobjectsdev/*` package the ejected file imports (declared or not) — what
|
|
146
|
+
* the consolidated install summary folds in, so it covers each per-file line. */
|
|
147
|
+
templatePackages: string[];
|
|
145
148
|
status: "created" | "preserved" | "replaced";
|
|
146
149
|
/**
|
|
147
150
|
* How the file ALREADY on disk compares to the reference template this CLI ships.
|
|
@@ -231,6 +234,7 @@ export async function ejectGenerator(opts: EjectOptions): Promise<EjectResult> {
|
|
|
231
234
|
exportName,
|
|
232
235
|
packageName: source.packageName,
|
|
233
236
|
dependencyNotes: notes,
|
|
237
|
+
templatePackages: requiredPackages(templateSource),
|
|
234
238
|
};
|
|
235
239
|
|
|
236
240
|
const existing = (await fileExists(abs)) ? await readFile(abs, "utf8") : undefined;
|
|
@@ -570,6 +574,7 @@ export async function ejectCommand(
|
|
|
570
574
|
const catalog = composeCatalog();
|
|
571
575
|
const rows: EjectedRow[] = [];
|
|
572
576
|
const libraries: LibraryEjectResult[] = [];
|
|
577
|
+
const templatePackages = new Set<string>();
|
|
573
578
|
try {
|
|
574
579
|
for (const name of flags.names) {
|
|
575
580
|
if (isLibraryName(name)) {
|
|
@@ -579,6 +584,7 @@ export async function ejectCommand(
|
|
|
579
584
|
continue;
|
|
580
585
|
}
|
|
581
586
|
const result = await ejectGenerator({ cwd, name, force: flags.force });
|
|
587
|
+
for (const p of result.templatePackages) templatePackages.add(p);
|
|
582
588
|
rows.push({
|
|
583
589
|
name,
|
|
584
590
|
path: result.path,
|
|
@@ -595,12 +601,16 @@ export async function ejectCommand(
|
|
|
595
601
|
|
|
596
602
|
// ONE install set for the whole call, not one per name: ejecting `hooks` and `grid`
|
|
597
603
|
// needs @metaobjectsdev/codegen-ts-tanstack once, and an adopter handed the same
|
|
598
|
-
// package twice reasonably wonders which line to run.
|
|
604
|
+
// package twice reasonably wonders which line to run. It folds in what the ejected
|
|
605
|
+
// FILES import as well as what the catalog says the generators need: the reference
|
|
606
|
+
// templates import `@metaobjectsdev/metadata` at gen time, which no catalog entry
|
|
607
|
+
// names, so a summary built from the catalog alone printed a line that omitted a
|
|
608
|
+
// package each per-file note had just asked for.
|
|
599
609
|
const entries = flags.names
|
|
600
610
|
.filter((n) => !isLibraryName(n))
|
|
601
611
|
.map((n) => catalog[n])
|
|
602
612
|
.filter((e) => e !== undefined);
|
|
603
|
-
const install = installSetFor(entries);
|
|
613
|
+
const install = installSetFor(entries, [...templatePackages]);
|
|
604
614
|
const configKeys = [...new Set(entries.flatMap((e) => e.configKeys ?? []))].sort();
|
|
605
615
|
|
|
606
616
|
if (fmt === "text") {
|
package/src/commands/gen.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { relative } from "node:path";
|
|
2
2
|
import { parseGenArgs } from "../lib/args.js";
|
|
3
|
-
import { resolveGenConfig } from "../lib/config.js";
|
|
3
|
+
import { resolveGenConfig, resolveMigrateDefaults } from "../lib/config.js";
|
|
4
|
+
import { genMigrateAdvice } from "../lib/gen-migrate-advice.js";
|
|
4
5
|
import { loadMemoryOptionsFrom, loadMetaobjectsConfig, resolveGenCollection, resolveGenConfigDir } from "../lib/load-metaobjects-config.js";
|
|
5
6
|
import { collectionLoadOptions } from "../lib/collection-load-options.js";
|
|
6
7
|
import { formatGenResult, formatGenResultToon, type GenFileEntry, type GenFileStatus } from "../lib/output.js";
|
|
@@ -35,6 +36,9 @@ import { composeCatalog } from "../lib/catalog.js";
|
|
|
35
36
|
*/
|
|
36
37
|
|
|
37
38
|
|
|
39
|
+
/** Write outcomes that change a file on disk — the ones that can carry a schema change. */
|
|
40
|
+
const CHANGED_STATUSES: ReadonlySet<WriteStatus> = new Set<WriteStatus>(["new", "overwrite", "merged", "conflict", "removed"]);
|
|
41
|
+
|
|
38
42
|
export function mapStatus(s: WriteStatus): GenFileStatus {
|
|
39
43
|
switch (s) {
|
|
40
44
|
case "new": return "new";
|
|
@@ -232,6 +236,17 @@ export async function genCommand(args: string[], cwd: string, fmt: OutputFormat
|
|
|
232
236
|
const antiPatterns = runAntiPatternScan(
|
|
233
237
|
projectRoot, cliConfig.dryRun, flags.noAntipatterns, forgeConfig.verify?.antiPatternIgnore);
|
|
234
238
|
|
|
239
|
+
const migrateDefaults = await resolveMigrateDefaults(projectRoot);
|
|
240
|
+
const migrateAdvice = await genMigrateAdvice({
|
|
241
|
+
metadata,
|
|
242
|
+
dialect: forgeConfig.dialect,
|
|
243
|
+
migrateDialect: migrateDefaults.dialect,
|
|
244
|
+
columnNamingStrategy: forgeConfig.columnNamingStrategy,
|
|
245
|
+
projectRoot,
|
|
246
|
+
migrateOutDir: migrateDefaults.outDir,
|
|
247
|
+
changedFiles: result.files.filter((f) => CHANGED_STATUSES.has(f.status)).map((f) => f.path),
|
|
248
|
+
});
|
|
249
|
+
|
|
235
250
|
const genResult = {
|
|
236
251
|
files,
|
|
237
252
|
outDir: targetDirs.length > 1 ? targetDirs.join(", ") : forgeConfig.outDir,
|
|
@@ -240,6 +255,7 @@ export async function genCommand(args: string[], cwd: string, fmt: OutputFormat
|
|
|
240
255
|
warnings: [],
|
|
241
256
|
antiPatterns,
|
|
242
257
|
generatorCount: forgeConfig.generators?.length ?? 0,
|
|
258
|
+
...(migrateAdvice !== undefined ? { migrateAdvice } : {}),
|
|
243
259
|
};
|
|
244
260
|
const output =
|
|
245
261
|
fmt === "toon" ? formatGenResultToon(genResult)
|
package/src/commands/migrate.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
isBlockedChangesError,
|
|
20
20
|
isPrimaryKeyChangeError,
|
|
21
21
|
isDeclaredRenameError,
|
|
22
|
+
isDuplicateSqlNameError,
|
|
22
23
|
buildExpectedSchemaWithProvenance,
|
|
23
24
|
scopeExpectedSchema,
|
|
24
25
|
scopedDiffInputs,
|
|
@@ -62,6 +63,8 @@ import {
|
|
|
62
63
|
import { buildProjectionViews } from "@metaobjectsdev/codegen-ts";
|
|
63
64
|
import { tokensToAllowOptions, blockedEntriesFor, blockedHintLines } from "../lib/allow.js";
|
|
64
65
|
import { reportLoadError } from "../lib/load-error.js";
|
|
66
|
+
import { scanForReferentialActionConflicts } from "../lib/referential-action-advisory.js";
|
|
67
|
+
import type { MetaData } from "@metaobjectsdev/metadata";
|
|
65
68
|
|
|
66
69
|
/**
|
|
67
70
|
* Print a load failure with everything the loader's ADR-0009 envelope carried — the stable
|
|
@@ -236,6 +239,22 @@ function logOutOfScope(
|
|
|
236
239
|
}
|
|
237
240
|
}
|
|
238
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Warn about each foreign key whose two sides declare relationships that disagree on its
|
|
244
|
+
* referential action — the parent's is overridden, and the DDL this run writes carries the
|
|
245
|
+
* child's. Advisory: it never changes the exit code, and a scan that throws is dropped
|
|
246
|
+
* (the schema build itself reports anything wrong with the model).
|
|
247
|
+
*/
|
|
248
|
+
function warnReferentialActionConflicts(metadata: MetaData, collection: Collection): void {
|
|
249
|
+
let findings;
|
|
250
|
+
try {
|
|
251
|
+
findings = scanForReferentialActionConflicts(metadata, { skip: collection.imported });
|
|
252
|
+
} catch {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
for (const f of findings) log.warn(`migrate: ${f.message}`);
|
|
256
|
+
}
|
|
257
|
+
|
|
239
258
|
function emitStructuredError(error: string, hint: string, fmt: OutputFormat): void {
|
|
240
259
|
const payload = { error, hint };
|
|
241
260
|
if (fmt === "json") {
|
|
@@ -296,6 +315,8 @@ function refuseEngineError(err: Error, hint: string, fmt: OutputFormat): number
|
|
|
296
315
|
|
|
297
316
|
const PK_CHANGE_HINT =
|
|
298
317
|
"align the primary key manually, or reconcile the metadata identity to match the live table";
|
|
318
|
+
const DUPLICATE_SQL_NAME_HINT =
|
|
319
|
+
"rename one of the colliding declarations; an index's database name is its identity.secondary / index.lookup name, not prefixed with its table";
|
|
299
320
|
const DECLARED_RENAME_HINT =
|
|
300
321
|
"fix or remove the --rename-table / --rename-column flag; a table's name is its name in the metadata (the new name when it is renamed too)";
|
|
301
322
|
|
|
@@ -685,6 +706,7 @@ export async function migrateCommand(
|
|
|
685
706
|
reportLoadError(log, "failed to load metadata", err);
|
|
686
707
|
return 2;
|
|
687
708
|
}
|
|
709
|
+
warnReferentialActionConflicts(metadata, collection);
|
|
688
710
|
|
|
689
711
|
let kysely;
|
|
690
712
|
try {
|
|
@@ -1013,6 +1035,8 @@ export async function migrateCommand(
|
|
|
1013
1035
|
// AlreadyEmittedError: sub-function already called emitStructuredError — just
|
|
1014
1036
|
// propagate the exit code without double-emitting.
|
|
1015
1037
|
if (err instanceof AlreadyEmittedError) return err.exitCode;
|
|
1038
|
+
// A metadata defect, not a tool failure: two declarations generate one database name.
|
|
1039
|
+
if (isDuplicateSqlNameError(err)) return refuseEngineError(err, DUPLICATE_SQL_NAME_HINT, fmt);
|
|
1016
1040
|
// Unexpected error: emit structured error on stdout in the active format, then exit 1.
|
|
1017
1041
|
const msg = (err as Error).message ?? String(err);
|
|
1018
1042
|
log.error(`migrate: unexpected error: ${msg}`);
|
|
@@ -1259,6 +1283,7 @@ export async function runOfflineGenerate(
|
|
|
1259
1283
|
reportLoadError(log, "migrate: failed to load metadata", err);
|
|
1260
1284
|
return 2;
|
|
1261
1285
|
}
|
|
1286
|
+
warnReferentialActionConflicts(metadata, collection);
|
|
1262
1287
|
|
|
1263
1288
|
const offlineDialect = config.dialect;
|
|
1264
1289
|
const offlineViews = buildProjectionViews(metadata, { dialect: offlineDialect, columnNamingStrategy: offlineStrategy });
|
|
@@ -1527,6 +1552,7 @@ async function runD1Migrate(
|
|
|
1527
1552
|
reportLoadError(log, "migrate: failed to load metadata", err);
|
|
1528
1553
|
return 2;
|
|
1529
1554
|
}
|
|
1555
|
+
warnReferentialActionConflicts(metadata, collection);
|
|
1530
1556
|
|
|
1531
1557
|
// 4. Build expected schema + introspect actual.
|
|
1532
1558
|
let columnNamingStrategy: "snake_case" | "literal" | "kebab-case" = "snake_case";
|
package/src/commands/verify.ts
CHANGED
|
@@ -16,9 +16,11 @@ import {
|
|
|
16
16
|
type AdvisoryDiagnosticRow, type AdvisoryFindingRow, type AdvisorySection,
|
|
17
17
|
libraryPrefixRows,
|
|
18
18
|
unindexedFkRows,
|
|
19
|
+
referentialActionConflictRows,
|
|
19
20
|
} from "../lib/advisory.js";
|
|
20
21
|
import { scanForUnprovenancedLibraryPrefix } from "../lib/library-prefix-advisory.js";
|
|
21
22
|
import { scanForUnindexedForeignKeys, type UnindexedFkFinding } from "../lib/fk-index-advisory.js";
|
|
23
|
+
import { scanForReferentialActionConflicts, type ReferentialActionConflictFinding } from "../lib/referential-action-advisory.js";
|
|
22
24
|
import { warnIfAgentContextStale } from "../lib/agent-context-staleness.js";
|
|
23
25
|
import { warnIfManifestIgnored } from "../lib/manifest-ignored-check.js";
|
|
24
26
|
import { scanSourceForAntiPatterns } from "../lib/anti-patterns.js";
|
|
@@ -868,12 +870,23 @@ export async function verifyCommand(
|
|
|
868
870
|
// schema builder refuses is migrate's to report, with its own message.
|
|
869
871
|
}
|
|
870
872
|
|
|
873
|
+
// Relationships on both sides of one FK that disagree on its ON DELETE / ON UPDATE:
|
|
874
|
+
// the FK-owning side governs, so the parent's (typically a composition meant to
|
|
875
|
+
// cascade) silently has no effect. Same discipline as its siblings.
|
|
876
|
+
let actionConflicts: ReferentialActionConflictFinding[] = [];
|
|
877
|
+
try {
|
|
878
|
+
actionConflicts = scanForReferentialActionConflicts(root, { skip: collection.imported });
|
|
879
|
+
} catch {
|
|
880
|
+
// advisory only — a model the schema builder refuses is migrate's to report.
|
|
881
|
+
}
|
|
882
|
+
|
|
871
883
|
antiPatternSection = ranSection([
|
|
872
884
|
...antiPatternRows(findings),
|
|
873
885
|
...missingBaseUrlRows(baseUrl),
|
|
874
886
|
...removedPropRows(removedProps),
|
|
875
887
|
...libraryPrefixRows(libraryPrefix),
|
|
876
888
|
...unindexedFkRows(unindexedFks),
|
|
889
|
+
...referentialActionConflictRows(actionConflicts),
|
|
877
890
|
]);
|
|
878
891
|
if (findings.length > 0) {
|
|
879
892
|
log.warn(
|
|
@@ -903,6 +916,13 @@ export async function verifyCommand(
|
|
|
903
916
|
);
|
|
904
917
|
warnCapped(unindexedFks.map((f) => ` ${f.message}`), flags.limit, { structured });
|
|
905
918
|
}
|
|
919
|
+
if (actionConflicts.length > 0) {
|
|
920
|
+
log.warn(
|
|
921
|
+
`meta verify — ${actionConflicts.length} foreign key(s) whose two sides declare relationships ` +
|
|
922
|
+
`that disagree on its referential action (advisory — does not fail the build):`,
|
|
923
|
+
);
|
|
924
|
+
warnCapped(actionConflicts.map((f) => ` ${f.message}`), flags.limit, { structured });
|
|
925
|
+
}
|
|
906
926
|
if (libraryPrefix.length > 0) {
|
|
907
927
|
log.warn(
|
|
908
928
|
`meta verify — ${libraryPrefix.length} node(s) declared under "metaobjects::" with ` +
|
|
@@ -1634,7 +1654,6 @@ const DRIFT_PRESENTATION: Record<Change["kind"], { glyph: string; noun: string }
|
|
|
1634
1654
|
function summarizeDrift(changes: Change[]): string[] {
|
|
1635
1655
|
return changes.map((c) => {
|
|
1636
1656
|
const p = DRIFT_PRESENTATION[c.kind];
|
|
1637
|
-
if (p === undefined) return JSON.stringify(c);
|
|
1638
1657
|
return `${p.glyph} ${p.noun} ${describeChange(c)}`;
|
|
1639
1658
|
});
|
|
1640
1659
|
}
|
package/src/lib/advisory.ts
CHANGED
|
@@ -180,6 +180,22 @@ export function unindexedFkRows(
|
|
|
180
180
|
}));
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Relationships on both sides of one FK that disagree on its referential action, in the
|
|
185
|
+
* same row shape. `construct` is `<entity FQN>.<reference>` — the FK, where the fix goes.
|
|
186
|
+
*/
|
|
187
|
+
export function referentialActionConflictRows(
|
|
188
|
+
findings: readonly { file: string; construct: string; message: string }[],
|
|
189
|
+
): AdvisoryFindingRow[] {
|
|
190
|
+
return findings.map((f) => ({
|
|
191
|
+
file: f.file,
|
|
192
|
+
line: 0,
|
|
193
|
+
rule: "overridden-referential-action",
|
|
194
|
+
construct: f.construct,
|
|
195
|
+
message: f.message,
|
|
196
|
+
}));
|
|
197
|
+
}
|
|
198
|
+
|
|
183
199
|
// ---------------------------------------------------------------------------
|
|
184
200
|
// text output
|
|
185
201
|
// ---------------------------------------------------------------------------
|