@metaobjectsdev/cli 1.0.0-rc.7 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/commands/verify.d.ts.map +1 -1
- package/dist/src/commands/verify.js +22 -2
- package/dist/src/commands/verify.js.map +1 -1
- package/dist/src/lib/advisory.d.ts +7 -0
- package/dist/src/lib/advisory.d.ts.map +1 -1
- package/dist/src/lib/advisory.js +14 -0
- package/dist/src/lib/advisory.js.map +1 -1
- package/dist/src/lib/base-url-advisory.d.ts.map +1 -1
- package/dist/src/lib/base-url-advisory.js +1 -66
- package/dist/src/lib/base-url-advisory.js.map +1 -1
- package/dist/src/lib/jsx-construct.d.ts +55 -0
- package/dist/src/lib/jsx-construct.d.ts.map +1 -0
- package/dist/src/lib/jsx-construct.js +148 -0
- package/dist/src/lib/jsx-construct.js.map +1 -0
- package/dist/src/lib/removed-prop-advisory.d.ts +31 -0
- package/dist/src/lib/removed-prop-advisory.d.ts.map +1 -0
- package/dist/src/lib/removed-prop-advisory.js +91 -0
- package/dist/src/lib/removed-prop-advisory.js.map +1 -0
- package/package.json +10 -10
- package/src/commands/verify.ts +23 -2
- package/src/lib/advisory.ts +16 -0
- package/src/lib/base-url-advisory.ts +1 -60
- package/src/lib/jsx-construct.ts +124 -0
- package/src/lib/removed-prop-advisory.ts +113 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"AAYA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"AAYA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqBrE,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAsF5B,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM;AACX,kGAAkG;AAClG,cAAc,CAAC,EAAE,cAAc;AAC/B;;;;;GAKG;AACH,GAAG,GAAE,YAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,CAwuCjB"}
|
|
@@ -10,11 +10,12 @@ import { join, resolve as resolvePath } from "node:path";
|
|
|
10
10
|
import { parseVerifyArgs } from "../lib/args.js";
|
|
11
11
|
import { log } from "../lib/log.js";
|
|
12
12
|
import { emitStructured } from "../lib/format.js";
|
|
13
|
-
import { antiPatternRows, missingBaseUrlRows, ranSection, skippedSection, warnCapped, } from "../lib/advisory.js";
|
|
13
|
+
import { antiPatternRows, missingBaseUrlRows, removedPropRows, ranSection, skippedSection, warnCapped, } from "../lib/advisory.js";
|
|
14
14
|
import { warnIfAgentContextStale } from "../lib/agent-context-staleness.js";
|
|
15
15
|
import { warnIfManifestIgnored } from "../lib/manifest-ignored-check.js";
|
|
16
16
|
import { scanSourceForAntiPatterns } from "../lib/anti-patterns.js";
|
|
17
17
|
import { scanForMissingBaseUrl } from "../lib/base-url-advisory.js";
|
|
18
|
+
import { scanForRemovedProps } from "../lib/removed-prop-advisory.js";
|
|
18
19
|
import { replayRemedy } from "../lib/replay-remedy.js";
|
|
19
20
|
import { FileProvider } from "../lib/file-provider.js";
|
|
20
21
|
import { derivePayloadFieldTree } from "../lib/payload-field-tree.js";
|
|
@@ -624,7 +625,21 @@ fmt = "text") {
|
|
|
624
625
|
// Same discipline as above: an advisory scan never breaks verify. The anti-pattern
|
|
625
626
|
// half already ran, so its rows are still reported rather than lost to this catch.
|
|
626
627
|
}
|
|
627
|
-
|
|
628
|
+
// F99 — the other half of the same migration: the adopter who never renamed at all.
|
|
629
|
+
// Its own try/catch for the same reason, so one scanner throwing cannot take the
|
|
630
|
+
// other's rows with it.
|
|
631
|
+
let removedProps = [];
|
|
632
|
+
try {
|
|
633
|
+
removedProps = scanForRemovedProps(projectRoot);
|
|
634
|
+
}
|
|
635
|
+
catch {
|
|
636
|
+
// advisory only — never breaks verify.
|
|
637
|
+
}
|
|
638
|
+
antiPatternSection = ranSection([
|
|
639
|
+
...antiPatternRows(findings),
|
|
640
|
+
...missingBaseUrlRows(baseUrl),
|
|
641
|
+
...removedPropRows(removedProps),
|
|
642
|
+
]);
|
|
628
643
|
if (findings.length > 0) {
|
|
629
644
|
log.warn(`meta verify — ${findings.length} place(s) hand-roll what MetaObjects can model ` +
|
|
630
645
|
`(advisory — does not fail the build):`);
|
|
@@ -635,6 +650,11 @@ fmt = "text") {
|
|
|
635
650
|
`while apiPrefix is "${forgeConfig?.apiPrefix ?? ""}" (advisory — does not fail the build):`);
|
|
636
651
|
warnCapped(baseUrl.map((f) => ` ${f.message}`), flags.limit, { structured });
|
|
637
652
|
}
|
|
653
|
+
if (removedProps.length > 0) {
|
|
654
|
+
log.warn(`meta verify — ${removedProps.length} provider(s) still mounted with a prop 1.0 ` +
|
|
655
|
+
`renamed away (advisory — does not fail the build, but the runtime will):`);
|
|
656
|
+
warnCapped(removedProps.map((f) => ` ${f.message}`), flags.limit, { structured });
|
|
657
|
+
}
|
|
638
658
|
}
|
|
639
659
|
// -- template (prompt / output) drift --------------------------------------
|
|
640
660
|
function runTemplateVerify() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AntiPatternFinding } from "./anti-patterns.js";
|
|
2
2
|
import type { BaseUrlFinding } from "./base-url-advisory.js";
|
|
3
|
+
import type { RemovedPropFinding } from "./removed-prop-advisory.js";
|
|
3
4
|
/**
|
|
4
5
|
* How many advisory lines TEXT output prints before it truncates.
|
|
5
6
|
*
|
|
@@ -66,6 +67,12 @@ export declare function antiPatternRows(findings: readonly AntiPatternFinding[])
|
|
|
66
67
|
* rather than a second one a consumer has to learn about. `rule` is the discriminator.
|
|
67
68
|
*/
|
|
68
69
|
export declare function missingBaseUrlRows(findings: readonly BaseUrlFinding[]): AdvisoryFindingRow[];
|
|
70
|
+
/**
|
|
71
|
+
* F99 findings in that same row shape, for the same reason. `rule` carries the prop, so a
|
|
72
|
+
* consumer filtering the advisory list does not have to parse the message to learn WHICH
|
|
73
|
+
* rename fired — there will eventually be more than one.
|
|
74
|
+
*/
|
|
75
|
+
export declare function removedPropRows(findings: readonly RemovedPropFinding[]): AdvisoryFindingRow[];
|
|
69
76
|
/**
|
|
70
77
|
* Print a capped run of advisory lines to stderr.
|
|
71
78
|
*
|
|
@@ -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;
|
|
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;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
|
@@ -83,6 +83,20 @@ export function missingBaseUrlRows(findings) {
|
|
|
83
83
|
message: f.message,
|
|
84
84
|
}));
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* F99 findings in that same row shape, for the same reason. `rule` carries the prop, so a
|
|
88
|
+
* consumer filtering the advisory list does not have to parse the message to learn WHICH
|
|
89
|
+
* rename fired — there will eventually be more than one.
|
|
90
|
+
*/
|
|
91
|
+
export function removedPropRows(findings) {
|
|
92
|
+
return findings.map((f) => ({
|
|
93
|
+
file: f.file,
|
|
94
|
+
line: f.line,
|
|
95
|
+
rule: `removed-prop:${f.prop}`,
|
|
96
|
+
construct: f.construct,
|
|
97
|
+
message: f.message,
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
86
100
|
// ---------------------------------------------------------------------------
|
|
87
101
|
// text output
|
|
88
102
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisory.js","sourceRoot":"","sources":["../../../src/lib/advisory.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,+EAA+E;AAC/E,kFAAkF;AAClF,kFAAkF;AAClF,+DAA+D;AAC/D,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAC/E,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,sBAAsB;AAEtB,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"advisory.js","sourceRoot":"","sources":["../../../src/lib/advisory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-url-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/base-url-advisory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-url-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/base-url-advisory.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAyED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAKvF"}
|
|
@@ -2,6 +2,7 @@ import { readdirSync, readFileSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { relPosix } from "./rel-posix.js";
|
|
4
4
|
import { looksBundled } from "./authored-source.js";
|
|
5
|
+
import { constructText } from "./jsx-construct.js";
|
|
5
6
|
const IGNORE_SEGMENTS = new Set([
|
|
6
7
|
"node_modules", ".git", "dist", "build", ".next", ".turbo", ".output",
|
|
7
8
|
"coverage", ".metaobjects", ".wrangler",
|
|
@@ -19,72 +20,6 @@ const PROVIDERS = [
|
|
|
19
20
|
{ construct: "<EntityFetcherProvider>", open: /<EntityFetcherProvider\b/g, kind: "jsx" },
|
|
20
21
|
{ construct: "provideEntityFetcher()", open: /provideEntityFetcher\s*\(/g, kind: "call" },
|
|
21
22
|
];
|
|
22
|
-
/**
|
|
23
|
-
* The text of the opening construct that begins at `start`.
|
|
24
|
-
*
|
|
25
|
-
* JSX: up to the `>` that closes the opening TAG. Call this a one-file tokenizer rather
|
|
26
|
-
* than a bracket count, because a bracket count is what the first version was and it was
|
|
27
|
-
* wrong in both directions:
|
|
28
|
-
*
|
|
29
|
-
* <EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
|
|
30
|
-
* → the `>` inside the STRING ended the tag before `baseUrl`, warning about a
|
|
31
|
-
* correct provider.
|
|
32
|
-
* <EntityFetcherProvider fetcher={mk(")")}>
|
|
33
|
-
* → the unbalanced `)` inside a string meant depth never returned to 0, so the
|
|
34
|
-
* 4000-char cap swallowed an unrelated `baseUrl` later in the file and SUPPRESSED
|
|
35
|
-
* a real finding.
|
|
36
|
-
*
|
|
37
|
-
* So string literals (all three quote styles, with escapes), line comments and block
|
|
38
|
-
* comments are skipped rather than counted. A regex literal is deliberately NOT handled —
|
|
39
|
-
* telling `/` division from a regex needs real parsing, and a regex inside a JSX opening
|
|
40
|
-
* tag is vanishingly rare next to the cost of getting it wrong.
|
|
41
|
-
*
|
|
42
|
-
* Call: to the `)` balancing the argument list, so a nested object or arrow does not end
|
|
43
|
-
* it early.
|
|
44
|
-
*
|
|
45
|
-
* Both bail after a generous cap rather than scanning a whole minified file when a
|
|
46
|
-
* construct is unterminated.
|
|
47
|
-
*/
|
|
48
|
-
function constructText(src, start, kind) {
|
|
49
|
-
const limit = Math.min(src.length, start + 4000);
|
|
50
|
-
let depth = 0;
|
|
51
|
-
for (let i = start; i < limit; i++) {
|
|
52
|
-
const c = src[i];
|
|
53
|
-
// --- skip what is not code -------------------------------------------------
|
|
54
|
-
if (c === '"' || c === "'" || c === "`") {
|
|
55
|
-
i++;
|
|
56
|
-
while (i < limit && src[i] !== c) {
|
|
57
|
-
if (src[i] === "\\")
|
|
58
|
-
i++;
|
|
59
|
-
i++;
|
|
60
|
-
}
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
if (c === "/" && src[i + 1] === "/") {
|
|
64
|
-
while (i < limit && src[i] !== "\n")
|
|
65
|
-
i++;
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
if (c === "/" && src[i + 1] === "*") {
|
|
69
|
-
i += 2;
|
|
70
|
-
while (i < limit && !(src[i] === "*" && src[i + 1] === "/"))
|
|
71
|
-
i++;
|
|
72
|
-
i++;
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
// --- code ------------------------------------------------------------------
|
|
76
|
-
if (kind === "jsx" && c === ">" && depth === 0)
|
|
77
|
-
return src.slice(start, i + 1);
|
|
78
|
-
if (c === "{" || c === "(" || c === "[")
|
|
79
|
-
depth++;
|
|
80
|
-
else if (c === "}" || c === ")" || c === "]") {
|
|
81
|
-
if (kind === "call" && depth === 1 && c === ")")
|
|
82
|
-
return src.slice(start, i + 1);
|
|
83
|
-
depth--;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return src.slice(start, limit);
|
|
87
|
-
}
|
|
88
23
|
function scanFile(rel, src, apiPrefix) {
|
|
89
24
|
const out = [];
|
|
90
25
|
for (const { construct, open, kind } of PROVIDERS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-url-advisory.js","sourceRoot":"","sources":["../../../src/lib/base-url-advisory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-url-advisory.js","sourceRoot":"","sources":["../../../src/lib/base-url-advisory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgCnD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IACrE,UAAU,EAAE,cAAc,EAAE,WAAW;CACxC,CAAC,CAAC;AACH,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAC5C,MAAM,SAAS,GAAG,gCAAgC,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,SAAS,GAAyE;IACtF,EAAE,SAAS,EAAE,yBAAyB,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,KAAK,EAAE;IACxF,EAAE,SAAS,EAAE,wBAAwB,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,EAAE;CAC1F,CAAC;AAEF,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAE,SAAiB;IAC3D,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS;gBAC1B,OAAO,EACL,GAAG,GAAG,IAAI,IAAI,MAAM,SAAS,kDAAkD;oBAC/E,iBAAiB,SAAS,qDAAqD;oBAC/E,kFAAkF;oBAClF,IAAI,SAAS,mEAAmE;oBAChF,0EAA0E;aAC7E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,IAAY,EAAE,GAAqB,EAAE,SAAiB;IAC/E,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO;IAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,oFAAoF;QACpF,EAAE;QACF,iFAAiF;QACjF,qFAAqF;QACrF,mFAAmF;QACnF,gFAAgF;QAChF,sFAAsF;QACtF,gFAAgF;QAChF,+EAA+E;QAC/E,uCAAuC;QACvC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/D,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YAAC,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,SAAS;QAC7C,sFAAsF;QACtF,uFAAuF;QACvF,oCAAoC;QACpC,IAAI,YAAY,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,SAAiB;IACnE,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The text of one opening JSX tag or call expression, and its top-level attribute names.
|
|
3
|
+
*
|
|
4
|
+
* Lifted out of `base-url-advisory.ts` when a second advisory (F99, the removed `value`
|
|
5
|
+
* prop) needed exactly the same tokenizer. This is a shared PRIMITIVE, not a shared walker
|
|
6
|
+
* — the two advisories keep their own directory walks deliberately, because they disagree
|
|
7
|
+
* about what to scan and have diverged on purpose.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* The text of the construct that begins at `start`.
|
|
11
|
+
*
|
|
12
|
+
* JSX: up to the `>` that closes the opening TAG. Call this a one-file tokenizer rather
|
|
13
|
+
* than a bracket count, because a bracket count is what the first version was and it was
|
|
14
|
+
* wrong in both directions:
|
|
15
|
+
*
|
|
16
|
+
* <EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
|
|
17
|
+
* → the `>` inside the STRING ended the tag before `baseUrl`, warning about a
|
|
18
|
+
* correct provider.
|
|
19
|
+
* <EntityFetcherProvider fetcher={mk(")")}>
|
|
20
|
+
* → the unbalanced `)` inside a string meant depth never returned to 0, so the
|
|
21
|
+
* 4000-char cap swallowed an unrelated `baseUrl` later in the file and SUPPRESSED
|
|
22
|
+
* a real finding.
|
|
23
|
+
*
|
|
24
|
+
* So string literals (all three quote styles, with escapes), line comments and block
|
|
25
|
+
* comments are skipped rather than counted. A regex literal is deliberately NOT handled —
|
|
26
|
+
* telling `/` division from a regex needs real parsing, and a regex inside a JSX opening
|
|
27
|
+
* tag is vanishingly rare next to the cost of getting it wrong.
|
|
28
|
+
*
|
|
29
|
+
* Call: to the `)` balancing the argument list, so a nested object or arrow does not end
|
|
30
|
+
* it early.
|
|
31
|
+
*
|
|
32
|
+
* Both bail after a generous cap rather than scanning a whole minified file when a
|
|
33
|
+
* construct is unterminated.
|
|
34
|
+
*/
|
|
35
|
+
export declare function constructText(src: string, start: number, kind: "jsx" | "call"): string;
|
|
36
|
+
/**
|
|
37
|
+
* The attribute names written directly on an opening tag — depth 0 only.
|
|
38
|
+
*
|
|
39
|
+
* Depth is the whole point. `constructText` returns the tag INCLUDING every nested
|
|
40
|
+
* expression, so a substring test for `value=` convicts all of these, none of which pass
|
|
41
|
+
* `value` to the tag:
|
|
42
|
+
*
|
|
43
|
+
* <P fetcher={mk({ value: 1 })}> an object key
|
|
44
|
+
* <P fetcher={o.value === 1 ? a : b}> a comparison — note `=` is the first of `===`
|
|
45
|
+
* <P fetcher={<Inner value={9} />}> a DIFFERENT component's prop
|
|
46
|
+
*
|
|
47
|
+
* Strings and comments are skipped for the same reason they are in `constructText`, so a
|
|
48
|
+
* `title="pass value={x} here"` is prose, not an attribute.
|
|
49
|
+
*
|
|
50
|
+
* An identifier counts only when the next non-space character is a single `=` (not `=>`,
|
|
51
|
+
* not `==`). A valueless boolean attribute (`<P disabled>`) is therefore not reported —
|
|
52
|
+
* correct here, since every prop these advisories care about takes a value.
|
|
53
|
+
*/
|
|
54
|
+
export declare function topLevelAttrs(tag: string): Set<string>;
|
|
55
|
+
//# sourceMappingURL=jsx-construct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-construct.d.ts","sourceRoot":"","sources":["../../../src/lib/jsx-construct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAgCtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAoCtD"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The text of one opening JSX tag or call expression, and its top-level attribute names.
|
|
3
|
+
*
|
|
4
|
+
* Lifted out of `base-url-advisory.ts` when a second advisory (F99, the removed `value`
|
|
5
|
+
* prop) needed exactly the same tokenizer. This is a shared PRIMITIVE, not a shared walker
|
|
6
|
+
* — the two advisories keep their own directory walks deliberately, because they disagree
|
|
7
|
+
* about what to scan and have diverged on purpose.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* The text of the construct that begins at `start`.
|
|
11
|
+
*
|
|
12
|
+
* JSX: up to the `>` that closes the opening TAG. Call this a one-file tokenizer rather
|
|
13
|
+
* than a bracket count, because a bracket count is what the first version was and it was
|
|
14
|
+
* wrong in both directions:
|
|
15
|
+
*
|
|
16
|
+
* <EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
|
|
17
|
+
* → the `>` inside the STRING ended the tag before `baseUrl`, warning about a
|
|
18
|
+
* correct provider.
|
|
19
|
+
* <EntityFetcherProvider fetcher={mk(")")}>
|
|
20
|
+
* → the unbalanced `)` inside a string meant depth never returned to 0, so the
|
|
21
|
+
* 4000-char cap swallowed an unrelated `baseUrl` later in the file and SUPPRESSED
|
|
22
|
+
* a real finding.
|
|
23
|
+
*
|
|
24
|
+
* So string literals (all three quote styles, with escapes), line comments and block
|
|
25
|
+
* comments are skipped rather than counted. A regex literal is deliberately NOT handled —
|
|
26
|
+
* telling `/` division from a regex needs real parsing, and a regex inside a JSX opening
|
|
27
|
+
* tag is vanishingly rare next to the cost of getting it wrong.
|
|
28
|
+
*
|
|
29
|
+
* Call: to the `)` balancing the argument list, so a nested object or arrow does not end
|
|
30
|
+
* it early.
|
|
31
|
+
*
|
|
32
|
+
* Both bail after a generous cap rather than scanning a whole minified file when a
|
|
33
|
+
* construct is unterminated.
|
|
34
|
+
*/
|
|
35
|
+
export function constructText(src, start, kind) {
|
|
36
|
+
const limit = Math.min(src.length, start + 4000);
|
|
37
|
+
let depth = 0;
|
|
38
|
+
for (let i = start; i < limit; i++) {
|
|
39
|
+
const c = src[i];
|
|
40
|
+
// --- skip what is not code -------------------------------------------------
|
|
41
|
+
if (c === '"' || c === "'" || c === "`") {
|
|
42
|
+
i++;
|
|
43
|
+
while (i < limit && src[i] !== c) {
|
|
44
|
+
if (src[i] === "\\")
|
|
45
|
+
i++;
|
|
46
|
+
i++;
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (c === "/" && src[i + 1] === "/") {
|
|
51
|
+
while (i < limit && src[i] !== "\n")
|
|
52
|
+
i++;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (c === "/" && src[i + 1] === "*") {
|
|
56
|
+
i += 2;
|
|
57
|
+
while (i < limit && !(src[i] === "*" && src[i + 1] === "/"))
|
|
58
|
+
i++;
|
|
59
|
+
i++;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// --- code ------------------------------------------------------------------
|
|
63
|
+
if (kind === "jsx" && c === ">" && depth === 0)
|
|
64
|
+
return src.slice(start, i + 1);
|
|
65
|
+
if (c === "{" || c === "(" || c === "[")
|
|
66
|
+
depth++;
|
|
67
|
+
else if (c === "}" || c === ")" || c === "]") {
|
|
68
|
+
if (kind === "call" && depth === 1 && c === ")")
|
|
69
|
+
return src.slice(start, i + 1);
|
|
70
|
+
depth--;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return src.slice(start, limit);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The attribute names written directly on an opening tag — depth 0 only.
|
|
77
|
+
*
|
|
78
|
+
* Depth is the whole point. `constructText` returns the tag INCLUDING every nested
|
|
79
|
+
* expression, so a substring test for `value=` convicts all of these, none of which pass
|
|
80
|
+
* `value` to the tag:
|
|
81
|
+
*
|
|
82
|
+
* <P fetcher={mk({ value: 1 })}> an object key
|
|
83
|
+
* <P fetcher={o.value === 1 ? a : b}> a comparison — note `=` is the first of `===`
|
|
84
|
+
* <P fetcher={<Inner value={9} />}> a DIFFERENT component's prop
|
|
85
|
+
*
|
|
86
|
+
* Strings and comments are skipped for the same reason they are in `constructText`, so a
|
|
87
|
+
* `title="pass value={x} here"` is prose, not an attribute.
|
|
88
|
+
*
|
|
89
|
+
* An identifier counts only when the next non-space character is a single `=` (not `=>`,
|
|
90
|
+
* not `==`). A valueless boolean attribute (`<P disabled>`) is therefore not reported —
|
|
91
|
+
* correct here, since every prop these advisories care about takes a value.
|
|
92
|
+
*/
|
|
93
|
+
export function topLevelAttrs(tag) {
|
|
94
|
+
const out = new Set();
|
|
95
|
+
let depth = 0;
|
|
96
|
+
// Start past the tag name so the component's own name is never read as an attribute.
|
|
97
|
+
let i = 0;
|
|
98
|
+
while (i < tag.length && !/\s/.test(tag[i]))
|
|
99
|
+
i++;
|
|
100
|
+
for (; i < tag.length; i++) {
|
|
101
|
+
const c = tag[i];
|
|
102
|
+
if (c === '"' || c === "'" || c === "`") {
|
|
103
|
+
i++;
|
|
104
|
+
while (i < tag.length && tag[i] !== c) {
|
|
105
|
+
if (tag[i] === "\\")
|
|
106
|
+
i++;
|
|
107
|
+
i++;
|
|
108
|
+
}
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (c === "/" && tag[i + 1] === "/") {
|
|
112
|
+
while (i < tag.length && tag[i] !== "\n")
|
|
113
|
+
i++;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (c === "/" && tag[i + 1] === "*") {
|
|
117
|
+
i += 2;
|
|
118
|
+
while (i < tag.length && !(tag[i] === "*" && tag[i + 1] === "/"))
|
|
119
|
+
i++;
|
|
120
|
+
i++;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (c === "{" || c === "(" || c === "[") {
|
|
124
|
+
depth++;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (c === "}" || c === ")" || c === "]") {
|
|
128
|
+
depth--;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (depth !== 0)
|
|
132
|
+
continue;
|
|
133
|
+
if (/[A-Za-z_$]/.test(c)) {
|
|
134
|
+
const start = i;
|
|
135
|
+
while (i < tag.length && /[A-Za-z0-9_$-]/.test(tag[i]))
|
|
136
|
+
i++;
|
|
137
|
+
const name = tag.slice(start, i);
|
|
138
|
+
let j = i;
|
|
139
|
+
while (j < tag.length && /\s/.test(tag[j]))
|
|
140
|
+
j++;
|
|
141
|
+
if (tag[j] === "=" && tag[j + 1] !== "=" && tag[j + 1] !== ">")
|
|
142
|
+
out.add(name);
|
|
143
|
+
i--; // the for-loop's i++ re-reads the delimiter we stopped on
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return out;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=jsx-construct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-construct.js","sourceRoot":"","sources":["../../../src/lib/jsx-construct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F99 — a provider still mounted with a prop 1.0 renamed away.
|
|
3
|
+
*
|
|
4
|
+
* `<EntityFetcherProvider value={f}>` does not typecheck, and both the migration note and
|
|
5
|
+
* the base-URL advisory beside this one rest a safety argument on that fact. The argument
|
|
6
|
+
* holds only where `tsc` is in the gate chain, and in two of nine adopter estates it was
|
|
7
|
+
* not: `vite build` transpiles without typechecking, and a provider with the wrong prop
|
|
8
|
+
* still RENDERS — its children mount, and nothing fails until a component that actually
|
|
9
|
+
* calls a generated hook runs, in a browser, at which point the fetcher is undefined.
|
|
10
|
+
*
|
|
11
|
+
* One estate lost a round to it, misreading a red render smoke test as the release
|
|
12
|
+
* candidate breaking. The second shipped the identical construct and carried it through a
|
|
13
|
+
* whole pass. Two of nine, same component, same prop — that is a class, and the rename
|
|
14
|
+
* was ours.
|
|
15
|
+
*
|
|
16
|
+
* Unlike the base-URL advisory this fires at ANY `apiPrefix`, because there is no
|
|
17
|
+
* configuration under which the old prop reaches the provider. It is still a WARNING and
|
|
18
|
+
* never touches an exit code: the scan cannot see a re-export or an aliased local
|
|
19
|
+
* component, so it must not be the thing that fails a build.
|
|
20
|
+
*/
|
|
21
|
+
export interface RemovedPropFinding {
|
|
22
|
+
file: string;
|
|
23
|
+
line: number;
|
|
24
|
+
construct: string;
|
|
25
|
+
/** The prop that no longer exists. */
|
|
26
|
+
prop: string;
|
|
27
|
+
message: string;
|
|
28
|
+
}
|
|
29
|
+
/** Scan a project tree for providers still using a prop 1.0 renamed away. */
|
|
30
|
+
export declare function scanForRemovedProps(root: string): RemovedPropFinding[];
|
|
31
|
+
//# sourceMappingURL=removed-prop-advisory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removed-prop-advisory.d.ts","sourceRoot":"","sources":["../../../src/lib/removed-prop-advisory.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA0ED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAItE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { relPosix } from "./rel-posix.js";
|
|
4
|
+
import { looksBundled } from "./authored-source.js";
|
|
5
|
+
import { constructText, topLevelAttrs } from "./jsx-construct.js";
|
|
6
|
+
const IGNORE_SEGMENTS = new Set([
|
|
7
|
+
"node_modules", ".git", "dist", "build", ".next", ".turbo", ".output",
|
|
8
|
+
"coverage", ".metaobjects", ".wrangler",
|
|
9
|
+
]);
|
|
10
|
+
const SCAN_EXT = /\.(?:ts|tsx|js|jsx|mjs)$/;
|
|
11
|
+
const SKIP_FILE = /(?:\.d\.ts$|\.test\.|\.spec\.)/;
|
|
12
|
+
/**
|
|
13
|
+
* What was renamed, and to what.
|
|
14
|
+
*
|
|
15
|
+
* Deliberately a table of ONE. A rename earns a row here only when an adopter has actually
|
|
16
|
+
* shipped the old spelling past their own gates — the value is in naming the specific
|
|
17
|
+
* construct two estates got wrong, not in mirroring the changelog. `open` also gates the
|
|
18
|
+
* cheap `includes()` prefilter in the walk, so a new row needs its marker adding there.
|
|
19
|
+
*/
|
|
20
|
+
const RENAMES = [
|
|
21
|
+
{
|
|
22
|
+
construct: "<EntityFetcherProvider>",
|
|
23
|
+
open: /<EntityFetcherProvider\b/g,
|
|
24
|
+
from: "value",
|
|
25
|
+
to: "fetcher",
|
|
26
|
+
since: "1.0",
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
function scanFile(rel, src) {
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const { construct, open, from, to, since } of RENAMES) {
|
|
32
|
+
open.lastIndex = 0;
|
|
33
|
+
let m;
|
|
34
|
+
while ((m = open.exec(src)) !== null) {
|
|
35
|
+
if (!topLevelAttrs(constructText(src, m.index, "jsx")).has(from))
|
|
36
|
+
continue;
|
|
37
|
+
const line = src.slice(0, m.index).split("\n").length;
|
|
38
|
+
out.push({
|
|
39
|
+
file: rel, line, construct, prop: from,
|
|
40
|
+
message: `${rel}:${line} — ${construct} is mounted with \`${from}\`, which ${since} ` +
|
|
41
|
+
`renamed to \`${to}\`. The provider still renders, so nothing fails until a ` +
|
|
42
|
+
`component calls a generated hook and finds no fetcher. \`tsc --noEmit\` names ` +
|
|
43
|
+
`this exactly; a build that only transpiles does not. Rename ${from} → ${to} — ` +
|
|
44
|
+
`and check baseUrl while you are here, since it is optional and defaults to "".`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
function walk(dir, root, acc) {
|
|
51
|
+
let entries;
|
|
52
|
+
try {
|
|
53
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
for (const e of entries) {
|
|
59
|
+
if (IGNORE_SEGMENTS.has(e.name))
|
|
60
|
+
continue;
|
|
61
|
+
const abs = join(dir, e.name);
|
|
62
|
+
// Symlinked directories are NOT followed — see base-url-advisory.ts for the 41-finding
|
|
63
|
+
// ELOOP this prevents.
|
|
64
|
+
if (e.isDirectory()) {
|
|
65
|
+
walk(abs, root, acc);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (!SCAN_EXT.test(e.name) || SKIP_FILE.test(e.name))
|
|
69
|
+
continue;
|
|
70
|
+
let src;
|
|
71
|
+
try {
|
|
72
|
+
src = readFileSync(abs, "utf8");
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (!src.includes("EntityFetcherProvider"))
|
|
78
|
+
continue;
|
|
79
|
+
// A bundle is not authored source (F89) — the fix belongs in the file it was built from.
|
|
80
|
+
if (looksBundled(src))
|
|
81
|
+
continue;
|
|
82
|
+
acc.push(...scanFile(relPosix(root, abs), src));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Scan a project tree for providers still using a prop 1.0 renamed away. */
|
|
86
|
+
export function scanForRemovedProps(root) {
|
|
87
|
+
const acc = [];
|
|
88
|
+
walk(root, root, acc);
|
|
89
|
+
return acc;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=removed-prop-advisory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removed-prop-advisory.js","sourceRoot":"","sources":["../../../src/lib/removed-prop-advisory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/cli",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
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.0
|
|
55
|
-
"@metaobjectsdev/codegen-ts-react": "1.0.0
|
|
56
|
-
"@metaobjectsdev/codegen-ts-tanstack": "1.0.0
|
|
57
|
-
"@metaobjectsdev/docs-site": "1.0.0
|
|
58
|
-
"@metaobjectsdev/metadata": "1.0.0
|
|
59
|
-
"@metaobjectsdev/migrate-ts": "1.0.0
|
|
60
|
-
"@metaobjectsdev/render": "1.0.0
|
|
61
|
-
"@metaobjectsdev/runtime-ts": "1.0.0
|
|
62
|
-
"@metaobjectsdev/sdk": "1.0.0
|
|
54
|
+
"@metaobjectsdev/codegen-ts": "1.0.0",
|
|
55
|
+
"@metaobjectsdev/codegen-ts-react": "1.0.0",
|
|
56
|
+
"@metaobjectsdev/codegen-ts-tanstack": "1.0.0",
|
|
57
|
+
"@metaobjectsdev/docs-site": "1.0.0",
|
|
58
|
+
"@metaobjectsdev/metadata": "1.0.0",
|
|
59
|
+
"@metaobjectsdev/migrate-ts": "1.0.0",
|
|
60
|
+
"@metaobjectsdev/render": "1.0.0",
|
|
61
|
+
"@metaobjectsdev/runtime-ts": "1.0.0",
|
|
62
|
+
"@metaobjectsdev/sdk": "1.0.0",
|
|
63
63
|
"@toon-format/toon": "^2.3.0",
|
|
64
64
|
"jiti": "^2.4.0"
|
|
65
65
|
},
|
package/src/commands/verify.ts
CHANGED
|
@@ -12,13 +12,14 @@ import { parseVerifyArgs, type MigrateFlags } from "../lib/args.js";
|
|
|
12
12
|
import { log } from "../lib/log.js";
|
|
13
13
|
import { emitStructured, type OutputFormat } from "../lib/format.js";
|
|
14
14
|
import {
|
|
15
|
-
antiPatternRows, missingBaseUrlRows, ranSection, skippedSection, warnCapped,
|
|
15
|
+
antiPatternRows, missingBaseUrlRows, removedPropRows, ranSection, skippedSection, warnCapped,
|
|
16
16
|
type AdvisoryDiagnosticRow, type AdvisoryFindingRow, type AdvisorySection,
|
|
17
17
|
} from "../lib/advisory.js";
|
|
18
18
|
import { warnIfAgentContextStale } from "../lib/agent-context-staleness.js";
|
|
19
19
|
import { warnIfManifestIgnored } from "../lib/manifest-ignored-check.js";
|
|
20
20
|
import { scanSourceForAntiPatterns } from "../lib/anti-patterns.js";
|
|
21
21
|
import { scanForMissingBaseUrl, type BaseUrlFinding } from "../lib/base-url-advisory.js";
|
|
22
|
+
import { scanForRemovedProps, type RemovedPropFinding } from "../lib/removed-prop-advisory.js";
|
|
22
23
|
import { replayRemedy } from "../lib/replay-remedy.js";
|
|
23
24
|
import { FileProvider } from "../lib/file-provider.js";
|
|
24
25
|
import { derivePayloadFieldTree } from "../lib/payload-field-tree.js";
|
|
@@ -735,8 +736,21 @@ export async function verifyCommand(
|
|
|
735
736
|
// Same discipline as above: an advisory scan never breaks verify. The anti-pattern
|
|
736
737
|
// half already ran, so its rows are still reported rather than lost to this catch.
|
|
737
738
|
}
|
|
739
|
+
// F99 — the other half of the same migration: the adopter who never renamed at all.
|
|
740
|
+
// Its own try/catch for the same reason, so one scanner throwing cannot take the
|
|
741
|
+
// other's rows with it.
|
|
742
|
+
let removedProps: RemovedPropFinding[] = [];
|
|
743
|
+
try {
|
|
744
|
+
removedProps = scanForRemovedProps(projectRoot);
|
|
745
|
+
} catch {
|
|
746
|
+
// advisory only — never breaks verify.
|
|
747
|
+
}
|
|
738
748
|
|
|
739
|
-
antiPatternSection = ranSection([
|
|
749
|
+
antiPatternSection = ranSection([
|
|
750
|
+
...antiPatternRows(findings),
|
|
751
|
+
...missingBaseUrlRows(baseUrl),
|
|
752
|
+
...removedPropRows(removedProps),
|
|
753
|
+
]);
|
|
740
754
|
if (findings.length > 0) {
|
|
741
755
|
log.warn(
|
|
742
756
|
`meta verify — ${findings.length} place(s) hand-roll what MetaObjects can model ` +
|
|
@@ -751,6 +765,13 @@ export async function verifyCommand(
|
|
|
751
765
|
);
|
|
752
766
|
warnCapped(baseUrl.map((f) => ` ${f.message}`), flags.limit, { structured });
|
|
753
767
|
}
|
|
768
|
+
if (removedProps.length > 0) {
|
|
769
|
+
log.warn(
|
|
770
|
+
`meta verify — ${removedProps.length} provider(s) still mounted with a prop 1.0 ` +
|
|
771
|
+
`renamed away (advisory — does not fail the build, but the runtime will):`,
|
|
772
|
+
);
|
|
773
|
+
warnCapped(removedProps.map((f) => ` ${f.message}`), flags.limit, { structured });
|
|
774
|
+
}
|
|
754
775
|
}
|
|
755
776
|
|
|
756
777
|
// -- template (prompt / output) drift --------------------------------------
|
package/src/lib/advisory.ts
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
import { log } from "./log.js";
|
|
24
24
|
import type { AntiPatternFinding } from "./anti-patterns.js";
|
|
25
25
|
import type { BaseUrlFinding } from "./base-url-advisory.js";
|
|
26
|
+
import type { RemovedPropFinding } from "./removed-prop-advisory.js";
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* How many advisory lines TEXT output prints before it truncates.
|
|
@@ -134,6 +135,21 @@ export function missingBaseUrlRows(findings: readonly BaseUrlFinding[]): Advisor
|
|
|
134
135
|
}));
|
|
135
136
|
}
|
|
136
137
|
|
|
138
|
+
/**
|
|
139
|
+
* F99 findings in that same row shape, for the same reason. `rule` carries the prop, so a
|
|
140
|
+
* consumer filtering the advisory list does not have to parse the message to learn WHICH
|
|
141
|
+
* rename fired — there will eventually be more than one.
|
|
142
|
+
*/
|
|
143
|
+
export function removedPropRows(findings: readonly RemovedPropFinding[]): AdvisoryFindingRow[] {
|
|
144
|
+
return findings.map((f) => ({
|
|
145
|
+
file: f.file,
|
|
146
|
+
line: f.line,
|
|
147
|
+
rule: `removed-prop:${f.prop}`,
|
|
148
|
+
construct: f.construct,
|
|
149
|
+
message: f.message,
|
|
150
|
+
}));
|
|
151
|
+
}
|
|
152
|
+
|
|
137
153
|
// ---------------------------------------------------------------------------
|
|
138
154
|
// text output
|
|
139
155
|
// ---------------------------------------------------------------------------
|
|
@@ -2,6 +2,7 @@ import { readdirSync, readFileSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { relPosix } from "./rel-posix.js";
|
|
4
4
|
import { looksBundled } from "./authored-source.js";
|
|
5
|
+
import { constructText } from "./jsx-construct.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* F52 — a provider mounted with no `baseUrl` on a project whose `apiPrefix` is not empty.
|
|
@@ -52,66 +53,6 @@ const PROVIDERS: readonly { construct: string; open: RegExp; kind: "jsx" | "call
|
|
|
52
53
|
{ construct: "provideEntityFetcher()", open: /provideEntityFetcher\s*\(/g, kind: "call" },
|
|
53
54
|
];
|
|
54
55
|
|
|
55
|
-
/**
|
|
56
|
-
* The text of the opening construct that begins at `start`.
|
|
57
|
-
*
|
|
58
|
-
* JSX: up to the `>` that closes the opening TAG. Call this a one-file tokenizer rather
|
|
59
|
-
* than a bracket count, because a bracket count is what the first version was and it was
|
|
60
|
-
* wrong in both directions:
|
|
61
|
-
*
|
|
62
|
-
* <EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
|
|
63
|
-
* → the `>` inside the STRING ended the tag before `baseUrl`, warning about a
|
|
64
|
-
* correct provider.
|
|
65
|
-
* <EntityFetcherProvider fetcher={mk(")")}>
|
|
66
|
-
* → the unbalanced `)` inside a string meant depth never returned to 0, so the
|
|
67
|
-
* 4000-char cap swallowed an unrelated `baseUrl` later in the file and SUPPRESSED
|
|
68
|
-
* a real finding.
|
|
69
|
-
*
|
|
70
|
-
* So string literals (all three quote styles, with escapes), line comments and block
|
|
71
|
-
* comments are skipped rather than counted. A regex literal is deliberately NOT handled —
|
|
72
|
-
* telling `/` division from a regex needs real parsing, and a regex inside a JSX opening
|
|
73
|
-
* tag is vanishingly rare next to the cost of getting it wrong.
|
|
74
|
-
*
|
|
75
|
-
* Call: to the `)` balancing the argument list, so a nested object or arrow does not end
|
|
76
|
-
* it early.
|
|
77
|
-
*
|
|
78
|
-
* Both bail after a generous cap rather than scanning a whole minified file when a
|
|
79
|
-
* construct is unterminated.
|
|
80
|
-
*/
|
|
81
|
-
function constructText(src: string, start: number, kind: "jsx" | "call"): string {
|
|
82
|
-
const limit = Math.min(src.length, start + 4000);
|
|
83
|
-
let depth = 0;
|
|
84
|
-
for (let i = start; i < limit; i++) {
|
|
85
|
-
const c = src[i]!;
|
|
86
|
-
|
|
87
|
-
// --- skip what is not code -------------------------------------------------
|
|
88
|
-
if (c === '"' || c === "'" || c === "`") {
|
|
89
|
-
i++;
|
|
90
|
-
while (i < limit && src[i] !== c) { if (src[i] === "\\") i++; i++; }
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
if (c === "/" && src[i + 1] === "/") {
|
|
94
|
-
while (i < limit && src[i] !== "\n") i++;
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
if (c === "/" && src[i + 1] === "*") {
|
|
98
|
-
i += 2;
|
|
99
|
-
while (i < limit && !(src[i] === "*" && src[i + 1] === "/")) i++;
|
|
100
|
-
i++;
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// --- code ------------------------------------------------------------------
|
|
105
|
-
if (kind === "jsx" && c === ">" && depth === 0) return src.slice(start, i + 1);
|
|
106
|
-
if (c === "{" || c === "(" || c === "[") depth++;
|
|
107
|
-
else if (c === "}" || c === ")" || c === "]") {
|
|
108
|
-
if (kind === "call" && depth === 1 && c === ")") return src.slice(start, i + 1);
|
|
109
|
-
depth--;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return src.slice(start, limit);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
56
|
function scanFile(rel: string, src: string, apiPrefix: string): BaseUrlFinding[] {
|
|
116
57
|
const out: BaseUrlFinding[] = [];
|
|
117
58
|
for (const { construct, open, kind } of PROVIDERS) {
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The text of one opening JSX tag or call expression, and its top-level attribute names.
|
|
3
|
+
*
|
|
4
|
+
* Lifted out of `base-url-advisory.ts` when a second advisory (F99, the removed `value`
|
|
5
|
+
* prop) needed exactly the same tokenizer. This is a shared PRIMITIVE, not a shared walker
|
|
6
|
+
* — the two advisories keep their own directory walks deliberately, because they disagree
|
|
7
|
+
* about what to scan and have diverged on purpose.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The text of the construct that begins at `start`.
|
|
12
|
+
*
|
|
13
|
+
* JSX: up to the `>` that closes the opening TAG. Call this a one-file tokenizer rather
|
|
14
|
+
* than a bracket count, because a bracket count is what the first version was and it was
|
|
15
|
+
* wrong in both directions:
|
|
16
|
+
*
|
|
17
|
+
* <EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
|
|
18
|
+
* → the `>` inside the STRING ended the tag before `baseUrl`, warning about a
|
|
19
|
+
* correct provider.
|
|
20
|
+
* <EntityFetcherProvider fetcher={mk(")")}>
|
|
21
|
+
* → the unbalanced `)` inside a string meant depth never returned to 0, so the
|
|
22
|
+
* 4000-char cap swallowed an unrelated `baseUrl` later in the file and SUPPRESSED
|
|
23
|
+
* a real finding.
|
|
24
|
+
*
|
|
25
|
+
* So string literals (all three quote styles, with escapes), line comments and block
|
|
26
|
+
* comments are skipped rather than counted. A regex literal is deliberately NOT handled —
|
|
27
|
+
* telling `/` division from a regex needs real parsing, and a regex inside a JSX opening
|
|
28
|
+
* tag is vanishingly rare next to the cost of getting it wrong.
|
|
29
|
+
*
|
|
30
|
+
* Call: to the `)` balancing the argument list, so a nested object or arrow does not end
|
|
31
|
+
* it early.
|
|
32
|
+
*
|
|
33
|
+
* Both bail after a generous cap rather than scanning a whole minified file when a
|
|
34
|
+
* construct is unterminated.
|
|
35
|
+
*/
|
|
36
|
+
export function constructText(src: string, start: number, kind: "jsx" | "call"): string {
|
|
37
|
+
const limit = Math.min(src.length, start + 4000);
|
|
38
|
+
let depth = 0;
|
|
39
|
+
for (let i = start; i < limit; i++) {
|
|
40
|
+
const c = src[i]!;
|
|
41
|
+
|
|
42
|
+
// --- skip what is not code -------------------------------------------------
|
|
43
|
+
if (c === '"' || c === "'" || c === "`") {
|
|
44
|
+
i++;
|
|
45
|
+
while (i < limit && src[i] !== c) { if (src[i] === "\\") i++; i++; }
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (c === "/" && src[i + 1] === "/") {
|
|
49
|
+
while (i < limit && src[i] !== "\n") i++;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (c === "/" && src[i + 1] === "*") {
|
|
53
|
+
i += 2;
|
|
54
|
+
while (i < limit && !(src[i] === "*" && src[i + 1] === "/")) i++;
|
|
55
|
+
i++;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// --- code ------------------------------------------------------------------
|
|
60
|
+
if (kind === "jsx" && c === ">" && depth === 0) return src.slice(start, i + 1);
|
|
61
|
+
if (c === "{" || c === "(" || c === "[") depth++;
|
|
62
|
+
else if (c === "}" || c === ")" || c === "]") {
|
|
63
|
+
if (kind === "call" && depth === 1 && c === ")") return src.slice(start, i + 1);
|
|
64
|
+
depth--;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return src.slice(start, limit);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The attribute names written directly on an opening tag — depth 0 only.
|
|
72
|
+
*
|
|
73
|
+
* Depth is the whole point. `constructText` returns the tag INCLUDING every nested
|
|
74
|
+
* expression, so a substring test for `value=` convicts all of these, none of which pass
|
|
75
|
+
* `value` to the tag:
|
|
76
|
+
*
|
|
77
|
+
* <P fetcher={mk({ value: 1 })}> an object key
|
|
78
|
+
* <P fetcher={o.value === 1 ? a : b}> a comparison — note `=` is the first of `===`
|
|
79
|
+
* <P fetcher={<Inner value={9} />}> a DIFFERENT component's prop
|
|
80
|
+
*
|
|
81
|
+
* Strings and comments are skipped for the same reason they are in `constructText`, so a
|
|
82
|
+
* `title="pass value={x} here"` is prose, not an attribute.
|
|
83
|
+
*
|
|
84
|
+
* An identifier counts only when the next non-space character is a single `=` (not `=>`,
|
|
85
|
+
* not `==`). A valueless boolean attribute (`<P disabled>`) is therefore not reported —
|
|
86
|
+
* correct here, since every prop these advisories care about takes a value.
|
|
87
|
+
*/
|
|
88
|
+
export function topLevelAttrs(tag: string): Set<string> {
|
|
89
|
+
const out = new Set<string>();
|
|
90
|
+
let depth = 0;
|
|
91
|
+
// Start past the tag name so the component's own name is never read as an attribute.
|
|
92
|
+
let i = 0;
|
|
93
|
+
while (i < tag.length && !/\s/.test(tag[i]!)) i++;
|
|
94
|
+
|
|
95
|
+
for (; i < tag.length; i++) {
|
|
96
|
+
const c = tag[i]!;
|
|
97
|
+
if (c === '"' || c === "'" || c === "`") {
|
|
98
|
+
i++;
|
|
99
|
+
while (i < tag.length && tag[i] !== c) { if (tag[i] === "\\") i++; i++; }
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (c === "/" && tag[i + 1] === "/") { while (i < tag.length && tag[i] !== "\n") i++; continue; }
|
|
103
|
+
if (c === "/" && tag[i + 1] === "*") {
|
|
104
|
+
i += 2;
|
|
105
|
+
while (i < tag.length && !(tag[i] === "*" && tag[i + 1] === "/")) i++;
|
|
106
|
+
i++;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (c === "{" || c === "(" || c === "[") { depth++; continue; }
|
|
110
|
+
if (c === "}" || c === ")" || c === "]") { depth--; continue; }
|
|
111
|
+
if (depth !== 0) continue;
|
|
112
|
+
|
|
113
|
+
if (/[A-Za-z_$]/.test(c)) {
|
|
114
|
+
const start = i;
|
|
115
|
+
while (i < tag.length && /[A-Za-z0-9_$-]/.test(tag[i]!)) i++;
|
|
116
|
+
const name = tag.slice(start, i);
|
|
117
|
+
let j = i;
|
|
118
|
+
while (j < tag.length && /\s/.test(tag[j]!)) j++;
|
|
119
|
+
if (tag[j] === "=" && tag[j + 1] !== "=" && tag[j + 1] !== ">") out.add(name);
|
|
120
|
+
i--; // the for-loop's i++ re-reads the delimiter we stopped on
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { relPosix } from "./rel-posix.js";
|
|
4
|
+
import { looksBundled } from "./authored-source.js";
|
|
5
|
+
import { constructText, topLevelAttrs } from "./jsx-construct.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* F99 — a provider still mounted with a prop 1.0 renamed away.
|
|
9
|
+
*
|
|
10
|
+
* `<EntityFetcherProvider value={f}>` does not typecheck, and both the migration note and
|
|
11
|
+
* the base-URL advisory beside this one rest a safety argument on that fact. The argument
|
|
12
|
+
* holds only where `tsc` is in the gate chain, and in two of nine adopter estates it was
|
|
13
|
+
* not: `vite build` transpiles without typechecking, and a provider with the wrong prop
|
|
14
|
+
* still RENDERS — its children mount, and nothing fails until a component that actually
|
|
15
|
+
* calls a generated hook runs, in a browser, at which point the fetcher is undefined.
|
|
16
|
+
*
|
|
17
|
+
* One estate lost a round to it, misreading a red render smoke test as the release
|
|
18
|
+
* candidate breaking. The second shipped the identical construct and carried it through a
|
|
19
|
+
* whole pass. Two of nine, same component, same prop — that is a class, and the rename
|
|
20
|
+
* was ours.
|
|
21
|
+
*
|
|
22
|
+
* Unlike the base-URL advisory this fires at ANY `apiPrefix`, because there is no
|
|
23
|
+
* configuration under which the old prop reaches the provider. It is still a WARNING and
|
|
24
|
+
* never touches an exit code: the scan cannot see a re-export or an aliased local
|
|
25
|
+
* component, so it must not be the thing that fails a build.
|
|
26
|
+
*/
|
|
27
|
+
export interface RemovedPropFinding {
|
|
28
|
+
file: string;
|
|
29
|
+
line: number;
|
|
30
|
+
construct: string;
|
|
31
|
+
/** The prop that no longer exists. */
|
|
32
|
+
prop: string;
|
|
33
|
+
message: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const IGNORE_SEGMENTS = new Set([
|
|
37
|
+
"node_modules", ".git", "dist", "build", ".next", ".turbo", ".output",
|
|
38
|
+
"coverage", ".metaobjects", ".wrangler",
|
|
39
|
+
]);
|
|
40
|
+
const SCAN_EXT = /\.(?:ts|tsx|js|jsx|mjs)$/;
|
|
41
|
+
const SKIP_FILE = /(?:\.d\.ts$|\.test\.|\.spec\.)/;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* What was renamed, and to what.
|
|
45
|
+
*
|
|
46
|
+
* Deliberately a table of ONE. A rename earns a row here only when an adopter has actually
|
|
47
|
+
* shipped the old spelling past their own gates — the value is in naming the specific
|
|
48
|
+
* construct two estates got wrong, not in mirroring the changelog. `open` also gates the
|
|
49
|
+
* cheap `includes()` prefilter in the walk, so a new row needs its marker adding there.
|
|
50
|
+
*/
|
|
51
|
+
const RENAMES: readonly {
|
|
52
|
+
construct: string;
|
|
53
|
+
open: RegExp;
|
|
54
|
+
from: string;
|
|
55
|
+
to: string;
|
|
56
|
+
since: string;
|
|
57
|
+
}[] = [
|
|
58
|
+
{
|
|
59
|
+
construct: "<EntityFetcherProvider>",
|
|
60
|
+
open: /<EntityFetcherProvider\b/g,
|
|
61
|
+
from: "value",
|
|
62
|
+
to: "fetcher",
|
|
63
|
+
since: "1.0",
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
function scanFile(rel: string, src: string): RemovedPropFinding[] {
|
|
68
|
+
const out: RemovedPropFinding[] = [];
|
|
69
|
+
for (const { construct, open, from, to, since } of RENAMES) {
|
|
70
|
+
open.lastIndex = 0;
|
|
71
|
+
let m: RegExpExecArray | null;
|
|
72
|
+
while ((m = open.exec(src)) !== null) {
|
|
73
|
+
if (!topLevelAttrs(constructText(src, m.index, "jsx")).has(from)) continue;
|
|
74
|
+
const line = src.slice(0, m.index).split("\n").length;
|
|
75
|
+
out.push({
|
|
76
|
+
file: rel, line, construct, prop: from,
|
|
77
|
+
message:
|
|
78
|
+
`${rel}:${line} — ${construct} is mounted with \`${from}\`, which ${since} ` +
|
|
79
|
+
`renamed to \`${to}\`. The provider still renders, so nothing fails until a ` +
|
|
80
|
+
`component calls a generated hook and finds no fetcher. \`tsc --noEmit\` names ` +
|
|
81
|
+
`this exactly; a build that only transpiles does not. Rename ${from} → ${to} — ` +
|
|
82
|
+
`and check baseUrl while you are here, since it is optional and defaults to "".`,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function walk(dir: string, root: string, acc: RemovedPropFinding[]): void {
|
|
90
|
+
let entries;
|
|
91
|
+
try { entries = readdirSync(dir, { withFileTypes: true }); } catch { return; }
|
|
92
|
+
for (const e of entries) {
|
|
93
|
+
if (IGNORE_SEGMENTS.has(e.name)) continue;
|
|
94
|
+
const abs = join(dir, e.name);
|
|
95
|
+
// Symlinked directories are NOT followed — see base-url-advisory.ts for the 41-finding
|
|
96
|
+
// ELOOP this prevents.
|
|
97
|
+
if (e.isDirectory()) { walk(abs, root, acc); continue; }
|
|
98
|
+
if (!SCAN_EXT.test(e.name) || SKIP_FILE.test(e.name)) continue;
|
|
99
|
+
let src: string;
|
|
100
|
+
try { src = readFileSync(abs, "utf8"); } catch { continue; }
|
|
101
|
+
if (!src.includes("EntityFetcherProvider")) continue;
|
|
102
|
+
// A bundle is not authored source (F89) — the fix belongs in the file it was built from.
|
|
103
|
+
if (looksBundled(src)) continue;
|
|
104
|
+
acc.push(...scanFile(relPosix(root, abs), src));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Scan a project tree for providers still using a prop 1.0 renamed away. */
|
|
109
|
+
export function scanForRemovedProps(root: string): RemovedPropFinding[] {
|
|
110
|
+
const acc: RemovedPropFinding[] = [];
|
|
111
|
+
walk(root, root, acc);
|
|
112
|
+
return acc;
|
|
113
|
+
}
|