@metaobjectsdev/cli 1.0.8 → 1.0.9-rc.2
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.map +1 -1
- package/dist/src/commands/eject.js +22 -4
- package/dist/src/commands/eject.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +0 -3
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/migrate.d.ts +1 -1
- package/dist/src/commands/migrate.d.ts.map +1 -1
- package/dist/src/commands/migrate.js +35 -22
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/verify.d.ts +12 -0
- package/dist/src/commands/verify.d.ts.map +1 -1
- package/dist/src/commands/verify.js +102 -20
- package/dist/src/commands/verify.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/advisory.d.ts +19 -0
- package/dist/src/lib/advisory.d.ts.map +1 -1
- package/dist/src/lib/advisory.js +27 -0
- package/dist/src/lib/advisory.js.map +1 -1
- package/dist/src/lib/allow.d.ts +21 -1
- package/dist/src/lib/allow.d.ts.map +1 -1
- package/dist/src/lib/allow.js +62 -1
- package/dist/src/lib/allow.js.map +1 -1
- package/dist/src/lib/catalog-listing.d.ts +2 -0
- package/dist/src/lib/catalog-listing.d.ts.map +1 -1
- package/dist/src/lib/catalog-listing.js +7 -0
- package/dist/src/lib/catalog-listing.js.map +1 -1
- package/dist/src/lib/file-provider.d.ts +12 -0
- package/dist/src/lib/file-provider.d.ts.map +1 -1
- package/dist/src/lib/file-provider.js +26 -1
- package/dist/src/lib/file-provider.js.map +1 -1
- package/dist/src/lib/fk-index-advisory.d.ts +17 -0
- package/dist/src/lib/fk-index-advisory.d.ts.map +1 -0
- package/dist/src/lib/fk-index-advisory.js +77 -0
- package/dist/src/lib/fk-index-advisory.js.map +1 -0
- package/dist/src/lib/output.d.ts +9 -0
- package/dist/src/lib/output.d.ts.map +1 -1
- package/dist/src/lib/output.js +17 -3
- 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 +25 -4
- package/src/commands/init.ts +0 -3
- package/src/commands/migrate.ts +32 -24
- package/src/commands/verify.ts +108 -18
- package/src/index.ts +5 -2
- package/src/lib/advisory.ts +33 -0
- package/src/lib/allow.ts +66 -2
- package/src/lib/catalog-listing.ts +7 -0
- package/src/lib/file-provider.ts +27 -1
- package/src/lib/fk-index-advisory.ts +112 -0
- package/src/lib/output.ts +25 -3
- package/src/lib/referential-action-advisory.ts +58 -0
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAwJvE,mEAAmE;AACnE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyR/C,CAAC;AAEF,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAiNzD"}
|
package/dist/src/index.js
CHANGED
|
@@ -138,6 +138,8 @@ MIGRATE FLAGS:
|
|
|
138
138
|
drop-column,drop-table,type-change,drop-index,drop-fk,
|
|
139
139
|
drop-check,drop-view,drop-view-cascade,
|
|
140
140
|
adopt-view,nullable-to-not-null,drop-identity-default
|
|
141
|
+
drop-column DELETES the column's data; for a renamed
|
|
142
|
+
column use --rename-column, which keeps it
|
|
141
143
|
--on-ambiguous abort|rename|drop-add Default abort
|
|
142
144
|
--rename-table [schema.]old=new Declare a table rename (repeatable)
|
|
143
145
|
--rename-column [schema.]table.old=new Declare a column rename; keeps its data (repeatable)
|
|
@@ -147,8 +149,7 @@ MIGRATE FLAGS:
|
|
|
147
149
|
--yes Skip the --remote --apply confirmation pause
|
|
148
150
|
--dry-run Print SQL to stdout, don't write
|
|
149
151
|
|
|
150
|
-
|
|
151
|
-
ship in later sub-projects. See https://metaobjects.com for docs.
|
|
152
|
+
See https://metaobjects.com for docs.
|
|
152
153
|
`;
|
|
153
154
|
/** Focused per-subcommand usage slices shown by `<cmd> --help`. */
|
|
154
155
|
export const COMMAND_HELP = {
|
|
@@ -318,6 +319,8 @@ FLAGS:
|
|
|
318
319
|
A bare 'meta verify' also runs an ADVISORY anti-pattern pass: it scans your authored
|
|
319
320
|
source for hand-rolled aggregates, money-as-float, and CHECK-IN enums and points you
|
|
320
321
|
at the construct that models them (origin.aggregate / field.currency / field.enum).
|
|
322
|
+
The same pass names every foreign key with no index on its referencing column(s)
|
|
323
|
+
and the index.lookup that would cover it (migrate never adds one on its own).
|
|
321
324
|
Warnings only — it never fails the build. Opt out with --no-antipatterns or
|
|
322
325
|
META_NO_ANTIPATTERNS=1.
|
|
323
326
|
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAqB,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAExG,MAAM,SAAS,GAAG,4BAA4B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCA6BZ,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,25 @@ export declare function libraryPrefixRows(findings: readonly {
|
|
|
79
79
|
fqn: string;
|
|
80
80
|
message: string;
|
|
81
81
|
}[]): AdvisoryFindingRow[];
|
|
82
|
+
/**
|
|
83
|
+
* Unindexed foreign keys in the same row shape. `construct` is `<entity FQN>.<reference>`,
|
|
84
|
+
* the node the author edits to declare the index. There is no line: the finding is about the
|
|
85
|
+
* loaded model, which does not carry source positions.
|
|
86
|
+
*/
|
|
87
|
+
export declare function unindexedFkRows(findings: readonly {
|
|
88
|
+
file: string;
|
|
89
|
+
construct: string;
|
|
90
|
+
message: string;
|
|
91
|
+
}[]): AdvisoryFindingRow[];
|
|
92
|
+
/**
|
|
93
|
+
* Relationships on both sides of one FK that disagree on its referential action, in the
|
|
94
|
+
* same row shape. `construct` is `<entity FQN>.<reference>` — the FK, where the fix goes.
|
|
95
|
+
*/
|
|
96
|
+
export declare function referentialActionConflictRows(findings: readonly {
|
|
97
|
+
file: string;
|
|
98
|
+
construct: string;
|
|
99
|
+
message: string;
|
|
100
|
+
}[]): AdvisoryFindingRow[];
|
|
82
101
|
/**
|
|
83
102
|
* Print a capped run of advisory lines to stderr.
|
|
84
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/advisory.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUlE;AAMD,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb;iFAC6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC,8EAA8E;IAC9E,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAEtE;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAEjE;AAED;;0BAE0B;AAC1B,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAQ7F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAQ5F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAQ7F;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAClE,kBAAkB,EAAE,CAQtB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC5B,IAAI,CASN"}
|
|
1
|
+
{"version":3,"file":"advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/advisory.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUlE;AAMD,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb;iFAC6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC,8EAA8E;IAC9E,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAEtE;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAEjE;AAED;;0BAE0B;AAC1B,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAQ7F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAQ5F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAQ7F;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAClE,kBAAkB,EAAE,CAQtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GACxE,kBAAkB,EAAE,CAQtB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GACxE,kBAAkB,EAAE,CAQtB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC5B,IAAI,CASN"}
|
package/dist/src/lib/advisory.js
CHANGED
|
@@ -107,6 +107,33 @@ export function libraryPrefixRows(findings) {
|
|
|
107
107
|
message: f.message,
|
|
108
108
|
}));
|
|
109
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Unindexed foreign keys in the same row shape. `construct` is `<entity FQN>.<reference>`,
|
|
112
|
+
* the node the author edits to declare the index. There is no line: the finding is about the
|
|
113
|
+
* loaded model, which does not carry source positions.
|
|
114
|
+
*/
|
|
115
|
+
export function unindexedFkRows(findings) {
|
|
116
|
+
return findings.map((f) => ({
|
|
117
|
+
file: f.file,
|
|
118
|
+
line: 0,
|
|
119
|
+
rule: "unindexed-foreign-key",
|
|
120
|
+
construct: f.construct,
|
|
121
|
+
message: f.message,
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Relationships on both sides of one FK that disagree on its referential action, in the
|
|
126
|
+
* same row shape. `construct` is `<entity FQN>.<reference>` — the FK, where the fix goes.
|
|
127
|
+
*/
|
|
128
|
+
export function referentialActionConflictRows(findings) {
|
|
129
|
+
return findings.map((f) => ({
|
|
130
|
+
file: f.file,
|
|
131
|
+
line: 0,
|
|
132
|
+
rule: "overridden-referential-action",
|
|
133
|
+
construct: f.construct,
|
|
134
|
+
message: f.message,
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
110
137
|
// ---------------------------------------------------------------------------
|
|
111
138
|
// text output
|
|
112
139
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisory.js","sourceRoot":"","sources":["../../../src/lib/advisory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advisory.js","sourceRoot":"","sources":["../../../src/lib/advisory.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/allow.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AllowOptions, Change } from "@metaobjectsdev/migrate-ts";
|
|
1
|
+
import type { AllowOptions, Change, ColumnRenameSuggestion } from "@metaobjectsdev/migrate-ts";
|
|
2
|
+
import type { BlockedEntry } from "./output.js";
|
|
2
3
|
export declare const ALLOW_TOKEN_MAP: Record<string, keyof AllowOptions>;
|
|
3
4
|
/** Translate parsed `--allow` tokens into the migrate-ts `AllowOptions` shape. */
|
|
4
5
|
export declare function tokensToAllowOptions(tokens: string[]): AllowOptions;
|
|
@@ -8,4 +9,23 @@ export declare function tokensToAllowOptions(tokens: string[]): AllowOptions;
|
|
|
8
9
|
* a +/-/~ glyph and a noun (`table`/`column`/…) on top.
|
|
9
10
|
*/
|
|
10
11
|
export declare function describeChange(c: Change): string;
|
|
12
|
+
/** The `--allow` token that unblocks `c`. migrate-ts picks the permission by what blocked the
|
|
13
|
+
* change (a type change can be blocked by the auto-sequence default it carries), so this only
|
|
14
|
+
* maps that permission back to its CLI token. */
|
|
15
|
+
export declare function allowFlagFor(c: Change): string;
|
|
16
|
+
/** `--rename-column [schema.]table.old=new`, spelled with the pair's real names. */
|
|
17
|
+
export declare function renameColumnFlag(r: ColumnRenameSuggestion): string;
|
|
18
|
+
/**
|
|
19
|
+
* One reportable entry per blocked change. `changes` is the whole diff the blocked ones came
|
|
20
|
+
* from: a blocked drop-column that pairs with an add-column in the same table may be a column
|
|
21
|
+
* the author RENAMED, and `--allow drop-column` would delete its data — so that entry carries
|
|
22
|
+
* the declared-rename flag, which every renderer prints FIRST.
|
|
23
|
+
*/
|
|
24
|
+
export declare function blockedEntriesFor(blocked: readonly Change[], changes: readonly Change[]): BlockedEntry[];
|
|
25
|
+
/**
|
|
26
|
+
* The hint for one blocked entry, as the lines a renderer prints in order. A rename-pairable
|
|
27
|
+
* drop leads with the declared rename and names `--allow drop-column` as what deletes the data;
|
|
28
|
+
* every other entry is the one-line `--allow` hint it always was.
|
|
29
|
+
*/
|
|
30
|
+
export declare function blockedHintLines(e: BlockedEntry): string[];
|
|
11
31
|
//# sourceMappingURL=allow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allow.d.ts","sourceRoot":"","sources":["../../../src/lib/allow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"allow.d.ts","sourceRoot":"","sources":["../../../src/lib/allow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,YAAY,CA2B9D,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CASnE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAkChD;AAED;;kDAEkD;AAClD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,EAAE,CAcxG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CAW1D"}
|
package/dist/src/lib/allow.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Shared destructive-change-permission parsing + change description, used by
|
|
2
2
|
// both `meta migrate` and `meta verify --db`. Keeping a single copy avoids the
|
|
3
3
|
// two commands drifting on which `--allow` tokens exist or how a change reads.
|
|
4
|
+
import { allowOptionFor, suggestColumnRenames } from "@metaobjectsdev/migrate-ts";
|
|
4
5
|
// Map CLI allow tokens → migrate-ts AllowOptions field names.
|
|
5
6
|
// Exported (not just module-local) so allow-tokens-pinned.test.ts can pin its
|
|
6
7
|
// key set against ALLOW_TOKENS (args.ts). ALLOW_TOKENS is the *validator* —
|
|
@@ -72,10 +73,70 @@ export function describeChange(c) {
|
|
|
72
73
|
case "drop-index": return `${c.table} idx ${c.index}`;
|
|
73
74
|
case "add-fk": return `${c.table} fk ${c.fk.name}`;
|
|
74
75
|
case "drop-fk": return `${c.table} fk ${c.fk}`;
|
|
76
|
+
case "add-check": return `${c.table} check ${c.check.name} (${c.check.expression})`;
|
|
77
|
+
case "drop-check":
|
|
78
|
+
return c.restore !== undefined
|
|
79
|
+
? `${c.table} check ${c.check} (${c.restore.expression})`
|
|
80
|
+
: `${c.table} check ${c.check}`;
|
|
75
81
|
case "create-view": return c.view.name;
|
|
76
82
|
case "replace-view": return c.view.name;
|
|
77
83
|
case "drop-view": return c.view;
|
|
78
|
-
default: return JSON.stringify(c);
|
|
79
84
|
}
|
|
85
|
+
// Exhaustive: a new Change kind fails to compile here rather than printing a JSON dump
|
|
86
|
+
// of the change object to a person (which is what a blocked drop-check used to do).
|
|
87
|
+
const unhandled = c;
|
|
88
|
+
return unhandled;
|
|
89
|
+
}
|
|
90
|
+
/** The `--allow` token that unblocks `c`. migrate-ts picks the permission by what blocked the
|
|
91
|
+
* change (a type change can be blocked by the auto-sequence default it carries), so this only
|
|
92
|
+
* maps that permission back to its CLI token. */
|
|
93
|
+
export function allowFlagFor(c) {
|
|
94
|
+
const option = allowOptionFor(c);
|
|
95
|
+
const token = Object.keys(ALLOW_TOKEN_MAP).find((t) => ALLOW_TOKEN_MAP[t] === option);
|
|
96
|
+
return token ?? c.kind;
|
|
97
|
+
}
|
|
98
|
+
/** `--rename-column [schema.]table.old=new`, spelled with the pair's real names. */
|
|
99
|
+
export function renameColumnFlag(r) {
|
|
100
|
+
return `--rename-column ${r.schema !== undefined ? `${r.schema}.` : ""}${r.table}.${r.from}=${r.to}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* One reportable entry per blocked change. `changes` is the whole diff the blocked ones came
|
|
104
|
+
* from: a blocked drop-column that pairs with an add-column in the same table may be a column
|
|
105
|
+
* the author RENAMED, and `--allow drop-column` would delete its data — so that entry carries
|
|
106
|
+
* the declared-rename flag, which every renderer prints FIRST.
|
|
107
|
+
*/
|
|
108
|
+
export function blockedEntriesFor(blocked, changes) {
|
|
109
|
+
const renames = suggestColumnRenames(changes);
|
|
110
|
+
return blocked.map((c) => {
|
|
111
|
+
const entry = { kind: c.kind, description: describeChange(c), allowFlag: allowFlagFor(c) };
|
|
112
|
+
if (c.kind !== "drop-column")
|
|
113
|
+
return entry;
|
|
114
|
+
const r = renames.find((x) => x.from === c.column && x.table === c.table && x.schema === c.schema);
|
|
115
|
+
if (r === undefined)
|
|
116
|
+
return entry;
|
|
117
|
+
return {
|
|
118
|
+
...entry,
|
|
119
|
+
renameFlag: renameColumnFlag(r),
|
|
120
|
+
renameTo: `${r.table}.${r.to}`,
|
|
121
|
+
...(r.shapeChange !== undefined ? { shapeChange: r.shapeChange } : {}),
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* The hint for one blocked entry, as the lines a renderer prints in order. A rename-pairable
|
|
127
|
+
* drop leads with the declared rename and names `--allow drop-column` as what deletes the data;
|
|
128
|
+
* every other entry is the one-line `--allow` hint it always was.
|
|
129
|
+
*/
|
|
130
|
+
export function blockedHintLines(e) {
|
|
131
|
+
if (e.renameFlag === undefined) {
|
|
132
|
+
return [`blocked '${e.kind}' on ${e.description} (allow with --allow ${e.allowFlag})`];
|
|
133
|
+
}
|
|
134
|
+
const shape = e.shapeChange !== undefined
|
|
135
|
+
? ` (its ${e.shapeChange} also changes: rename first with the old shape still declared, then change the shape in a second migration)`
|
|
136
|
+
: "";
|
|
137
|
+
return [
|
|
138
|
+
`${e.description} is dropped and ${e.renameTo ?? "a column"} is added in the same table. If it was renamed, keep its data: re-run with ${e.renameFlag}${shape}`,
|
|
139
|
+
` (--allow ${e.allowFlag} instead DELETES ${e.description} and all its data)`,
|
|
140
|
+
];
|
|
80
141
|
}
|
|
81
142
|
//# sourceMappingURL=allow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allow.js","sourceRoot":"","sources":["../../../src/lib/allow.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+EAA+E;AAC/E,+EAA+E;
|
|
1
|
+
{"version":3,"file":"allow.js","sourceRoot":"","sources":["../../../src/lib/allow.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,6 +92,8 @@ export declare function declaredDepsOf(projectRoot: string): Set<string> | undef
|
|
|
92
92
|
* the top of the catalog because this is where an adopter decides what to depend on.
|
|
93
93
|
*/
|
|
94
94
|
export declare const REFERENCE_HELPER_NOTE: readonly string[];
|
|
95
|
+
/** The footer line explaining the `package-only` row mark. */
|
|
96
|
+
export declare const PACKAGE_ONLY_NOTE: string;
|
|
95
97
|
/** The human rendering: grouped by layer, because layer is the axis you select by. */
|
|
96
98
|
export declare function renderCatalogText(rows: CatalogRow[], probed: boolean): string;
|
|
97
99
|
//# sourceMappingURL=catalog-listing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-listing.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-listing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalog-listing.d.ts","sourceRoot":"","sources":["../../../src/lib/catalog-listing.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAI9B;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEjE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE,oBAAoB,GAAG,cAAc,CAAC;QAC5C,SAAS,EAAE,OAAO,CAAC;QACnB,wEAAwE;QACxE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,mDAAmD;QACnD,KAAK,EAAE,OAAO,CAAC;QACf,2FAA2F;QAC3F,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;QAClC,6EAA6E;QAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,2EAA2E;QAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AA+DD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,8EAA8E;IAC9E,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,wDAAwD;IACxD,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,4EAA4E;IAC5E,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9C;;gCAE4B;IAC5B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gGAAgG;IAChG,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAC;CAClE;AAkCD,wBAAsB,mBAAmB,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAuE9F;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,CAO7E;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAYpE;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAG3E;AAeD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAIlD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,QAES,CAAC;AAExC,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CA4C7E"}
|
|
@@ -230,6 +230,9 @@ export const REFERENCE_HELPER_NOTE = [
|
|
|
230
230
|
"your repo and the copy is yours to change. What MetaObjects guarantees (migrate, verify,",
|
|
231
231
|
"render) is not a generator and is not listed here.",
|
|
232
232
|
];
|
|
233
|
+
/** The footer line explaining the `package-only` row mark. */
|
|
234
|
+
export const PACKAGE_ONLY_NOTE = "package-only = no reference template ships for it yet, so `meta eject` cannot copy it; " +
|
|
235
|
+
"import it from its package instead.";
|
|
233
236
|
/** The human rendering: grouped by layer, because layer is the axis you select by. */
|
|
234
237
|
export function renderCatalogText(rows, probed) {
|
|
235
238
|
const lines = [];
|
|
@@ -249,6 +252,8 @@ export function renderCatalogText(rows, probed) {
|
|
|
249
252
|
marks.push(r.framework);
|
|
250
253
|
if (r.tier === "neutral")
|
|
251
254
|
marks.push("neutral");
|
|
255
|
+
if (!r.source.ejectable)
|
|
256
|
+
marks.push("package-only");
|
|
252
257
|
if (r.project?.wired)
|
|
253
258
|
marks.push("WIRED");
|
|
254
259
|
if (r.source.owned)
|
|
@@ -269,6 +274,8 @@ export function renderCatalogText(rows, probed) {
|
|
|
269
274
|
lines.push("");
|
|
270
275
|
lines.push("`meta eject <name...>` copies a generator into codegen/generators/ and prints");
|
|
271
276
|
lines.push("the import to add, the entry to wire, and what to install.");
|
|
277
|
+
if (generators.some((r) => !r.source.ejectable))
|
|
278
|
+
lines.push(PACKAGE_ONLY_NOTE);
|
|
272
279
|
if (!probed) {
|
|
273
280
|
lines.push("Add --probe to see how many files each would emit for YOUR model.");
|
|
274
281
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-listing.js","sourceRoot":"","sources":["../../../src/lib/catalog-listing.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,sFAAsF;AACtF,sFAAsF;AACtF,sFAAsF;AACtF,qFAAqF;AACrF,wFAAwF;AACxF,gBAAgB;AAChB,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,0EAA0E;AAC1E,6EAA6E;AAC7E,EAAE;AACF,kFAAkF;AAElF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,MAAM,GAIP,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,gBAAgB,EAAE,iBAAiB,GAEpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AA8CrF,oFAAoF;AACpF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAElD,wEAAwE;AACxE,MAAM,iBAAiB,GAA2B;IAChD,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,uBAAuB;CAClC,CAAC;AAEF,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,yEAAyE;AACzE,MAAM,cAAc,GAA8D;IAChF,CAAC,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,oBAAoB,CAAC;IACjE,CAAC,QAAQ,CAAC,yBAAyB,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IACnE,CAAC,WAAW,CAAC,yBAAyB,EAAE,WAAW,CAAC,oBAAoB,CAAC;CAC1E,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,KAAa;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,mFAAmF;QACnF,mDAAmD;QACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QAC1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAgCD;;;;;;;GAOG;AACH,KAAK,UAAU,QAAQ,CACrB,KAA6B,EAC7B,OAAuB,EACvB,QAAkB,EAClB,KAA6C;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;YAC5D,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA2B,EAAE;IACrE,MAAM,IAAI,GAAiB,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAExC,MAAM,GAAG,GAAwB;YAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,SAAS;gBAC3E,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAE,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,SAAS;gBACxE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAE,EAAE;gBAC5C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;YACvD,MAAM,EAAE;gBACN,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc;gBAC7D,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;aACnF;SACF,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3B,MAAM,iBAAiB,GACrB,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBACpD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAE5D,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,IAAI,UAA8B,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtF,IAAI,OAAO,IAAI,OAAO;oBAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;;oBAC7C,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;YAClC,CAAC;YAED,GAAG,CAAC,OAAO,GAAG;gBACZ,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACzC,iBAAiB;gBACjB,SAAS;gBACT,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,+EAA+E;IAC/E,MAAM,UAAU,GACd,IAAI,CAAC,OAAO,KAAK,SAAS;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;YACvC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC;IACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACzC,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,SAAS;QAC/B,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;YAClF,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,WAAW,GAA0B;IACzC,KAAK,EAAE,kDAAkD;IACzD,WAAW,EAAE,+BAA+B;IAC5C,GAAG,EAAE,uCAAuC;IAC5C,MAAM,EAAE,sEAAsE;IAC9E,IAAI,EAAE,kDAAkD;IACxD,UAAU,EAAE,qDAAqD;CAClE,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,2FAA2F;IAC3F,0FAA0F;IAC1F,oDAAoD;CACrD,CAAC;AAEF,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,IAAkB,EAAE,MAAe;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,KAAyB,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YAClF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,iFAAiF;IACjF,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"catalog-listing.js","sourceRoot":"","sources":["../../../src/lib/catalog-listing.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,17 @@ export declare class FileProvider implements Provider {
|
|
|
3
3
|
private readonly baseDir;
|
|
4
4
|
constructor(baseDir: string);
|
|
5
5
|
resolve(ref: string): string | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* The file `ref` resolves to, or undefined. `resolve` reads exactly this file, so a
|
|
8
|
+
* diagnostic that names it names the body that was checked.
|
|
9
|
+
*/
|
|
10
|
+
pathOf(ref: string): string | undefined;
|
|
6
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* The 1-based line of the first mustache tag naming `path` in `text` — `{{path}}`,
|
|
14
|
+
* `{{{path}}}`, `{{& path}}`, `{{#path}}`, `{{^path}}` — trying the full dotted path and then
|
|
15
|
+
* its head segment (a dotted drift is reported on the path, but the tag may open a section on
|
|
16
|
+
* the head). Undefined when no tag matches, e.g. the variable lives in a partial.
|
|
17
|
+
*/
|
|
18
|
+
export declare function mustacheTagLine(text: string, path: string): number | undefined;
|
|
7
19
|
//# sourceMappingURL=file-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/file-provider.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,qBAAa,YAAa,YAAW,QAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAE5C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"file-provider.d.ts","sourceRoot":"","sources":["../../../src/lib/file-provider.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,qBAAa,YAAa,YAAW,QAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAE5C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKxC;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAgBxC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ9E"}
|
|
@@ -14,13 +14,22 @@ export class FileProvider {
|
|
|
14
14
|
this.baseDir = baseDir;
|
|
15
15
|
}
|
|
16
16
|
resolve(ref) {
|
|
17
|
+
const path = this.pathOf(ref);
|
|
18
|
+
return path === undefined ? undefined : readFileSync(path, "utf8");
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The file `ref` resolves to, or undefined. `resolve` reads exactly this file, so a
|
|
22
|
+
* diagnostic that names it names the body that was checked.
|
|
23
|
+
*/
|
|
24
|
+
pathOf(ref) {
|
|
17
25
|
// `group/source` → <baseDir>/group/source<ext>; node:path.join normalizes
|
|
18
26
|
// the embedded "/" separators for the host OS.
|
|
19
27
|
for (const ext of EXTENSIONS) {
|
|
20
28
|
const path = join(this.baseDir, ref) + ext;
|
|
21
29
|
if (existsSync(path)) {
|
|
22
30
|
try {
|
|
23
|
-
|
|
31
|
+
readFileSync(path, "utf8");
|
|
32
|
+
return path;
|
|
24
33
|
}
|
|
25
34
|
catch {
|
|
26
35
|
// unreadable — fall through and try the next candidate
|
|
@@ -30,4 +39,20 @@ export class FileProvider {
|
|
|
30
39
|
return undefined;
|
|
31
40
|
}
|
|
32
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* The 1-based line of the first mustache tag naming `path` in `text` — `{{path}}`,
|
|
44
|
+
* `{{{path}}}`, `{{& path}}`, `{{#path}}`, `{{^path}}` — trying the full dotted path and then
|
|
45
|
+
* its head segment (a dotted drift is reported on the path, but the tag may open a section on
|
|
46
|
+
* the head). Undefined when no tag matches, e.g. the variable lives in a partial.
|
|
47
|
+
*/
|
|
48
|
+
export function mustacheTagLine(text, path) {
|
|
49
|
+
const esc = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
50
|
+
const head = path.split(".")[0] ?? path;
|
|
51
|
+
for (const name of path === head ? [path] : [path, head]) {
|
|
52
|
+
const m = new RegExp(`\\{\\{\\{?\\s*[#^&]?\\s*${esc(name)}\\s*\\}`).exec(text);
|
|
53
|
+
if (m !== null)
|
|
54
|
+
return text.slice(0, m.index).split("\n").length;
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
33
58
|
//# sourceMappingURL=file-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-provider.js","sourceRoot":"","sources":["../../../src/lib/file-provider.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAU,CAAC;AAEtD,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEhD,OAAO,CAAC,GAAW;QACjB,0EAA0E;QAC1E,+CAA+C;QAC/C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,
|
|
1
|
+
{"version":3,"file":"file-provider.js","sourceRoot":"","sources":["../../../src/lib/file-provider.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,wCAAwC;AAExC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAU,CAAC;AAEtD,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEhD,OAAO,CAAC,GAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,GAAW;QAChB,0EAA0E;QAC1E,+CAA+C;QAC/C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC3B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,uDAAuD;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,2BAA2B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ColumnNamingStrategy, type MetaData } from "@metaobjectsdev/metadata";
|
|
2
|
+
import { type Dialect } from "@metaobjectsdev/migrate-ts";
|
|
3
|
+
export interface UnindexedFkFinding {
|
|
4
|
+
/** The metadata file declaring the entity ("" when the loader recorded none). */
|
|
5
|
+
file: string;
|
|
6
|
+
/** `<entity FQN>.<reference name>`. */
|
|
7
|
+
construct: string;
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
export interface UnindexedFkOptions {
|
|
11
|
+
dialect: Dialect;
|
|
12
|
+
columnNamingStrategy: ColumnNamingStrategy;
|
|
13
|
+
/** Skip an entity by FQN — imported (dependency) metadata is not the adopter's to index. */
|
|
14
|
+
skip?: (fqn: string) => boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function scanForUnindexedForeignKeys(root: MetaData, opts: UnindexedFkOptions): UnindexedFkFinding[];
|
|
17
|
+
//# sourceMappingURL=fk-index-advisory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fk-index-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/fk-index-advisory.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,4FAA4F;IAC5F,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACjC;AAkBD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CA+C1G"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Foreign keys with no index covering their columns — an advisory authoring lint.
|
|
2
|
+
//
|
|
3
|
+
// `meta migrate` emits a FOREIGN KEY constraint for every enforced `identity.reference`
|
|
4
|
+
// and no index on its columns: neither Postgres nor SQLite indexes the referencing side
|
|
5
|
+
// of a foreign key. Every join from the parent, and every ON DELETE cascade / set-null /
|
|
6
|
+
// restrict check from it, then scans the child table. Generating the index automatically
|
|
7
|
+
// would propose a migration to every existing adopter the release it shipped, so this is
|
|
8
|
+
// advice, never a gate: it names each such key and says how to declare the index.
|
|
9
|
+
//
|
|
10
|
+
// Coverage is read off the EXPECTED SCHEMA migrate itself builds (primary key, every
|
|
11
|
+
// `identity.secondary`, every `index.lookup`, every `@unique` field), not re-derived from
|
|
12
|
+
// the metadata — so "covered" means covered in the DDL migrate would emit. An index covers
|
|
13
|
+
// a key when its leading columns are exactly the key's columns, in any order. Expression
|
|
14
|
+
// indexes are not counted; partial ones are (bias to under-flagging).
|
|
15
|
+
import { INDEX_SUBTYPE_LOOKUP, TYPE_INDEX, TYPE_SUBTYPE_SEPARATOR, } from "@metaobjectsdev/metadata/constants";
|
|
16
|
+
import { isMetaObject, resolveColumnName, } from "@metaobjectsdev/metadata";
|
|
17
|
+
import { buildExpectedSchemaWithProvenance, qualifiedDbName, } from "@metaobjectsdev/migrate-ts";
|
|
18
|
+
const INDEX_LOOKUP = `${TYPE_INDEX}${TYPE_SUBTYPE_SEPARATOR}${INDEX_SUBTYPE_LOOKUP}`;
|
|
19
|
+
function covered(table, fkColumns) {
|
|
20
|
+
const want = new Set(fkColumns);
|
|
21
|
+
const prefixes = [
|
|
22
|
+
table.primaryKey,
|
|
23
|
+
...table.indexes.filter((i) => i.expr === undefined).map((i) => i.columns),
|
|
24
|
+
];
|
|
25
|
+
return prefixes.some((cols) => cols.length >= want.size && cols.slice(0, want.size).every((c) => want.has(c)));
|
|
26
|
+
}
|
|
27
|
+
function pascal(s) {
|
|
28
|
+
return s.length === 0 ? s : s[0].toUpperCase() + s.slice(1);
|
|
29
|
+
}
|
|
30
|
+
export function scanForUnindexedForeignKeys(root, opts) {
|
|
31
|
+
const { snapshot, provenance } = buildExpectedSchemaWithProvenance(root, {
|
|
32
|
+
dialect: opts.dialect,
|
|
33
|
+
columnNamingStrategy: opts.columnNamingStrategy,
|
|
34
|
+
});
|
|
35
|
+
// ADR-0039: effective children — resolve rather than rely on root being unextended.
|
|
36
|
+
const objectsByFqn = new Map(root.children().filter(isMetaObject).map((o) => [o.resolutionKey(), o]));
|
|
37
|
+
const out = [];
|
|
38
|
+
for (const table of snapshot.tables) {
|
|
39
|
+
const fqn = provenance.get(qualifiedDbName(table));
|
|
40
|
+
if (fqn === undefined || opts.skip?.(fqn) === true)
|
|
41
|
+
continue;
|
|
42
|
+
const entity = objectsByFqn.get(fqn);
|
|
43
|
+
if (entity === undefined)
|
|
44
|
+
continue;
|
|
45
|
+
const files = "files" in entity.source ? entity.source.files : [];
|
|
46
|
+
// A node a shipped library contributed is the library's design, not the adopter's.
|
|
47
|
+
if (files.some((f) => f.startsWith("library:")))
|
|
48
|
+
continue;
|
|
49
|
+
for (const fk of table.foreignKeys) {
|
|
50
|
+
if (covered(table, fk.columns))
|
|
51
|
+
continue;
|
|
52
|
+
// Name the key in the author's terms: the reference and its FIELDS, not columns.
|
|
53
|
+
// A TPH subtype's reference folds into its base's table and is not on `entity`;
|
|
54
|
+
// it is then reported by column, which is still enough to act on.
|
|
55
|
+
const ref = entity.referenceIdentities().find((r) => {
|
|
56
|
+
const cols = r.fields.map((f) => {
|
|
57
|
+
const field = entity.fields().find((x) => x.name === f);
|
|
58
|
+
return field !== undefined ? resolveColumnName(field, opts.columnNamingStrategy) : f;
|
|
59
|
+
});
|
|
60
|
+
return cols.length === fk.columns.length && cols.every((c, i) => c === fk.columns[i]);
|
|
61
|
+
});
|
|
62
|
+
const fields = ref !== undefined ? ref.fields : fk.columns;
|
|
63
|
+
const label = ref !== undefined ? `${entity.name}.${ref.name}` : `${entity.name} (${fk.name})`;
|
|
64
|
+
const indexName = `by${fields.map(pascal).join("")}`;
|
|
65
|
+
const fieldList = fields.length === 1 ? fields[0] : `[${fields.join(", ")}]`;
|
|
66
|
+
out.push({
|
|
67
|
+
file: files[0] ?? "",
|
|
68
|
+
construct: `${fqn}.${ref?.name ?? fk.name}`,
|
|
69
|
+
message: `${label}: foreign key (${fields.join(", ")}) → ${fk.refTable} has no index covering it, ` +
|
|
70
|
+
`so joins from ${fk.refTable} and its ON DELETE checks scan ${table.name}. ` +
|
|
71
|
+
`Declare one on ${entity.name}: ${INDEX_LOOKUP}: { name: ${indexName}, fields: ${fieldList} }`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=fk-index-advisory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fk-index-advisory.js","sourceRoot":"","sources":["../../../src/lib/fk-index-advisory.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/output.d.ts
CHANGED
|
@@ -54,6 +54,15 @@ export interface BlockedEntry {
|
|
|
54
54
|
kind: string;
|
|
55
55
|
description: string;
|
|
56
56
|
allowFlag: string;
|
|
57
|
+
/**
|
|
58
|
+
* Set on a blocked drop-column that pairs with an add-column in the same table: the exact
|
|
59
|
+
* `--rename-column` flag that keeps the data. Printed BEFORE `--allow`, which deletes it.
|
|
60
|
+
*/
|
|
61
|
+
renameFlag?: string;
|
|
62
|
+
/** `table.column` the dropped column may have been renamed to. */
|
|
63
|
+
renameTo?: string;
|
|
64
|
+
/** The shape difference that forces the rename and the reshape into two migrations. */
|
|
65
|
+
shapeChange?: string;
|
|
57
66
|
}
|
|
58
67
|
export interface AmbiguousEntry {
|
|
59
68
|
kind: string;
|