@llui/lint-idiomatic 0.0.8 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,62 +6,91 @@ AST linter for idiomatic [LLui](https://github.com/fponticelli/llui) patterns. C
6
6
  pnpm add -D @llui/lint-idiomatic
7
7
  ```
8
8
 
9
- ## Usage
9
+ ## Vite plugin (recommended)
10
10
 
11
11
  ```ts
12
- import { lintIdiomatic } from '@llui/lint-idiomatic'
12
+ // vite.config.ts
13
+ import llui from '@llui/vite-plugin'
14
+ import lintIdiomatic from '@llui/lint-idiomatic/vite'
15
+
16
+ export default {
17
+ plugins: [llui(), lintIdiomatic()],
18
+ }
19
+ ```
20
+
21
+ Violations appear as warnings in the Vite dev server overlay and in CI
22
+ build output. The plugin dedupes rules that overlap with `@llui/vite-plugin`'s
23
+ built-in `diagnose()` pass so you don't see the same warning twice.
24
+
25
+ ### Plugin options
13
26
 
14
- const source = `
15
- function update(state: State, msg: Msg): [State, Effect[]] {
16
- switch (msg.type) {
17
- case 'increment':
18
- state.count++ // mutation!
19
- return [state, []]
20
- }
21
- }
22
- `
27
+ | Option | Type | Default | Description |
28
+ | ------------- | ---------------------------- | ---------------------------------- | ----------------------------------------------------------------------------- |
29
+ | `exclude` | `readonly string[]` | `['map-on-state-array']` | Rule names to skip. Pass `[]` to include all rules. |
30
+ | `skip` | `readonly RegExp[]` | `[/\/node_modules\//, /\/dist\//]` | File patterns to skip. |
31
+ | `devOnly` | `boolean` | `false` | Only lint in dev mode (skip in production builds). |
32
+ | `failOnError` | `boolean` | `false` | Call `this.error()` instead of `this.warn()` on violations (fails the build). |
33
+ | `onLint` | `(filename, result) => void` | — | Callback for each linted file. Useful for summary reporters. |
34
+
35
+ ## Library usage
36
+
37
+ For eval harnesses, CLIs, or editor integrations that need the pure function:
38
+
39
+ ```ts
40
+ import { lintIdiomatic } from '@llui/lint-idiomatic'
23
41
 
24
- const { violations, score } = lintIdiomatic(source, 'counter.ts')
42
+ const source = `...`
43
+ const { violations, score } = lintIdiomatic(source, 'counter.ts', {
44
+ exclude: ['state-mutation'], // optional: skip specific rules
45
+ })
25
46
 
26
- console.log(score) // 5 (out of 6)
27
- console.log(violations) // [{ rule: 'state-mutation', line: 5, message: '...' }]
47
+ console.log(score) // 17 = fully idiomatic
48
+ console.log(violations) // [{ rule, line, column, message, suggestion? }]
28
49
  ```
29
50
 
30
51
  ## API
31
52
 
32
53
  ```ts
33
- lintIdiomatic(source: string, filename?: string) => { violations: Violation[], score: number }
54
+ lintIdiomatic(
55
+ source: string,
56
+ filename?: string,
57
+ options?: { exclude?: readonly string[] },
58
+ ) => { violations: Violation[], score: number }
34
59
  ```
35
60
 
36
61
  | Field | Type | Description |
37
62
  | ------------ | ------------- | ------------------------------------------- |
38
63
  | `violations` | `Violation[]` | List of rule violations found |
39
- | `score` | `number` | Idiomatic score 0-15 (15 = fully idiomatic) |
64
+ | `score` | `number` | Idiomatic score 0-17 (17 = fully idiomatic) |
40
65
 
41
66
  ### Violation
42
67
 
43
- | Field | Type | Description |
44
- | --------- | -------- | -------------------------- |
45
- | `rule` | `string` | Rule identifier |
46
- | `line` | `number` | Source line number |
47
- | `message` | `string` | Human-readable explanation |
68
+ | Field | Type | Description |
69
+ | ------------ | -------- | -------------------------- |
70
+ | `rule` | `string` | Rule identifier |
71
+ | `line` | `number` | Source line number |
72
+ | `column` | `number` | Source column number |
73
+ | `message` | `string` | Human-readable explanation |
74
+ | `suggestion` | `string` | Optional fix suggestion |
48
75
 
49
76
  ## Rules
50
77
 
51
- | Rule | Description |
52
- | ---------------------------- | -------------------------------------------------------------------------- |
53
- | `state-mutation` | Direct mutation of state in `update()` instead of returning a new object |
54
- | `missing-memo` | Expensive derived computation in `view()` without `memo()` |
55
- | `each-closure-violation` | Capturing mutable outer variable inside `each()` render callback |
56
- | `map-on-state-array` | Calling `.map()` on a state array in `view()` (use `each()` instead) |
57
- | `unnecessary-child` | Using `child()` boundary when a view function would suffice |
58
- | `form-boilerplate` | Repetitive form field pattern that could use a view function |
59
- | `async-update` | Using `async`/`await` in `update()` — must be synchronous and pure |
60
- | `direct-state-in-view` | Stale state capture in event handler instead of using an accessor |
61
- | `exhaustive-effect-handling` | Empty `.else()` handler silently drops unhandled effects |
62
- | `effect-without-handler` | Component returns effects but has no `onEffect` handler |
63
- | `forgotten-spread` | `show()`/`branch()`/`each()` used without spread in children array |
64
- | `string-effect-callback` | Deprecated string-based `onSuccess`/`onError` in effect declarations |
65
- | `nested-send-in-update` | Calling `send()` inside `update()` causes recursive dispatch |
66
- | `imperative-dom-in-view` | Using `document.querySelector` etc. in `view()` instead of primitives |
67
- | `accessor-side-effect` | Side effects (fetch, console.log, etc.) inside reactive accessor functions |
78
+ | Rule | Description |
79
+ | ---------------------------- | ------------------------------------------------------------------------------ |
80
+ | `state-mutation` | Direct mutation of state in `update()` instead of returning a new object |
81
+ | `missing-memo` | Expensive derived computation in `view()` without `memo()` |
82
+ | `each-closure-violation` | Capturing mutable outer variable inside `each()` render callback |
83
+ | `map-on-state-array` | Calling `.map()` on a state array in `view()` (use `each()` instead) |
84
+ | `unnecessary-child` | Using `child()` boundary when a view function would suffice |
85
+ | `form-boilerplate` | Repetitive form field pattern that could use a view function |
86
+ | `async-update` | Using `async`/`await` in `update()` — must be synchronous and pure |
87
+ | `direct-state-in-view` | Stale state capture in event handler instead of using an accessor |
88
+ | `exhaustive-effect-handling` | Empty `.else()` handler silently drops unhandled effects |
89
+ | `effect-without-handler` | Component returns effects but has no `onEffect` handler |
90
+ | `forgotten-spread` | `show()`/`branch()`/`each()` used without spread in children array |
91
+ | `string-effect-callback` | Deprecated string-based `onSuccess`/`onError` in effect declarations |
92
+ | `nested-send-in-update` | Calling `send()` inside `update()` causes recursive dispatch |
93
+ | `imperative-dom-in-view` | Using `document.querySelector` etc. in `view()` instead of primitives |
94
+ | `accessor-side-effect` | Side effects (fetch, console.log, etc.) inside reactive accessor functions |
95
+ | `view-bag-import` | Importing view helpers instead of destructuring from the `View<S, M>` bag |
96
+ | `spread-in-children` | Spreading array literals into children instead of `show()`/`each()`/`branch()` |
package/dist/index.d.ts CHANGED
@@ -8,12 +8,26 @@ export interface LintViolation {
8
8
  }
9
9
  export interface LintResult {
10
10
  violations: LintViolation[];
11
- /** Score from 0 to 15. Starts at 15, -1 per violated rule category. */
11
+ /** Score from 0 to 17. Starts at 17, -1 per violated rule category. */
12
12
  score: number;
13
13
  }
14
+ export interface LintOptions {
15
+ /**
16
+ * Rule names to skip. Useful for avoiding duplication when running
17
+ * alongside `@llui/vite-plugin`, which already emits some of these
18
+ * diagnostics from its own `diagnose()` pass.
19
+ */
20
+ exclude?: readonly string[];
21
+ }
22
+ /**
23
+ * Every rule name emitted by `lintIdiomatic`. Stable list so callers
24
+ * (like the Vite plugin wrapper) can reference them by name to exclude.
25
+ */
26
+ export declare const RULE_NAMES: readonly ["state-mutation", "missing-memo", "each-closure-violation", "map-on-state-array", "unnecessary-child", "form-boilerplate", "async-update", "direct-state-in-view", "exhaustive-effect-handling", "effect-without-handler", "forgotten-spread", "string-effect-callback", "nested-send-in-update", "imperative-dom-in-view", "accessor-side-effect", "view-bag-import", "spread-in-children"];
27
+ export type RuleName = (typeof RULE_NAMES)[number];
14
28
  /**
15
29
  * Lint a single source file for LLui idiomatic anti-patterns.
16
- * Returns violations and a numeric score (6 = perfect).
30
+ * Returns violations and a numeric score (17 = perfect).
17
31
  */
18
- export declare function lintIdiomatic(source: string, filename?: string): LintResult;
32
+ export declare function lintIdiomatic(source: string, filename?: string, options?: LintOptions): LintResult;
19
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAa,GAAG,UAAU,CA2B/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,wYAkBb,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAElD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,SAAa,EACrB,OAAO,GAAE,WAAgB,GACxB,UAAU,CAiCZ"}
package/dist/index.js CHANGED
@@ -1,11 +1,38 @@
1
1
  import ts from 'typescript';
2
+ /**
3
+ * Every rule name emitted by `lintIdiomatic`. Stable list so callers
4
+ * (like the Vite plugin wrapper) can reference them by name to exclude.
5
+ */
6
+ export const RULE_NAMES = [
7
+ 'state-mutation',
8
+ 'missing-memo',
9
+ 'each-closure-violation',
10
+ 'map-on-state-array',
11
+ 'unnecessary-child',
12
+ 'form-boilerplate',
13
+ 'async-update',
14
+ 'direct-state-in-view',
15
+ 'exhaustive-effect-handling',
16
+ 'effect-without-handler',
17
+ 'forgotten-spread',
18
+ 'string-effect-callback',
19
+ 'nested-send-in-update',
20
+ 'imperative-dom-in-view',
21
+ 'accessor-side-effect',
22
+ 'view-bag-import',
23
+ 'spread-in-children',
24
+ ];
2
25
  /**
3
26
  * Lint a single source file for LLui idiomatic anti-patterns.
4
- * Returns violations and a numeric score (6 = perfect).
27
+ * Returns violations and a numeric score (17 = perfect).
5
28
  */
6
- export function lintIdiomatic(source, filename = 'input.ts') {
29
+ export function lintIdiomatic(source, filename = 'input.ts', options = {}) {
7
30
  const sf = ts.createSourceFile(filename, source, ts.ScriptTarget.Latest, true);
8
31
  const violations = [];
32
+ const exclude = new Set(options.exclude ?? []);
33
+ // Each check runs its own visitor; filter by rule name at the end rather
34
+ // than skipping the check entirely, so tests can verify the exclude
35
+ // mechanism without re-plumbing every check function.
9
36
  checkStateMutation(sf, filename, violations);
10
37
  checkMissingMemo(sf, filename, violations);
11
38
  checkEachClosureViolation(sf, filename, violations);
@@ -23,10 +50,11 @@ export function lintIdiomatic(source, filename = 'input.ts') {
23
50
  checkAccessorSideEffect(sf, filename, violations);
24
51
  checkViewBagImport(sf, filename, violations);
25
52
  checkSpreadInChildren(sf, filename, violations);
26
- // Score: unique violated rule categories
27
- const violatedRules = new Set(violations.map((v) => v.rule));
53
+ const filtered = exclude.size > 0 ? violations.filter((v) => !exclude.has(v.rule)) : violations;
54
+ // Score: unique violated rule categories (post-filter)
55
+ const violatedRules = new Set(filtered.map((v) => v.rule));
28
56
  const score = Math.max(0, 17 - violatedRules.size);
29
- return { violations, score };
57
+ return { violations: filtered, score };
30
58
  }
31
59
  // ── Helpers ─────────────────────────────────────────────────────────
32
60
  function pos(node, sf) {
@@ -151,8 +179,9 @@ function checkMutationsInBody(node, stateName, sf, filename, violations) {
151
179
  }
152
180
  // ── Rule 2: missing-memo ────────────────────────────────────────────
153
181
  function checkMissingMemo(sf, filename, violations) {
154
- // Collect arrow functions used as arguments in binding positions (text(), prop values)
155
- // Group by printed source text. Flag groups with count >= 2 not wrapped in memo().
182
+ // Collect arrow functions used as reactive-binding accessors (not
183
+ // arbitrary prop values). Group by printed source text and flag
184
+ // groups with count >= 2 that aren't wrapped in memo().
156
185
  const arrowsByText = new Map();
157
186
  function isInMemoCall(node) {
158
187
  const parent = node.parent;
@@ -164,19 +193,134 @@ function checkMissingMemo(sf, filename, violations) {
164
193
  }
165
194
  return false;
166
195
  }
196
+ // Element helpers — any prop assignment on an object passed to one
197
+ // of these counts as a reactive binding site. `child()`, `each()`,
198
+ // `show()`, `branch()`, `memo()`, `selector()` are STRUCTURAL
199
+ // primitives; arrow props there are configuration, not bindings.
200
+ const ELEMENT_HELPER_RECEIVERS = new Set([
201
+ 'a',
202
+ 'abbr',
203
+ 'article',
204
+ 'aside',
205
+ 'b',
206
+ 'blockquote',
207
+ 'br',
208
+ 'button',
209
+ 'canvas',
210
+ 'code',
211
+ 'dd',
212
+ 'details',
213
+ 'dialog',
214
+ 'div',
215
+ 'dl',
216
+ 'dt',
217
+ 'em',
218
+ 'fieldset',
219
+ 'figcaption',
220
+ 'figure',
221
+ 'footer',
222
+ 'form',
223
+ 'h1',
224
+ 'h2',
225
+ 'h3',
226
+ 'h4',
227
+ 'h5',
228
+ 'h6',
229
+ 'header',
230
+ 'hr',
231
+ 'i',
232
+ 'iframe',
233
+ 'img',
234
+ 'input',
235
+ 'kbd',
236
+ 'label',
237
+ 'legend',
238
+ 'li',
239
+ 'main',
240
+ 'mark',
241
+ 'menu',
242
+ 'meter',
243
+ 'nav',
244
+ 'ol',
245
+ 'optgroup',
246
+ 'option',
247
+ 'output',
248
+ 'p',
249
+ 'picture',
250
+ 'pre',
251
+ 'progress',
252
+ 'q',
253
+ 's',
254
+ 'samp',
255
+ 'section',
256
+ 'select',
257
+ 'small',
258
+ 'source',
259
+ 'span',
260
+ 'strong',
261
+ 'sub',
262
+ 'summary',
263
+ 'sup',
264
+ 'table',
265
+ 'tbody',
266
+ 'td',
267
+ 'textarea',
268
+ 'tfoot',
269
+ 'th',
270
+ 'thead',
271
+ 'time',
272
+ 'tr',
273
+ 'track',
274
+ 'u',
275
+ 'ul',
276
+ 'var',
277
+ 'video',
278
+ 'wbr',
279
+ ]);
280
+ /**
281
+ * An arrow is a reactive binding if it sits in one of:
282
+ * - first arg to `text(...)`
283
+ * - a property value of an object literal passed to an element
284
+ * helper like `div({ class: (s) => ... }, [...])`
285
+ *
286
+ * Prop values passed to `child()`, `each()`, etc. are configuration,
287
+ * not reactive bindings, and should not be memoized.
288
+ */
289
+ function isReactiveBinding(arrow) {
290
+ const parent = arrow.parent;
291
+ if (!parent)
292
+ return false;
293
+ // Case 1: first arg to text()
294
+ if (ts.isCallExpression(parent) &&
295
+ ts.isIdentifier(parent.expression) &&
296
+ parent.expression.text === 'text' &&
297
+ parent.arguments[0] === arrow) {
298
+ return true;
299
+ }
300
+ // Case 2: property in an object literal passed to an element helper
301
+ if (ts.isPropertyAssignment(parent)) {
302
+ const objectLit = parent.parent;
303
+ if (!objectLit || !ts.isObjectLiteralExpression(objectLit))
304
+ return false;
305
+ const call = objectLit.parent;
306
+ if (!call || !ts.isCallExpression(call))
307
+ return false;
308
+ if (!ts.isIdentifier(call.expression))
309
+ return false;
310
+ return ELEMENT_HELPER_RECEIVERS.has(call.expression.text);
311
+ }
312
+ return false;
313
+ }
167
314
  function visit(node) {
168
315
  if (ts.isArrowFunction(node) && isInsideViewFunction(node)) {
169
- // Check if this arrow is in a binding position:
170
- // - first arg to text()
171
- // - prop value in element helper call
172
- const parent = node.parent;
173
- const isBinding = (parent &&
174
- ts.isCallExpression(parent) &&
175
- ts.isIdentifier(parent.expression) &&
176
- parent.expression.text === 'text' &&
177
- parent.arguments[0] === node) ||
178
- (parent && ts.isPropertyAssignment(parent));
179
- if (isBinding) {
316
+ // Require at least one parameter: state-accessor convention is
317
+ // `(s) => ...`. Zero-arg arrows like `() => 'static'` or `() => ({})`
318
+ // don't depend on state and memo() doesn't help.
319
+ if (node.parameters.length === 0) {
320
+ ts.forEachChild(node, visit);
321
+ return;
322
+ }
323
+ if (isReactiveBinding(node)) {
180
324
  const sourceText = node.getText(sf).replace(/\s+/g, ' ').trim();
181
325
  const inMemo = isInMemoCall(node);
182
326
  const entries = arrowsByText.get(sourceText) ?? [];
@@ -209,7 +353,77 @@ function checkMissingMemo(sf, filename, violations) {
209
353
  }
210
354
  }
211
355
  // ── Rule 3: each-closure-violation ──────────────────────────────────
356
+ /**
357
+ * Collect every identifier declared at the module (file) level. These
358
+ * are safe to capture inside an each() render callback because they
359
+ * share a single value across all iterations — typical cases are
360
+ * imports, top-level consts, and function declarations.
361
+ *
362
+ * Identifiers declared INSIDE a function (as `let`, `var`, or function
363
+ * parameters) are not collected — those are the genuinely mutable
364
+ * captures the rule is designed to catch.
365
+ */
366
+ function collectModuleLevelNames(sf) {
367
+ const names = new Set();
368
+ for (const stmt of sf.statements) {
369
+ // Imports: import { a, b as c } from 'x' / import def from 'x'
370
+ if (ts.isImportDeclaration(stmt)) {
371
+ const clause = stmt.importClause;
372
+ if (!clause)
373
+ continue;
374
+ if (clause.name)
375
+ names.add(clause.name.text); // default import
376
+ if (clause.namedBindings) {
377
+ if (ts.isNamespaceImport(clause.namedBindings)) {
378
+ names.add(clause.namedBindings.name.text);
379
+ }
380
+ else if (ts.isNamedImports(clause.namedBindings)) {
381
+ for (const el of clause.namedBindings.elements) {
382
+ names.add(el.name.text);
383
+ }
384
+ }
385
+ }
386
+ continue;
387
+ }
388
+ // Top-level function declarations
389
+ if (ts.isFunctionDeclaration(stmt) && stmt.name) {
390
+ names.add(stmt.name.text);
391
+ continue;
392
+ }
393
+ // Top-level class declarations
394
+ if (ts.isClassDeclaration(stmt) && stmt.name) {
395
+ names.add(stmt.name.text);
396
+ continue;
397
+ }
398
+ // Top-level variable declarations — any kind, including `let` and
399
+ // `var`. A top-level `let` is still shared across each() iterations
400
+ // because each() runs all renders within one update cycle; the
401
+ // concern is locals inside the ENCLOSING component function, not
402
+ // module-level state.
403
+ if (ts.isVariableStatement(stmt)) {
404
+ for (const decl of stmt.declarationList.declarations) {
405
+ collectBindingIdentifiers(decl.name, names);
406
+ }
407
+ }
408
+ }
409
+ return names;
410
+ }
411
+ function collectBindingIdentifiers(name, out) {
412
+ if (ts.isIdentifier(name)) {
413
+ out.add(name.text);
414
+ }
415
+ else if (ts.isObjectBindingPattern(name) || ts.isArrayBindingPattern(name)) {
416
+ for (const el of name.elements) {
417
+ if (ts.isBindingElement(el))
418
+ collectBindingIdentifiers(el.name, out);
419
+ }
420
+ }
421
+ }
212
422
  function checkEachClosureViolation(sf, filename, violations) {
423
+ // Pre-compute module-level declarations so checkClosureCaptures can
424
+ // skip any identifier that resolves to one of them. Built once per
425
+ // file regardless of how many each() calls the file contains.
426
+ const moduleScopeNames = collectModuleLevelNames(sf);
213
427
  function visit(node) {
214
428
  // Look for each() calls
215
429
  if (ts.isCallExpression(node) &&
@@ -224,7 +438,7 @@ function checkEachClosureViolation(sf, filename, violations) {
224
438
  prop.name.text === 'render') {
225
439
  const renderFn = prop.initializer;
226
440
  if (ts.isArrowFunction(renderFn) || ts.isFunctionExpression(renderFn)) {
227
- checkClosureCaptures(renderFn, sf, filename, violations);
441
+ checkClosureCaptures(renderFn, sf, filename, violations, moduleScopeNames);
228
442
  }
229
443
  }
230
444
  }
@@ -234,7 +448,7 @@ function checkEachClosureViolation(sf, filename, violations) {
234
448
  }
235
449
  visit(sf);
236
450
  }
237
- function checkClosureCaptures(renderFn, sf, filename, violations) {
451
+ function checkClosureCaptures(renderFn, sf, filename, violations, moduleScopeNames) {
238
452
  // Collect parameter names of the render callback (including destructured ones)
239
453
  const paramNames = new Set();
240
454
  function collectBindingNames(name) {
@@ -265,9 +479,10 @@ function checkClosureCaptures(renderFn, sf, filename, violations) {
265
479
  if (renderFn.body) {
266
480
  collectLocals(renderFn.body);
267
481
  }
268
- // Known safe globals/imports that should not be flagged
269
- const safeNames = new Set([
270
- 'send',
482
+ // Built-in JS globals that are always safe to reference. Everything
483
+ // else we might need to skip (imports, element helpers, custom
484
+ // utilities) is already in `moduleScopeNames` from the file pre-scan.
485
+ const jsGlobals = new Set([
271
486
  'console',
272
487
  'Math',
273
488
  'JSON',
@@ -282,50 +497,46 @@ function checkClosureCaptures(renderFn, sf, filename, violations) {
282
497
  'null',
283
498
  'true',
284
499
  'false',
285
- 'div',
286
- 'span',
287
- 'p',
288
- 'text',
289
- 'button',
290
- 'input',
291
- 'each',
292
- 'memo',
293
- 'show',
294
- 'branch',
295
- 'child',
296
- 'h1',
297
- 'h2',
298
- 'h3',
299
- 'h4',
300
- 'h5',
301
- 'h6',
302
- 'ul',
303
- 'ol',
304
- 'li',
305
- 'a',
306
- 'img',
307
- 'form',
308
- 'label',
309
- 'select',
310
- 'textarea',
311
- 'table',
312
- 'tr',
313
- 'td',
314
- 'th',
315
- 'header',
316
- 'footer',
317
- 'nav',
318
- 'main',
319
- 'section',
320
- 'article',
500
+ 'NaN',
501
+ 'Infinity',
502
+ 'document',
503
+ 'window',
504
+ 'globalThis',
505
+ 'parseInt',
506
+ 'parseFloat',
507
+ 'isNaN',
508
+ 'isFinite',
509
+ 'Error',
510
+ 'TypeError',
511
+ 'RangeError',
512
+ 'Set',
513
+ 'Map',
514
+ 'WeakSet',
515
+ 'WeakMap',
516
+ 'Symbol',
517
+ 'Reflect',
518
+ 'Proxy',
321
519
  ]);
520
+ // LLui-specific names that are stable function references across
521
+ // renders. `send` in particular is the same function inside and
522
+ // outside the each() render callback, so capturing the outer one is
523
+ // equivalent to destructuring it. No correctness risk.
524
+ const lluiSafeNames = new Set(['send']);
322
525
  // Find identifiers in binding positions that reference parent scope
323
526
  function checkBindings(node) {
324
527
  if (ts.isIdentifier(node)) {
325
528
  const name = node.text;
326
- // Skip if it's a parameter, local, or safe name
327
- if (paramNames.has(name) || localNames.has(name) || safeNames.has(name))
529
+ // Skip if it's a parameter, local, JS global, LLui stable name,
530
+ // or module-scope name. Module-scope names include imports,
531
+ // top-level consts, and function declarations — all shared
532
+ // across each() iterations, so capturing them is harmless.
533
+ if (paramNames.has(name) ||
534
+ localNames.has(name) ||
535
+ jsGlobals.has(name) ||
536
+ lluiSafeNames.has(name) ||
537
+ moduleScopeNames.has(name)) {
328
538
  return;
539
+ }
329
540
  // Skip if it's a property name in a property access (rhs of dot)
330
541
  if (node.parent && ts.isPropertyAccessExpression(node.parent) && node.parent.name === node)
331
542
  return;
@@ -536,21 +747,34 @@ function checkFormBoilerplate(sf, filename, violations) {
536
747
  group.push(variant.typeName);
537
748
  shapeGroups.set(shape, group);
538
749
  }
539
- for (const [_shape, group] of shapeGroups) {
540
- if (group.length >= 3) {
541
- const { line, column } = pos(stmt, sf);
542
- violations.push({
543
- rule: 'form-boilerplate',
544
- message: `Msg type has ${group.length} variants with identical shapes (${group
545
- .slice(0, 3)
546
- .map((g) => `'${g}'`)
547
- .join(', ')}${group.length > 3 ? ', ...' : ''}). Consider using a generic field-update message pattern.`,
548
- file: filename,
549
- line,
550
- column,
551
- suggestion: "Use a single { type: 'setField'; field: string; value: string } variant instead.",
552
- });
553
- }
750
+ for (const [shape, group] of shapeGroups) {
751
+ if (group.length < 3)
752
+ continue;
753
+ // Only flag when the shared shape looks like form field updates.
754
+ // Heuristic: the shape must contain a `value` field AND the variant
755
+ // names must share a common `set*`/`update*`/`change*` prefix.
756
+ // Error variants (`apiError`, `readmeError`, …) and data variants
757
+ // (`userOk`, `repoOk`, …) coincidentally share shapes but aren't
758
+ // form boilerplate the rule should not flag them.
759
+ const hasValueField = shape.split(',').some((f) => f.startsWith('value:'));
760
+ if (!hasValueField)
761
+ continue;
762
+ const prefixPattern = /^(set|update|change)[A-Z]/;
763
+ const allMatchPrefix = group.every((name) => prefixPattern.test(name));
764
+ if (!allMatchPrefix)
765
+ continue;
766
+ const { line, column } = pos(stmt, sf);
767
+ violations.push({
768
+ rule: 'form-boilerplate',
769
+ message: `Msg type has ${group.length} variants with identical shapes (${group
770
+ .slice(0, 3)
771
+ .map((g) => `'${g}'`)
772
+ .join(', ')}${group.length > 3 ? ', ...' : ''}). Consider using a generic field-update message pattern.`,
773
+ file: filename,
774
+ line,
775
+ column,
776
+ suggestion: "Use a single { type: 'setField'; field: string; value: string } variant instead.",
777
+ });
554
778
  }
555
779
  }
556
780
  }
@@ -878,12 +1102,67 @@ function isInsideOnMountCall(node) {
878
1102
  }
879
1103
  return false;
880
1104
  }
1105
+ /**
1106
+ * Returns true if the node is inside a function that serves as an
1107
+ * event handler (onClick, onInput, onMouseDown…) or a deferred
1108
+ * callback (setTimeout, queueMicrotask, requestAnimationFrame,
1109
+ * Promise.then, addEventListener). All of these execute imperatively,
1110
+ * not reactively — imperative DOM inside them is fine.
1111
+ */
1112
+ function isInsideImperativeCallback(node) {
1113
+ let current = node.parent;
1114
+ while (current) {
1115
+ // Walk up to the enclosing function, then check what that function
1116
+ // is passed to.
1117
+ if (ts.isArrowFunction(current) || ts.isFunctionExpression(current)) {
1118
+ const parent = current.parent;
1119
+ if (parent) {
1120
+ // Case 1: prop assignment like `onClick: () => ...`
1121
+ if (ts.isPropertyAssignment(parent) &&
1122
+ ts.isIdentifier(parent.name) &&
1123
+ /^on[A-Z]/.test(parent.name.text)) {
1124
+ return true;
1125
+ }
1126
+ // Case 2: argument to a known deferred-execution helper
1127
+ if (ts.isCallExpression(parent)) {
1128
+ const callee = parent.expression;
1129
+ if (ts.isIdentifier(callee)) {
1130
+ if (callee.text === 'setTimeout' ||
1131
+ callee.text === 'setInterval' ||
1132
+ callee.text === 'queueMicrotask' ||
1133
+ callee.text === 'requestAnimationFrame' ||
1134
+ callee.text === 'requestIdleCallback') {
1135
+ return true;
1136
+ }
1137
+ }
1138
+ // addEventListener / Promise.then / etc.
1139
+ if (ts.isPropertyAccessExpression(callee)) {
1140
+ const method = callee.name.text;
1141
+ if (method === 'addEventListener' ||
1142
+ method === 'then' ||
1143
+ method === 'catch' ||
1144
+ method === 'finally') {
1145
+ return true;
1146
+ }
1147
+ }
1148
+ }
1149
+ }
1150
+ // Keep walking — a nested arrow inside an event handler should
1151
+ // still count as "inside an event handler".
1152
+ }
1153
+ current = current.parent;
1154
+ }
1155
+ return false;
1156
+ }
881
1157
  function findImperativeDom(node, sf, filename, violations, imperativeMethods) {
882
1158
  if (ts.isPropertyAccessExpression(node) &&
883
1159
  ts.isIdentifier(node.expression) &&
884
1160
  node.expression.text === 'document' &&
885
1161
  imperativeMethods.has(node.name.text)) {
886
- if (!isInsideOnMountCall(node)) {
1162
+ // Skip legitimate imperative contexts: onMount() callbacks, event
1163
+ // handlers (onClick, onInput, …), and deferred callbacks
1164
+ // (setTimeout, queueMicrotask, addEventListener, Promise.then).
1165
+ if (!isInsideOnMountCall(node) && !isInsideImperativeCallback(node)) {
887
1166
  const { line, column } = pos(node, sf);
888
1167
  violations.push({
889
1168
  rule: 'imperative-dom-in-view',
@@ -1004,8 +1283,49 @@ function collectMsgVariantShapes(type) {
1004
1283
  return variants;
1005
1284
  }
1006
1285
  // ── Rule: view-bag-import ──────────────────────────────────────
1007
- const VIEW_BAG_NAMES = new Set(['text', 'each', 'show', 'branch', 'memo']);
1286
+ const VIEW_BAG_NAMES = new Set(['text', 'each', 'show', 'branch', 'memo', 'selector']);
1287
+ /**
1288
+ * Detect whether the file defines a component. Only in that case does
1289
+ * a direct `import { text } from '@llui/dom'` compete with the
1290
+ * bag-provided form — in standalone helper modules (Level-1 view
1291
+ * functions, shared UI utilities), imports are the only way to
1292
+ * reference these primitives and are idiomatic.
1293
+ *
1294
+ * A `component()` call is sufficient on its own — even if the `view:`
1295
+ * callback currently has no parameter, the developer can add one and
1296
+ * destructure, so the direct import is still redundant.
1297
+ */
1298
+ function fileDefinesComponent(sf) {
1299
+ let found = false;
1300
+ function visit(node) {
1301
+ if (found)
1302
+ return;
1303
+ if (ts.isCallExpression(node) &&
1304
+ ts.isIdentifier(node.expression) &&
1305
+ node.expression.text === 'component' &&
1306
+ node.arguments.length > 0 &&
1307
+ ts.isObjectLiteralExpression(node.arguments[0])) {
1308
+ const obj = node.arguments[0];
1309
+ for (const prop of obj.properties) {
1310
+ if (ts.isPropertyAssignment(prop) &&
1311
+ ts.isIdentifier(prop.name) &&
1312
+ prop.name.text === 'view') {
1313
+ found = true;
1314
+ return;
1315
+ }
1316
+ }
1317
+ }
1318
+ ts.forEachChild(node, visit);
1319
+ }
1320
+ visit(sf);
1321
+ return found;
1322
+ }
1008
1323
  function checkViewBagImport(sf, filename, violations) {
1324
+ // Only applies to files that define a component. Helper modules
1325
+ // (Level-1 view functions, shared UI utilities) legitimately need
1326
+ // to import these names because they have no view bag to destructure.
1327
+ if (!fileDefinesComponent(sf))
1328
+ return;
1009
1329
  for (const stmt of sf.statements) {
1010
1330
  if (!ts.isImportDeclaration(stmt))
1011
1331
  continue;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/vite.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ import type { Plugin } from 'vite';
2
+ import { type LintResult } from './index.js';
3
+ export interface LintIdiomaticPluginOptions {
4
+ /**
5
+ * Rule names to skip. By default, rules that overlap with
6
+ * `@llui/vite-plugin`'s built-in `diagnose()` pass are excluded to
7
+ * avoid duplicate warnings when both plugins run together.
8
+ */
9
+ exclude?: readonly string[];
10
+ /**
11
+ * Glob patterns to skip. Files matching any pattern are not linted.
12
+ * Defaults to `['**\/node_modules/**', '**\/dist/**']`.
13
+ */
14
+ skip?: readonly RegExp[];
15
+ /**
16
+ * Run in dev mode only (default `false` — runs in both dev and build).
17
+ * Set to `true` if lint warnings slow your build pipeline.
18
+ */
19
+ devOnly?: boolean;
20
+ /**
21
+ * Fail the build on any violation. Default `false` — violations are
22
+ * emitted as warnings.
23
+ */
24
+ failOnError?: boolean;
25
+ /**
26
+ * Called after each linted file with its result. Useful for counting
27
+ * violations across the whole build (e.g. a summary reporter).
28
+ */
29
+ onLint?: (filename: string, result: LintResult) => void;
30
+ }
31
+ /**
32
+ * Vite plugin that runs `@llui/lint-idiomatic` on every `.ts`/`.tsx`
33
+ * file and emits violations as Vite warnings. Warnings show up in the
34
+ * dev server overlay and CI output via Vite's `this.warn()`.
35
+ *
36
+ * Usage:
37
+ *
38
+ * ```ts
39
+ * import llui from '@llui/vite-plugin'
40
+ * import lintIdiomatic from '@llui/lint-idiomatic/vite'
41
+ *
42
+ * export default {
43
+ * plugins: [llui(), lintIdiomatic()],
44
+ * }
45
+ * ```
46
+ *
47
+ * Composes naturally with `@llui/vite-plugin` — runs in the `transform`
48
+ * hook with no ordering requirement. The default `exclude` list skips
49
+ * rules that vite-plugin already emits.
50
+ */
51
+ export default function lintIdiomaticPlugin(options?: LintIdiomaticPluginOptions): Plugin;
52
+ export { lintIdiomaticPlugin };
53
+ export { lintIdiomatic, RULE_NAMES } from './index.js';
54
+ export type { LintResult, LintViolation, LintOptions, RuleName } from './index.js';
55
+ //# sourceMappingURL=vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAE3D,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAE3B;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CACxD;AAWD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,CA0C5F;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAG9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
package/dist/vite.js ADDED
@@ -0,0 +1,76 @@
1
+ import { lintIdiomatic } from './index.js';
2
+ /**
3
+ * Rules that are already emitted by `@llui/vite-plugin`'s `diagnose()`.
4
+ * Excluded by default so users running both plugins don't see the same
5
+ * warning twice. Override with an explicit `exclude: []` to re-enable.
6
+ */
7
+ const DEFAULT_EXCLUDES = ['map-on-state-array'];
8
+ const DEFAULT_SKIP = [/\/node_modules\//, /\/dist\//];
9
+ /**
10
+ * Vite plugin that runs `@llui/lint-idiomatic` on every `.ts`/`.tsx`
11
+ * file and emits violations as Vite warnings. Warnings show up in the
12
+ * dev server overlay and CI output via Vite's `this.warn()`.
13
+ *
14
+ * Usage:
15
+ *
16
+ * ```ts
17
+ * import llui from '@llui/vite-plugin'
18
+ * import lintIdiomatic from '@llui/lint-idiomatic/vite'
19
+ *
20
+ * export default {
21
+ * plugins: [llui(), lintIdiomatic()],
22
+ * }
23
+ * ```
24
+ *
25
+ * Composes naturally with `@llui/vite-plugin` — runs in the `transform`
26
+ * hook with no ordering requirement. The default `exclude` list skips
27
+ * rules that vite-plugin already emits.
28
+ */
29
+ export default function lintIdiomaticPlugin(options = {}) {
30
+ const exclude = options.exclude ?? DEFAULT_EXCLUDES;
31
+ const skip = options.skip ?? DEFAULT_SKIP;
32
+ const failOnError = options.failOnError ?? false;
33
+ const devOnly = options.devOnly ?? false;
34
+ const onLint = options.onLint;
35
+ let isDev = false;
36
+ return {
37
+ name: 'llui-lint-idiomatic',
38
+ // Run after @llui/vite-plugin's own transform — we want to lint
39
+ // the original source, not the transformed output, so order doesn't
40
+ // actually matter (we get `code` as the current pipeline state, but
41
+ // AST structure that matters to the linter is preserved until
42
+ // template cloning). `enforce: 'post'` is a defensive default.
43
+ enforce: 'post',
44
+ configResolved(config) {
45
+ isDev = config.command === 'serve' || config.mode === 'development';
46
+ },
47
+ transform(code, id) {
48
+ if (devOnly && !isDev)
49
+ return;
50
+ if (!id.endsWith('.ts') && !id.endsWith('.tsx'))
51
+ return;
52
+ if (skip.some((re) => re.test(id)))
53
+ return;
54
+ const result = lintIdiomatic(code, id, { exclude });
55
+ if (onLint)
56
+ onLint(id, result);
57
+ if (result.violations.length === 0)
58
+ return;
59
+ for (const v of result.violations) {
60
+ const hint = v.suggestion ? ` Suggestion: ${v.suggestion}` : '';
61
+ const message = `[${v.rule}] ${v.message}${hint}`;
62
+ if (failOnError) {
63
+ this.error(message, { line: v.line, column: v.column });
64
+ }
65
+ else {
66
+ this.warn(message, { line: v.line, column: v.column });
67
+ }
68
+ }
69
+ },
70
+ };
71
+ }
72
+ // Named export for callers that want to import { lintIdiomaticPlugin }
73
+ export { lintIdiomaticPlugin };
74
+ // Re-export the pure function + types so users only need one import
75
+ export { lintIdiomatic, RULE_NAMES } from './index.js';
76
+ //# sourceMappingURL=vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAA;AAmC3D;;;;GAIG;AACH,MAAM,gBAAgB,GAAsB,CAAC,oBAAoB,CAAC,CAAA;AAElE,MAAM,YAAY,GAAsB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;AAExE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,UAAsC,EAAE;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAA;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAA;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAA;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,KAAK,GAAG,KAAK,CAAA;IAEjB,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,gEAAgE;QAChE,oEAAoE;QACpE,oEAAoE;QACpE,8DAA8D;QAC9D,+DAA+D;QAC/D,OAAO,EAAE,MAAM;QAEf,cAAc,CAAC,MAAM;YACnB,KAAK,GAAG,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAA;QACrE,CAAC;QAED,SAAS,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,OAAO,IAAI,CAAC,KAAK;gBAAE,OAAM;YAC7B,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAM;YACvD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAE,OAAM;YAE1C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YACnD,IAAI,MAAM;gBAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC9B,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAE1C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,EAAE,CAAA;gBACjD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBACzD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,uEAAuE;AACvE,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,oEAAoE;AACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
package/package.json CHANGED
@@ -1,26 +1,32 @@
1
1
  {
2
2
  "name": "@llui/lint-idiomatic",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
7
7
  ".": {
8
8
  "types": "./dist/index.d.ts",
9
9
  "import": "./dist/index.js"
10
+ },
11
+ "./vite": {
12
+ "types": "./dist/vite.d.ts",
13
+ "import": "./dist/vite.js"
10
14
  }
11
15
  },
12
16
  "files": [
13
17
  "dist"
14
18
  ],
15
- "scripts": {
16
- "build": "tsc -p tsconfig.build.json",
17
- "check": "tsc --noEmit",
18
- "lint": "eslint src",
19
- "test": "vitest run"
20
- },
21
19
  "dependencies": {
22
20
  "typescript": "^6.0.2"
23
21
  },
22
+ "peerDependencies": {
23
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
24
+ },
25
+ "peerDependenciesMeta": {
26
+ "vite": {
27
+ "optional": true
28
+ }
29
+ },
24
30
  "description": "LLui linter — AST rules for idiomatic LLui patterns",
25
31
  "keywords": [
26
32
  "llui",
@@ -39,5 +45,11 @@
39
45
  "bugs": {
40
46
  "url": "https://github.com/fponticelli/llui/issues"
41
47
  },
42
- "homepage": "https://github.com/fponticelli/llui/tree/main/packages/lint-idiomatic#readme"
43
- }
48
+ "homepage": "https://github.com/fponticelli/llui/tree/main/packages/lint-idiomatic#readme",
49
+ "scripts": {
50
+ "build": "tsc -p tsconfig.build.json",
51
+ "check": "tsc --noEmit",
52
+ "lint": "eslint src",
53
+ "test": "vitest run"
54
+ }
55
+ }