@elaraai/east-diagnostics 1.0.28 → 1.0.29

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 (73) hide show
  1. package/README.md +13 -0
  2. package/dist/src/block-scope.d.ts +4 -1
  3. package/dist/src/block-scope.d.ts.map +1 -1
  4. package/dist/src/block-scope.js +19 -0
  5. package/dist/src/block-scope.js.map +1 -1
  6. package/dist/src/east-source.d.ts +17 -0
  7. package/dist/src/east-source.d.ts.map +1 -1
  8. package/dist/src/east-source.js +77 -0
  9. package/dist/src/east-source.js.map +1 -1
  10. package/dist/src/east-type.d.ts +2 -0
  11. package/dist/src/east-type.d.ts.map +1 -1
  12. package/dist/src/east-type.js +46 -0
  13. package/dist/src/east-type.js.map +1 -1
  14. package/dist/src/rules/index.d.ts +10 -0
  15. package/dist/src/rules/index.d.ts.map +1 -1
  16. package/dist/src/rules/index.js +31 -0
  17. package/dist/src/rules/index.js.map +1 -1
  18. package/dist/src/rules/no-build-time-clock.d.ts +3 -0
  19. package/dist/src/rules/no-build-time-clock.d.ts.map +1 -0
  20. package/dist/src/rules/no-build-time-clock.js +67 -0
  21. package/dist/src/rules/no-build-time-clock.js.map +1 -0
  22. package/dist/src/rules/no-compile-time-data-injection.d.ts.map +1 -1
  23. package/dist/src/rules/no-compile-time-data-injection.js +8 -3
  24. package/dist/src/rules/no-compile-time-data-injection.js.map +1 -1
  25. package/dist/src/rules/no-compile-time-seed-data.d.ts.map +1 -1
  26. package/dist/src/rules/no-compile-time-seed-data.js +4 -30
  27. package/dist/src/rules/no-compile-time-seed-data.js.map +1 -1
  28. package/dist/src/rules/no-cross-block-builder.d.ts +3 -0
  29. package/dist/src/rules/no-cross-block-builder.d.ts.map +1 -0
  30. package/dist/src/rules/no-cross-block-builder.js +112 -0
  31. package/dist/src/rules/no-cross-block-builder.js.map +1 -0
  32. package/dist/src/rules/no-duplicate-definition-name.d.ts +3 -0
  33. package/dist/src/rules/no-duplicate-definition-name.d.ts.map +1 -0
  34. package/dist/src/rules/no-duplicate-definition-name.js +73 -0
  35. package/dist/src/rules/no-duplicate-definition-name.js.map +1 -0
  36. package/dist/src/rules/no-dynamic-bind-path.d.ts +7 -0
  37. package/dist/src/rules/no-dynamic-bind-path.d.ts.map +1 -0
  38. package/dist/src/rules/no-dynamic-bind-path.js +53 -0
  39. package/dist/src/rules/no-dynamic-bind-path.js.map +1 -0
  40. package/dist/src/rules/no-handrolled-value-type-mirror.d.ts +3 -0
  41. package/dist/src/rules/no-handrolled-value-type-mirror.d.ts.map +1 -0
  42. package/dist/src/rules/no-handrolled-value-type-mirror.js +72 -0
  43. package/dist/src/rules/no-handrolled-value-type-mirror.js.map +1 -0
  44. package/dist/src/rules/no-host-comparison-on-east-values.d.ts +3 -0
  45. package/dist/src/rules/no-host-comparison-on-east-values.d.ts.map +1 -0
  46. package/dist/src/rules/no-host-comparison-on-east-values.js +70 -0
  47. package/dist/src/rules/no-host-comparison-on-east-values.js.map +1 -0
  48. package/dist/src/rules/no-host-in-east-block.d.ts.map +1 -1
  49. package/dist/src/rules/no-host-in-east-block.js +149 -31
  50. package/dist/src/rules/no-host-in-east-block.js.map +1 -1
  51. package/dist/src/rules/no-module-scope-east-macro.d.ts.map +1 -1
  52. package/dist/src/rules/no-module-scope-east-macro.js +8 -1
  53. package/dist/src/rules/no-module-scope-east-macro.js.map +1 -1
  54. package/dist/src/rules/no-state-outside-reactive.d.ts +3 -0
  55. package/dist/src/rules/no-state-outside-reactive.d.ts.map +1 -0
  56. package/dist/src/rules/no-state-outside-reactive.js +63 -0
  57. package/dist/src/rules/no-state-outside-reactive.js.map +1 -0
  58. package/dist/src/rules/prefer-const-ui-callbacks.d.ts +7 -0
  59. package/dist/src/rules/prefer-const-ui-callbacks.d.ts.map +1 -0
  60. package/dist/src/rules/prefer-const-ui-callbacks.js +50 -0
  61. package/dist/src/rules/prefer-const-ui-callbacks.js.map +1 -0
  62. package/dist/src/rules/prefer-some-none.d.ts.map +1 -1
  63. package/dist/src/rules/prefer-some-none.js +5 -0
  64. package/dist/src/rules/prefer-some-none.js.map +1 -1
  65. package/dist/src/rules/require-example-returns.d.ts +3 -0
  66. package/dist/src/rules/require-example-returns.d.ts.map +1 -0
  67. package/dist/src/rules/require-example-returns.js +58 -0
  68. package/dist/src/rules/require-example-returns.js.map +1 -0
  69. package/dist/src/rules/require-runner-platforms.d.ts +3 -0
  70. package/dist/src/rules/require-runner-platforms.d.ts.map +1 -0
  71. package/dist/src/rules/require-runner-platforms.js +99 -0
  72. package/dist/src/rules/require-runner-platforms.js.map +1 -0
  73. package/package.json +3 -3
