@reticlehq/eslint-plugin 2.2.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -57,6 +57,14 @@ Report message: `store mutation without a mapped Reticle signal`.
57
57
 
58
58
  With no options, `mutators` is empty, so the rule is a safe **no-op** (it never fires and never crashes). Configure `mutators` to switch it on.
59
59
 
60
+ ### Matching is by BARE CALLEE NAME
61
+
62
+ A mutator is matched on the call's name alone — the object is ignored, so `store.set(...)`, `map.set(...)`, `url.searchParams.set(...)` and `res.headers.set(...)` are all the same call to this rule.
63
+
64
+ That matters most for the name you are most likely to configure. `set` is zustand's mutator, so it is the natural first entry — and it also matches every `Map`, `Set`, `URLSearchParams` and `Headers` call in the same file, each of which will be reported as an unsignalled mutation. Verified: a function that only builds a lookup `Map` is flagged.
65
+
66
+ Prefer a name that is unambiguous in your codebase — a wrapper like `commitAndSignal`, or a domain verb (`applyOrder`, `reorderSections`) — over a generic one. A rule that fires on `map.set()` gets turned off wholesale, and then it protects nothing.
67
+
60
68
  ### Scoping — per function
61
69
 
62
70
  Signal-credit is **per function**. A signal called in an enclosing or inner function does **not** satisfy a mutator called in a different function. Pair the mutation and the signal in the same body (which is exactly what `commitAndSignal(mutate, signal, data)` does). This is deliberate: a signal fired in some other scope is not guaranteed to run for the mutation path that drifted.
@@ -18,4 +18,3 @@ export declare const PLUGIN_NAME = "reticle";
18
18
  export declare const DOCS_URL_ROOT = "https://github.com/reticlehq/reticle/blob/main/packages/eslint-plugin/README.md";
19
19
  /** Rule that keeps design-doc codes and internal version strings out of source comments. */
20
20
  export declare const INTERNAL_TAGS_RULE_NAME = "no-internal-tags";
21
- //# sourceMappingURL=constants.d.ts.map
package/dist/constants.js CHANGED
@@ -17,4 +17,3 @@ export const PLUGIN_NAME = 'reticle';
17
17
  export const DOCS_URL_ROOT = 'https://github.com/reticlehq/reticle/blob/main/packages/eslint-plugin/README.md';
18
18
  /** Rule that keeps design-doc codes and internal version strings out of source comments. */
19
19
  export const INTERNAL_TAGS_RULE_NAME = 'no-internal-tags';
20
- //# sourceMappingURL=constants.js.map
package/dist/index.d.ts CHANGED
@@ -25,4 +25,3 @@ declare const plugin: {
25
25
  };
26
26
  export default plugin;
27
27
  export { requireSignalOnMutation, noInternalTags };
28
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -21,4 +21,3 @@ plugin.configs.recommended = {
21
21
  };
22
22
  export default plugin;
23
23
  export { requireSignalOnMutation, noInternalTags };
24
- //# sourceMappingURL=index.js.map
@@ -22,4 +22,3 @@ export declare const INTERNAL_TAG_MESSAGE = "Internal reference '{{tag}}' does n
22
22
  export declare const noInternalTags: ESLintUtils.RuleModule<"internalTag", [], unknown, ESLintUtils.RuleListener> & {
23
23
  name: string;
24
24
  };
25
- //# sourceMappingURL=no-internal-tags.d.ts.map
@@ -69,6 +69,13 @@ const ALLOWED = new Set([
69
69
  'Q4', // quarters
70
70
  'L1',
71
71
  'L2', // cache levels
72
+ // The JavaScript engine. Omitting it made the rule fire on ordinary writing about heap growth and
73
+ // GC in a JavaScript codebase — the most likely place this rule runs, and the fastest way to get it
74
+ // switched off. Found by running the rule over directories the linter had never reached.
75
+ 'V8',
76
+ 'H4',
77
+ 'H5',
78
+ 'H6', // heading levels — H1-H3 were already here; stopping at 3 was an oversight, not a rule
72
79
  ]);
73
80
  export const noInternalTags = createRule({
74
81
  name: 'no-internal-tags',
@@ -135,4 +142,3 @@ export const noInternalTags = createRule({
135
142
  };
136
143
  },
137
144
  });
138
- //# sourceMappingURL=no-internal-tags.js.map
package/dist/options.d.ts CHANGED
@@ -12,4 +12,3 @@ export declare const OPTIONS_SCHEMA: readonly unknown[];
12
12
  /** Pure: raw options (possibly undefined) -> normalized sets. Injects defaults. */
13
13
  export declare function normalizeOptions(raw: RawRuleOptions | undefined): NormalizedOptions;
14
14
  export {};
15
- //# sourceMappingURL=options.d.ts.map
package/dist/options.js CHANGED
@@ -8,6 +8,7 @@ export const OPTIONS_SCHEMA = [
8
8
  mutators: {
9
9
  type: 'array',
10
10
  items: { type: 'string' },
11
+ description: 'Callee names that mutate user-visible state. Matched by BARE NAME — the object is ignored, so "set" also matches map.set(), url.searchParams.set() and res.headers.set(). Prefer an unambiguous name over a generic one.',
11
12
  },
12
13
  signalCallee: {
13
14
  oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }],
