@elaraai/east-diagnostics 1.0.68 → 1.0.70

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.
@@ -17,6 +17,14 @@ export declare function resolvesToEastImport(id: ts.Identifier, checker: ts.Type
17
17
  * package? — the signal that it is East/e3 source rather than plain TypeScript.
18
18
  * Cached per source file. */
19
19
  export declare function importsEastPackage(sf: ts.SourceFile, t: TsModule): boolean;
20
+ /** Does this file import `@elaraai/east` and the program cannot RESOLVE it
21
+ * (#647)? A loose file outside any project — no `node_modules` above it — has
22
+ * every East binding typed as an error type, and the rules keyed on East types
23
+ * would flag every East call in it; they stay silent there instead. Only the
24
+ * core package's own import counts: a deep `@elaraai/east/src/…` import is what
25
+ * `no-relative-src-import` flags, and a sibling package a project does not
26
+ * install leaves the East types intact. */
27
+ export declare function unresolvedEastImport(sf: ts.SourceFile, checker: ts.TypeChecker, t: TsModule): boolean;
20
28
  /** Does this file DECLARE an East/e3 program — an `East.<factory>(…)` call
21
29
  * (function/asyncFunction/platform/…, with `East` symbol-resolved to an
22
30
  * `@elaraai/*` import), an e3 definition call (`e3.input`/`e3.task`/… on the
@@ -1 +1 @@
1
- {"version":3,"file":"east-source.d.ts","sourceRoot":"","sources":["../../src/east-source.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;+EAG+E;AAC/E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,iBAAiB,GAAG,SAAS,CAa7G;AAED;;iFAEiF;AACjF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAGrG;AAUD;;6BAE6B;AAC7B,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAc1E;AASD;;;;;;qEAMqE;AACrE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CA+BpG;AAuBD;;;;;oCAKoC;AACpC,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAS/F"}
1
+ {"version":3,"file":"east-source.d.ts","sourceRoot":"","sources":["../../src/east-source.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;+EAG+E;AAC/E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,iBAAiB,GAAG,SAAS,CAa7G;AAED;;iFAEiF;AACjF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAGrG;AAUD;;6BAE6B;AAC7B,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAc1E;AAED;;;;;;2CAM2C;AAC3C,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAQrG;AASD;;;;;;qEAMqE;AACrE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CA+BpG;AAuBD;;;;;oCAKoC;AACpC,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAS/F"}
@@ -56,6 +56,25 @@ export function importsEastPackage(sf, t) {
56
56
  importsCache.set(sf, found);
57
57
  return found;
58
58
  }
59
+ /** Does this file import `@elaraai/east` and the program cannot RESOLVE it
60
+ * (#647)? A loose file outside any project — no `node_modules` above it — has
61
+ * every East binding typed as an error type, and the rules keyed on East types
62
+ * would flag every East call in it; they stay silent there instead. Only the
63
+ * core package's own import counts: a deep `@elaraai/east/src/…` import is what
64
+ * `no-relative-src-import` flags, and a sibling package a project does not
65
+ * install leaves the East types intact. */
66
+ export function unresolvedEastImport(sf, checker, t) {
67
+ for (const stmt of sf.statements) {
68
+ if (!t.isImportDeclaration(stmt) && !t.isExportDeclaration(stmt))
69
+ continue;
70
+ const spec = stmt.moduleSpecifier;
71
+ if (spec === undefined || !t.isStringLiteral(spec) || spec.text !== "@elaraai/east")
72
+ continue;
73
+ if (checker.getSymbolAtLocation(spec) === undefined)
74
+ return true;
75
+ }
76
+ return false;
77
+ }
59
78
  const declaresCache = new WeakMap();
60
79
  /** e3 members whose call DECLARES part of a deployable program. */
61
80
  const E3_DECLARATION_MEMBERS = new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"east-source.js","sourceRoot":"","sources":["../../src/east-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"east-source.js","sourceRoot":"","sources":["../../src/east-source.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export { createDiagnosticsService } from "./service.js";
9
9
  export type { DiagnosticsService, DiagnosticsServiceOptions } from "./service.js";
10
10
  export { runEastLsp } from "./lsp.js";
11
11
  export type { EastLspOptions } from "./lsp.js";
12
+ export { findEastPy, runEastPyLint, renderPythonReview, PYTHON_EAST_IMPORT } from "./python-lint.js";
13
+ export type { PythonDiagnostic } from "./python-lint.js";
12
14
  export { getEastModule } from "./east-module.js";
13
15
  export type { EastModule } from "./east-module.js";
14
16
  export { reifyEastType } from "./type-reify.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,mBAAmB,YAAY,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,mBAAmB,YAAY,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACrG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/src/index.js CHANGED
@@ -2,6 +2,7 @@ export * from "./rules/index.js";
2
2
  export { runEastRules } from "./run.js";
3
3
  export { createDiagnosticsService } from "./service.js";
4
4
  export { runEastLsp } from "./lsp.js";
5
+ export { findEastPy, runEastPyLint, renderPythonReview, PYTHON_EAST_IMPORT } from "./python-lint.js";
5
6
  export { getEastModule } from "./east-module.js";
6
7
  export { reifyEastType } from "./type-reify.js";
7
8
  export { rewriteEastAssignability, ASSIGNABILITY_CODES } from "./type-diff-rewrite.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../../src/lsp.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAuDjF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,oDAAoD;IACpD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,CAkL7D"}
1
+ {"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../../src/lsp.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAyDjF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,oDAAoD;IACpD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI,CA4M7D"}
package/dist/src/lsp.js CHANGED
@@ -5,6 +5,7 @@
5
5
  import { readFileSync } from "node:fs";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { createDiagnosticsService } from "./service.js";
8
+ import { PYTHON_EAST_IMPORT, runEastPyLint } from "./python-lint.js";
8
9
  const EAST_IMPORT_PATTERN = /@elaraai\//;
9
10
  // Vendored / built / generated trees: never diagnose code the user doesn't own.
10
11
  const SKIP_PATH = /[/\\](node_modules|dist|build|\.venv|\.git)[/\\]/;
@@ -58,6 +59,28 @@ export function runEastLsp(options = {}) {
58
59
  const body = JSON.stringify({ jsonrpc: "2.0", ...message });
59
60
  output.write(`Content-Length: ${Buffer.byteLength(body, "utf8")}\r\n\r\n${body}`);
60
61
  }
62
+ /** A python document: the east-py rules, run out of process; published when they answer. */
63
+ function publishPython(path, content) {
64
+ if (content === undefined || SKIP_PATH.test(path) || !PYTHON_EAST_IMPORT.test(content)) {
65
+ send({ method: "textDocument/publishDiagnostics", params: { uri: `file://${path}`, diagnostics: [] } });
66
+ return;
67
+ }
68
+ void runEastPyLint(path, open.has(path) ? content : undefined).then((records) => {
69
+ if (records === null)
70
+ return; // no east-py answered: say nothing rather than "clean"
71
+ const diagnostics = records.map((r) => ({
72
+ range: {
73
+ start: { line: r.line - 1, character: r.column - 1 },
74
+ end: { line: (r.end_line ?? r.line) - 1, character: (r.end_column ?? r.column + 1) - 1 },
75
+ },
76
+ severity: SEVERITY[r.category] ?? 2,
77
+ code: r.rule,
78
+ source: "east-py",
79
+ message: r.message,
80
+ }));
81
+ send({ method: "textDocument/publishDiagnostics", params: { uri: `file://${path}`, diagnostics } });
82
+ });
83
+ }
61
84
  function publish(path) {
62
85
  const content = open.get(path) ?? (() => {
63
86
  try {
@@ -67,6 +90,10 @@ export function runEastLsp(options = {}) {
67
90
  return undefined;
68
91
  }
69
92
  })();
93
+ if (path.endsWith(".py")) {
94
+ publishPython(path, content);
95
+ return;
96
+ }
70
97
  let diagnostics = [];
71
98
  if (content !== undefined && !SKIP_PATH.test(path) && EAST_IMPORT_PATTERN.test(content)) {
72
99
  const starts = lineStarts(content);
@@ -152,7 +179,8 @@ export function runEastLsp(options = {}) {
152
179
  if (path === undefined || typeof text !== "string")
153
180
  return;
154
181
  open.set(path, text);
155
- service.setOverlay(path, text);
182
+ if (!path.endsWith(".py"))
183
+ service.setOverlay(path, text);
156
184
  schedule(path);
157
185
  return;
158
186
  }
@@ -162,7 +190,8 @@ export function runEastLsp(options = {}) {
162
190
  if (path === undefined || typeof text !== "string")
163
191
  return;
164
192
  open.set(path, text);
165
- service.setOverlay(path, text);
193
+ if (!path.endsWith(".py"))
194
+ service.setOverlay(path, text);
166
195
  schedule(path);
167
196
  return;
168
197
  }
@@ -173,11 +202,13 @@ export function runEastLsp(options = {}) {
173
202
  const text = params?.text;
174
203
  if (typeof text === "string") {
175
204
  open.set(path, text);
176
- service.setOverlay(path, text);
205
+ if (!path.endsWith(".py"))
206
+ service.setOverlay(path, text);
177
207
  }
178
208
  else {
179
209
  open.delete(path);
180
- service.clearOverlay(path);
210
+ if (!path.endsWith(".py"))
211
+ service.clearOverlay(path);
181
212
  }
182
213
  schedule(path);
183
214
  return;
@@ -187,7 +218,8 @@ export function runEastLsp(options = {}) {
187
218
  if (path === undefined)
188
219
  return;
189
220
  open.delete(path);
190
- service.clearOverlay(path);
221
+ if (!path.endsWith(".py"))
222
+ service.clearOverlay(path);
191
223
  const timer = pending.get(path);
192
224
  if (timer !== undefined)
193
225
  clearTimeout(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"lsp.js","sourceRoot":"","sources":["../../src/lsp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAA2B,MAAM,cAAc,CAAC;AAgBjF,MAAM,mBAAmB,GAAG,YAAY,CAAC;AACzC,gFAAgF;AAChF,MAAM,SAAS,GAAG,kDAAkD,CAAC;AACrE,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,QAAQ,GAA2C;IACvD,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAgB,EAAE,MAAc;IACxD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,MAAM;YAAE,GAAG,GAAG,GAAG,CAAC;;YACjC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAE,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAUD,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,UAA0B,EAAE;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,wBAAwB,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpE,gEAAgE;IAChE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyC,CAAC;IACjE,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,SAAS,IAAI,CAAC,OAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,SAAS,OAAO,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxF,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACnC,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,KAAK,EAAE;oBACL,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;oBACxC,GAAG,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;iBAClD;gBACD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC9B,IAAI,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACvD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,CAAC,CAAC,WAAW;aACvB,CAAC,CAAC,CAAC;QACN,CAAC;QACD,IAAI,CAAC,EAAE,MAAM,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,SAAS,QAAQ,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,MAAM,CAAC,OAAuB;QACrC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,mCAAmC;QAErE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,QAAQ,CAAC;gBACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC9D,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,gBAAgB,IAAI,EAAE,EAAE,CAAC;oBAC/C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;oBAClC,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,CAAC;oBACH,EAAE;oBACF,MAAM,EAAE;wBACN,YAAY,EAAE;4BACZ,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;yBAC9E;wBACD,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;qBACzC;iBACF,CAAC,CAAC;gBACH,+DAA+D;gBAC/D,YAAY,CAAC,GAAG,EAAE;oBAChB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC7B,IAAI,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,CAAC;wBAAC,MAAM,CAAC;4BACP,sBAAsB;wBACxB,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,KAAK,aAAa;gBAChB,OAAO;YACT,KAAK,UAAU;gBACb,YAAY,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3B,OAAO;YACT,KAAK,MAAM;gBACT,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO;YACT,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxD,MAAM,IAAI,GAAG,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC;gBACxC,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO;gBAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxD,MAAM,IAAI,GAAG,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;gBACpD,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO;gBAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxD,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO;gBAC/B,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC;gBAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrB,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACxD,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO;gBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,CAAC,EAAE,MAAM,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxG,OAAO;YACT,CAAC;YACD;gBACE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrB,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO;QACX,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACjC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACxC,SAAS,CAAC;YACR,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,SAAS,GAAG,CAAC;gBAAE,OAAO;YAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACxC,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;YAChC,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM;gBAAE,OAAO;YAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7E,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;YAC7D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"lsp.js","sourceRoot":"","sources":["../../src/lsp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** One finding as `east-py lint --format json` records it. */
2
+ export interface PythonDiagnostic {
3
+ path: string;
4
+ rule: string;
5
+ code: string;
6
+ category: "error" | "warning" | "suggestion";
7
+ line: number;
8
+ column: number;
9
+ end_line?: number;
10
+ end_column?: number;
11
+ message: string;
12
+ }
13
+ /** A python file that imports east: `import east`, `from east import …`, `from east.x import …`. */
14
+ export declare const PYTHON_EAST_IMPORT: RegExp;
15
+ /** The `east-py` command for a file: `EAST_PY_LINT` when set, else the
16
+ * nearest `.venv` above `fromDir`, else `east-py` on PATH. */
17
+ export declare function findEastPy(fromDir: string): string;
18
+ /**
19
+ * The east-py findings for a python file — `""`-free: `[]` when clean,
20
+ * `null` when no east-py answered (absent, failed, or over `budgetMs`), so
21
+ * callers can stay silent. `content` (an unsaved buffer) is linted from a
22
+ * temporary copy under the file's own name; the file itself otherwise.
23
+ */
24
+ export declare function runEastPyLint(file: string, content?: string, budgetMs?: number): Promise<PythonDiagnostic[] | null>;
25
+ /** The findings as the `<east-code-review>` block the plugin injects — `""` when there are none. */
26
+ export declare function renderPythonReview(records: PythonDiagnostic[]): string;
27
+ //# sourceMappingURL=python-lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-lint.d.ts","sourceRoot":"","sources":["../../src/python-lint.ts"],"names":[],"mappings":"AAeA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oGAAoG;AACpG,eAAO,MAAM,kBAAkB,QAAiE,CAAC;AAEjG;8DAC8D;AAC9D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYlD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAiCjH;AAED,oGAAoG;AACpG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAItE"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { execFile } from "node:child_process";
6
+ import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
7
+ import { tmpdir } from "node:os";
8
+ import { basename, dirname, join } from "node:path";
9
+ /** A python file that imports east: `import east`, `from east import …`, `from east.x import …`. */
10
+ export const PYTHON_EAST_IMPORT = /^\s*(?:from\s+east(?:\.[\w.]+)?\s+import\b|import\s+east\b)/m;
11
+ /** The `east-py` command for a file: `EAST_PY_LINT` when set, else the
12
+ * nearest `.venv` above `fromDir`, else `east-py` on PATH. */
13
+ export function findEastPy(fromDir) {
14
+ const override = process.env["EAST_PY_LINT"];
15
+ if (override !== undefined && override !== "")
16
+ return override;
17
+ let dir = fromDir;
18
+ for (;;) {
19
+ for (const candidate of [join(dir, ".venv", "bin", "east-py"), join(dir, ".venv", "Scripts", "east-py.exe")]) {
20
+ if (existsSync(candidate))
21
+ return candidate;
22
+ }
23
+ const parent = dirname(dir);
24
+ if (parent === dir)
25
+ return "east-py";
26
+ dir = parent;
27
+ }
28
+ }
29
+ /**
30
+ * The east-py findings for a python file — `""`-free: `[]` when clean,
31
+ * `null` when no east-py answered (absent, failed, or over `budgetMs`), so
32
+ * callers can stay silent. `content` (an unsaved buffer) is linted from a
33
+ * temporary copy under the file's own name; the file itself otherwise.
34
+ */
35
+ export function runEastPyLint(file, content, budgetMs = 4000) {
36
+ const command = findEastPy(dirname(file));
37
+ let target = file;
38
+ let scratch = null;
39
+ if (content !== undefined) {
40
+ scratch = mkdtempSync(join(tmpdir(), "east-py-lint-"));
41
+ target = join(scratch, basename(file));
42
+ writeFileSync(target, content, "utf-8");
43
+ }
44
+ return new Promise((resolveFindings) => {
45
+ execFile(command, ["lint", "--format", "json", target],
46
+ // UTF-8 stdio: python encodes a piped stdout in the locale's code page on Windows (cp1252), and the findings carry em dashes
47
+ { timeout: budgetMs, encoding: "utf-8", maxBuffer: 4 * 1024 * 1024, env: { ...process.env, PYTHONIOENCODING: "utf-8" } }, (error, stdout) => {
48
+ if (scratch !== null)
49
+ rmSync(scratch, { recursive: true, force: true });
50
+ // exit 1 means findings (they are on stdout); anything else means no answer
51
+ if (error !== null && error.code !== 1) {
52
+ resolveFindings(null);
53
+ return;
54
+ }
55
+ let records;
56
+ try {
57
+ records = JSON.parse(stdout);
58
+ }
59
+ catch {
60
+ resolveFindings(null);
61
+ return;
62
+ }
63
+ resolveFindings(Array.isArray(records) ? records : null);
64
+ });
65
+ });
66
+ }
67
+ /** The findings as the `<east-code-review>` block the plugin injects — `""` when there are none. */
68
+ export function renderPythonReview(records) {
69
+ if (records.length === 0)
70
+ return "";
71
+ const lines = records.map((r) => `- [${r.category}] ${r.line}:${r.column} (${r.rule}) ${r.message}`);
72
+ return ["<east-code-review>", "## East issues in this file", "", ...lines, "</east-code-review>"].join("\n");
73
+ }
74
+ //# sourceMappingURL=python-lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-lint.js","sourceRoot":"","sources":["../../src/python-lint.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Copyright (c) 2025 Elara AI Pty Ltd
3
- * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
- */
5
1
  import type { EastRule } from "../types.js";
6
2
  export declare const preferLetConstOverEastValue: EastRule;
7
3
  //# sourceMappingURL=prefer-let-const-over-east-value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-let-const-over-east-value.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-let-const-over-east-value.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAc5C,eAAO,MAAM,2BAA2B,EAAE,QA0DzC,CAAC"}
1
+ {"version":3,"file":"prefer-let-const-over-east-value.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-let-const-over-east-value.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AAsCtD,eAAO,MAAM,2BAA2B,EAAE,QA4DzC,CAAC"}
@@ -8,7 +8,35 @@ const CODE = 990006;
8
8
  // body (`hits.map(($, r) => East.value({…}, T))`): the callback's expected
9
9
  // element type already supplies `T`, so the wrapper is redundant — return the
10
10
  // plain value. A bare `East.value(x)` as a method argument (wrapping an external
11
- // constant, no contextual type) stays valid.
11
+ // constant, no contextual type) stays valid — and so does a RETURNED
12
+ // `East.value(v, T)` whose `T` is load-bearing: a callback's type is inferred
13
+ // from what it returns, and `none`, an empty collection, a `variant(...)` or a
14
+ // `some(...)` (alone it builds a one-case variant, not an Option) have no type
15
+ // of their own there (a printed module spells them so).
16
+ /** Whether `T` in `East.value(v, T)` is load-bearing for `v`: `none`, an empty
17
+ * `[]` / `new Map()` / `new Set()`, a `variant(...)` or a `some(...)` anywhere
18
+ * inside `v`. */
19
+ function typeIsLoadBearing(value, t) {
20
+ let found = false;
21
+ const emptyArray = (n) => n !== undefined && t.isArrayLiteralExpression(n) && n.elements.length === 0;
22
+ const visit = (n) => {
23
+ if (found)
24
+ return;
25
+ if (t.isIdentifier(n) && n.text === "none")
26
+ found = true;
27
+ else if (emptyArray(n))
28
+ found = true;
29
+ else if (t.isNewExpression(n) && t.isIdentifier(n.expression) && (n.expression.text === "Map" || n.expression.text === "Set")
30
+ && (n.arguments === undefined || n.arguments.length === 0 || emptyArray(n.arguments[0])))
31
+ found = true;
32
+ else if (t.isCallExpression(n) && t.isIdentifier(n.expression) && (n.expression.text === "variant" || n.expression.text === "some"))
33
+ found = true;
34
+ else
35
+ t.forEachChild(n, visit);
36
+ };
37
+ visit(value);
38
+ return found;
39
+ }
12
40
  export const preferLetConstOverEastValue = {
13
41
  name: NAME,
14
42
  code: CODE,
@@ -41,9 +69,12 @@ export const preferLetConstOverEastValue = {
41
69
  return;
42
70
  if (!insideBlockScope(node, ctx))
43
71
  return;
72
+ const inner = node.arguments[0];
73
+ // returned with a type the value cannot supply itself: the only spelling
74
+ if ((asReturn || asCallbackBody) && node.arguments.length >= 2 && inner !== undefined && typeIsLoadBearing(inner, t))
75
+ return;
44
76
  const sf = ctx.sourceFile;
45
77
  const start = node.getStart(sf);
46
- const inner = node.arguments[0];
47
78
  ctx.report({
48
79
  ruleName: NAME,
49
80
  code: CODE,
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-let-const-over-east-value.js","sourceRoot":"","sources":["../../../src/rules/prefer-let-const-over-east-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-let-const-over-east-value.js","sourceRoot":"","sources":["../../../src/rules/prefer-let-const-over-east-value.ts"],"names":[],"mappings":"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"}
package/dist/src/run.d.ts CHANGED
@@ -6,6 +6,8 @@ import type * as ts from "typescript";
6
6
  import type { EastDiagnostic, EastRule, EastRulesOptions, TsModule } from "./types.js";
7
7
  /** Run a set of East rules over one source file, returning diagnostics. The
8
8
  * `typescript` module is injected so rules use the host's compiler version.
9
- * `rules` defaults to `allRules` (the run-anywhere set). */
9
+ * `rules` defaults to `allRules` (the run-anywhere set). A file whose
10
+ * `@elaraai/east` import does not resolve (a loose file outside a project)
11
+ * gets none: its East types are unknown, and every rule would misfire. */
10
12
  export declare function runEastRules(tsModule: TsModule, program: ts.Program, sourceFile: ts.SourceFile, checker: ts.TypeChecker, options?: EastRulesOptions, rules?: readonly EastRule[]): EastDiagnostic[];
11
13
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGpG;;4DAE4D;AAC5D,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,OAAO,GAAE,gBAAqB,EAC9B,KAAK,GAAE,SAAS,QAAQ,EAAa,GACpC,cAAc,EAAE,CAqBlB"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIpG;;;;0EAI0E;AAC1E,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,OAAO,GAAE,gBAAqB,EAC9B,KAAK,GAAE,SAAS,QAAQ,EAAa,GACpC,cAAc,EAAE,CAsBlB"}
package/dist/src/run.js CHANGED
@@ -1,8 +1,13 @@
1
1
  import { allRules } from "./rules/index.js";
2
+ import { unresolvedEastImport } from "./east-source.js";
2
3
  /** Run a set of East rules over one source file, returning diagnostics. The
3
4
  * `typescript` module is injected so rules use the host's compiler version.
4
- * `rules` defaults to `allRules` (the run-anywhere set). */
5
+ * `rules` defaults to `allRules` (the run-anywhere set). A file whose
6
+ * `@elaraai/east` import does not resolve (a loose file outside a project)
7
+ * gets none: its East types are unknown, and every rule would misfire. */
5
8
  export function runEastRules(tsModule, program, sourceFile, checker, options = {}, rules = allRules) {
9
+ if (unresolvedEastImport(sourceFile, checker, tsModule))
10
+ return [];
6
11
  const diagnostics = [];
7
12
  const ctx = {
8
13
  ts: tsModule,
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;4DAE4D;AAC5D,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,OAAmB,EACnB,UAAyB,EACzB,OAAuB,EACvB,UAA4B,EAAE,EAC9B,QAA6B,QAAQ;IAErC,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,QAAQ;QACZ,UAAU;QACV,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACnC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,KAAK,MAAM,IAAI,IAAI,MAAM;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,KAAK,CAAC,UAAU,CAAC,CAAC;IAElB,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;0EAI0E;AAC1E,MAAM,UAAU,YAAY,CAC1B,QAAkB,EAClB,OAAmB,EACnB,UAAyB,EACzB,OAAuB,EACvB,UAA4B,EAAE,EAC9B,QAA6B,QAAQ;IAErC,IAAI,oBAAoB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACnE,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,QAAQ;QACZ,UAAU;QACV,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACnC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,KAAK,MAAM,IAAI,IAAI,MAAM;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,KAAK,CAAC,UAAU,CAAC,CAAC;IAElB,OAAO,WAAW,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/east-diagnostics",
3
- "version": "1.0.68",
3
+ "version": "1.0.70",
4
4
  "license": "AGPL-3.0-or-later",
5
5
  "type": "module",
6
6
  "description": "East-aware diagnostic rules over the TypeScript checker — one shared engine for the editor (tsserver plugin), the agent (headless daemon), and CI.",
@@ -44,8 +44,8 @@
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.18.1",
46
46
  "typescript": "~5.9.2",
47
- "@elaraai/east": "1.0.68",
48
- "@elaraai/e3": "1.0.68"
47
+ "@elaraai/e3": "1.0.70",
48
+ "@elaraai/east": "1.0.70"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "tsc",