@@ -1,35 +1,10 @@
1
- import { isEastExprType, isBlockBuilderType } from "../east-type.js";
1
+ import { isEastExprType, isBlockBuilderType, isEastPlatformDefinitionType } from "../east-type.js";
2
2
  import { insideBlockScope } from "../block-scope.js";
3
3
  import { chainRootReceiver, bodyBuildsEastIr } from "../east-ir.js";
4
+ import { resolvesToEastImport } from "../east-source.js";
4
5
  const NAME = "no-host-in-east-block";
5
6
  const CODE = 990020;
6
7
  // ── East-vs-host classification ─────────────────────────────────────────────
7
- /** Does `id` resolve to a binding imported from an `@elaraai/*` package? (The
8
- * whole East ecosystem API — `East`, `Expr`, `variant`/`some`, `ArrayType`/
9
- * `StructType`/`DictType`, `GoogleOr`, `Data`, … — is recognised by SYMBOL, not a
10
- * brittle name list.) */
11
- function resolvesToEastImport(id, ctx) {
12
- const t = ctx.ts;
13
- // Use the LOCAL import symbol (its declaration is the ImportSpecifier/clause) —
14
- // do NOT resolve the alias, which would jump to the declaration inside
15
- // @elaraai/east and lose the import-specifier we key on.
16
- const sym = ctx.checker.getSymbolAtLocation(id);
17
- for (const d of sym?.declarations ?? []) {
18
- let n = d;
19
- if (t.isImportSpecifier(n))
20
- n = n.parent.parent.parent;
21
- else if (t.isNamespaceImport(n))
22
- n = n.parent.parent;
23
- else if (t.isImportClause(n))
24
- n = n.parent;
25
- else
26
- continue;
27
- if (t.isImportDeclaration(n) && t.isStringLiteral(n.moduleSpecifier) && n.moduleSpecifier.text.startsWith("@elaraai/")) {
28
- return true;
29
- }
30
- }
31
- return false;
32
- }
33
8
  /**
34
9
  * Does `id` resolve to a binding LOCAL to an East block whose runtime value is an
35
10
  * East `Expr` typed loosely as `any` — an in-block TS macro (`g`/`sdiv`/`roundI`/…,
@@ -85,7 +60,7 @@ function isEastCall(call, ctx) {
85
60
  return true;
86
61
  // A5 — rooted on an `@elaraai/*` import (`East.*`, `Expr.*`, `variant`/`some`,
87
62
  // `ArrayType`/`StructType`/`DictType`, `GoogleOr.*`, …).
88
- if (t.isIdentifier(root) && resolvesToEastImport(root, ctx))
63
+ if (t.isIdentifier(root) && resolvesToEastImport(root, ctx.checker, t))
89
64
  return true;
90
65
  // A6 — a method chained off an in-block TS macro or its loosely-typed (`any`)
91
66
  // operand, whose type-info is lost as `any`. The macro is reported elsewhere
@@ -93,18 +68,161 @@ function isEastCall(call, ctx) {
93
68
  // East, not additional host calls.
94
69
  if (t.isPropertyAccessExpression(f) && t.isIdentifier(root) && resolvesToInBlockEastBinding(root, ctx))
95
70
  return true;
71
+ // A7 — the callee is an East platform-function DEFINITION (`East.platform(…)` /
72
+ // `East.asyncPlatform(…)` / the generic pair), project-local stubs included.
73
+ // Calling one emits a single `Platform` IR node — a real East call, exactly
74
+ // like calling a bound `East.function` (A0), not an authoring-time macro.
75
+ if (isEastPlatformDefinitionType(ctx.checker.getTypeAtLocation(f)))
76
+ return true;
77
+ // A8 — UI composition: the callee is a JSX-returning helper (the call-site
78
+ // mirror of clause E's declaration exemption), or an argument is a callback
79
+ // returning JSX (`days.map((d) => <Chip …/>)` over TS-side config).
80
+ if (isJsxCompositionCall(call, ctx))
81
+ return true;
82
+ // A9 — a LIBRARY-declared East-producing member call: the method/property is
83
+ // declared in a `.d.ts` (a compiled package — e.g. east-ui's Navigation
84
+ // `routes.Page.overview()` constructors on a project-local `Navigation.config`
85
+ // object) AND the call's result is an East `Expr`. A TS macro authored in
86
+ // project SOURCE (.ts/.tsx) never matches — its declaration is not a
87
+ // declaration file — so the rule still flags it.
88
+ if (t.isPropertyAccessExpression(f) && isLibDeclaredEastCall(call, f, ctx))
89
+ return true;
90
+ // A10 — literal STRING assembly (`["…", "…"].join("\n")`): every leaf of the
91
+ // call is a literal and the result is a string — authoring a multi-line/joined
92
+ // string CONSTANT at declaration time, which the host is for. Non-string folds
93
+ // (`[1n, 2n].indexOf(2n)`) stay flagged: computing over collections is East's
94
+ // job even when the operands happen to be literals.
95
+ if (isConstantFoldCall(call, ctx))
96
+ return true;
97
+ return false;
98
+ }
99
+ /** A call whose whole subtree is literals — no identifier reference, no template
100
+ * substitution, no East `Expr` — producing a plain STRING constant. (The member
101
+ * name of a property-access callee, `.join`, is not a reference.) */
102
+ function isConstantFoldCall(call, ctx) {
103
+ const t = ctx.ts;
104
+ if ((ctx.checker.getTypeAtLocation(call).flags & t.TypeFlags.StringLike) === 0)
105
+ return false;
106
+ let constant = true;
107
+ const visit = (n) => {
108
+ if (!constant)
109
+ return;
110
+ if (t.isIdentifier(n)) {
111
+ const p = n.parent;
112
+ if (p !== undefined && t.isPropertyAccessExpression(p) && p.name === n)
113
+ return;
114
+ constant = false;
115
+ return;
116
+ }
117
+ if (t.isTemplateExpression(n)) {
118
+ constant = false;
119
+ return;
120
+ }
121
+ t.forEachChild(n, visit);
122
+ };
123
+ visit(call);
124
+ return constant;
125
+ }
126
+ /** Is the accessed member LIBRARY API, with the call result an East `Expr`?
127
+ * (See clause A9.) Library API is established two ways: the member (or the
128
+ * receiver's named type — the property symbol of a mapped type is synthesized)
129
+ * is declared in a PACKAGE declaration file, or the receiver object's VALUE was
130
+ * built by an `@elaraai/*` factory call (`const routes = Navigation.config({…})`
131
+ * — the boundary test the .d.ts check can't make when the library's own source
132
+ * is in-program, e.g. the monorepo's self-dogfooding examples). TypeScript's
133
+ * own default libs never count — a JS `Map<string, Expr>` read with `.get(k)`
134
+ * is host-keyed East data (the abuse), not a library East API. */
135
+ function isLibDeclaredEastCall(call, f, ctx) {
136
+ if (!isEastExprType(ctx.checker.getTypeAtLocation(call)))
137
+ return false;
138
+ const inPackageDts = (sym) => (sym?.declarations ?? []).some((d) => {
139
+ const sf = d.getSourceFile();
140
+ if (!sf.isDeclarationFile)
141
+ return false;
142
+ if (ctx.program !== undefined)
143
+ return !ctx.program.isSourceFileDefaultLibrary(sf);
144
+ return !/\/lib\.[^/]*\.d\.ts$/.test(sf.fileName);
145
+ });
146
+ if (inPackageDts(ctx.checker.getSymbolAtLocation(f)))
147
+ return true;
148
+ const receiverType = ctx.checker.getTypeAtLocation(f.expression);
149
+ if (inPackageDts(receiverType.aliasSymbol ?? receiverType.symbol))
150
+ return true;
151
+ return rootBuiltByEastFactory(chainRootReceiver(f, ctx), ctx);
152
+ }
153
+ /** Does `root` resolve (through import aliases) to a `const` whose initializer
154
+ * is a call chain rooted in an `@elaraai/*` import — an object BUILT BY an East
155
+ * library factory, whose members are therefore library API? */
156
+ function rootBuiltByEastFactory(root, ctx) {
157
+ const t = ctx.ts;
158
+ if (!t.isIdentifier(root))
159
+ return false;
160
+ let sym = ctx.checker.getSymbolAtLocation(root);
161
+ if (sym !== undefined && (sym.flags & t.SymbolFlags.Alias) !== 0) {
162
+ sym = ctx.checker.getAliasedSymbol(sym);
163
+ }
164
+ const decl = sym?.valueDeclaration;
165
+ if (decl === undefined || !t.isVariableDeclaration(decl) || decl.initializer === undefined)
166
+ return false;
167
+ let init = decl.initializer;
168
+ while (t.isParenthesizedExpression(init))
169
+ init = init.expression;
170
+ if (!t.isCallExpression(init))
171
+ return false;
172
+ const initRoot = chainRootReceiver(init.expression, ctx);
173
+ return t.isIdentifier(initRoot) && resolvesToEastImport(initRoot, ctx.checker, t);
174
+ }
175
+ /** A call that composes JSX: it is passed JSX directly (`rows.push(<Chip/>)`),
176
+ * an argument is a function literal returning JSX (`days.map((d) => <Chip/>)`),
177
+ * or its callee resolves to a function/arrow whose returns include JSX. The
178
+ * declaration side of these helpers is exempted by clause E — the call side
179
+ * must be too, or binding composed JSX to a `const` before use would flag. */
180
+ function isJsxCompositionCall(call, ctx) {
181
+ const t = ctx.ts;
182
+ if (call.arguments.some((a) => isJsx(a, t) || ((t.isArrowFunction(a) || t.isFunctionExpression(a)) && returnExpressions(a, t).some((r) => isJsx(r, t))))) {
183
+ return true;
184
+ }
185
+ const f = call.expression;
186
+ if (!t.isIdentifier(f))
187
+ return false;
188
+ const sym = ctx.checker.getSymbolAtLocation(f);
189
+ for (const d of sym?.declarations ?? []) {
190
+ let fn;
191
+ if (t.isFunctionDeclaration(d) && d.body !== undefined)
192
+ fn = d;
193
+ else if (t.isVariableDeclaration(d) &&
194
+ d.initializer !== undefined &&
195
+ (t.isArrowFunction(d.initializer) || t.isFunctionExpression(d.initializer))) {
196
+ fn = d.initializer;
197
+ }
198
+ if (fn !== undefined && returnExpressions(fn, t).some((r) => isJsx(r, t)))
199
+ return true;
200
+ }
96
201
  return false;
97
202
  }
