@useinsider/eslint-config 1.4.0 → 1.4.1

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/dist/main.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("node:fs"),y=require("node:path"),h=require("node:url"),w=require("ts-deepmerge"),b=require("node:console");var l=typeof document<"u"?document.currentScript:null;let d=!1;const p=new Set;function f(e){const r=y.resolve(e,"package.json"),n=g.readFileSync(r,"utf8");if(!n)throw new Error(`Unable to locate package.json: ${r}`);return JSON.parse(n)}function v(){const e=f(process.cwd());return{...e.dependencies,...e.devDependencies}}function R(){return f(h.fileURLToPath(new URL("../",typeof document>"u"?require("url").pathToFileURL(__filename).href:l&&l.src||new URL("main.cjs",document.baseURI).href))).dependencies}const c={yarn:"yarn add --exact --dev",pnpm:"pnpm add -E -D",npm:"npm i -E -D"};function S(){const e=(process.env.npm_config_user_agent||"").replace(/\W.*/,"");return c[e]||c.npm}function q(){if(d)return;const e=v(),n=Object.entries(R()).filter(([t,o])=>!p.has(t)&&(!e[t]||e[t]!==o));if(!n.length)return;const s=n.map(([t,o])=>`${t}@${o.replace(/^\W+/,"")}`);console.info("Missing dependencies detected:"),console.info(s.map(t=>` - ${t}`).join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("node:fs"),w=require("node:path"),y=require("node:url"),h=require("ts-deepmerge"),b=require("node:console");var i=typeof document<"u"?document.currentScript:null;let d=!1;const p=new Set;function f(e){const n=w.resolve(e,"package.json"),r=g.readFileSync(n,"utf8");if(!r)throw new Error(`Unable to locate package.json: ${n}`);return JSON.parse(r)}function v(){const e=f(process.cwd());return{...e.dependencies,...e.devDependencies}}function R(){return f(y.fileURLToPath(new URL("../",typeof document>"u"?require("url").pathToFileURL(__filename).href:i&&i.src||new URL("main.cjs",document.baseURI).href))).dependencies}const c={yarn:"yarn add --exact --dev",pnpm:"pnpm add -E -D",npm:"npm i -E -D"};function S(){const e=(process.env.npm_config_user_agent||"").replace(/\W.*/,"");return c[e]||c.npm}function x(){if(d)return;const e=v(),r=Object.entries(R()).filter(([t,o])=>!p.has(t)&&(!e[t]||e[t]!==o));if(!r.length)return;const s=r.map(([t,o])=>`${t}@${o.replace(/^\W+/,"")}`);console.info("Missing dependencies detected:"),console.info(s.map(t=>` - ${t}`).join(`
2
2
  `)),console.info(`
3
3
  Copy the following command and install the dependencies manually:`),console.info(`
4
4
  ${S()} ${s.join(" ")}
5
- `),process.exit(1)}function x(e){if(typeof e=="boolean"){d=!0;return}e.forEach(r=>p.add(String(r)))}function i(...e){return w.merge.withOptions({mergeArrays:!1},...e)}const m=new Set;function P(e){e.forEach(r=>{m.add(r)})}function j(e){if(!Array.isArray(e))return"warn";const[,...r]=e;return["warn",...r]}function a(e,r=m){let n=r;return Array.isArray(n)&&(n=new Set(n)),!e||!n.size?e:(n.forEach(s=>{e[s]||b.warn(`Unknown rule "${s}". Please remove it from the silenced rules list.`)}),Object.entries(e).reduce((s,[t,o])=>(o&&(s[t]=n.has(t)?j(o):o),s),{}))}function k(...e){return e.flat().reduce((r,n)=>i(r,n),{})}const u={async config(){return Promise.resolve().then(()=>require("./index-CAuGyIr4.cjs"))},async javascript(){return Promise.resolve().then(()=>require("./index-DI_UoSW4.cjs"))},async"javascript-node"(){return Promise.resolve().then(()=>require("./index-COJ71EEW.cjs"))},async"javascript-dom"(){return Promise.resolve().then(()=>require("./index-B45cvr6O.cjs"))},async typescript(){return Promise.resolve().then(()=>require("./index-CCngt07f.cjs"))},async"typescript-node"(){return Promise.resolve().then(()=>require("./index-CZG4LLz1.cjs"))},async"typescript-dom"(){return Promise.resolve().then(()=>require("./index-ZUN0xFSs.cjs"))},async vue3(){return Promise.resolve().then(()=>require("./index-BPS1S4-r.cjs"))},async"vue3-typescript"(){return Promise.resolve().then(()=>require("./index-Brj-OnR2.cjs"))},async vue2(){return Promise.resolve().then(()=>require("./index-DLjVlGbl.cjs"))}};async function D(e){q();const r=e.preset.map(async t=>typeof u[t]=="function"&&(await u[t]()).default).filter(Boolean),n=await Promise.all(r),s=i(n.reduce((t,o)=>i(t,o),{}),e.config);return s?(e.silenceRules?s.rules=a(s.rules,e.silenceRules):s.rules=a(s.rules),s):Promise.reject(new Error("No config found"))}exports.merge=i;exports.mergeAll=k;exports.silenceDependencyWarning=x;exports.silenceRules=P;exports.useInsider=D;
5
+ `),process.exit(1)}function q(e){if(typeof e=="boolean"){d=!0;return}e.forEach(n=>p.add(String(n)))}function l(...e){return h.merge.withOptions({mergeArrays:!1},...e)}const m=new Set;function k(e){e.forEach(n=>{m.add(n)})}function P(e){if(!Array.isArray(e))return"warn";const[,...n]=e;return["warn",...n]}function a(e,n){let r=n||m;return Array.isArray(r)&&(r=new Set(r)),!e||!r.size?e:(n&&r.forEach(s=>{e[s]||b.warn(`Unknown rule "${s}". Please remove it from the silenced rules list.`)}),Object.entries(e).reduce((s,[t,o])=>(o&&(s[t]=r.has(t)?P(o):o),s),{}))}function j(...e){return e.flat().reduce((n,r)=>l(n,r),{})}const u={async config(){return Promise.resolve().then(()=>require("./index-CAuGyIr4.cjs"))},async javascript(){return Promise.resolve().then(()=>require("./index-DI_UoSW4.cjs"))},async"javascript-node"(){return Promise.resolve().then(()=>require("./index-COJ71EEW.cjs"))},async"javascript-dom"(){return Promise.resolve().then(()=>require("./index-B45cvr6O.cjs"))},async typescript(){return Promise.resolve().then(()=>require("./index-CCngt07f.cjs"))},async"typescript-node"(){return Promise.resolve().then(()=>require("./index-CZG4LLz1.cjs"))},async"typescript-dom"(){return Promise.resolve().then(()=>require("./index-ZUN0xFSs.cjs"))},async vue3(){return Promise.resolve().then(()=>require("./index-BPS1S4-r.cjs"))},async"vue3-typescript"(){return Promise.resolve().then(()=>require("./index-Brj-OnR2.cjs"))},async vue2(){return Promise.resolve().then(()=>require("./index-DLjVlGbl.cjs"))}};async function D(e){x();const n=e.preset.map(async t=>typeof u[t]=="function"&&(await u[t]()).default).filter(Boolean),r=await Promise.all(n),s=l(r.reduce((t,o)=>l(t,o),{}),e.config);return s?(e.silenceRules?s.rules=a(s.rules,e.silenceRules):s.rules=a(s.rules),s):Promise.reject(new Error("No config found"))}exports.merge=l;exports.mergeAll=j;exports.silenceDependencyWarning=q;exports.silenceRules=k;exports.useInsider=D;
package/dist/main.js CHANGED
@@ -18,7 +18,7 @@ function j() {
18
18
  ...e.devDependencies
19
19
  };
20
20
  }
21
- function E() {
21
+ function k() {
22
22
  return g(b(new URL(
23
23
  /* @vite-ignore */
24
24
  "../",
@@ -30,21 +30,21 @@ const p = {
30
30
  pnpm: "pnpm add -E -D",
31
31
  npm: "npm i -E -D"
32
32
  };
33
- function k() {
33
+ function E() {
34
34
  const e = (process.env.npm_config_user_agent || "").replace(/\W.*/, "");
35
35
  return p[e] || p.npm;
36
36
  }
37
37
  function D() {
38
38
  if (f)
39
39
  return;
40
- const e = j(), r = Object.entries(E()).filter(([s, o]) => !m.has(s) && (!e[s] || e[s] !== o));
40
+ const e = j(), r = Object.entries(k()).filter(([o, s]) => !m.has(o) && (!e[o] || e[o] !== s));
41
41
  if (!r.length)
42
42
  return;
43
- const n = r.map(([s, o]) => `${s}@${o.replace(/^\W+/, "")}`);
44
- console.info("Missing dependencies detected:"), console.info(n.map((s) => ` - ${s}`).join(`
43
+ const n = r.map(([o, s]) => `${o}@${s.replace(/^\W+/, "")}`);
44
+ console.info("Missing dependencies detected:"), console.info(n.map((o) => ` - ${o}`).join(`
45
45
  `)), console.info(`
46
46
  Copy the following command and install the dependencies manually:`), console.info(`
47
- ${k()} ${n.join(" ")}
47
+ ${E()} ${n.join(" ")}
48
48
  `), process.exit(1);
49
49
  }
50
50
  function O(e) {
@@ -58,33 +58,33 @@ function u(...e) {
58
58
  return v.withOptions({ mergeArrays: !1 }, ...e);
59
59
  }
60
60
  const l = /* @__PURE__ */ new Set();
61
- function a(e) {
61
+ function c(e) {
62
62
  e.forEach((t) => {
63
63
  l.add(t);
64
64
  });
65
65
  }
66
- function R(e) {
66
+ function C(e) {
67
67
  if (!Array.isArray(e))
68
68
  return "warn";
69
69
  const [, ...t] = e;
70
70
  return ["warn", ...t];
71
71
  }
72
- function c(e, t = l) {
73
- let r = t;
74
- return Array.isArray(r) && (r = new Set(r)), !e || !r.size ? e : (r.forEach((n) => {
72
+ function a(e, t) {
73
+ let r = t || l;
74
+ return Array.isArray(r) && (r = new Set(r)), !e || !r.size ? e : (t && r.forEach((n) => {
75
75
  e[n] || S(`Unknown rule "${n}". Please remove it from the silenced rules list.`);
76
- }), Object.entries(e).reduce((n, [s, o]) => (o && (n[s] = r.has(s) ? R(o) : o), n), {}));
76
+ }), Object.entries(e).reduce((n, [o, s]) => (s && (n[o] = r.has(o) ? C(s) : s), n), {}));
77
77
  }
78
78
  if (import.meta.vitest) {
79
- const { vi: e, describe: t, test: r, expect: n, afterEach: s } = import.meta.vitest, o = e.hoisted(() => ({
79
+ const { vi: e, describe: t, test: r, expect: n, afterEach: o } = import.meta.vitest, s = e.hoisted(() => ({
80
80
  warn: e.fn()
81
81
  }));
82
- e.mock("node:console", () => o), s(() => {
82
+ e.mock("node:console", () => s), o(() => {
83
83
  l.clear();
84
84
  }), t("silenceRules", () => {
85
85
  r("should register given rule keys as silenced", () => {
86
86
  const i = "@stylistic/type-generic-spacing";
87
- n(l.has(i)).toBe(!1), a([i]), n(l.has(i)).toBe(!0);
87
+ n(l.has(i)).toBe(!1), c([i]), n(l.has(i)).toBe(!0);
88
88
  });
89
89
  }), t("filterSilencedRules", () => {
90
90
  r("should return the same rules object if no rules are silenced", () => {
@@ -92,9 +92,9 @@ if (import.meta.vitest) {
92
92
  "no-console": "warn",
93
93
  "no-debugger": "warn"
94
94
  };
95
- n(c(i)).toBe(i);
95
+ n(a(i)).toBe(i);
96
96
  }), r("should return a new rules object with silenced rules silenced and other rules unchanged", () => {
97
- a(["no-console"]), n(c({
97
+ c(["no-console"]), n(a({
98
98
  "no-console": "error",
99
99
  "no-debugger": "warn",
100
100
  "no-alert": "error"
@@ -104,7 +104,7 @@ if (import.meta.vitest) {
104
104
  "no-alert": "error"
105
105
  });
106
106
  }), r("should return a new rules object with silenced rules silenced and other rules unchanged", () => {
107
- a(["no-bitwise", "new-cap"]), n(c({
107
+ c(["no-bitwise", "new-cap"]), n(a({
108
108
  "max-len": "off",
109
109
  "new-cap": ["error"],
110
110
  "no-alert": ["error"],
@@ -119,18 +119,24 @@ if (import.meta.vitest) {
119
119
  allow: ["~"]
120
120
  }]
121
121
  });
122
+ }), r("should not warn about unknown rules", () => {
123
+ c(["no-console", "no-bitwise"]), a({
124
+ "no-console": "error",
125
+ "no-debugger": "warn",
126
+ "no-alert": "error"
127
+ }), n(s.warn).not.toHaveBeenCalled(), n(s.warn).not.toHaveBeenCalled();
122
128
  }), r("should warn about unknown rules", () => {
123
- a(["no-console", "no-bitwise"]), c({
129
+ a({
124
130
  "no-console": "error",
125
131
  "no-debugger": "warn",
126
132
  "no-alert": "error"
127
- }), n(o.warn).toHaveBeenCalledTimes(1), n(o.warn).toHaveBeenCalledWith('Unknown rule "no-bitwise". Please remove it from the silenced rules list.');
133
+ }, ["no-console", "no-bitwise"]), n(s.warn).toHaveBeenCalledTimes(1), n(s.warn).toHaveBeenCalledWith('Unknown rule "no-bitwise". Please remove it from the silenced rules list.');
128
134
  }), r.each([
129
135
  [["@typescript-eslint/no-unsafe-call"], "warn"],
130
136
  [/* @__PURE__ */ new Set(["@typescript-eslint/no-unsafe-call"]), "warn"],
131
137
  [[], "error"]
132
138
  ])("#%# should filter scope-related rules and ignore globally silenced rules", (i, w) => {
133
- a(["@typescript-eslint/no-unsafe-assignment"]), n(c({
139
+ c(["@typescript-eslint/no-unsafe-assignment"]), n(a({
134
140
  "@typescript-eslint/no-unsafe-assignment": "error",
135
141
  "@typescript-eslint/no-unsafe-member-access": "error",
136
142
  "@typescript-eslint/no-unsafe-call": "error"
@@ -179,13 +185,13 @@ const d = {
179
185
  };
180
186
  async function U(e) {
181
187
  D();
182
- const t = e.preset.map(async (s) => typeof d[s] == "function" && (await d[s]()).default).filter(Boolean), r = await Promise.all(t), n = u(r.reduce((s, o) => u(s, o), {}), e.config);
183
- return n ? (e.silenceRules ? n.rules = c(n.rules, e.silenceRules) : n.rules = c(n.rules), n) : Promise.reject(new Error("No config found"));
188
+ const t = e.preset.map(async (o) => typeof d[o] == "function" && (await d[o]()).default).filter(Boolean), r = await Promise.all(t), n = u(r.reduce((o, s) => u(o, s), {}), e.config);
189
+ return n ? (e.silenceRules ? n.rules = a(n.rules, e.silenceRules) : n.rules = a(n.rules), n) : Promise.reject(new Error("No config found"));
184
190
  }
185
191
  export {
186
192
  u as merge,
187
193
  P as mergeAll,
188
194
  O as silenceDependencyWarning,
189
- a as silenceRules,
195
+ c as silenceRules,
190
196
  U as useInsider
191
197
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@useinsider/eslint-config",
3
3
  "type": "module",
4
- "version": "1.4.0",
4
+ "version": "1.4.1",
5
5
  "description": "A collection of ESLint configurations provided by @useinsider, offering support for various environments including Vanilla JS, TypeScript, and framework-specific setups such as Vue 3.",
6
6
  "keywords": [
7
7
  "useinsider",