@nifrajs/cli 2.13.0 → 3.1.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.
Files changed (114) hide show
  1. package/dist/capabilities-tool.d.ts +54 -1
  2. package/dist/capabilities-tool.d.ts.map +1 -1
  3. package/dist/capabilities-tool.js +146 -18
  4. package/dist/capabilities-tool.js.map +1 -1
  5. package/dist/check.d.ts +11 -11
  6. package/dist/check.d.ts.map +1 -1
  7. package/dist/check.js +260 -49
  8. package/dist/check.js.map +1 -1
  9. package/dist/cli.d.ts +11 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +130 -414
  12. package/dist/cli.js.map +1 -1
  13. package/dist/command-catalog.d.ts +250 -0
  14. package/dist/command-catalog.d.ts.map +1 -0
  15. package/dist/command-catalog.js +1032 -0
  16. package/dist/command-catalog.js.map +1 -0
  17. package/dist/contracts.d.ts +9 -0
  18. package/dist/contracts.d.ts.map +1 -1
  19. package/dist/contracts.js +22 -6
  20. package/dist/contracts.js.map +1 -1
  21. package/dist/doctor.d.ts +55 -0
  22. package/dist/doctor.d.ts.map +1 -1
  23. package/dist/doctor.js +82 -9
  24. package/dist/doctor.js.map +1 -1
  25. package/dist/env-file.d.ts +17 -0
  26. package/dist/env-file.d.ts.map +1 -0
  27. package/dist/env-file.js +113 -0
  28. package/dist/env-file.js.map +1 -0
  29. package/dist/fix-recipes.d.ts.map +1 -1
  30. package/dist/fix-recipes.js +91 -15
  31. package/dist/fix-recipes.js.map +1 -1
  32. package/dist/internal/reserved-segment-codemod.d.ts +36 -0
  33. package/dist/internal/reserved-segment-codemod.d.ts.map +1 -0
  34. package/dist/internal/reserved-segment-codemod.js +134 -0
  35. package/dist/internal/reserved-segment-codemod.js.map +1 -0
  36. package/dist/internal/typescript-import.d.ts +1 -1
  37. package/dist/internal/typescript-import.d.ts.map +1 -1
  38. package/dist/internal/typescript-import.js +62 -11
  39. package/dist/internal/typescript-import.js.map +1 -1
  40. package/dist/introspect.d.ts +26 -1
  41. package/dist/introspect.d.ts.map +1 -1
  42. package/dist/introspect.js +74 -24
  43. package/dist/introspect.js.map +1 -1
  44. package/dist/load.d.ts.map +1 -1
  45. package/dist/load.js +22 -5
  46. package/dist/load.js.map +1 -1
  47. package/dist/manifest-tool.d.ts +15 -1
  48. package/dist/manifest-tool.d.ts.map +1 -1
  49. package/dist/manifest-tool.js +23 -9
  50. package/dist/manifest-tool.js.map +1 -1
  51. package/dist/mcp-http.js +1 -1
  52. package/dist/mcp-http.js.map +1 -1
  53. package/dist/mcp.d.ts +16 -0
  54. package/dist/mcp.d.ts.map +1 -1
  55. package/dist/mcp.js +127 -355
  56. package/dist/mcp.js.map +1 -1
  57. package/dist/project-facts.d.ts +40 -0
  58. package/dist/project-facts.d.ts.map +1 -0
  59. package/dist/project-facts.js +36 -0
  60. package/dist/project-facts.js.map +1 -0
  61. package/dist/recipes/3.0.0.d.ts +10 -0
  62. package/dist/recipes/3.0.0.d.ts.map +1 -0
  63. package/dist/recipes/3.0.0.js +23 -0
  64. package/dist/recipes/3.0.0.js.map +1 -0
  65. package/dist/recipes/index.d.ts.map +1 -1
  66. package/dist/recipes/index.js +2 -0
  67. package/dist/recipes/index.js.map +1 -1
  68. package/dist/release-verification.d.ts.map +1 -1
  69. package/dist/release-verification.js +15 -0
  70. package/dist/release-verification.js.map +1 -1
  71. package/dist/rules/comment-markers.d.ts +8 -0
  72. package/dist/rules/comment-markers.d.ts.map +1 -1
  73. package/dist/rules/comment-markers.js +36 -0
  74. package/dist/rules/comment-markers.js.map +1 -1
  75. package/dist/rules/index.d.ts +2 -3
  76. package/dist/rules/index.d.ts.map +1 -1
  77. package/dist/rules/index.js.map +1 -1
  78. package/dist/rules/routes.d.ts.map +1 -1
  79. package/dist/rules/routes.js +29 -44
  80. package/dist/rules/routes.js.map +1 -1
  81. package/dist/rules/security.js +14 -14
  82. package/dist/rules/security.js.map +1 -1
  83. package/dist/workspace-link.d.ts +37 -0
  84. package/dist/workspace-link.d.ts.map +1 -0
  85. package/dist/workspace-link.js +72 -0
  86. package/dist/workspace-link.js.map +1 -0
  87. package/docs/examples.json +1 -1
  88. package/docs/llms-full.txt +362 -20
  89. package/docs/types.json +956 -56
  90. package/package.json +9 -9
  91. package/src/capabilities-tool.ts +229 -21
  92. package/src/check.ts +312 -65
  93. package/src/cli.ts +140 -405
  94. package/src/command-catalog.ts +1435 -0
  95. package/src/contracts.ts +28 -7
  96. package/src/doctor.ts +134 -12
  97. package/src/env-file.ts +121 -0
  98. package/src/fix-recipes.ts +101 -15
  99. package/src/internal/reserved-segment-codemod.ts +150 -0
  100. package/src/internal/typescript-import.ts +61 -11
  101. package/src/introspect.ts +82 -21
  102. package/src/load.ts +25 -6
  103. package/src/manifest-tool.ts +43 -12
  104. package/src/mcp-http.ts +1 -1
  105. package/src/mcp.ts +163 -420
  106. package/src/project-facts.ts +86 -0
  107. package/src/recipes/3.0.0.ts +24 -0
  108. package/src/recipes/index.ts +2 -0
  109. package/src/release-verification.ts +17 -0
  110. package/src/rules/comment-markers.ts +36 -0
  111. package/src/rules/index.ts +3 -4
  112. package/src/rules/routes.ts +30 -44
  113. package/src/rules/security.ts +14 -14
  114. package/src/workspace-link.ts +80 -0
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** Parse dotenv text into a plain record. Later assignments to the same key win, as in a shell. */
2
+ export declare function parseEnvFile(text: string): Record<string, string>;
3
+ /**
4
+ * Pull every `--env-file <path>` / `--env-file=<path>` out of `argv`, leaving the rest for the command
5
+ * parser (which rejects options it does not know). Repeatable; later files override earlier ones, the
6
+ * same precedence `node --env-file` uses.
7
+ */
8
+ export declare function takeEnvFileFlags(argv: readonly string[]): {
9
+ readonly argv: readonly string[];
10
+ readonly files: readonly string[];
11
+ };
12
+ /**
13
+ * Read each file in order and merge it into `process.env`, never overwriting a variable the process
14
+ * already has. Returns the resolved paths that were applied so a command can say what it loaded.
15
+ */
16
+ export declare function applyEnvFiles(cwd: string, files: readonly string[]): Promise<readonly string[]>;
17
+ //# sourceMappingURL=env-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../src/env-file.ts"],"names":[],"mappings":"AA8CA,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASjE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IACzD,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAyBA;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAoB5B"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * `--env-file <path>` for every `nifra` command.
3
+ *
4
+ * Most nifra commands (`check`, `assure`, `levels`, `routes`, `capabilities`, `manifest`, `contracts`,
5
+ * `openapi`, `types`) reflect a project by IMPORTING it, and a production-grade app validates its
6
+ * environment at module scope. Without the app's environment those commands do not report a gate
7
+ * failure - the app's own validator kills the process before nifra reaches its first check, and the
8
+ * only output is the app's `FATAL: invalid environment` with nothing tying it to the command that was
9
+ * run. This flag supplies that environment the same way `bun --env-file` / `node --env-file` do, so a
10
+ * project whose env lives in an uncommitted `.env.local` stays checkable.
11
+ *
12
+ * Two deliberate rules:
13
+ * - A variable already present in `process.env` WINS. The shell (and CI's secret store) is the more
14
+ * explicit source; a checked-in defaults file must never shadow it.
15
+ * - A missing file is an error, never a silent no-op. `--env-file .env.prod` that quietly did nothing
16
+ * would make the command look like it verified an environment it never loaded.
17
+ */
18
+ import { readFile } from "node:fs/promises";
19
+ import { resolve } from "node:path";
20
+ const ENV_FILE_FLAG = "--env-file";
21
+ /**
22
+ * A `KEY=VALUE` line. `export ` is tolerated so a file that is also `source`-able works. The key is
23
+ * POSIX-shaped on purpose: it keeps a stray `- foo` bullet or a YAML `key: value` line from being read
24
+ * as an assignment when the wrong file is passed.
25
+ */
26
+ const ASSIGNMENT = /^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/;
27
+ /** Strip one layer of matching quotes; a double-quoted value also expands `\n`, `\r`, `\t` and `\"`. */
28
+ function unquote(raw) {
29
+ const value = raw.trim();
30
+ if (value.length >= 2 && value.startsWith('"') && value.endsWith('"')) {
31
+ return value
32
+ .slice(1, -1)
33
+ .replace(/\\([nrt"\\])/g, (_, char) => char === "n" ? "\n" : char === "r" ? "\r" : char === "t" ? "\t" : char);
34
+ }
35
+ if (value.length >= 2 && value.startsWith("'") && value.endsWith("'"))
36
+ return value.slice(1, -1);
37
+ // Unquoted: an inline ` #` starts a comment, matching every dotenv reader. A `#` with no leading
38
+ // space is part of the value (URLs and generated secrets contain one).
39
+ const comment = value.search(/\s#/);
40
+ return (comment === -1 ? value : value.slice(0, comment)).trim();
41
+ }
42
+ /** Parse dotenv text into a plain record. Later assignments to the same key win, as in a shell. */
43
+ export function parseEnvFile(text) {
44
+ const values = {};
45
+ for (const line of text.split(/\r?\n/)) {
46
+ if (line.trim() === "" || line.trimStart().startsWith("#"))
47
+ continue;
48
+ const match = ASSIGNMENT.exec(line);
49
+ if (match === null)
50
+ continue;
51
+ values[match[1]] = unquote(match[2]);
52
+ }
53
+ return values;
54
+ }
55
+ /**
56
+ * Pull every `--env-file <path>` / `--env-file=<path>` out of `argv`, leaving the rest for the command
57
+ * parser (which rejects options it does not know). Repeatable; later files override earlier ones, the
58
+ * same precedence `node --env-file` uses.
59
+ */
60
+ export function takeEnvFileFlags(argv) {
61
+ const rest = [];
62
+ const files = [];
63
+ for (let index = 0; index < argv.length; index++) {
64
+ const token = argv[index];
65
+ if (token === ENV_FILE_FLAG) {
66
+ const value = argv[index + 1];
67
+ if (value === undefined || value.startsWith("-")) {
68
+ throw new Error(`[nifra] ${ENV_FILE_FLAG} needs a path, e.g. ${ENV_FILE_FLAG} .env.local`);
69
+ }
70
+ files.push(value);
71
+ index++;
72
+ continue;
73
+ }
74
+ if (token.startsWith(`${ENV_FILE_FLAG}=`)) {
75
+ const value = token.slice(ENV_FILE_FLAG.length + 1);
76
+ if (value === "") {
77
+ throw new Error(`[nifra] ${ENV_FILE_FLAG} needs a path, e.g. ${ENV_FILE_FLAG}=.env.local`);
78
+ }
79
+ files.push(value);
80
+ continue;
81
+ }
82
+ rest.push(token);
83
+ }
84
+ return { argv: rest, files };
85
+ }
86
+ /**
87
+ * Read each file in order and merge it into `process.env`, never overwriting a variable the process
88
+ * already has. Returns the resolved paths that were applied so a command can say what it loaded.
89
+ */
90
+ export async function applyEnvFiles(cwd, files) {
91
+ const applied = [];
92
+ const merged = {};
93
+ for (const file of files) {
94
+ const path = resolve(cwd, file);
95
+ let text;
96
+ try {
97
+ text = await readFile(path, "utf8");
98
+ }
99
+ catch {
100
+ throw new Error(`[nifra] --env-file not found or unreadable: ${path}`);
101
+ }
102
+ // Files merge left to right, so a later `--env-file` overrides an earlier one; the merged result
103
+ // is applied afterwards so that precedence never depends on which file happened to define a key.
104
+ Object.assign(merged, parseEnvFile(text));
105
+ applied.push(path);
106
+ }
107
+ for (const [key, value] of Object.entries(merged)) {
108
+ if (process.env[key] === undefined)
109
+ process.env[key] = value;
110
+ }
111
+ return applied;
112
+ }
113
+ //# sourceMappingURL=env-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../src/env-file.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fix-recipes.d.ts","sourceRoot":"","sources":["../src/fix-recipes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGlD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAGzD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE9D;AAED,wBAAgB,cAAc,IAAI,SAAS,SAAS,EAAE,CAErD;AA0FD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAM5B"}
1
+ {"version":3,"file":"fix-recipes.d.ts","sourceRoot":"","sources":["../src/fix-recipes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAIlD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAGzD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE9D;AAED,wBAAgB,cAAc,IAAI,SAAS,SAAS,EAAE,CAErD;AAgLD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAM5B"}
@@ -1,7 +1,7 @@
1
- import { existsSync } from "node:fs";
2
1
  import { readFile, writeFile } from "node:fs/promises";
3
2
  import { join } from "node:path";
4
3
  import { resolveInsideProject } from "./project-path.js";
4
+ import { resolveWorkspaceLinkedPackage } from "./workspace-link.js";
5
5
  const recipes = new Map();
6
6
  export function registerFixRecipe(recipe) {
7
7
  if (recipes.has(recipe.id))
@@ -71,29 +71,105 @@ registerFixRecipe({
71
71
  verify: "nifra doctor --json",
72
72
  async apply(root, diagnostic) {
73
73
  const packageName = diagnostic.evidence?.[0];
74
- if (packageName === undefined || !/^@?[A-Za-z0-9_.-]+(?:\/[A-Za-z0-9_.-]+)?$/.test(packageName))
74
+ if (packageName === undefined)
75
75
  return [];
76
- // The segment regex above admits "." and "..", which would resolve outside node_modules.
77
- if (packageName.split("/").some((segment) => segment === "." || segment === ".."))
78
- return [];
79
- const packageDir = await resolveInsideProject(root, join("node_modules", packageName));
80
- if (packageDir === undefined)
81
- return [];
82
- const packageJson = await resolveInsideProject(root, join("node_modules", packageName, "package.json"));
83
- if (packageJson === undefined || !existsSync(packageJson))
84
- return [];
85
- const proc = Bun.spawn(["bun", "run", "build"], {
86
- cwd: packageDir,
76
+ // Resolved from the NAME through the project's own node_modules chain, not from any path carried
77
+ // by the diagnostic. A workspace link points outside the project by definition - that escape is
78
+ // what makes the artifact able to go stale - so `resolveInsideProject` would reject every package
79
+ // this diagnostic can ever name. `resolveWorkspaceLinkedPackage` states its own rules instead:
80
+ // reachable through the project's install, not a registry tarball, and declaring its own build.
81
+ const linked = await resolveWorkspaceLinkedPackage(root, packageName);
82
+ // Refusing is a result the caller has to see. Returning "changed nothing" made `nifra fix
83
+ // --code NF-C010` a silent no-op on the only findings that produce it.
84
+ if (!linked.ok)
85
+ throw new Error(`[nifra] cannot rebuild ${packageName}: ${linked.reason}`);
86
+ const proc = Bun.spawn(["bun", "run", linked.buildScript], {
87
+ cwd: linked.dir,
87
88
  stdout: "ignore",
88
89
  stderr: "pipe",
89
90
  });
90
91
  const error = await new Response(proc.stderr).text();
91
92
  const exitCode = await proc.exited;
92
- if (exitCode !== 0)
93
- throw new Error(error.trim() || `build failed for ${packageName}`);
93
+ if (exitCode !== 0) {
94
+ throw new Error(`[nifra] \`bun run ${linked.buildScript}\` failed in ${linked.dir}: ${error.trim() || `exit code ${exitCode}`}`);
95
+ }
94
96
  return [diagnostic.evidence?.[1] ?? packageName];
95
97
  },
96
98
  });
99
+ /**
100
+ * How many typecheck passes the reserved-segment codemod will run. A nested collision
101
+ * (`/api/delete/then`) only reveals its second site once the first is rewritten, so one pass is not
102
+ * always enough - but each pass is a full `tsc`, so this converges or stops rather than looping.
103
+ */
104
+ const RESERVED_SEGMENT_PASSES = 3;
105
+ registerFixRecipe({
106
+ id: "client.reserved-segment",
107
+ description: "Rewrite typed-client call sites broken by a reserved-named route segment to the call spelling.",
108
+ verify: "tsc --noEmit",
109
+ async apply(root) {
110
+ const { parseCollisionSites, resolveTscBin, rewriteFile } = await import("./internal/reserved-segment-codemod.js");
111
+ const tsconfig = join(root, "tsconfig.json");
112
+ if (!(await Bun.file(tsconfig).exists()))
113
+ throw new Error("[nifra] no tsconfig.json here - the reserved-segment codemod reads the compiler's own list of broken call sites, so it needs a typecheckable project");
114
+ const tscBin = resolveTscBin(root);
115
+ if (tscBin === undefined)
116
+ throw new Error("[nifra] no `typescript` install found from this directory upward - run `bun add -d typescript`, then rerun the fix");
117
+ const changed = new Set();
118
+ const skipped = [];
119
+ for (let pass = 0; pass < RESERVED_SEGMENT_PASSES; pass += 1) {
120
+ const proc = Bun.spawn(["bun", tscBin, "--noEmit", "--pretty", "false", "-p", tsconfig], {
121
+ cwd: root,
122
+ stdout: "pipe",
123
+ stderr: "pipe",
124
+ });
125
+ const [stdout, stderr] = await Promise.all([
126
+ new Response(proc.stdout).text(),
127
+ new Response(proc.stderr).text(),
128
+ ]);
129
+ await proc.exited;
130
+ const sites = parseCollisionSites(`${stdout}${stderr}`);
131
+ if (sites.length === 0)
132
+ break;
133
+ const byFile = new Map();
134
+ for (const site of sites) {
135
+ const existing = byFile.get(site.file);
136
+ if (existing === undefined)
137
+ byFile.set(site.file, [site]);
138
+ else
139
+ existing.push(site);
140
+ }
141
+ let wrote = false;
142
+ skipped.length = 0;
143
+ for (const [file, fileSites] of byFile) {
144
+ // Resolved through the project boundary: the compiler reports paths from its own rootDir, and
145
+ // a rewrite must never escape the project it was invoked in.
146
+ const path = await resolveInsideProject(root, file);
147
+ if (path === undefined)
148
+ continue;
149
+ const source = await readFile(path, "utf8");
150
+ const result = rewriteFile(source, fileSites);
151
+ for (const site of result.skipped)
152
+ skipped.push(`${file}:${site.line}:${site.column}`);
153
+ if (result.source === source)
154
+ continue;
155
+ await writeFile(path, result.source, "utf8");
156
+ changed.add(file);
157
+ wrote = true;
158
+ }
159
+ // Nothing rewritten this pass means the remaining sites are all shapes the codemod declines to
160
+ // touch. Another `tsc` would report the same list, so stop instead of burning the budget.
161
+ if (!wrote)
162
+ break;
163
+ }
164
+ if (skipped.length > 0) {
165
+ const rewritten = changed.size === 0
166
+ ? "no site was rewritten"
167
+ : `rewrote ${changed.size} file${changed.size === 1 ? "" : "s"}`;
168
+ throw new Error(`[nifra] ${rewritten}; ${skipped.length} reserved-segment site${skipped.length === 1 ? "" : "s"} need${skipped.length === 1 ? "s" : ""} a manual edit (the collision is not reached by a plain \`.segment\` property access there): ${skipped.join(", ")}`);
169
+ }
170
+ return [...changed];
171
+ },
172
+ });
97
173
  export async function applyDiagnosticRecipe(root, diagnostic) {
98
174
  const recipeId = diagnostic.fix?.recipe;
99
175
  if (recipeId === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"fix-recipes.js","sourceRoot":"","sources":["../src/fix-recipes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-recipes.js","sourceRoot":"","sources":["../src/fix-recipes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export interface CollisionSite {
2
+ readonly file: string;
3
+ /** 1-based, as `tsc` reports them. */
4
+ readonly line: number;
5
+ readonly column: number;
6
+ /** The colliding path segment, read out of the type the compiler named. */
7
+ readonly segment: string;
8
+ }
9
+ /** Every reserved-segment collision `tsc` reported, in the order it reported them. */
10
+ export declare function parseCollisionSites(tscOutput: string): readonly CollisionSite[];
11
+ /**
12
+ * The span to replace for one site: the `.segment` immediately preceding the failing property access,
13
+ * which becomes `("segment")`. Undefined when the text does not have that shape - the caller reports
14
+ * those rather than rewriting something it did not recognise.
15
+ *
16
+ * The scan runs backwards over the whole source rather than one line, so a chain broken across lines
17
+ * (`api.foo\n .delete\n .post()`) rewrites the same as a chain on one line.
18
+ */
19
+ export declare function collisionSpan(source: string, site: CollisionSite): {
20
+ readonly start: number;
21
+ readonly end: number;
22
+ } | undefined;
23
+ export interface FileRewrite {
24
+ readonly source: string;
25
+ /** Sites in this file the scan declined to rewrite, so the caller can report them. */
26
+ readonly skipped: readonly CollisionSite[];
27
+ }
28
+ /**
29
+ * Apply every site belonging to one file. Spans are applied back to front so an earlier rewrite never
30
+ * shifts the offsets of one not yet applied, and a duplicate span (two failing properties resolving
31
+ * through the same access) is applied once.
32
+ */
33
+ export declare function rewriteFile(source: string, sites: readonly CollisionSite[]): FileRewrite;
34
+ /** The project's own `tsc` binary, found upward from `root`. Never installs one. */
35
+ export declare function resolveTscBin(root: string): string | undefined;
36
+ //# sourceMappingURL=reserved-segment-codemod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-segment-codemod.d.ts","sourceRoot":"","sources":["../../src/internal/reserved-segment-codemod.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAe/E;AAoBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAwB9D;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAA;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,WAAW,CAiBxF;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS9D"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Codemod for reserved-segment collisions in typed-client call sites.
3
+ *
4
+ * A route segment spelling a reserved proxy key (`get`…`options`, `subscribe`, `ws`, `index`, `then`)
5
+ * cannot be reached by property access - the proxy resolves the reserved behavior first - so the client
6
+ * type resolves that child to `ReservedSegmentCollision<"seg">` and every `api.foo.delete.post()` in the
7
+ * project stops compiling at once. The fix is mechanical and identical at every site: call the parent
8
+ * node with the segment instead, `api.foo("delete").post()`. Doing that by hand across a codebase is
9
+ * pure toil, and it is toil the framework caused.
10
+ *
11
+ * The compiler is the site index. `tsc` already reports every broken access, and its message names the
12
+ * segment (`Property 'post' does not exist on type 'ReservedSegmentCollision<"delete">'`), so the
13
+ * rewrite needs no type graph of its own and cannot invent a site the compiler did not reject. That
14
+ * also disambiguates the one case a textual search could not: `.delete` as a real DELETE verb call is
15
+ * valid and never appears in this list.
16
+ *
17
+ * A site the scan cannot rewrite CONFIDENTLY is left alone and reported, never guessed at. Bracket
18
+ * access, a collision node stored in a variable and used elsewhere, and any shape where the text before
19
+ * the failing property is not `.<segment>` all fall into that bucket.
20
+ */
21
+ import { existsSync } from "node:fs";
22
+ import { dirname, join } from "node:path";
23
+ /** `path/to/file.ts(12,16): error TS2339: … 'ReservedSegmentCollision<"delete">'.` */
24
+ const TSC_POSITION = /^(.+?)\((\d+),(\d+)\):\s*(?:error|warning)\s+TS\d+:\s*(.+)$/;
25
+ const COLLISION_TYPE = /ReservedSegmentCollision<"([^"]+)">/;
26
+ /** Every reserved-segment collision `tsc` reported, in the order it reported them. */
27
+ export function parseCollisionSites(tscOutput) {
28
+ const sites = [];
29
+ for (const raw of tscOutput.split("\n")) {
30
+ const position = TSC_POSITION.exec(raw.trim());
31
+ if (position === null)
32
+ continue;
33
+ const segment = COLLISION_TYPE.exec(position[4]);
34
+ if (segment === null)
35
+ continue;
36
+ sites.push({
37
+ file: position[1],
38
+ line: Number(position[2]),
39
+ column: Number(position[3]),
40
+ segment: segment[1],
41
+ });
42
+ }
43
+ return sites;
44
+ }
45
+ /** Byte offset of a 1-based (line, column) in `source`, or undefined when it is past the end. */
46
+ const offsetOf = (source, line, column) => {
47
+ let offset = 0;
48
+ for (let current = 1; current < line; current += 1) {
49
+ const next = source.indexOf("\n", offset);
50
+ if (next === -1)
51
+ return undefined;
52
+ offset = next + 1;
53
+ }
54
+ const target = offset + column - 1;
55
+ return target <= source.length ? target : undefined;
56
+ };
57
+ const skipSpaceBack = (source, from) => {
58
+ let index = from;
59
+ while (index >= 0 && /\s/.test(source[index]))
60
+ index -= 1;
61
+ return index;
62
+ };
63
+ /**
64
+ * The span to replace for one site: the `.segment` immediately preceding the failing property access,
65
+ * which becomes `("segment")`. Undefined when the text does not have that shape - the caller reports
66
+ * those rather than rewriting something it did not recognise.
67
+ *
68
+ * The scan runs backwards over the whole source rather than one line, so a chain broken across lines
69
+ * (`api.foo\n .delete\n .post()`) rewrites the same as a chain on one line.
70
+ */
71
+ export function collisionSpan(source, site) {
72
+ const offset = offsetOf(source, site.line, site.column);
73
+ if (offset === undefined)
74
+ return undefined;
75
+ // Back over the dot that introduces the FAILING property (`.post` in `…delete.post`).
76
+ let index = skipSpaceBack(source, offset - 1);
77
+ if (source[index] !== ".")
78
+ return undefined;
79
+ // Back over the colliding segment itself.
80
+ index = skipSpaceBack(source, index - 1);
81
+ const segmentEnd = index;
82
+ const segmentStart = segmentEnd - site.segment.length + 1;
83
+ if (segmentStart < 0)
84
+ return undefined;
85
+ if (source.slice(segmentStart, segmentEnd + 1) !== site.segment)
86
+ return undefined;
87
+ // Back over the dot that introduces the segment. Anything else (bracket access, a bare identifier
88
+ // holding the node) is a shape this rewrite does not understand.
89
+ const dot = skipSpaceBack(source, segmentStart - 1);
90
+ if (source[dot] !== ".")
91
+ return undefined;
92
+ // Take any whitespace before that dot into the span too, so a chain broken across lines closes up
93
+ // (`api.jobs\n .subscribe` becomes `api.jobs("subscribe")`) instead of leaving the call argument
94
+ // dangling on its own line.
95
+ return { start: skipSpaceBack(source, dot - 1) + 1, end: segmentEnd };
96
+ }
97
+ /**
98
+ * Apply every site belonging to one file. Spans are applied back to front so an earlier rewrite never
99
+ * shifts the offsets of one not yet applied, and a duplicate span (two failing properties resolving
100
+ * through the same access) is applied once.
101
+ */
102
+ export function rewriteFile(source, sites) {
103
+ const skipped = [];
104
+ const spans = [];
105
+ for (const site of sites) {
106
+ const span = collisionSpan(source, site);
107
+ if (span === undefined) {
108
+ skipped.push(site);
109
+ continue;
110
+ }
111
+ if (spans.some((other) => other.start === span.start && other.end === span.end))
112
+ continue;
113
+ spans.push({ ...span, segment: site.segment });
114
+ }
115
+ let out = source;
116
+ for (const span of [...spans].sort((a, b) => b.start - a.start)) {
117
+ out = `${out.slice(0, span.start)}("${span.segment}")${out.slice(span.end + 1)}`;
118
+ }
119
+ return { source: out, skipped };
120
+ }
121
+ /** The project's own `tsc` binary, found upward from `root`. Never installs one. */
122
+ export function resolveTscBin(root) {
123
+ let dir = root;
124
+ while (true) {
125
+ const candidate = join(dir, "node_modules", "typescript", "bin", "tsc");
126
+ if (existsSync(candidate))
127
+ return candidate;
128
+ const parent = dirname(dir);
129
+ if (parent === dir)
130
+ return undefined;
131
+ dir = parent;
132
+ }
133
+ }
134
+ //# sourceMappingURL=reserved-segment-codemod.js.map