98
203
  function isEast(expr, ctx) {
99
204
  return isEastExprType(ctx.checker.getTypeAtLocation(expr));
100
205
  }
101
- /** Is `node` inside JSX (UI composition is out of scope — `prefer-jsx-…` owns it)? */
102
- function insideJsx(node, t) {
206
+ /** Is `node` inside JSX *within its own function scope* — a JSX construct met
207
+ * walking up BEFORE any function boundary? Direct JSX composition (element
208
+ * children, attribute value expressions) is markup, out of scope for
209
+ * host-vs-East checks. But EVERY callback nested inside JSX is code again —
210
+ * a `<Reactive>{$ => …}` block, a `data.map(($, x) => …)` projection, and
211
+ * equally a host callback computing data in an attribute
212
+ * (`items={Array.from(…, (_, i) => …)}`): inside an East function the data
213
+ * must be East all the way down, so the JSX ancestor beyond a callback
214
+ * boundary exempts nothing. Authoring-time constants belong at module scope
215
+ * (or as East generation — `East.Array.range(…).map(($, i) => …)`). */
216
+ function insideJsx(node, ctx) {
217
+ const t = ctx.ts;
103
218
  let cur = node.parent;
104
219
  while (cur !== undefined) {
105
220
  if (t.isJsxElement(cur) || t.isJsxSelfClosingElement(cur) || t.isJsxFragment(cur) || t.isJsxExpression(cur) || t.isJsxAttribute(cur)) {
106
221
  return true;
107
222
  }
223
+ if (t.isArrowFunction(cur) || t.isFunctionExpression(cur) || t.isFunctionDeclaration(cur) || t.isMethodDeclaration(cur)) {
224
+ return false;
225
+ }
108
226
  cur = cur.parent;
109
227
  }
110
228
  return false;
@@ -158,7 +276,7 @@ export const noHostInEastBlock = {
158
276
  const t = ctx.ts;
159
277
  if (!insideBlockScope(node, ctx))
160
278
  return;
161
- if (insideJsx(node, t))
279
+ if (insideJsx(node, ctx))
162
280
  return;
163
281
  // Clause E — a TS closure/function DECLARED inside an East block (a `const`
164
282
  // arrow, a function-expression, or a `function` declaration). It is an
@@ -1 +1 @@
1
- {"version":3,"file":"no-host-in-east-block.js","sourceRoot":"","sources":["../../../src/rules/no-host-in-east-block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-host-in-east-block.js","sourceRoot":"","sources":["../../../src/rules/no-host-in-east-block.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-module-scope-east-macro.d.ts","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AA+FnE,eAAO,MAAM,sBAAsB,EAAE,QAwDpC,CAAC"}
1
+ {"version":3,"file":"no-module-scope-east-macro.d.ts","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAqGnE,eAAO,MAAM,sBAAsB,EAAE,QAwDpC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { isEastExprType, isBlockBuilderType } from "../east-type.js";
1
+ import { isEastExprType, isBlockBuilderType, isEastDefinitionType } from "../east-type.js";
2
2
  import { insideBlockScope } from "../block-scope.js";
3
3
  import { chainRootReceiver } from "../east-ir.js";
4
4
  import { importsEastPackage } from "../east-source.js";
@@ -57,6 +57,13 @@ function returnBuildsEast(r, ctx) {
57
57
  const t = ctx.ts;
58
58
  if (isJsx(r, t))
59
59
  return false;
60
+ // A DECLARATION factory — a helper returning an e3 definition (`e3.task(…)` →
61
+ // `TaskDef`, `e3.input(…)` → `DatasetDef`, …) or a platform definition
62
+ // (`East.platform(…)`) — composes the program's structure, which is exactly
63
+ // what the host language is FOR. It is not a value macro, even though the
64
+ // definition it returns has East builders (an `East.function` body) inside.
65
+ if (isEastDefinitionType(ctx.checker.getTypeAtLocation(r)))
66
+ return false;
60
67
  if (isEastValueConstructor(r, t))
61
68
  return true;
62
69
  if (isEastExprType(ctx.checker.getTypeAtLocation(r)))
@@ -1 +1 @@
1
- {"version":3,"file":"no-module-scope-east-macro.js","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-module-scope-east-macro.js","sourceRoot":"","sources":["../../../src/rules/no-module-scope-east-macro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { EastRule } from "../types.js";
2
+ export declare const noStateOutsideReactive: EastRule;
3
+ //# sourceMappingURL=no-state-outside-reactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-state-outside-reactive.d.ts","sourceRoot":"","sources":["../../../src/rules/no-state-outside-reactive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AA+BzD,eAAO,MAAM,sBAAsB,EAAE,QA4BpC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { enclosingBlockScope, insideReactive } from "../block-scope.js";
2
+ import { resolvesToEastImport } from "../east-source.js";
3
+ const NAME = "no-state-outside-reactive";
4
+ const CODE = 990024;
5
+ /** Is the outermost East block scope of `node` the fn argument of a `ui(…)`
6
+ * call (the SURFACE ROOT)? A cross-file composition helper (an `East.function`
7
+ * whose subtree the caller mounts inside its own `<Reactive>`) cannot be judged
8
+ * lexically — only at the provable root is a missing Reactive definitely wrong. */
9
+ function atUiSurfaceRoot(node, ctx) {
10
+ const t = ctx.ts;
11
+ const outermost = enclosingBlockScope(node, ctx);
12
+ // Only the `ui(…, East.function(…))` form is judgeable — the outermost scope
13
+ // is then the `East.function(...)` CALL sitting in `ui`'s argument list.
14
+ if (outermost === undefined || !t.isCallExpression(outermost))
15
+ return false;
16
+ const parent = outermost.parent;
17
+ if (parent === undefined || !t.isCallExpression(parent))
18
+ return false;
19
+ if (!parent.arguments.some((a) => a === outermost))
20
+ return false;
21
+ const callee = parent.expression;
22
+ return t.isIdentifier(callee) && callee.text === "ui" && resolvesToEastImport(callee, ctx.checker, t);
23
+ }
24
+ // east-ui `State.*` platform calls (State.bind and friends) must run inside a
25
+ // `<Reactive>` inner builder: outside one, the platform call makes the whole UI
26
+ // function async at analysis time and the deploy analyzer REJECTS it — or the
27
+ // surface silently never re-renders. Type-checks fine either way, so catch it
28
+ // at authoring time. Scoped to the provable SURFACE ROOT (the fn passed to
29
+ // `ui(…)`): a composition helper in another function may be mounted inside the
30
+ // caller's <Reactive>, which a lexical check cannot see.
31
+ export const noStateOutsideReactive = {
32
+ name: NAME,
33
+ code: CODE,
34
+ description: "east-ui State.* must live inside a <Reactive> builder — outside one the UI function becomes async and is rejected at deploy time.",
35
+ check(node, ctx) {
36
+ const t = ctx.ts;
37
+ if (!t.isCallExpression(node))
38
+ return;
39
+ const callee = node.expression;
40
+ if (!t.isPropertyAccessExpression(callee))
41
+ return;
42
+ if (!t.isIdentifier(callee.expression) || callee.expression.text !== "State")
43
+ return;
44
+ // Only the east-ui State namespace — resolved by symbol, not name alone.
45
+ if (!resolvesToEastImport(callee.expression, ctx.checker, t))
46
+ return;
47
+ if (!atUiSurfaceRoot(node, ctx))
48
+ return;
49
+ if (insideReactive(node, t))
50
+ return;
51
+ const sf = ctx.sourceFile;
52
+ const start = node.getStart(sf);
53
+ ctx.report({
54
+ ruleName: NAME,
55
+ code: CODE,
56
+ start,
57
+ length: node.getEnd() - start,
58
+ messageText: `\`State.${callee.name.text}\` outside a \`<Reactive>\` builder makes this UI function async at analysis time — the deploy analyzer rejects it (or the surface never re-renders). Move all \`State.*\` into the \`<Reactive>{$ => …}\` inner builder.`,
59
+ category: "warning",
60
+ });
61
+ },
62
+ };
63
+ //# sourceMappingURL=no-state-outside-reactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-state-outside-reactive.js","sourceRoot":"","sources":["../../../src/rules/no-state-outside-reactive.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB;;;mFAGmF;AACnF,SAAS,eAAe,CAAC,IAAa,EAAE,GAAgB;IACtD,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;IACjB,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IACjC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EACT,mIAAmI;IACrI,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO;QACrF,yEAAyE;QACzE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO;QACrE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO;QACxC,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAAE,OAAO;QAEpC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;YAC7B,WAAW,EACT,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,2NAA2N;YACxP,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
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 type { EastRule } from "../types.js";
6
+ export declare const preferConstUiCallbacks: EastRule;
7
+ //# sourceMappingURL=prefer-const-ui-callbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-const-ui-callbacks.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-const-ui-callbacks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAa5C,eAAO,MAAM,sBAAsB,EAAE,QAkCpC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { insideBlockScope, insideReactive } from "../block-scope.js";
2
+ const NAME = "prefer-const-ui-callbacks";
3
+ const CODE = 990025;
4
+ // An event-handler `East.function` authored INLINE in a JSX prop inside a
5
+ // `<Reactive>` scope is a fresh function value on every reactive re-render —
6
+ // and East's `equalFor` treats all functions as equal, so a memoized renderer
7
+ // cannot see the swap (stale handler / forced remount). Bind it once with
8
+ // `$.const` and pass the handle: one identity, evaluated once, serialized
9
+ // once. (A static, non-Reactive tree builds the handler once at IR build — the
10
+ // hazard doesn't exist there, so it is not flagged.)
11
+ export const preferConstUiCallbacks = {
12
+ name: NAME,
13
+ code: CODE,
14
+ description: "Inside <Reactive>, bind JSX event handlers with $.const and pass the handle — an inline East.function prop is rebuilt each re-render and memoized renderers can't see the swap.",
15
+ check(node, ctx) {
16
+ const t = ctx.ts;
17
+ if (!t.isCallExpression(node))
18
+ return;
19
+ const callee = node.expression;
20
+ if (!t.isPropertyAccessExpression(callee))
21
+ return;
22
+ if (!t.isIdentifier(callee.expression) || callee.expression.text !== "East")
23
+ return;
24
+ if (callee.name.text !== "function" && callee.name.text !== "asyncFunction")
25
+ return;
26
+ // Directly the value of a JSX attribute: `onX={East.function(…)}`.
27
+ const parent = node.parent;
28
+ if (parent === undefined || !t.isJsxExpression(parent) || parent.expression !== node)
29
+ return;
30
+ const attr = parent.parent;
31
+ if (attr === undefined || !t.isJsxAttribute(attr))
32
+ return;
33
+ if (!insideBlockScope(node, ctx))
34
+ return;
35
+ // The identity hazard is a RE-RENDER hazard — only Reactive scopes re-render.
36
+ if (!insideReactive(node, t))
37
+ return;
38
+ const sf = ctx.sourceFile;
39
+ const start = callee.getStart(sf);
40
+ ctx.report({
41
+ ruleName: NAME,
42
+ code: CODE,
43
+ start,
44
+ length: callee.getEnd() - start,
45
+ messageText: `Inline \`East.${callee.name.text}\` in the \`${attr.name.getText(sf)}\` prop is rebuilt on every render, and \`equalFor\` treats all functions as equal so memoized renderers can't see the swap. Bind it once — \`const handler = $.const(East.${callee.name.text}(…))\` — and pass the handle.`,
46
+ category: "suggestion",
47
+ });
48
+ },
49
+ };
50
+ //# sourceMappingURL=prefer-const-ui-callbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-const-ui-callbacks.js","sourceRoot":"","sources":["../../../src/rules/prefer-const-ui-callbacks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EACT,iLAAiL;IACnL,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QACpF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO;QAEpF,mEAAmE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO;QAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO;QAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO;QACzC,8EAA8E;QAC9E,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAAE,OAAO;QAErC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK;YAC/B,WAAW,EACT,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,8KAA8K,MAAM,CAAC,IAAI,CAAC,IAAI,+BAA+B;YACpS,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-some-none.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,eAAO,MAAM,cAAc,EAAE,QA6B5B,CAAC"}
1
+ {"version":3,"file":"prefer-some-none.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ5C,eAAO,MAAM,cAAc,EAAE,QAgC5B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { resolvesToEastImport } from "../east-source.js";
1
2
  const NAME = "prefer-some-none";
2
3
  const CODE = 990003;
3
4
  // `some(x)` / `none` are the canonical Option constructors; `variant("some", x)`
@@ -13,6 +14,10 @@ export const preferSomeNone = {
13
14
  const callee = node.expression;
14
15
  if (!t.isIdentifier(callee) || callee.text !== "variant")
15
16
  return;
17
+ // Only the East `variant` — an unrelated local function that happens to be
18
+ // called `variant` (in a file that never touches East) is not our business.
19
+ if (!resolvesToEastImport(callee, ctx.checker, t))
20
+ return;
16
21
  const first = node.arguments[0];
17
22
  if (first === undefined || !t.isStringLiteralLike(first))
18
23
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-some-none.js","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAMA,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,mEAAmE;IAChF,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QAEjE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,OAAO;QACjE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAE7C,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;YAC7B,WAAW,EACT,GAAG,KAAK,MAAM;gBACZ,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,gDAAgD;YACtD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"prefer-some-none.js","sourceRoot":"","sources":["../../../src/rules/prefer-some-none.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,mEAAmE;IAChF,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACjE,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,OAAO;QACjE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAE7C,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK;YAC7B,WAAW,EACT,GAAG,KAAK,MAAM;gBACZ,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,gDAAgD;YACtD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { EastRule } from "../types.js";
2
+ export declare const requireExampleReturns: EastRule;
3
+ //# sourceMappingURL=require-example-returns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-example-returns.d.ts","sourceRoot":"","sources":["../../../src/rules/require-example-returns.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AAwBtD,eAAO,MAAM,qBAAqB,EAAE,QAkCnC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { resolvesToEastImport } from "../east-source.js";
2
+ const NAME = "require-example-returns";
3
+ const CODE = 990030;
4
+ // Output types for which omitting `returns` is the DOCUMENTED convention: a
5
+ // side-effect example (Null) and a UI example (component trees aren't asserted
6
+ // by value).
7
+ const RETURNS_EXEMPT = new Set(["NullType", "UIComponentType"]);
8
+ function propNamed(obj, name, t) {
9
+ for (const p of obj.properties) {
10
+ if (t.isPropertyAssignment(p) && (t.isIdentifier(p.name) || t.isStringLiteralLike(p.name)) && p.name.text === name) {
11
+ return p;
12
+ }
13
+ }
14
+ return undefined;
15
+ }
16
+ // `example({ …, fn, inputs })` WITHOUT `returns` makes the harness run `fn` as
17
+ // a bare statement — the "test" false-passes forever, and the example ships to
18
+ // the plugin search index unverified. Omission is only legitimate for NullType
19
+ // (side-effect) and UIComponentType outputs.
20
+ export const requireExampleReturns = {
21
+ name: NAME,
22
+ code: CODE,
23
+ description: "example() must declare `returns` unless the fn output is NullType/UIComponentType — omitting it false-passes the example's assertion.",
24
+ check(node, ctx) {
25
+ const t = ctx.ts;
26
+ if (!t.isCallExpression(node))
27
+ return;
28
+ const callee = node.expression;
29
+ if (!t.isIdentifier(callee) || callee.text !== "example")
30
+ return;
31
+ if (!resolvesToEastImport(callee, ctx.checker, t))
32
+ return;
33
+ const arg = node.arguments[0];
34
+ if (arg === undefined || !t.isObjectLiteralExpression(arg))
35
+ return;
36
+ if (propNamed(arg, "returns", t) !== undefined)
37
+ return;
38
+ // The fn's declared output type (2nd East.function argument). A complex
39
+ // output expression still needs `returns`; only the exempt identifiers pass.
40
+ const fnProp = propNamed(arg, "fn", t);
41
+ if (fnProp === undefined || !t.isCallExpression(fnProp.initializer))
42
+ return;
43
+ const outputArg = fnProp.initializer.arguments[1];
44
+ if (outputArg !== undefined && t.isIdentifier(outputArg) && RETURNS_EXEMPT.has(outputArg.text))
45
+ return;
46
+ const sf = ctx.sourceFile;
47
+ const start = callee.getStart(sf);
48
+ ctx.report({
49
+ ruleName: NAME,
50
+ code: CODE,
51
+ start,
52
+ length: callee.getEnd() - start,
53
+ messageText: "This `example()` has no `returns` — the harness runs `fn` as a bare statement and the assertion false-passes. Add the hand-verified `returns` value (omit it ONLY for NullType / UIComponentType outputs).",
54
+ category: "warning",
55
+ });
56
+ },
57
+ };
58
+ //# sourceMappingURL=require-example-returns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-example-returns.js","sourceRoot":"","sources":["../../../src/rules/require-example-returns.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC,MAAM,IAAI,GAAG,MAAM,CAAC;AAEpB,4EAA4E;AAC5E,+EAA+E;AAC/E,aAAa;AACb,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAEhE,SAAS,SAAS,CAAC,GAA+B,EAAE,IAAY,EAAE,CAAW;IAC3E,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACnH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EACT,uIAAuI;IACzI,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACjE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,OAAO;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAAE,OAAO;QACnE,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO;QAEvD,wEAAwE;QACxE,6EAA6E;QAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,OAAO;QAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO;QAEvG,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK;YAC/B,WAAW,EACT,4MAA4M;YAC9M,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { EastRule } from "../types.js";
2
+ export declare const requireRunnerPlatforms: EastRule;
3
+ //# sourceMappingURL=require-runner-platforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-runner-platforms.d.ts","sourceRoot":"","sources":["../../../src/rules/require-runner-platforms.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAmEnE,eAAO,MAAM,sBAAsB,EAAE,QA+BpC,CAAC"}