@@ -38,4 +39,3 @@ export function normalizeOptions(raw) {
38
39
  signalCallees: toNonEmptySet(signalList),
39
40
  };
40
41
  }
41
- //# sourceMappingURL=options.js.map
@@ -15,4 +15,3 @@ export declare const requireSignalOnMutation: ESLintUtils.RuleModule<"mutationWi
15
15
  name: string;
16
16
  };
17
17
  export {};
18
- //# sourceMappingURL=require-signal-on-mutation.d.ts.map
@@ -79,4 +79,3 @@ export const requireSignalOnMutation = createRule({
79
79
  };
80
80
  },
81
81
  });
82
- //# sourceMappingURL=require-signal-on-mutation.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reticlehq/eslint-plugin",
3
- "version": "2.2.1",
3
+ "version": "2.4.0",
4
4
  "description": "Reticle ESLint plugin — keeps the signal layer self-enforcing (mutation-without-signal).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,4CAA4C;AAC5C,eAAO,MAAM,SAAS,+BAA+B,CAAC;AAEtD,oDAAoD;AACpD,eAAO,MAAM,SAAS;;CAEZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,qFAAqF;AACrF,eAAO,MAAM,+BAA+B,mDAAmD,CAAC;AAEhG,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,sCAAuC,CAAC;AAE3E,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAAO,CAAC;AAEtD,mFAAmF;AACnF,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,yDAAyD;AACzD,eAAO,MAAM,aAAa,oFACyD,CAAC;AAEpF,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAEtD,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,uBAAuB,EAAE,uBAAuB;CACxC,CAAC;AAGX,qFAAqF;AACrF,MAAM,CAAC,MAAM,+BAA+B,GAAG,gDAAgD,CAAC;AAEhG,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAU,CAAC;AAE3E,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAsB,EAAE,CAAC;AAEtD,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GACxB,iFAAiF,CAAC;AAEpF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,eAAO,MAAM,KAAK;;;;;;;CAGR,CAAC;AAEX,QAAA,MAAM,MAAM;;;;;;;;;;;;aAGK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACvC,CAAC;AAWF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,CAAC,SAAS,CAAC,EAAE,uBAAuB;IACpC,CAAC,uBAAuB,CAAC,EAAE,cAAc;CACjC,CAAC;AAEX,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAC3B,KAAK;IACL,OAAO,EAAE,EAA6B;CACvC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG;IAC3B,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE;IAClC,KAAK,EAAE;QACL,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,EAAE,MAAM;QACvC,CAAC,GAAG,WAAW,IAAI,uBAAuB,EAAE,CAAC,EAAE,OAAO;KACvD;CACF,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-internal-tags.d.ts","sourceRoot":"","sources":["../src/no-internal-tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAkB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvE,eAAO,MAAM,oBAAoB,uJACgH,CAAC;AAwDlJ,eAAO,MAAM,cAAc;;CA+DzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-internal-tags.js","sourceRoot":"","sources":["../src/no-internal-tags.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAI/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAClC;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,8EAA8E;AAC9E,eAAO,MAAM,cAAc,EAAE,SAAS,OAAO,EAc5C,CAAC;AAMF,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,iBAAiB,CAiBnF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAY1E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD;QACE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;aAC1E;SACF;QACD,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,MAAyB;IAC9C,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,GAA+B;IAC9D,MAAM,WAAW,GAAG,GAAG,EAAE,QAAQ,IAAI,gBAAgB,CAAC;IAEtD,MAAM,SAAS,GAAG,GAAG,EAAE,YAAY,CAAC;IACpC,IAAI,UAA6B,CAAC;IAClC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,UAAU,GAAG,sBAAsB,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,UAAU,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC;QACpC,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-signal-on-mutation.d.ts","sourceRoot":"","sources":["../src/require-signal-on-mutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAkB,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAoC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAIrF,KAAK,OAAO,GAAG,CAAC,cAAc,CAAC,CAAC;AAwBhC,eAAO,MAAM,uBAAuB;;CAsDlC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-signal-on-mutation.js","sourceRoot":"","sources":["../src/require-signal-on-mutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAuB,MAAM,cAAc,CAAC;AAErF,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,aAAa,IAAI,IAAI,EAAE,CAAC,CAAC;AAUjF,gFAAgF;AAChF,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IACE,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAC/C,MAAM,CAAC,QAAQ,KAAK,KAAK;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAClD,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAsB;IACrE,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,uGAAuG;SAC1G;QACD,MAAM,EAAE,cAAoB;QAC5B,QAAQ,EAAE;YACR,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,+BAA+B;SACrE;KACF;IACD,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,MAAM,CAAC,OAAO;QACZ,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,KAAK,GAAc,EAAE,CAAC;QAE5B,SAAS,OAAO;YACd,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,SAAS,MAAM;YACb,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;gBAC/D,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,SAAS,EAAE,SAAS,CAAC,uBAAuB;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,mBAAmB,EAAE,OAAO;YAC5B,0BAA0B,EAAE,MAAM;YAClC,kBAAkB,EAAE,OAAO;YAC3B,yBAAyB,EAAE,MAAM;YACjC,uBAAuB,EAAE,OAAO;YAChC,8BAA8B,EAAE,MAAM;YACtC,cAAc,CAAC,IAA6B;gBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO;gBAChC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO;gBAC1B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;oBACrD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBACD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}