@kasoa/vite-plus-config 0.3.0 → 0.3.2

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
@@ -1,6 +1,8 @@
1
1
  # @kasoa/vite-plus-config
2
2
 
3
- Strict, composable Vite+ configuration fragments. Requires Node.js 24.11 or newer, Vite+ 0.2.8 or newer, and TypeScript 7.
3
+ Strict, composable Vite+ configuration fragments. Requires Node.js 24.11 or newer, Vite+ 0.2.9 or newer, and TypeScript 7.
4
+
5
+ The preset is intentionally strict. Fix violations by default. When a runtime, protocol, generated file, framework, or external signature requires an exception, keep it narrow and explain why it is necessary.
4
6
 
5
7
  ## Installation
6
8
 
@@ -182,7 +184,7 @@ Configuration and CommonJS files receive the Node profile from `baseToolingConfi
182
184
  Install the optional peers:
183
185
 
184
186
  ```bash
185
- pnpm add -D @cloudflare/vitest-pool-workers wrangler
187
+ pnpm add -D @cloudflare/vitest-plugin@^1 wrangler@^4
186
188
  ```
187
189
 
188
190
  ```ts
@@ -221,7 +223,7 @@ Wrangler owns Worker development, builds, type generation, and deployment. Vite+
221
223
 
222
224
  ## Overrides
223
225
 
224
- Preset rules are inherited through Oxlint, so an ordinary final rule replaces a preset tuple atomically:
226
+ Preset rules are inherited through Oxlint, so an ordinary final rule replaces a preset tuple atomically. Prefer improving owned code. Tune a shared limit only when the project has a deliberate, reviewable reason:
225
227
 
226
228
  ```ts
227
229
  import { baseToolingConfig, composeConfig, nodeRuntimeConfig } from "@kasoa/vite-plus-config";
@@ -229,13 +231,14 @@ import { baseToolingConfig, composeConfig, nodeRuntimeConfig } from "@kasoa/vite
229
231
  export default composeConfig(baseToolingConfig, nodeRuntimeConfig, {
230
232
  lint: {
231
233
  rules: {
232
- complexity: "off",
233
- "max-params": ["warn", { max: 5 }],
234
+ "max-params": ["error", { max: 4 }],
234
235
  },
235
236
  },
236
237
  });
237
238
  ```
238
239
 
240
+ Keep exceptions as narrow as the constraint. For example, an externally fixed callback signature should use a local directive with a concrete reason rather than weakening `max-params` throughout a project. Dependent sequential work may suppress `no-await-in-loop` at the relevant `await` with a concrete explanation.
241
+
239
242
  To change a scoped test rule, construct that test fragment directly instead of composing the default one:
240
243
 
241
244
  ```ts
@@ -260,7 +263,9 @@ const testLintConfig = {
260
263
 
261
264
  React fragments report React Compiler violations but do not install or enable compiler transforms.
262
265
 
263
- ## Commands
266
+ ## Project commands and hooks
267
+
268
+ Run these commands in the consuming project:
264
269
 
265
270
  ```bash
266
271
  vp check
@@ -268,7 +273,11 @@ vp check --fix
268
273
  vp test
269
274
  ```
270
275
 
271
- Import Vitest APIs from `vite-plus/test`. Use `vp config` to generate commit hooks from the staged-check fragment.
276
+ Import Vitest APIs from `vite-plus/test`. The base fragment routes code through `vp check --fix` and supported non-code files through `vp fmt --write` when `vp staged` runs. Commit a project-owned `.vite-hooks/pre-commit` containing `vp staged`, then run `vp config --no-agent` to install or refresh Vite+'s generated dispatcher.
277
+
278
+ ## Contributing
279
+
280
+ Repository maintenance, verification, rule policy, and release guidance live in the [contributor guide](https://github.com/emmanuelchucks/kasoa/blob/main/CONTRIBUTING.md).
272
281
 
273
282
  ## License
274
283
 
@@ -4,11 +4,11 @@ interface NamedPlugin {
4
4
  readonly name: string;
5
5
  }
6
6
  type PluginValue = NamedPlugin | false | null | undefined;
7
- type PluginInput = PluginValue | readonly PluginValue[];
7
+ type PluginInput = PluginValue | Promise<PluginInput> | readonly PluginInput[];
8
8
  type ConfigFragment = Omit<UserConfig, "plugins"> & {
9
9
  readonly plugins?: readonly PluginInput[];
10
10
  };
11
11
  declare function composeConfig(...fragments: readonly ConfigFragment[]): UserConfig;
12
12
  //#endregion
13
13
  export { PluginInput as n, composeConfig as r, ConfigFragment as t };
14
- //# sourceMappingURL=compose-Cichpffs.d.mts.map
14
+ //# sourceMappingURL=compose-XJvIUwAG.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-XJvIUwAG.d.mts","names":[],"sources":["../src/compose.ts"],"mappings":";;UAGU;WACC;;KAGN,cAAc;KAEP,cAAc,cAAc,QAAQ,wBAAwB;KAE5D,iBAAiB,KAAK;WACvB,mBAAmB;;iBAQd,iBAAiB,oBAAoB,mBAAmB"}
@@ -24,10 +24,12 @@ const DEFAULT_IGNORE_PATTERNS = [
24
24
  ];
25
25
  const CLOUDFLARE_WORKER_IGNORE_PATTERNS = ["**/worker-configuration.d.ts"];
26
26
  const REACT_NATIVE_IGNORE_PATTERNS = ["**/.expo/**"];
27
- const DEFAULT_STAGED_CHECK_GLOB = "*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}";
27
+ const DEFAULT_STAGED_CHECK_GLOB = "*.{js,jsx,ts,tsx,mjs,cjs,mts,cts,svelte,vue}";
28
28
  const DEFAULT_STAGED_CHECK_COMMAND = "vp check --fix";
29
+ const DEFAULT_STAGED_FORMAT_GLOB = "*.{css,html,json,jsonc,less,md,mdx,scss,yaml,yml}";
30
+ const DEFAULT_STAGED_FORMAT_COMMAND = "vp fmt --write --no-error-on-unmatched-pattern";
29
31
  const DEFAULT_WRANGLER_CONFIG_PATH = "./wrangler.jsonc";
30
32
  //#endregion
31
- export { DEFAULT_IGNORE_PATTERNS as a, DEFAULT_WRANGLER_CONFIG_PATH as c, TEST_FILES as d, CONFIG_FILES as i, REACT_NATIVE_IGNORE_PATTERNS as l, CODE_FILES as n, DEFAULT_STAGED_CHECK_COMMAND as o, COMMONJS_FILES as r, DEFAULT_STAGED_CHECK_GLOB as s, CLOUDFLARE_WORKER_IGNORE_PATTERNS as t, RUNTIME_OVERRIDE_EXCLUDE_FILES as u };
33
+ export { DEFAULT_IGNORE_PATTERNS as a, DEFAULT_STAGED_FORMAT_COMMAND as c, REACT_NATIVE_IGNORE_PATTERNS as d, RUNTIME_OVERRIDE_EXCLUDE_FILES as f, CONFIG_FILES as i, DEFAULT_STAGED_FORMAT_GLOB as l, CODE_FILES as n, DEFAULT_STAGED_CHECK_COMMAND as o, TEST_FILES as p, COMMONJS_FILES as r, DEFAULT_STAGED_CHECK_GLOB as s, CLOUDFLARE_WORKER_IGNORE_PATTERNS as t, DEFAULT_WRANGLER_CONFIG_PATH as u };
32
34
 
33
- //# sourceMappingURL=constants-D2PDomKY.mjs.map
35
+ //# sourceMappingURL=constants-rgwdXdWu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-D2PDomKY.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const CODE_FILES = [\"**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"] as const;\nexport const COMMONJS_FILES = [\"**/*.{cjs,cts}\"] as const;\nexport const CONFIG_FILES = [\"**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"] as const;\nexport const TEST_FILES = [\n \"**/test/**\",\n \"**/tests/**\",\n \"**/__tests__/**\",\n \"**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const RUNTIME_OVERRIDE_EXCLUDE_FILES: readonly string[] = [\n ...COMMONJS_FILES,\n ...CONFIG_FILES,\n ...TEST_FILES,\n] as const;\n\nexport const DEFAULT_IGNORE_PATTERNS = [\n \"node_modules/**\",\n \"dist/**\",\n \"dist-ssr/**\",\n \"**/.wrangler/**\",\n \"**/migrations/**\",\n \"**/drizzle/migrations.js\",\n \"**/drizzle/meta/*.json\",\n] as const;\nexport const CLOUDFLARE_WORKER_IGNORE_PATTERNS = [\"**/worker-configuration.d.ts\"] as const;\nexport const REACT_NATIVE_IGNORE_PATTERNS = [\"**/.expo/**\"] as const;\n\nexport const DEFAULT_STAGED_CHECK_GLOB = \"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\";\nexport const DEFAULT_STAGED_CHECK_COMMAND = \"vp check --fix\";\nexport const DEFAULT_WRANGLER_CONFIG_PATH = \"./wrangler.jsonc\";\n"],"mappings":";AAAA,MAAa,aAAa,CAAC,sCAAsC;AACjE,MAAa,iBAAiB,CAAC,gBAAgB;AAC/C,MAAa,eAAe,CAAC,6CAA6C;AAC1E,MAAa,aAAa;CACxB;CACA;CACA;CACA;AACF;AACA,MAAa,iCAAoD;CAC/D,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAEA,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,oCAAoC,CAAC,8BAA8B;AAChF,MAAa,+BAA+B,CAAC,aAAa;AAE1D,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,+BAA+B"}
1
+ {"version":3,"file":"constants-rgwdXdWu.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const CODE_FILES = [\"**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"] as const;\nexport const COMMONJS_FILES = [\"**/*.{cjs,cts}\"] as const;\nexport const CONFIG_FILES = [\"**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"] as const;\nexport const TEST_FILES = [\n \"**/test/**\",\n \"**/tests/**\",\n \"**/__tests__/**\",\n \"**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const RUNTIME_OVERRIDE_EXCLUDE_FILES: readonly string[] = [\n ...COMMONJS_FILES,\n ...CONFIG_FILES,\n ...TEST_FILES,\n] as const;\n\nexport const DEFAULT_IGNORE_PATTERNS = [\n \"node_modules/**\",\n \"dist/**\",\n \"dist-ssr/**\",\n \"**/.wrangler/**\",\n \"**/migrations/**\",\n \"**/drizzle/migrations.js\",\n \"**/drizzle/meta/*.json\",\n] as const;\nexport const CLOUDFLARE_WORKER_IGNORE_PATTERNS = [\"**/worker-configuration.d.ts\"] as const;\nexport const REACT_NATIVE_IGNORE_PATTERNS = [\"**/.expo/**\"] as const;\n\nexport const DEFAULT_STAGED_CHECK_GLOB = \"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts,svelte,vue}\";\nexport const DEFAULT_STAGED_CHECK_COMMAND = \"vp check --fix\";\nexport const DEFAULT_STAGED_FORMAT_GLOB = \"*.{css,html,json,jsonc,less,md,mdx,scss,yaml,yml}\";\nexport const DEFAULT_STAGED_FORMAT_COMMAND = \"vp fmt --write --no-error-on-unmatched-pattern\";\nexport const DEFAULT_WRANGLER_CONFIG_PATH = \"./wrangler.jsonc\";\n"],"mappings":";AAAA,MAAa,aAAa,CAAC,sCAAsC;AACjE,MAAa,iBAAiB,CAAC,gBAAgB;AAC/C,MAAa,eAAe,CAAC,6CAA6C;AAC1E,MAAa,aAAa;CACxB;CACA;CACA;CACA;AACF;AACA,MAAa,iCAAoD;CAC/D,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAEA,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,oCAAoC,CAAC,8BAA8B;AAChF,MAAa,+BAA+B,CAAC,aAAa;AAE1D,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,6BAA6B;AAC1C,MAAa,gCAAgC;AAC7C,MAAa,+BAA+B"}
@@ -1,5 +1,5 @@
1
- import { t as ConfigFragment } from "../../compose-Cichpffs.mjs";
2
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
1
+ import { t as ConfigFragment } from "../../compose-XJvIUwAG.mjs";
2
+ import { cloudflareTest } from "@cloudflare/vitest-plugin";
3
3
  //#region src/cloudflare-workers/index.d.ts
4
4
  type CloudflareTestOptions = Exclude<NonNullable<Parameters<typeof cloudflareTest>[0]>, (...args: readonly never[]) => unknown>;
5
5
  interface CloudflareTestConfigOptions extends Omit<CloudflareTestOptions, "wrangler"> {
@@ -1,6 +1,6 @@
1
- import { c as DEFAULT_WRANGLER_CONFIG_PATH } from "../../constants-D2PDomKY.mjs";
1
+ import { u as DEFAULT_WRANGLER_CONFIG_PATH } from "../../constants-rgwdXdWu.mjs";
2
2
  import { lazyPlugins } from "vite-plus";
3
- import { cloudflareTest } from "@cloudflare/vitest-pool-workers";
3
+ import { cloudflareTest } from "@cloudflare/vitest-plugin";
4
4
  //#region src/cloudflare-workers/index.ts
5
5
  function createLazyPluginInputs(factory) {
6
6
  return lazyPlugins(factory);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/cloudflare-workers/index.ts"],"sourcesContent":["import { cloudflareTest } from \"@cloudflare/vitest-pool-workers\";\nimport { lazyPlugins } from \"vite-plus\";\nimport type { ConfigFragment } from \"../compose.ts\";\nimport { DEFAULT_WRANGLER_CONFIG_PATH } from \"../constants.ts\";\n\ntype LazyPluginInput = object | readonly object[] | false | null | undefined;\n\ntype CloudflareTestOptions = Exclude<\n NonNullable<Parameters<typeof cloudflareTest>[0]>,\n (...args: readonly never[]) => unknown\n>;\n\nexport interface CloudflareTestConfigOptions extends Omit<CloudflareTestOptions, \"wrangler\"> {\n readonly wrangler?: CloudflareTestOptions[\"wrangler\"];\n}\n\nfunction createLazyPluginInputs(\n factory: () => readonly LazyPluginInput[],\n): ConfigFragment[\"plugins\"] {\n // eslint-disable-next-line typescript/no-unsafe-type-assertion -- Vite 8 plugin types recurse beyond TypeScript's comparison limit; lazyPlugins returns the named Vite plugins represented by this shallow boundary.\n return lazyPlugins(factory as never) as ConfigFragment[\"plugins\"];\n}\n\nexport function createCloudflareTestConfig(\n options: CloudflareTestConfigOptions = {},\n): ConfigFragment {\n const { wrangler, ...pluginOptions } = options;\n\n return {\n plugins: createLazyPluginInputs(() => [\n cloudflareTest({\n ...pluginOptions,\n wrangler: {\n configPath: DEFAULT_WRANGLER_CONFIG_PATH,\n ...wrangler,\n },\n }),\n ]),\n };\n}\n"],"mappings":";;;;AAgBA,SAAS,uBACP,SAC2B;CAE3B,OAAO,YAAY,OAAgB;AACrC;AAEA,SAAgB,2BACd,UAAuC,CAAC,GACxB;CAChB,MAAM,EAAE,UAAU,GAAG,kBAAkB;CAEvC,OAAO,EACL,SAAS,6BAA6B,CACpC,eAAe;EACb,GAAG;EACH,UAAU;GACR,YAAY;GACZ,GAAG;EACL;CACF,CAAC,CACH,CAAC,EACH;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/cloudflare-workers/index.ts"],"sourcesContent":["import { cloudflareTest } from \"@cloudflare/vitest-plugin\";\nimport { lazyPlugins } from \"vite-plus\";\nimport type { ConfigFragment } from \"../compose.ts\";\nimport { DEFAULT_WRANGLER_CONFIG_PATH } from \"../constants.ts\";\n\ntype LazyPluginInput = object | readonly object[] | false | null | undefined;\n\ntype CloudflareTestOptions = Exclude<\n NonNullable<Parameters<typeof cloudflareTest>[0]>,\n (...args: readonly never[]) => unknown\n>;\n\nexport interface CloudflareTestConfigOptions extends Omit<CloudflareTestOptions, \"wrangler\"> {\n readonly wrangler?: CloudflareTestOptions[\"wrangler\"];\n}\n\nfunction createLazyPluginInputs(\n factory: () => readonly LazyPluginInput[],\n): ConfigFragment[\"plugins\"] {\n // eslint-disable-next-line typescript/no-unsafe-type-assertion -- Vite 8 plugin types recurse beyond TypeScript's comparison limit; lazyPlugins returns the named Vite plugins represented by this shallow boundary.\n return lazyPlugins(factory as never) as ConfigFragment[\"plugins\"];\n}\n\nexport function createCloudflareTestConfig(\n options: CloudflareTestConfigOptions = {},\n): ConfigFragment {\n const { wrangler, ...pluginOptions } = options;\n\n return {\n plugins: createLazyPluginInputs(() => [\n cloudflareTest({\n ...pluginOptions,\n wrangler: {\n configPath: DEFAULT_WRANGLER_CONFIG_PATH,\n ...wrangler,\n },\n }),\n ]),\n };\n}\n"],"mappings":";;;;AAgBA,SAAS,uBACP,SAC2B;CAE3B,OAAO,YAAY,OAAgB;AACrC;AAEA,SAAgB,2BACd,UAAuC,CAAC,GACxB;CAChB,MAAM,EAAE,UAAU,GAAG,kBAAkB;CAEvC,OAAO,EACL,SAAS,6BAA6B,CACpC,eAAe;EACb,GAAG;EACH,UAAU;GACR,YAAY;GACZ,GAAG;EACL;CACF,CAAC,CACH,CAAC,EACH;AACF"}
@@ -1,4 +1,4 @@
1
- import { n as PluginInput, r as composeConfig, t as ConfigFragment } from "../compose-Cichpffs.mjs";
1
+ import { n as PluginInput, r as composeConfig, t as ConfigFragment } from "../compose-XJvIUwAG.mjs";
2
2
  import { UserConfig } from "vite-plus";
3
3
  //#region src/constants.d.ts
4
4
  declare const CODE_FILES: readonly ["**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/constants.ts","../../src/fragments.ts","../../src/lint/types.ts","../../src/lint/profiles.ts"],"mappings":";;;cAAa;cACA;cACA;cACA;cAMA;;;KCeR,aAAa,QAAQ;cAEb,mBAAmB;cAQnB,mBAAmB;cAInB,sBAAsB;cAItB,iBAAiB;cAKjB,gBAAgB;cAIhB,0BAA0B;cAI1B,4BAA4B;cAK5B,+BAA+B;cAI/B,iCAAiC;cAKjC,oBAAoB;cAIpB,uBAAuB;cAIvB,gCAAgC;cAIhC,qBAAqB;cAOrB,mBAAmB;cAInB,oBAAoB;;;KC1FrB,aAAa,YAAY;KACzB,eAAe,YAAY;KAC3B,cAAc,KAAK;;;cCoElB,UAAU;cAOV,aAAa;cAOb,eAAe;cAKf,cAAc;cAiDd,wBAAwB;cAOxB,cAAc;cAWd,iBAAiB;cAUjB,sBAAsB;cAMtB,cAAc;cASd,iBAAiB;cASjB,0BAA0B"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/constants.ts","../../src/fragments.ts","../../src/lint/types.ts","../../src/lint/profiles.ts"],"mappings":";;;cAAa;cACA;cACA;cACA;cAMA;;;KCoBR,aAAa,QAAQ;cAEb,mBAAmB;cASnB,mBAAmB;cAInB,sBAAsB;cAItB,iBAAiB;cAKjB,gBAAgB;cAIhB,0BAA0B;cAI1B,4BAA4B;cAK5B,+BAA+B;cAI/B,iCAAiC;cAKjC,oBAAoB;cAIpB,uBAAuB;cAIvB,gCAAgC;cAIhC,qBAAqB;cAcrB,mBAAmB;cAInB,oBAAoB;;;KCvGrB,aAAa,YAAY;KACzB,eAAe,YAAY;KAC3B,cAAc,KAAK;;;cCoElB,UAAU;cAOV,aAAa;cAOb,eAAe;cAKf,cAAc;cAiDd,wBAAwB;cAOxB,cAAc;cAWd,iBAAiB;cAUjB,sBAAsB;cAMtB,cAAc;cASd,iBAAiB;cASjB,0BAA0B"}
@@ -1,4 +1,4 @@
1
- import { a as DEFAULT_IGNORE_PATTERNS, d as TEST_FILES, i as CONFIG_FILES, l as REACT_NATIVE_IGNORE_PATTERNS, n as CODE_FILES, o as DEFAULT_STAGED_CHECK_COMMAND, r as COMMONJS_FILES, s as DEFAULT_STAGED_CHECK_GLOB, t as CLOUDFLARE_WORKER_IGNORE_PATTERNS, u as RUNTIME_OVERRIDE_EXCLUDE_FILES } from "../constants-D2PDomKY.mjs";
1
+ import { a as DEFAULT_IGNORE_PATTERNS, c as DEFAULT_STAGED_FORMAT_COMMAND, d as REACT_NATIVE_IGNORE_PATTERNS, f as RUNTIME_OVERRIDE_EXCLUDE_FILES, i as CONFIG_FILES, l as DEFAULT_STAGED_FORMAT_GLOB, n as CODE_FILES, o as DEFAULT_STAGED_CHECK_COMMAND, p as TEST_FILES, r as COMMONJS_FILES, s as DEFAULT_STAGED_CHECK_GLOB, t as CLOUDFLARE_WORKER_IGNORE_PATTERNS } from "../constants-rgwdXdWu.mjs";
2
2
  import { defineConfig, mergeConfig } from "vite-plus";
3
3
  //#region src/compose.ts
4
4
  function toUserConfig(config) {
@@ -35,10 +35,7 @@ const baseFormatConfig = {
35
35
  ]
36
36
  }
37
37
  };
38
- const reactFormatConfig = { sortTailwindcss: {
39
- attributes: ["/.*ClassName/"],
40
- functions: ["tv"]
41
- } };
38
+ const reactFormatConfig = { sortTailwindcss: { functions: ["tv"] } };
42
39
  const reactNativeFormatConfig = { ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS] };
43
40
  const cloudflareWorkerFormatConfig = { ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS] };
44
41
  //#endregion
@@ -59,7 +56,8 @@ const nodeRules = {
59
56
  "node/exports-style": "error",
60
57
  "node/global-require": "error",
61
58
  "node/no-exports-assign": "error",
62
- "node/no-mixed-requires": "error"
59
+ "node/no-mixed-requires": "error",
60
+ "unicorn/prefer-node-protocol": "error"
63
61
  };
64
62
  //#endregion
65
63
  //#region src/lint/rules/react-core.ts
@@ -124,6 +122,7 @@ const reactNativeRules = {
124
122
  //#endregion
125
123
  //#region src/lint/rules/vitest.ts
126
124
  const vitestRules = {
125
+ "max-nested-callbacks": ["error", { max: 4 }],
127
126
  "vitest/consistent-each-for": "error",
128
127
  "vitest/consistent-test-it": ["error", {
129
128
  fn: "test",
@@ -386,6 +385,7 @@ const universalRules = {
386
385
  "no-case-declarations": "error",
387
386
  "no-constructor-return": "error",
388
387
  "no-else-return": "error",
388
+ "no-empty": "error",
389
389
  "no-extra-label": "error",
390
390
  "no-fallthrough": "error",
391
391
  "no-implicit-coercion": "error",
@@ -409,7 +409,6 @@ const universalRules = {
409
409
  "no-script-url": "error",
410
410
  "no-self-compare": "error",
411
411
  "no-template-curly-in-string": "error",
412
- "no-throw-literal": "error",
413
412
  "no-useless-call": "error",
414
413
  "no-useless-computed-key": "error",
415
414
  "no-useless-return": "error",
@@ -427,7 +426,6 @@ const universalRules = {
427
426
  "prefer-numeric-literals": "error",
428
427
  "prefer-object-has-own": "error",
429
428
  "prefer-object-spread": "error",
430
- "prefer-promise-reject-errors": "error",
431
429
  "prefer-regex-literals": "error",
432
430
  "prefer-rest-params": "error",
433
431
  "prefer-spread": "error",
@@ -443,7 +441,6 @@ const universalRules = {
443
441
  "typescript/array-type": "error",
444
442
  "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
445
443
  "typescript/ban-tslint-comment": "error",
446
- "typescript/ban-types": "error",
447
444
  "typescript/class-literal-property-style": "error",
448
445
  "typescript/consistent-generic-constructors": "error",
449
446
  "typescript/consistent-indexed-object-style": "error",
@@ -457,7 +454,7 @@ const universalRules = {
457
454
  "typescript/method-signature-style": "error",
458
455
  "typescript/no-confusing-void-expression": "error",
459
456
  "typescript/no-deprecated": "error",
460
- "typescript/no-empty-interface": "error",
457
+ "typescript/no-empty-object-type": "error",
461
458
  "typescript/no-inferrable-types": "error",
462
459
  "typescript/no-misused-promises": "error",
463
460
  "typescript/no-mixed-enums": "error",
@@ -468,6 +465,7 @@ const universalRules = {
468
465
  "typescript/no-unsafe-function-type": "error",
469
466
  "typescript/no-unsafe-member-access": "error",
470
467
  "typescript/no-unsafe-return": "error",
468
+ "typescript/no-wrapper-object-types": "error",
471
469
  "typescript/only-throw-error": "error",
472
470
  "typescript/parameter-properties": "error",
473
471
  "typescript/prefer-enum-initializers": "error",
@@ -482,7 +480,6 @@ const universalRules = {
482
480
  "typescript/prefer-regexp-exec": "error",
483
481
  "typescript/prefer-return-this-type": "error",
484
482
  "typescript/prefer-string-starts-ends-with": "error",
485
- "typescript/prefer-ts-expect-error": "error",
486
483
  "typescript/related-getter-setter-pairs": "error",
487
484
  "typescript/restrict-plus-operands": "error",
488
485
  "typescript/return-await": "error",
@@ -648,7 +645,7 @@ const baseLintConfig = {
648
645
  },
649
646
  {
650
647
  files: ["**/*.d.ts"],
651
- rules: { "typescript/no-empty-interface": "off" }
648
+ rules: { "typescript/no-empty-object-type": "off" }
652
649
  }
653
650
  ]
654
651
  };
@@ -703,7 +700,10 @@ const cloudflareWorkerTestLintConfig$1 = { overrides: [{
703
700
  const baseToolingConfig = {
704
701
  fmt: baseFormatConfig,
705
702
  lint: baseLintConfig,
706
- staged: { [DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND }
703
+ staged: {
704
+ [DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND,
705
+ [DEFAULT_STAGED_FORMAT_GLOB]: DEFAULT_STAGED_FORMAT_COMMAND
706
+ }
707
707
  };
708
708
  const nodeRuntimeConfig = { lint: nodeRuntimeLintConfig };
709
709
  const browserRuntimeConfig = { lint: browserRuntimeLintConfig };
@@ -726,9 +726,14 @@ const nodeTestLintConfig = { lint: nodeTestLintConfig$1 };
726
726
  const browserTestLintConfig = { lint: browserTestLintConfig$1 };
727
727
  const cloudflareWorkerTestLintConfig = { lint: cloudflareWorkerTestLintConfig$1 };
728
728
  const libraryPackDefaults = {
729
+ attw: {
730
+ level: "error",
731
+ profile: "esm-only"
732
+ },
729
733
  clean: true,
730
734
  dts: true,
731
735
  format: ["esm"],
736
+ publint: { strict: true },
732
737
  sourcemap: true
733
738
  };
734
739
  const libraryPackConfig = { pack: libraryPackDefaults };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["nodeTestLintConfig","browserTestLintConfig","cloudflareWorkerTestLintConfig","nodeTestLintSettings","browserTestLintSettings","cloudflareWorkerTestLintSettings"],"sources":["../../src/compose.ts","../../src/format.ts","../../src/lint/rules/browser.ts","../../src/lint/rules/node.ts","../../src/lint/rules/react-core.ts","../../src/lint/rules/react-dom.ts","../../src/lint/rules/react-native.ts","../../src/lint/rules/vitest.ts","../../src/lint/profiles.ts","../../src/lint/rules/universal.ts","../../src/lint/configs.ts","../../src/fragments.ts"],"sourcesContent":["import type { UserConfig } from \"vite-plus\";\nimport { defineConfig, mergeConfig } from \"vite-plus\";\n\ninterface NamedPlugin {\n readonly name: string;\n}\n\ntype PluginValue = NamedPlugin | false | null | undefined;\n\nexport type PluginInput = PluginValue | readonly PluginValue[];\n\nexport type ConfigFragment = Omit<UserConfig, \"plugins\"> & {\n readonly plugins?: readonly PluginInput[];\n};\n\nfunction toUserConfig(config: ConfigFragment): UserConfig {\n // eslint-disable-next-line typescript/no-unsafe-type-assertion -- Vite's recursive PluginOption overflows TypeScript 7 when consumers pass an ordinary Plugin; ConfigFragment preserves the named-plugin boundary without recursive comparison.\n return config as UserConfig;\n}\n\nexport function composeConfig(...fragments: readonly ConfigFragment[]): UserConfig {\n let config: UserConfig = {};\n\n for (const fragment of fragments) {\n config = mergeConfig(config, toUserConfig(fragment));\n }\n\n return defineConfig(config);\n}\n","import type { UserConfig } from \"vite-plus\";\nimport {\n CLOUDFLARE_WORKER_IGNORE_PATTERNS,\n DEFAULT_IGNORE_PATTERNS,\n REACT_NATIVE_IGNORE_PATTERNS,\n} from \"./constants.ts\";\n\ntype FormatConfig = NonNullable<UserConfig[\"fmt\"]>;\n\nexport const baseFormatConfig: FormatConfig = {\n ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],\n sortImports: {\n internalPattern: [\"#\", \"@/\"],\n newlinesBetween: false,\n groups: [\n \"type-import\",\n [\"value-builtin\", \"value-external\"],\n \"type-internal\",\n \"value-internal\",\n [\"type-parent\", \"type-sibling\", \"type-index\"],\n [\"value-parent\", \"value-sibling\", \"value-index\"],\n \"unknown\",\n ],\n },\n};\n\nexport const reactFormatConfig: FormatConfig = {\n sortTailwindcss: {\n attributes: [\"/.*ClassName/\"],\n functions: [\"tv\"],\n },\n};\n\nexport const reactNativeFormatConfig: FormatConfig = {\n ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],\n};\n\nexport const cloudflareWorkerFormatConfig: FormatConfig = {\n ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS],\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const browserRules: LintRules = {\n \"no-alert\": \"error\",\n \"unicorn/prefer-classlist-toggle\": \"error\",\n \"unicorn/prefer-dom-node-append\": \"error\",\n \"unicorn/prefer-dom-node-dataset\": \"error\",\n \"unicorn/prefer-dom-node-remove\": \"error\",\n \"unicorn/prefer-dom-node-text-content\": \"error\",\n \"unicorn/prefer-keyboard-event-key\": \"error\",\n \"unicorn/prefer-modern-dom-apis\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const nodeRules: LintRules = {\n \"node/exports-style\": \"error\",\n \"node/global-require\": \"error\",\n \"node/no-exports-assign\": \"error\",\n \"node/no-mixed-requires\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactCoreRules: LintRules = {\n \"react/display-name\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n namedComponents: \"function-declaration\",\n unnamedComponents: [\"arrow-function\", \"function-expression\"],\n },\n ],\n \"react/hook-use-state\": \"error\",\n \"react/jsx-boolean-value\": \"error\",\n \"react/jsx-curly-brace-presence\": \"error\",\n \"react/jsx-fragments\": \"error\",\n \"react/jsx-max-depth\": [\n \"error\",\n {\n max: 6,\n },\n ],\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/jsx-pascal-case\": \"error\",\n \"react/no-array-index-key\": \"error\",\n \"react/no-object-type-as-default-prop\": \"error\",\n \"react/no-redundant-should-component-update\": \"error\",\n \"react/no-set-state\": \"error\",\n \"react/prefer-es6-class\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n \"react/self-closing-comp\": \"error\",\n \"react/state-in-constructor\": \"error\",\n \"react/exhaustive-deps\": \"error\",\n \"react/react-compiler\": \"error\",\n \"react/react-in-jsx-scope\": \"off\",\n \"react/jsx-key\": \"error\",\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-clone-element\": \"error\",\n \"react/no-direct-mutation-state\": \"error\",\n \"react/no-react-children\": \"error\",\n \"react/no-string-refs\": \"error\",\n \"react/no-unsafe\": \"error\",\n \"react/style-prop-object\": \"off\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactDomRules: LintRules = {\n \"react/checked-requires-onchange-or-readonly\": \"error\",\n \"react/jsx-no-target-blank\": \"error\",\n \"react/no-unescaped-entities\": \"error\",\n \"react/no-danger\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-find-dom-node\": \"error\",\n \"react/no-unknown-property\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactNativeRules: LintRules = {\n \"react/iframe-missing-sandbox\": \"off\",\n \"react/jsx-no-script-url\": \"off\",\n \"react/no-unknown-property\": \"off\",\n \"react/no-unescaped-entities\": \"off\",\n \"react/no-unstable-nested-components\": [\n \"error\",\n {\n allowAsProps: true,\n },\n ],\n \"react/void-dom-elements-no-children\": \"off\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const vitestRules: LintRules = {\n \"vitest/consistent-each-for\": \"error\",\n \"vitest/consistent-test-it\": [\n \"error\",\n {\n fn: \"test\",\n withinDescribe: \"it\",\n },\n ],\n \"vitest/consistent-vitest-vi\": \"error\",\n \"vitest/max-nested-describe\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"vitest/no-alias-methods\": \"error\",\n \"vitest/no-duplicate-hooks\": \"error\",\n \"vitest/no-identical-title\": \"error\",\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/no-interpolation-in-snapshots\": \"error\",\n \"vitest/no-large-snapshots\": \"error\",\n \"vitest/no-mocks-import\": \"error\",\n \"vitest/no-test-prefixes\": \"error\",\n \"vitest/no-test-return-statement\": \"error\",\n \"vitest/no-unneeded-async-expect-function\": \"error\",\n \"vitest/padding-around-after-all-blocks\": \"error\",\n \"vitest/padding-around-test-blocks\": \"error\",\n \"vitest/prefer-called-exactly-once-with\": \"error\",\n \"vitest/prefer-called-once\": \"error\",\n \"vitest/prefer-called-with\": \"error\",\n \"vitest/prefer-comparison-matcher\": \"error\",\n \"vitest/prefer-each\": \"error\",\n \"vitest/prefer-equality-matcher\": \"error\",\n \"vitest/prefer-expect-resolves\": \"error\",\n \"vitest/prefer-expect-type-of\": \"error\",\n \"vitest/prefer-hooks-in-order\": \"error\",\n \"vitest/prefer-hooks-on-top\": \"error\",\n \"vitest/prefer-import-in-mock\": \"error\",\n \"vitest/prefer-importing-vitest-globals\": \"error\",\n \"vitest/prefer-mock-promise-shorthand\": \"error\",\n \"vitest/prefer-mock-return-shorthand\": \"error\",\n \"vitest/prefer-spy-on\": \"error\",\n \"vitest/prefer-strict-boolean-matchers\": \"error\",\n \"vitest/prefer-strict-equal\": \"error\",\n \"vitest/prefer-to-be\": \"error\",\n \"vitest/prefer-to-be-object\": \"error\",\n \"vitest/prefer-to-contain\": \"error\",\n \"vitest/prefer-to-have-been-called-times\": \"error\",\n \"vitest/prefer-to-have-length\": \"error\",\n \"vitest/prefer-todo\": \"error\",\n};\n","import type { LintConfig, LintProfile } from \"./types.ts\";\nimport { browserRules } from \"./rules/browser.ts\";\nimport { nodeRules } from \"./rules/node.ts\";\nimport { reactCoreRules } from \"./rules/react-core.ts\";\nimport { reactDomRules } from \"./rules/react-dom.ts\";\nimport { reactNativeRules } from \"./rules/react-native.ts\";\nimport { vitestRules } from \"./rules/vitest.ts\";\n\nexport const BASE_LINT_PLUGINS = [\"typescript\", \"unicorn\", \"oxc\", \"import\", \"promise\"] as const;\n\nexport const neutralEnvironment: NonNullable<LintConfig[\"env\"]> = {\n browser: false,\n node: false,\n serviceworker: false,\n worker: false,\n} as const;\n\nexport const nodeEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n node: true,\n} as const;\n\nexport const browserEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n browser: true,\n} as const;\n\nexport const reactNativeEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n} as const;\n\nexport const cloudflareWorkerEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n serviceworker: true,\n worker: true,\n} as const;\n\nconst platformGlobalsOff = {\n __DEV__: \"off\",\n Cloudflare: \"off\",\n DigestStream: \"off\",\n FixedLengthStream: \"off\",\n HTMLRewriter: \"off\",\n IdentityTransformStream: \"off\",\n process: \"off\",\n WebSocketPair: \"off\",\n WebSocketRequestResponsePair: \"off\",\n} as const;\n\nconst nodeGlobals = {\n ...platformGlobalsOff,\n console: \"readonly\",\n process: \"readonly\",\n} as const;\n\nconst cloudflareWorkerGlobals = {\n ...platformGlobalsOff,\n Cloudflare: \"readonly\",\n DigestStream: \"readonly\",\n FixedLengthStream: \"readonly\",\n HTMLRewriter: \"readonly\",\n IdentityTransformStream: \"readonly\",\n WebSocketPair: \"readonly\",\n WebSocketRequestResponsePair: \"readonly\",\n} as const;\n\nexport const neutralLint: LintProfile = {\n env: neutralEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS],\n};\n\nexport const nodeLint: LintProfile = {\n env: nodeEnvironment,\n globals: nodeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"node\"],\n rules: nodeRules,\n};\n\nexport const browserLint: LintProfile = {\n env: browserEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS],\n rules: browserRules,\n};\n\nexport const reactCoreLint: LintProfile = {\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: reactCoreRules,\n};\n\nexport const reactDomLint: LintProfile = {\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jsx-a11y\"],\n rules: reactDomRules,\n};\n\nconst reactNativeGlobals = {\n ...platformGlobalsOff,\n __BUNDLE_START_TIME__: \"readonly\",\n __DEV__: \"readonly\",\n AbortController: \"readonly\",\n AbortSignal: \"readonly\",\n alert: \"readonly\",\n Blob: \"readonly\",\n cancelAnimationFrame: \"readonly\",\n clearImmediate: \"readonly\",\n clearInterval: \"readonly\",\n clearTimeout: \"readonly\",\n console: \"readonly\",\n crypto: \"readonly\",\n DOMRect: \"readonly\",\n ErrorUtils: \"readonly\",\n Event: \"readonly\",\n EventTarget: \"readonly\",\n fetch: \"readonly\",\n fetchBundle: \"readonly\",\n File: \"readonly\",\n FileReader: \"readonly\",\n FormData: \"readonly\",\n Headers: \"readonly\",\n HermesInternal: \"readonly\",\n navigator: \"readonly\",\n originalXMLHttpRequest: \"readonly\",\n performance: \"readonly\",\n process: \"readonly\",\n queueMicrotask: \"readonly\",\n requestAnimationFrame: \"readonly\",\n Request: \"readonly\",\n require: \"readonly\",\n Response: \"readonly\",\n setImmediate: \"readonly\",\n setInterval: \"readonly\",\n setTimeout: \"readonly\",\n URL: \"readonly\",\n URLSearchParams: \"readonly\",\n WebSocket: \"readonly\",\n XMLHttpRequest: \"readonly\",\n XMLHttpRequestUpload: \"readonly\",\n} as const;\n\nexport const reactNativeRuntimeLint: LintProfile = {\n env: reactNativeEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: reactNativeRules,\n};\n\nexport const reactWebLint: LintProfile = {\n env: browserEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jsx-a11y\"],\n rules: {\n ...browserRules,\n ...reactCoreRules,\n ...reactDomRules,\n },\n};\n\nexport const reactNativeLint: LintProfile = {\n env: reactNativeEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: {\n ...reactCoreRules,\n ...reactNativeRules,\n },\n};\n\nexport const cloudflareWorkerLint: LintProfile = {\n env: cloudflareWorkerEnvironment,\n globals: cloudflareWorkerGlobals,\n plugins: [...BASE_LINT_PLUGINS],\n};\n\nexport const nodeTestLint: LintProfile = {\n ...nodeLint,\n plugins: [...BASE_LINT_PLUGINS, \"node\", \"vitest\"],\n rules: {\n ...nodeRules,\n ...vitestRules,\n },\n};\n\nexport const browserTestLint: LintProfile = {\n ...browserLint,\n plugins: [...BASE_LINT_PLUGINS, \"vitest\"],\n rules: {\n ...browserRules,\n ...vitestRules,\n },\n};\n\nexport const cloudflareWorkerTestLint: LintProfile = {\n ...cloudflareWorkerLint,\n plugins: [...BASE_LINT_PLUGINS, \"vitest\"],\n rules: vitestRules,\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const universalRules: LintRules = {\n \"accessor-pairs\": \"error\",\n \"array-callback-return\": \"error\",\n \"arrow-body-style\": \"error\",\n curly: [\"error\", \"multi-line\", \"consistent\"],\n \"default-case-last\": \"error\",\n \"default-param-last\": \"error\",\n eqeqeq: \"error\",\n \"func-name-matching\": \"error\",\n \"func-names\": \"error\",\n \"grouped-accessor-pairs\": [\"error\", \"getBeforeSet\"],\n \"guard-for-in\": \"error\",\n \"import/consistent-type-specifier-style\": \"error\",\n \"import/first\": \"error\",\n \"import/newline-after-import\": \"error\",\n \"import/no-duplicates\": \"error\",\n \"import/no-mutable-exports\": \"error\",\n \"import/no-named-default\": \"error\",\n \"logical-assignment-operators\": \"error\",\n \"max-depth\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"max-nested-callbacks\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"max-params\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"no-array-constructor\": \"error\",\n \"no-await-in-loop\": \"error\",\n \"no-case-declarations\": \"error\",\n \"no-constructor-return\": \"error\",\n \"no-else-return\": \"error\",\n \"no-extra-label\": \"error\",\n \"no-fallthrough\": \"error\",\n \"no-implicit-coercion\": \"error\",\n \"no-inline-comments\": \"error\",\n \"no-inner-declarations\": \"error\",\n \"no-label-var\": \"error\",\n \"no-labels\": \"error\",\n \"no-lone-blocks\": \"error\",\n \"no-lonely-if\": \"error\",\n \"no-loop-func\": \"error\",\n \"no-multi-assign\": \"error\",\n \"no-multi-str\": \"error\",\n \"no-nested-ternary\": \"error\",\n \"no-new-func\": \"error\",\n \"no-new-wrappers\": \"error\",\n \"no-object-constructor\": \"error\",\n \"no-promise-executor-return\": \"error\",\n \"no-prototype-builtins\": \"error\",\n \"no-redeclare\": \"error\",\n \"no-return-assign\": \"error\",\n \"no-script-url\": \"error\",\n \"no-self-compare\": \"error\",\n \"no-template-curly-in-string\": \"error\",\n \"no-throw-literal\": \"error\",\n \"no-useless-call\": \"error\",\n \"no-useless-computed-key\": \"error\",\n \"no-useless-return\": \"error\",\n \"no-warning-comments\": \"error\",\n \"object-shorthand\": \"error\",\n \"operator-assignment\": \"error\",\n \"oxc/branches-sharing-code\": \"error\",\n \"oxc/no-accumulating-spread\": \"error\",\n \"oxc/no-map-spread\": \"error\",\n \"prefer-arrow-callback\": \"error\",\n \"prefer-const\": \"error\",\n \"prefer-destructuring\": \"error\",\n \"prefer-exponentiation-operator\": \"error\",\n \"prefer-named-capture-group\": \"error\",\n \"prefer-numeric-literals\": \"error\",\n \"prefer-object-has-own\": \"error\",\n \"prefer-object-spread\": \"error\",\n \"prefer-promise-reject-errors\": \"error\",\n \"prefer-regex-literals\": \"error\",\n \"prefer-rest-params\": \"error\",\n \"prefer-spread\": \"error\",\n \"prefer-template\": \"error\",\n \"promise/no-nesting\": \"error\",\n \"promise/no-return-wrap\": \"error\",\n \"promise/param-names\": \"error\",\n \"promise/prefer-await-to-then\": \"error\",\n \"promise/prefer-catch\": \"error\",\n radix: \"error\",\n \"symbol-description\": \"error\",\n \"typescript/adjacent-overload-signatures\": \"error\",\n \"typescript/array-type\": \"error\",\n \"typescript/ban-ts-comment\": [\n \"error\",\n {\n minimumDescriptionLength: 10,\n },\n ],\n \"typescript/ban-tslint-comment\": \"error\",\n \"typescript/ban-types\": \"error\",\n \"typescript/class-literal-property-style\": \"error\",\n \"typescript/consistent-generic-constructors\": \"error\",\n \"typescript/consistent-indexed-object-style\": \"error\",\n \"typescript/consistent-type-assertions\": \"error\",\n \"typescript/consistent-type-exports\": \"error\",\n \"typescript/consistent-type-imports\": [\n \"error\",\n {\n prefer: \"type-imports\",\n fixStyle: \"separate-type-imports\",\n },\n ],\n \"typescript/dot-notation\": \"error\",\n \"typescript/method-signature-style\": \"error\",\n \"typescript/no-confusing-void-expression\": \"error\",\n \"typescript/no-deprecated\": \"error\",\n \"typescript/no-empty-interface\": \"error\",\n \"typescript/no-inferrable-types\": \"error\",\n \"typescript/no-misused-promises\": \"error\",\n \"typescript/no-mixed-enums\": \"error\",\n \"typescript/no-unnecessary-qualifier\": \"error\",\n \"typescript/no-unsafe-argument\": \"error\",\n \"typescript/no-unsafe-assignment\": \"error\",\n \"typescript/no-unsafe-call\": \"error\",\n \"typescript/no-unsafe-function-type\": \"error\",\n \"typescript/no-unsafe-member-access\": \"error\",\n \"typescript/no-unsafe-return\": \"error\",\n \"typescript/only-throw-error\": \"error\",\n \"typescript/parameter-properties\": \"error\",\n \"typescript/prefer-enum-initializers\": \"error\",\n \"typescript/prefer-find\": \"error\",\n \"typescript/prefer-for-of\": \"error\",\n \"typescript/prefer-function-type\": \"error\",\n \"typescript/prefer-includes\": \"error\",\n \"typescript/prefer-nullish-coalescing\": \"error\",\n \"typescript/prefer-promise-reject-errors\": \"error\",\n \"typescript/prefer-readonly\": \"error\",\n \"typescript/prefer-reduce-type-parameter\": \"error\",\n \"typescript/prefer-regexp-exec\": \"error\",\n \"typescript/prefer-return-this-type\": \"error\",\n \"typescript/prefer-string-starts-ends-with\": \"error\",\n \"typescript/prefer-ts-expect-error\": \"error\",\n \"typescript/related-getter-setter-pairs\": \"error\",\n \"typescript/restrict-plus-operands\": \"error\",\n \"typescript/return-await\": \"error\",\n \"typescript/strict-boolean-expressions\": \"error\",\n \"typescript/strict-void-return\": \"error\",\n \"typescript/switch-exhaustiveness-check\": \"error\",\n \"typescript/unified-signatures\": \"error\",\n \"unicorn/catch-error-name\": \"error\",\n \"unicorn/consistent-assert\": \"error\",\n \"unicorn/consistent-date-clone\": \"error\",\n \"unicorn/consistent-empty-array-spread\": \"error\",\n \"unicorn/consistent-existence-index-check\": \"error\",\n \"unicorn/consistent-template-literal-escape\": \"error\",\n \"unicorn/custom-error-definition\": \"error\",\n \"unicorn/error-message\": \"error\",\n \"unicorn/escape-case\": \"error\",\n \"unicorn/explicit-length-check\": \"error\",\n \"unicorn/explicit-timer-delay\": \"error\",\n \"unicorn/filename-case\": [\n \"error\",\n {\n case: \"kebabCase\",\n },\n ],\n \"unicorn/max-nested-calls\": [\n \"error\",\n {\n max: 5,\n },\n ],\n \"unicorn/new-for-builtins\": \"error\",\n \"unicorn/no-array-callback-reference\": \"error\",\n \"unicorn/no-array-method-this-argument\": \"error\",\n \"unicorn/no-await-expression-member\": \"error\",\n \"unicorn/no-console-spaces\": \"error\",\n \"unicorn/no-hex-escape\": \"error\",\n \"unicorn/no-immediate-mutation\": \"error\",\n \"unicorn/no-instanceof-array\": \"error\",\n \"unicorn/no-negation-in-equality-check\": \"error\",\n \"unicorn/no-new-buffer\": \"error\",\n \"unicorn/no-static-only-class\": \"error\",\n \"unicorn/no-this-assignment\": \"error\",\n \"unicorn/no-typeof-undefined\": \"error\",\n \"unicorn/no-unnecessary-array-flat-depth\": \"error\",\n \"unicorn/no-unnecessary-array-splice-count\": \"error\",\n \"unicorn/no-unnecessary-slice-end\": \"error\",\n \"unicorn/no-unreadable-array-destructuring\": \"error\",\n \"unicorn/no-unreadable-iife\": \"error\",\n \"unicorn/no-useless-collection-argument\": \"error\",\n \"unicorn/no-useless-promise-resolve-reject\": \"error\",\n \"unicorn/no-useless-switch-case\": \"error\",\n \"unicorn/no-useless-undefined\": \"error\",\n \"unicorn/no-zero-fractions\": \"error\",\n \"unicorn/number-literal-case\": \"error\",\n \"unicorn/numeric-separators-style\": \"error\",\n \"unicorn/prefer-array-find\": \"error\",\n \"unicorn/prefer-array-flat\": \"error\",\n \"unicorn/prefer-array-flat-map\": \"error\",\n \"unicorn/prefer-array-index-of\": \"error\",\n \"unicorn/prefer-array-some\": \"error\",\n \"unicorn/prefer-at\": \"error\",\n \"unicorn/prefer-bigint-literals\": \"error\",\n \"unicorn/prefer-blob-reading-methods\": \"error\",\n \"unicorn/prefer-class-fields\": \"error\",\n \"unicorn/prefer-code-point\": \"error\",\n \"unicorn/prefer-date-now\": \"error\",\n \"unicorn/prefer-default-parameters\": \"error\",\n \"unicorn/prefer-export-from\": \"error\",\n \"unicorn/prefer-global-this\": \"error\",\n \"unicorn/prefer-import-meta-properties\": \"error\",\n \"unicorn/prefer-includes\": \"error\",\n \"unicorn/prefer-logical-operator-over-ternary\": \"error\",\n \"unicorn/prefer-math-min-max\": \"error\",\n \"unicorn/prefer-math-trunc\": \"error\",\n \"unicorn/prefer-native-coercion-functions\": \"error\",\n \"unicorn/prefer-negative-index\": \"error\",\n \"unicorn/prefer-number-coercion\": \"error\",\n \"unicorn/prefer-object-from-entries\": \"error\",\n \"unicorn/prefer-optional-catch-binding\": \"error\",\n \"unicorn/prefer-prototype-methods\": \"error\",\n \"unicorn/prefer-reflect-apply\": \"error\",\n \"unicorn/prefer-regexp-test\": \"error\",\n \"unicorn/prefer-response-static-json\": \"error\",\n \"unicorn/prefer-set-has\": \"error\",\n \"unicorn/prefer-single-call\": \"error\",\n \"unicorn/prefer-spread\": \"error\",\n \"unicorn/prefer-string-raw\": \"error\",\n \"unicorn/prefer-string-replace-all\": \"error\",\n \"unicorn/prefer-string-slice\": \"error\",\n \"unicorn/prefer-string-trim-start-end\": \"error\",\n \"unicorn/prefer-structured-clone\": \"error\",\n \"unicorn/prefer-ternary\": [\"error\", \"only-single-line\"],\n \"unicorn/prefer-type-error\": \"error\",\n \"unicorn/relative-url-style\": \"error\",\n \"unicorn/require-array-join-separator\": \"error\",\n \"unicorn/require-module-attributes\": \"error\",\n \"unicorn/require-number-to-fixed-digits-argument\": \"error\",\n \"unicorn/switch-case-braces\": \"error\",\n \"unicorn/switch-case-break-position\": \"error\",\n \"unicorn/text-encoding-identifier-case\": \"error\",\n \"unicorn/throw-new-error\": \"error\",\n yoda: \"error\",\n complexity: [\n \"error\",\n {\n max: 20,\n },\n ],\n \"getter-return\": \"error\",\n \"no-bitwise\": \"error\",\n \"no-console\": [\n \"error\",\n {\n allow: [\"info\", \"warn\", \"error\"],\n },\n ],\n \"no-param-reassign\": [\n \"error\",\n {\n props: true,\n },\n ],\n \"no-plusplus\": \"error\",\n \"no-undef\": \"error\",\n \"no-unneeded-ternary\": \"error\",\n \"no-unreachable\": \"error\",\n \"import/no-cycle\": \"error\",\n \"import/no-unassigned-import\": \"off\",\n \"oxc/bad-match-all-arg\": \"error\",\n \"typescript/consistent-return\": \"error\",\n \"typescript/explicit-module-boundary-types\": \"error\",\n \"typescript/no-dynamic-delete\": \"error\",\n \"typescript/no-explicit-any\": \"error\",\n \"typescript/no-floating-promises\": \"error\",\n \"typescript/no-misused-spread\": \"error\",\n \"typescript/no-non-null-assertion\": \"error\",\n \"typescript/no-require-imports\": \"error\",\n \"typescript/no-unnecessary-condition\": \"error\",\n \"typescript/no-unnecessary-type-arguments\": \"error\",\n \"typescript/no-unnecessary-type-assertion\": \"error\",\n \"typescript/no-unnecessary-type-parameters\": \"error\",\n \"typescript/no-useless-default-assignment\": \"error\",\n \"typescript/non-nullable-type-assertion-style\": \"error\",\n \"typescript/prefer-optional-chain\": \"error\",\n \"typescript/require-array-sort-compare\": \"error\",\n \"typescript/restrict-template-expressions\": \"error\",\n \"typescript/unbound-method\": \"error\",\n \"typescript/use-unknown-in-catch-callback-variable\": \"error\",\n \"unicorn/no-abusive-eslint-disable\": \"error\",\n};\n","import type { LintConfig } from \"./types.ts\";\nimport {\n CLOUDFLARE_WORKER_IGNORE_PATTERNS,\n CODE_FILES,\n COMMONJS_FILES,\n CONFIG_FILES,\n DEFAULT_IGNORE_PATTERNS,\n REACT_NATIVE_IGNORE_PATTERNS,\n RUNTIME_OVERRIDE_EXCLUDE_FILES,\n TEST_FILES,\n} from \"../constants.ts\";\nimport {\n BASE_LINT_PLUGINS,\n browserEnvironment,\n browserTestLint,\n cloudflareWorkerEnvironment,\n cloudflareWorkerLint,\n cloudflareWorkerTestLint,\n neutralEnvironment,\n neutralLint,\n nodeEnvironment,\n nodeLint,\n nodeTestLint,\n reactNativeRuntimeLint,\n} from \"./profiles.ts\";\nimport { browserRules } from \"./rules/browser.ts\";\nimport { nodeRules } from \"./rules/node.ts\";\nimport { reactCoreRules } from \"./rules/react-core.ts\";\nimport { reactDomRules } from \"./rules/react-dom.ts\";\nimport { reactNativeRules } from \"./rules/react-native.ts\";\nimport { universalRules } from \"./rules/universal.ts\";\n\nexport const baseLintConfig: LintConfig = {\n plugins: [...BASE_LINT_PLUGINS],\n ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],\n env: neutralEnvironment,\n globals: neutralLint.globals,\n options: {\n reportUnusedDisableDirectives: \"error\",\n typeAware: true,\n typeCheck: true,\n },\n categories: {\n correctness: \"error\",\n suspicious: \"error\",\n },\n extends: [{ rules: universalRules }],\n overrides: [\n {\n files: [...COMMONJS_FILES],\n ...nodeLint,\n rules: {\n ...nodeRules,\n \"typescript/no-require-imports\": \"off\",\n },\n },\n {\n files: [...CONFIG_FILES],\n ...nodeLint,\n rules: {\n ...nodeRules,\n \"func-names\": \"off\",\n },\n },\n {\n files: [\"**/*.d.ts\"],\n rules: {\n \"typescript/no-empty-interface\": \"off\",\n },\n },\n ],\n};\n\nexport const nodeRuntimeLintConfig: LintConfig = {\n env: nodeEnvironment,\n globals: nodeLint.globals,\n plugins: [\"node\"],\n extends: [{ rules: nodeRules }],\n};\n\nexport const browserRuntimeLintConfig: LintConfig = {\n env: browserEnvironment,\n globals: neutralLint.globals,\n overrides: [\n {\n files: [...CODE_FILES],\n excludeFiles: [...RUNTIME_OVERRIDE_EXCLUDE_FILES],\n rules: browserRules,\n },\n ],\n};\n\nexport const reactCoreLintConfig: LintConfig = {\n plugins: [\"react\"],\n extends: [{ rules: reactCoreRules }],\n};\n\nexport const reactDomLintConfig: LintConfig = {\n plugins: [\"jsx-a11y\"],\n extends: [{ rules: reactDomRules }],\n};\n\nexport const reactNativeRuntimeLintConfig: LintConfig = {\n env: reactNativeRuntimeLint.env,\n globals: reactNativeRuntimeLint.globals,\n extends: [{ rules: reactNativeRules }],\n};\n\nexport const cloudflareWorkerRuntimeLintConfig: LintConfig = {\n env: cloudflareWorkerEnvironment,\n globals: cloudflareWorkerLint.globals,\n};\n\nexport const reactNativeGeneratedLintConfig: LintConfig = {\n ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],\n};\n\nexport const cloudflareWorkerGeneratedLintConfig: LintConfig = {\n ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS],\n};\n\nexport const nodeTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...nodeTestLint,\n },\n ],\n};\n\nexport const browserTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...browserTestLint,\n },\n ],\n};\n\nexport const cloudflareWorkerTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...cloudflareWorkerTestLint,\n },\n ],\n};\n","import type { UserConfig } from \"vite-plus\";\nimport type { ConfigFragment } from \"./compose.ts\";\nimport { DEFAULT_STAGED_CHECK_COMMAND, DEFAULT_STAGED_CHECK_GLOB } from \"./constants.ts\";\nimport {\n baseFormatConfig,\n cloudflareWorkerFormatConfig,\n reactFormatConfig,\n reactNativeFormatConfig,\n} from \"./format.ts\";\nimport {\n baseLintConfig,\n browserRuntimeLintConfig,\n browserTestLintConfig as browserTestLintSettings,\n cloudflareWorkerGeneratedLintConfig,\n cloudflareWorkerRuntimeLintConfig,\n cloudflareWorkerTestLintConfig as cloudflareWorkerTestLintSettings,\n nodeRuntimeLintConfig,\n nodeTestLintConfig as nodeTestLintSettings,\n reactCoreLintConfig,\n reactDomLintConfig,\n reactNativeGeneratedLintConfig,\n reactNativeRuntimeLintConfig,\n} from \"./lint/configs.ts\";\n\ntype PackConfig = Exclude<UserConfig[\"pack\"], readonly unknown[] | undefined>;\n\nexport const baseToolingConfig: ConfigFragment = {\n fmt: baseFormatConfig,\n lint: baseLintConfig,\n staged: {\n [DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND,\n },\n};\n\nexport const nodeRuntimeConfig: ConfigFragment = {\n lint: nodeRuntimeLintConfig,\n};\n\nexport const browserRuntimeConfig: ConfigFragment = {\n lint: browserRuntimeLintConfig,\n};\n\nexport const reactCoreConfig: ConfigFragment = {\n fmt: reactFormatConfig,\n lint: reactCoreLintConfig,\n};\n\nexport const reactDomConfig: ConfigFragment = {\n lint: reactDomLintConfig,\n};\n\nexport const reactNativeRuntimeConfig: ConfigFragment = {\n lint: reactNativeRuntimeLintConfig,\n};\n\nexport const reactNativeGeneratedConfig: ConfigFragment = {\n fmt: reactNativeFormatConfig,\n lint: reactNativeGeneratedLintConfig,\n};\n\nexport const cloudflareWorkerRuntimeConfig: ConfigFragment = {\n lint: cloudflareWorkerRuntimeLintConfig,\n};\n\nexport const cloudflareWorkerGeneratedConfig: ConfigFragment = {\n fmt: cloudflareWorkerFormatConfig,\n lint: cloudflareWorkerGeneratedLintConfig,\n};\n\nexport const nodeTestLintConfig: ConfigFragment = {\n lint: nodeTestLintSettings,\n};\n\nexport const browserTestLintConfig: ConfigFragment = {\n lint: browserTestLintSettings,\n};\n\nexport const cloudflareWorkerTestLintConfig: ConfigFragment = {\n lint: cloudflareWorkerTestLintSettings,\n};\n\nexport const libraryPackDefaults: PackConfig = {\n clean: true,\n dts: true,\n format: [\"esm\"],\n sourcemap: true,\n};\n\nexport const libraryPackConfig: ConfigFragment = {\n pack: libraryPackDefaults,\n};\n\nexport const workspaceRunConfig: ConfigFragment = {\n run: {\n cache: {\n scripts: true,\n tasks: true,\n },\n enablePrePostScripts: true,\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["nodeTestLintConfig","browserTestLintConfig","cloudflareWorkerTestLintConfig","nodeTestLintSettings","browserTestLintSettings","cloudflareWorkerTestLintSettings"],"sources":["../../src/compose.ts","../../src/format.ts","../../src/lint/rules/browser.ts","../../src/lint/rules/node.ts","../../src/lint/rules/react-core.ts","../../src/lint/rules/react-dom.ts","../../src/lint/rules/react-native.ts","../../src/lint/rules/vitest.ts","../../src/lint/profiles.ts","../../src/lint/rules/universal.ts","../../src/lint/configs.ts","../../src/fragments.ts"],"sourcesContent":["import type { UserConfig } from \"vite-plus\";\nimport { defineConfig, mergeConfig } from \"vite-plus\";\n\ninterface NamedPlugin {\n readonly name: string;\n}\n\ntype PluginValue = NamedPlugin | false | null | undefined;\n\nexport type PluginInput = PluginValue | Promise<PluginInput> | readonly PluginInput[];\n\nexport type ConfigFragment = Omit<UserConfig, \"plugins\"> & {\n readonly plugins?: readonly PluginInput[];\n};\n\nfunction toUserConfig(config: ConfigFragment): UserConfig {\n // eslint-disable-next-line typescript/no-unsafe-type-assertion -- Vite's recursive PluginOption overflows TypeScript 7 when consumers pass an ordinary Plugin; ConfigFragment preserves the named-plugin boundary without recursive comparison.\n return config as UserConfig;\n}\n\nexport function composeConfig(...fragments: readonly ConfigFragment[]): UserConfig {\n let config: UserConfig = {};\n\n for (const fragment of fragments) {\n config = mergeConfig(config, toUserConfig(fragment));\n }\n\n return defineConfig(config);\n}\n","import type { UserConfig } from \"vite-plus\";\nimport {\n CLOUDFLARE_WORKER_IGNORE_PATTERNS,\n DEFAULT_IGNORE_PATTERNS,\n REACT_NATIVE_IGNORE_PATTERNS,\n} from \"./constants.ts\";\n\ntype FormatConfig = NonNullable<UserConfig[\"fmt\"]>;\n\nexport const baseFormatConfig: FormatConfig = {\n ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],\n sortImports: {\n internalPattern: [\"#\", \"@/\"],\n newlinesBetween: false,\n groups: [\n \"type-import\",\n [\"value-builtin\", \"value-external\"],\n \"type-internal\",\n \"value-internal\",\n [\"type-parent\", \"type-sibling\", \"type-index\"],\n [\"value-parent\", \"value-sibling\", \"value-index\"],\n \"unknown\",\n ],\n },\n};\n\nexport const reactFormatConfig: FormatConfig = {\n sortTailwindcss: {\n functions: [\"tv\"],\n },\n};\n\nexport const reactNativeFormatConfig: FormatConfig = {\n ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],\n};\n\nexport const cloudflareWorkerFormatConfig: FormatConfig = {\n ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS],\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const browserRules: LintRules = {\n \"no-alert\": \"error\",\n \"unicorn/prefer-classlist-toggle\": \"error\",\n \"unicorn/prefer-dom-node-append\": \"error\",\n \"unicorn/prefer-dom-node-dataset\": \"error\",\n \"unicorn/prefer-dom-node-remove\": \"error\",\n \"unicorn/prefer-dom-node-text-content\": \"error\",\n \"unicorn/prefer-keyboard-event-key\": \"error\",\n \"unicorn/prefer-modern-dom-apis\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const nodeRules: LintRules = {\n \"node/exports-style\": \"error\",\n \"node/global-require\": \"error\",\n \"node/no-exports-assign\": \"error\",\n \"node/no-mixed-requires\": \"error\",\n \"unicorn/prefer-node-protocol\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactCoreRules: LintRules = {\n \"react/display-name\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n namedComponents: \"function-declaration\",\n unnamedComponents: [\"arrow-function\", \"function-expression\"],\n },\n ],\n \"react/hook-use-state\": \"error\",\n \"react/jsx-boolean-value\": \"error\",\n \"react/jsx-curly-brace-presence\": \"error\",\n \"react/jsx-fragments\": \"error\",\n \"react/jsx-max-depth\": [\n \"error\",\n {\n max: 6,\n },\n ],\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/jsx-pascal-case\": \"error\",\n \"react/no-array-index-key\": \"error\",\n \"react/no-object-type-as-default-prop\": \"error\",\n \"react/no-redundant-should-component-update\": \"error\",\n \"react/no-set-state\": \"error\",\n \"react/prefer-es6-class\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n \"react/self-closing-comp\": \"error\",\n \"react/state-in-constructor\": \"error\",\n \"react/exhaustive-deps\": \"error\",\n \"react/react-compiler\": \"error\",\n \"react/react-in-jsx-scope\": \"off\",\n \"react/jsx-key\": \"error\",\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-clone-element\": \"error\",\n \"react/no-direct-mutation-state\": \"error\",\n \"react/no-react-children\": \"error\",\n \"react/no-string-refs\": \"error\",\n \"react/no-unsafe\": \"error\",\n \"react/style-prop-object\": \"off\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactDomRules: LintRules = {\n \"react/checked-requires-onchange-or-readonly\": \"error\",\n \"react/jsx-no-target-blank\": \"error\",\n \"react/no-unescaped-entities\": \"error\",\n \"react/no-danger\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-find-dom-node\": \"error\",\n \"react/no-unknown-property\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactNativeRules: LintRules = {\n \"react/iframe-missing-sandbox\": \"off\",\n \"react/jsx-no-script-url\": \"off\",\n \"react/no-unknown-property\": \"off\",\n \"react/no-unescaped-entities\": \"off\",\n \"react/no-unstable-nested-components\": [\n \"error\",\n {\n allowAsProps: true,\n },\n ],\n \"react/void-dom-elements-no-children\": \"off\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const vitestRules: LintRules = {\n \"max-nested-callbacks\": [\n \"error\",\n {\n max: 4,\n },\n ],\n \"vitest/consistent-each-for\": \"error\",\n \"vitest/consistent-test-it\": [\n \"error\",\n {\n fn: \"test\",\n withinDescribe: \"it\",\n },\n ],\n \"vitest/consistent-vitest-vi\": \"error\",\n \"vitest/max-nested-describe\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"vitest/no-alias-methods\": \"error\",\n \"vitest/no-duplicate-hooks\": \"error\",\n \"vitest/no-identical-title\": \"error\",\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/no-interpolation-in-snapshots\": \"error\",\n \"vitest/no-large-snapshots\": \"error\",\n \"vitest/no-mocks-import\": \"error\",\n \"vitest/no-test-prefixes\": \"error\",\n \"vitest/no-test-return-statement\": \"error\",\n \"vitest/no-unneeded-async-expect-function\": \"error\",\n \"vitest/padding-around-after-all-blocks\": \"error\",\n \"vitest/padding-around-test-blocks\": \"error\",\n \"vitest/prefer-called-exactly-once-with\": \"error\",\n \"vitest/prefer-called-once\": \"error\",\n \"vitest/prefer-called-with\": \"error\",\n \"vitest/prefer-comparison-matcher\": \"error\",\n \"vitest/prefer-each\": \"error\",\n \"vitest/prefer-equality-matcher\": \"error\",\n \"vitest/prefer-expect-resolves\": \"error\",\n \"vitest/prefer-expect-type-of\": \"error\",\n \"vitest/prefer-hooks-in-order\": \"error\",\n \"vitest/prefer-hooks-on-top\": \"error\",\n \"vitest/prefer-import-in-mock\": \"error\",\n \"vitest/prefer-importing-vitest-globals\": \"error\",\n \"vitest/prefer-mock-promise-shorthand\": \"error\",\n \"vitest/prefer-mock-return-shorthand\": \"error\",\n \"vitest/prefer-spy-on\": \"error\",\n \"vitest/prefer-strict-boolean-matchers\": \"error\",\n \"vitest/prefer-strict-equal\": \"error\",\n \"vitest/prefer-to-be\": \"error\",\n \"vitest/prefer-to-be-object\": \"error\",\n \"vitest/prefer-to-contain\": \"error\",\n \"vitest/prefer-to-have-been-called-times\": \"error\",\n \"vitest/prefer-to-have-length\": \"error\",\n \"vitest/prefer-todo\": \"error\",\n};\n","import type { LintConfig, LintProfile } from \"./types.ts\";\nimport { browserRules } from \"./rules/browser.ts\";\nimport { nodeRules } from \"./rules/node.ts\";\nimport { reactCoreRules } from \"./rules/react-core.ts\";\nimport { reactDomRules } from \"./rules/react-dom.ts\";\nimport { reactNativeRules } from \"./rules/react-native.ts\";\nimport { vitestRules } from \"./rules/vitest.ts\";\n\nexport const BASE_LINT_PLUGINS = [\"typescript\", \"unicorn\", \"oxc\", \"import\", \"promise\"] as const;\n\nexport const neutralEnvironment: NonNullable<LintConfig[\"env\"]> = {\n browser: false,\n node: false,\n serviceworker: false,\n worker: false,\n} as const;\n\nexport const nodeEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n node: true,\n} as const;\n\nexport const browserEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n browser: true,\n} as const;\n\nexport const reactNativeEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n} as const;\n\nexport const cloudflareWorkerEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n serviceworker: true,\n worker: true,\n} as const;\n\nconst platformGlobalsOff = {\n __DEV__: \"off\",\n Cloudflare: \"off\",\n DigestStream: \"off\",\n FixedLengthStream: \"off\",\n HTMLRewriter: \"off\",\n IdentityTransformStream: \"off\",\n process: \"off\",\n WebSocketPair: \"off\",\n WebSocketRequestResponsePair: \"off\",\n} as const;\n\nconst nodeGlobals = {\n ...platformGlobalsOff,\n console: \"readonly\",\n process: \"readonly\",\n} as const;\n\nconst cloudflareWorkerGlobals = {\n ...platformGlobalsOff,\n Cloudflare: \"readonly\",\n DigestStream: \"readonly\",\n FixedLengthStream: \"readonly\",\n HTMLRewriter: \"readonly\",\n IdentityTransformStream: \"readonly\",\n WebSocketPair: \"readonly\",\n WebSocketRequestResponsePair: \"readonly\",\n} as const;\n\nexport const neutralLint: LintProfile = {\n env: neutralEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS],\n};\n\nexport const nodeLint: LintProfile = {\n env: nodeEnvironment,\n globals: nodeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"node\"],\n rules: nodeRules,\n};\n\nexport const browserLint: LintProfile = {\n env: browserEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS],\n rules: browserRules,\n};\n\nexport const reactCoreLint: LintProfile = {\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: reactCoreRules,\n};\n\nexport const reactDomLint: LintProfile = {\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jsx-a11y\"],\n rules: reactDomRules,\n};\n\nconst reactNativeGlobals = {\n ...platformGlobalsOff,\n __BUNDLE_START_TIME__: \"readonly\",\n __DEV__: \"readonly\",\n AbortController: \"readonly\",\n AbortSignal: \"readonly\",\n alert: \"readonly\",\n Blob: \"readonly\",\n cancelAnimationFrame: \"readonly\",\n clearImmediate: \"readonly\",\n clearInterval: \"readonly\",\n clearTimeout: \"readonly\",\n console: \"readonly\",\n crypto: \"readonly\",\n DOMRect: \"readonly\",\n ErrorUtils: \"readonly\",\n Event: \"readonly\",\n EventTarget: \"readonly\",\n fetch: \"readonly\",\n fetchBundle: \"readonly\",\n File: \"readonly\",\n FileReader: \"readonly\",\n FormData: \"readonly\",\n Headers: \"readonly\",\n HermesInternal: \"readonly\",\n navigator: \"readonly\",\n originalXMLHttpRequest: \"readonly\",\n performance: \"readonly\",\n process: \"readonly\",\n queueMicrotask: \"readonly\",\n requestAnimationFrame: \"readonly\",\n Request: \"readonly\",\n require: \"readonly\",\n Response: \"readonly\",\n setImmediate: \"readonly\",\n setInterval: \"readonly\",\n setTimeout: \"readonly\",\n URL: \"readonly\",\n URLSearchParams: \"readonly\",\n WebSocket: \"readonly\",\n XMLHttpRequest: \"readonly\",\n XMLHttpRequestUpload: \"readonly\",\n} as const;\n\nexport const reactNativeRuntimeLint: LintProfile = {\n env: reactNativeEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: reactNativeRules,\n};\n\nexport const reactWebLint: LintProfile = {\n env: browserEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jsx-a11y\"],\n rules: {\n ...browserRules,\n ...reactCoreRules,\n ...reactDomRules,\n },\n};\n\nexport const reactNativeLint: LintProfile = {\n env: reactNativeEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: {\n ...reactCoreRules,\n ...reactNativeRules,\n },\n};\n\nexport const cloudflareWorkerLint: LintProfile = {\n env: cloudflareWorkerEnvironment,\n globals: cloudflareWorkerGlobals,\n plugins: [...BASE_LINT_PLUGINS],\n};\n\nexport const nodeTestLint: LintProfile = {\n ...nodeLint,\n plugins: [...BASE_LINT_PLUGINS, \"node\", \"vitest\"],\n rules: {\n ...nodeRules,\n ...vitestRules,\n },\n};\n\nexport const browserTestLint: LintProfile = {\n ...browserLint,\n plugins: [...BASE_LINT_PLUGINS, \"vitest\"],\n rules: {\n ...browserRules,\n ...vitestRules,\n },\n};\n\nexport const cloudflareWorkerTestLint: LintProfile = {\n ...cloudflareWorkerLint,\n plugins: [...BASE_LINT_PLUGINS, \"vitest\"],\n rules: vitestRules,\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const universalRules: LintRules = {\n \"accessor-pairs\": \"error\",\n \"array-callback-return\": \"error\",\n \"arrow-body-style\": \"error\",\n curly: [\"error\", \"multi-line\", \"consistent\"],\n \"default-case-last\": \"error\",\n \"default-param-last\": \"error\",\n eqeqeq: \"error\",\n \"func-name-matching\": \"error\",\n \"func-names\": \"error\",\n \"grouped-accessor-pairs\": [\"error\", \"getBeforeSet\"],\n \"guard-for-in\": \"error\",\n \"import/consistent-type-specifier-style\": \"error\",\n \"import/first\": \"error\",\n \"import/newline-after-import\": \"error\",\n \"import/no-duplicates\": \"error\",\n \"import/no-mutable-exports\": \"error\",\n \"import/no-named-default\": \"error\",\n \"logical-assignment-operators\": \"error\",\n \"max-depth\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"max-nested-callbacks\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"max-params\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"no-array-constructor\": \"error\",\n \"no-await-in-loop\": \"error\",\n \"no-case-declarations\": \"error\",\n \"no-constructor-return\": \"error\",\n \"no-else-return\": \"error\",\n \"no-empty\": \"error\",\n \"no-extra-label\": \"error\",\n \"no-fallthrough\": \"error\",\n \"no-implicit-coercion\": \"error\",\n \"no-inline-comments\": \"error\",\n \"no-inner-declarations\": \"error\",\n \"no-label-var\": \"error\",\n \"no-labels\": \"error\",\n \"no-lone-blocks\": \"error\",\n \"no-lonely-if\": \"error\",\n \"no-loop-func\": \"error\",\n \"no-multi-assign\": \"error\",\n \"no-multi-str\": \"error\",\n \"no-nested-ternary\": \"error\",\n \"no-new-func\": \"error\",\n \"no-new-wrappers\": \"error\",\n \"no-object-constructor\": \"error\",\n \"no-promise-executor-return\": \"error\",\n \"no-prototype-builtins\": \"error\",\n \"no-redeclare\": \"error\",\n \"no-return-assign\": \"error\",\n \"no-script-url\": \"error\",\n \"no-self-compare\": \"error\",\n \"no-template-curly-in-string\": \"error\",\n \"no-useless-call\": \"error\",\n \"no-useless-computed-key\": \"error\",\n \"no-useless-return\": \"error\",\n \"no-warning-comments\": \"error\",\n \"object-shorthand\": \"error\",\n \"operator-assignment\": \"error\",\n \"oxc/branches-sharing-code\": \"error\",\n \"oxc/no-accumulating-spread\": \"error\",\n \"oxc/no-map-spread\": \"error\",\n \"prefer-arrow-callback\": \"error\",\n \"prefer-const\": \"error\",\n \"prefer-destructuring\": \"error\",\n \"prefer-exponentiation-operator\": \"error\",\n \"prefer-named-capture-group\": \"error\",\n \"prefer-numeric-literals\": \"error\",\n \"prefer-object-has-own\": \"error\",\n \"prefer-object-spread\": \"error\",\n \"prefer-regex-literals\": \"error\",\n \"prefer-rest-params\": \"error\",\n \"prefer-spread\": \"error\",\n \"prefer-template\": \"error\",\n \"promise/no-nesting\": \"error\",\n \"promise/no-return-wrap\": \"error\",\n \"promise/param-names\": \"error\",\n \"promise/prefer-await-to-then\": \"error\",\n \"promise/prefer-catch\": \"error\",\n radix: \"error\",\n \"symbol-description\": \"error\",\n \"typescript/adjacent-overload-signatures\": \"error\",\n \"typescript/array-type\": \"error\",\n \"typescript/ban-ts-comment\": [\n \"error\",\n {\n minimumDescriptionLength: 10,\n },\n ],\n \"typescript/ban-tslint-comment\": \"error\",\n \"typescript/class-literal-property-style\": \"error\",\n \"typescript/consistent-generic-constructors\": \"error\",\n \"typescript/consistent-indexed-object-style\": \"error\",\n \"typescript/consistent-type-assertions\": \"error\",\n \"typescript/consistent-type-exports\": \"error\",\n \"typescript/consistent-type-imports\": [\n \"error\",\n {\n prefer: \"type-imports\",\n fixStyle: \"separate-type-imports\",\n },\n ],\n \"typescript/dot-notation\": \"error\",\n \"typescript/method-signature-style\": \"error\",\n \"typescript/no-confusing-void-expression\": \"error\",\n \"typescript/no-deprecated\": \"error\",\n \"typescript/no-empty-object-type\": \"error\",\n \"typescript/no-inferrable-types\": \"error\",\n \"typescript/no-misused-promises\": \"error\",\n \"typescript/no-mixed-enums\": \"error\",\n \"typescript/no-unnecessary-qualifier\": \"error\",\n \"typescript/no-unsafe-argument\": \"error\",\n \"typescript/no-unsafe-assignment\": \"error\",\n \"typescript/no-unsafe-call\": \"error\",\n \"typescript/no-unsafe-function-type\": \"error\",\n \"typescript/no-unsafe-member-access\": \"error\",\n \"typescript/no-unsafe-return\": \"error\",\n \"typescript/no-wrapper-object-types\": \"error\",\n \"typescript/only-throw-error\": \"error\",\n \"typescript/parameter-properties\": \"error\",\n \"typescript/prefer-enum-initializers\": \"error\",\n \"typescript/prefer-find\": \"error\",\n \"typescript/prefer-for-of\": \"error\",\n \"typescript/prefer-function-type\": \"error\",\n \"typescript/prefer-includes\": \"error\",\n \"typescript/prefer-nullish-coalescing\": \"error\",\n \"typescript/prefer-promise-reject-errors\": \"error\",\n \"typescript/prefer-readonly\": \"error\",\n \"typescript/prefer-reduce-type-parameter\": \"error\",\n \"typescript/prefer-regexp-exec\": \"error\",\n \"typescript/prefer-return-this-type\": \"error\",\n \"typescript/prefer-string-starts-ends-with\": \"error\",\n \"typescript/related-getter-setter-pairs\": \"error\",\n \"typescript/restrict-plus-operands\": \"error\",\n \"typescript/return-await\": \"error\",\n \"typescript/strict-boolean-expressions\": \"error\",\n \"typescript/strict-void-return\": \"error\",\n \"typescript/switch-exhaustiveness-check\": \"error\",\n \"typescript/unified-signatures\": \"error\",\n \"unicorn/catch-error-name\": \"error\",\n \"unicorn/consistent-assert\": \"error\",\n \"unicorn/consistent-date-clone\": \"error\",\n \"unicorn/consistent-empty-array-spread\": \"error\",\n \"unicorn/consistent-existence-index-check\": \"error\",\n \"unicorn/consistent-template-literal-escape\": \"error\",\n \"unicorn/custom-error-definition\": \"error\",\n \"unicorn/error-message\": \"error\",\n \"unicorn/escape-case\": \"error\",\n \"unicorn/explicit-length-check\": \"error\",\n \"unicorn/explicit-timer-delay\": \"error\",\n \"unicorn/filename-case\": [\n \"error\",\n {\n case: \"kebabCase\",\n },\n ],\n \"unicorn/max-nested-calls\": [\n \"error\",\n {\n max: 5,\n },\n ],\n \"unicorn/new-for-builtins\": \"error\",\n \"unicorn/no-array-callback-reference\": \"error\",\n \"unicorn/no-array-method-this-argument\": \"error\",\n \"unicorn/no-await-expression-member\": \"error\",\n \"unicorn/no-console-spaces\": \"error\",\n \"unicorn/no-hex-escape\": \"error\",\n \"unicorn/no-immediate-mutation\": \"error\",\n \"unicorn/no-instanceof-array\": \"error\",\n \"unicorn/no-negation-in-equality-check\": \"error\",\n \"unicorn/no-new-buffer\": \"error\",\n \"unicorn/no-static-only-class\": \"error\",\n \"unicorn/no-this-assignment\": \"error\",\n \"unicorn/no-typeof-undefined\": \"error\",\n \"unicorn/no-unnecessary-array-flat-depth\": \"error\",\n \"unicorn/no-unnecessary-array-splice-count\": \"error\",\n \"unicorn/no-unnecessary-slice-end\": \"error\",\n \"unicorn/no-unreadable-array-destructuring\": \"error\",\n \"unicorn/no-unreadable-iife\": \"error\",\n \"unicorn/no-useless-collection-argument\": \"error\",\n \"unicorn/no-useless-promise-resolve-reject\": \"error\",\n \"unicorn/no-useless-switch-case\": \"error\",\n \"unicorn/no-useless-undefined\": \"error\",\n \"unicorn/no-zero-fractions\": \"error\",\n \"unicorn/number-literal-case\": \"error\",\n \"unicorn/numeric-separators-style\": \"error\",\n \"unicorn/prefer-array-find\": \"error\",\n \"unicorn/prefer-array-flat\": \"error\",\n \"unicorn/prefer-array-flat-map\": \"error\",\n \"unicorn/prefer-array-index-of\": \"error\",\n \"unicorn/prefer-array-some\": \"error\",\n \"unicorn/prefer-at\": \"error\",\n \"unicorn/prefer-bigint-literals\": \"error\",\n \"unicorn/prefer-blob-reading-methods\": \"error\",\n \"unicorn/prefer-class-fields\": \"error\",\n \"unicorn/prefer-code-point\": \"error\",\n \"unicorn/prefer-date-now\": \"error\",\n \"unicorn/prefer-default-parameters\": \"error\",\n \"unicorn/prefer-export-from\": \"error\",\n \"unicorn/prefer-global-this\": \"error\",\n \"unicorn/prefer-import-meta-properties\": \"error\",\n \"unicorn/prefer-includes\": \"error\",\n \"unicorn/prefer-logical-operator-over-ternary\": \"error\",\n \"unicorn/prefer-math-min-max\": \"error\",\n \"unicorn/prefer-math-trunc\": \"error\",\n \"unicorn/prefer-native-coercion-functions\": \"error\",\n \"unicorn/prefer-negative-index\": \"error\",\n \"unicorn/prefer-number-coercion\": \"error\",\n \"unicorn/prefer-object-from-entries\": \"error\",\n \"unicorn/prefer-optional-catch-binding\": \"error\",\n \"unicorn/prefer-prototype-methods\": \"error\",\n \"unicorn/prefer-reflect-apply\": \"error\",\n \"unicorn/prefer-regexp-test\": \"error\",\n \"unicorn/prefer-response-static-json\": \"error\",\n \"unicorn/prefer-set-has\": \"error\",\n \"unicorn/prefer-single-call\": \"error\",\n \"unicorn/prefer-spread\": \"error\",\n \"unicorn/prefer-string-raw\": \"error\",\n \"unicorn/prefer-string-replace-all\": \"error\",\n \"unicorn/prefer-string-slice\": \"error\",\n \"unicorn/prefer-string-trim-start-end\": \"error\",\n \"unicorn/prefer-structured-clone\": \"error\",\n \"unicorn/prefer-ternary\": [\"error\", \"only-single-line\"],\n \"unicorn/prefer-type-error\": \"error\",\n \"unicorn/relative-url-style\": \"error\",\n \"unicorn/require-array-join-separator\": \"error\",\n \"unicorn/require-module-attributes\": \"error\",\n \"unicorn/require-number-to-fixed-digits-argument\": \"error\",\n \"unicorn/switch-case-braces\": \"error\",\n \"unicorn/switch-case-break-position\": \"error\",\n \"unicorn/text-encoding-identifier-case\": \"error\",\n \"unicorn/throw-new-error\": \"error\",\n yoda: \"error\",\n complexity: [\n \"error\",\n {\n max: 20,\n },\n ],\n \"getter-return\": \"error\",\n \"no-bitwise\": \"error\",\n \"no-console\": [\n \"error\",\n {\n allow: [\"info\", \"warn\", \"error\"],\n },\n ],\n \"no-param-reassign\": [\n \"error\",\n {\n props: true,\n },\n ],\n \"no-plusplus\": \"error\",\n \"no-undef\": \"error\",\n \"no-unneeded-ternary\": \"error\",\n \"no-unreachable\": \"error\",\n \"import/no-cycle\": \"error\",\n \"import/no-unassigned-import\": \"off\",\n \"oxc/bad-match-all-arg\": \"error\",\n \"typescript/consistent-return\": \"error\",\n \"typescript/explicit-module-boundary-types\": \"error\",\n \"typescript/no-dynamic-delete\": \"error\",\n \"typescript/no-explicit-any\": \"error\",\n \"typescript/no-floating-promises\": \"error\",\n \"typescript/no-misused-spread\": \"error\",\n \"typescript/no-non-null-assertion\": \"error\",\n \"typescript/no-require-imports\": \"error\",\n \"typescript/no-unnecessary-condition\": \"error\",\n \"typescript/no-unnecessary-type-arguments\": \"error\",\n \"typescript/no-unnecessary-type-assertion\": \"error\",\n \"typescript/no-unnecessary-type-parameters\": \"error\",\n \"typescript/no-useless-default-assignment\": \"error\",\n \"typescript/non-nullable-type-assertion-style\": \"error\",\n \"typescript/prefer-optional-chain\": \"error\",\n \"typescript/require-array-sort-compare\": \"error\",\n \"typescript/restrict-template-expressions\": \"error\",\n \"typescript/unbound-method\": \"error\",\n \"typescript/use-unknown-in-catch-callback-variable\": \"error\",\n \"unicorn/no-abusive-eslint-disable\": \"error\",\n};\n","import type { LintConfig } from \"./types.ts\";\nimport {\n CLOUDFLARE_WORKER_IGNORE_PATTERNS,\n CODE_FILES,\n COMMONJS_FILES,\n CONFIG_FILES,\n DEFAULT_IGNORE_PATTERNS,\n REACT_NATIVE_IGNORE_PATTERNS,\n RUNTIME_OVERRIDE_EXCLUDE_FILES,\n TEST_FILES,\n} from \"../constants.ts\";\nimport {\n BASE_LINT_PLUGINS,\n browserEnvironment,\n browserTestLint,\n cloudflareWorkerEnvironment,\n cloudflareWorkerLint,\n cloudflareWorkerTestLint,\n neutralEnvironment,\n neutralLint,\n nodeEnvironment,\n nodeLint,\n nodeTestLint,\n reactNativeRuntimeLint,\n} from \"./profiles.ts\";\nimport { browserRules } from \"./rules/browser.ts\";\nimport { nodeRules } from \"./rules/node.ts\";\nimport { reactCoreRules } from \"./rules/react-core.ts\";\nimport { reactDomRules } from \"./rules/react-dom.ts\";\nimport { reactNativeRules } from \"./rules/react-native.ts\";\nimport { universalRules } from \"./rules/universal.ts\";\n\nexport const baseLintConfig: LintConfig = {\n plugins: [...BASE_LINT_PLUGINS],\n ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],\n env: neutralEnvironment,\n globals: neutralLint.globals,\n options: {\n reportUnusedDisableDirectives: \"error\",\n typeAware: true,\n typeCheck: true,\n },\n categories: {\n correctness: \"error\",\n suspicious: \"error\",\n },\n extends: [{ rules: universalRules }],\n overrides: [\n {\n files: [...COMMONJS_FILES],\n ...nodeLint,\n rules: {\n ...nodeRules,\n \"typescript/no-require-imports\": \"off\",\n },\n },\n {\n files: [...CONFIG_FILES],\n ...nodeLint,\n rules: {\n ...nodeRules,\n \"func-names\": \"off\",\n },\n },\n {\n files: [\"**/*.d.ts\"],\n rules: {\n \"typescript/no-empty-object-type\": \"off\",\n },\n },\n ],\n};\n\nexport const nodeRuntimeLintConfig: LintConfig = {\n env: nodeEnvironment,\n globals: nodeLint.globals,\n plugins: [\"node\"],\n extends: [{ rules: nodeRules }],\n};\n\nexport const browserRuntimeLintConfig: LintConfig = {\n env: browserEnvironment,\n globals: neutralLint.globals,\n overrides: [\n {\n files: [...CODE_FILES],\n excludeFiles: [...RUNTIME_OVERRIDE_EXCLUDE_FILES],\n rules: browserRules,\n },\n ],\n};\n\nexport const reactCoreLintConfig: LintConfig = {\n plugins: [\"react\"],\n extends: [{ rules: reactCoreRules }],\n};\n\nexport const reactDomLintConfig: LintConfig = {\n plugins: [\"jsx-a11y\"],\n extends: [{ rules: reactDomRules }],\n};\n\nexport const reactNativeRuntimeLintConfig: LintConfig = {\n env: reactNativeRuntimeLint.env,\n globals: reactNativeRuntimeLint.globals,\n extends: [{ rules: reactNativeRules }],\n};\n\nexport const cloudflareWorkerRuntimeLintConfig: LintConfig = {\n env: cloudflareWorkerEnvironment,\n globals: cloudflareWorkerLint.globals,\n};\n\nexport const reactNativeGeneratedLintConfig: LintConfig = {\n ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],\n};\n\nexport const cloudflareWorkerGeneratedLintConfig: LintConfig = {\n ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS],\n};\n\nexport const nodeTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...nodeTestLint,\n },\n ],\n};\n\nexport const browserTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...browserTestLint,\n },\n ],\n};\n\nexport const cloudflareWorkerTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...cloudflareWorkerTestLint,\n },\n ],\n};\n","import type { UserConfig } from \"vite-plus\";\nimport type { ConfigFragment } from \"./compose.ts\";\nimport {\n DEFAULT_STAGED_CHECK_COMMAND,\n DEFAULT_STAGED_CHECK_GLOB,\n DEFAULT_STAGED_FORMAT_COMMAND,\n DEFAULT_STAGED_FORMAT_GLOB,\n} from \"./constants.ts\";\nimport {\n baseFormatConfig,\n cloudflareWorkerFormatConfig,\n reactFormatConfig,\n reactNativeFormatConfig,\n} from \"./format.ts\";\nimport {\n baseLintConfig,\n browserRuntimeLintConfig,\n browserTestLintConfig as browserTestLintSettings,\n cloudflareWorkerGeneratedLintConfig,\n cloudflareWorkerRuntimeLintConfig,\n cloudflareWorkerTestLintConfig as cloudflareWorkerTestLintSettings,\n nodeRuntimeLintConfig,\n nodeTestLintConfig as nodeTestLintSettings,\n reactCoreLintConfig,\n reactDomLintConfig,\n reactNativeGeneratedLintConfig,\n reactNativeRuntimeLintConfig,\n} from \"./lint/configs.ts\";\n\ntype PackConfig = Exclude<UserConfig[\"pack\"], readonly unknown[] | undefined>;\n\nexport const baseToolingConfig: ConfigFragment = {\n fmt: baseFormatConfig,\n lint: baseLintConfig,\n staged: {\n [DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND,\n [DEFAULT_STAGED_FORMAT_GLOB]: DEFAULT_STAGED_FORMAT_COMMAND,\n },\n};\n\nexport const nodeRuntimeConfig: ConfigFragment = {\n lint: nodeRuntimeLintConfig,\n};\n\nexport const browserRuntimeConfig: ConfigFragment = {\n lint: browserRuntimeLintConfig,\n};\n\nexport const reactCoreConfig: ConfigFragment = {\n fmt: reactFormatConfig,\n lint: reactCoreLintConfig,\n};\n\nexport const reactDomConfig: ConfigFragment = {\n lint: reactDomLintConfig,\n};\n\nexport const reactNativeRuntimeConfig: ConfigFragment = {\n lint: reactNativeRuntimeLintConfig,\n};\n\nexport const reactNativeGeneratedConfig: ConfigFragment = {\n fmt: reactNativeFormatConfig,\n lint: reactNativeGeneratedLintConfig,\n};\n\nexport const cloudflareWorkerRuntimeConfig: ConfigFragment = {\n lint: cloudflareWorkerRuntimeLintConfig,\n};\n\nexport const cloudflareWorkerGeneratedConfig: ConfigFragment = {\n fmt: cloudflareWorkerFormatConfig,\n lint: cloudflareWorkerGeneratedLintConfig,\n};\n\nexport const nodeTestLintConfig: ConfigFragment = {\n lint: nodeTestLintSettings,\n};\n\nexport const browserTestLintConfig: ConfigFragment = {\n lint: browserTestLintSettings,\n};\n\nexport const cloudflareWorkerTestLintConfig: ConfigFragment = {\n lint: cloudflareWorkerTestLintSettings,\n};\n\nexport const libraryPackDefaults: PackConfig = {\n attw: {\n level: \"error\",\n profile: \"esm-only\",\n },\n clean: true,\n dts: true,\n format: [\"esm\"],\n publint: {\n strict: true,\n },\n sourcemap: true,\n};\n\nexport const libraryPackConfig: ConfigFragment = {\n pack: libraryPackDefaults,\n};\n\nexport const workspaceRunConfig: ConfigFragment = {\n run: {\n cache: {\n scripts: true,\n tasks: true,\n },\n enablePrePostScripts: true,\n },\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kasoa/vite-plus-config",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Kasoa's Vite+ configurations",
5
5
  "keywords": [
6
6
  "config",
@@ -42,20 +42,20 @@
42
42
  "access": "public"
43
43
  },
44
44
  "devDependencies": {
45
- "@cloudflare/vitest-pool-workers": "^0.20.2",
46
- "@types/node": "^24.13.3",
45
+ "@cloudflare/vitest-plugin": "1.0.0",
46
+ "@types/node": "24.13.3",
47
47
  "typescript": "^7.0.2",
48
- "vite-plus": "^0.2.8",
49
- "wrangler": "^4.119.0"
48
+ "vite-plus": "^0.2.9",
49
+ "wrangler": "^4.125.0"
50
50
  },
51
51
  "peerDependencies": {
52
- "@cloudflare/vitest-pool-workers": ">=0.13.0 <1",
52
+ "@cloudflare/vitest-plugin": "^1.0.0",
53
53
  "typescript": ">=7 <8",
54
- "vite-plus": ">=0.2.8 <1",
54
+ "vite-plus": ">=0.2.9 <1",
55
55
  "wrangler": ">=4 <5"
56
56
  },
57
57
  "peerDependenciesMeta": {
58
- "@cloudflare/vitest-pool-workers": {
58
+ "@cloudflare/vitest-plugin": {
59
59
  "optional": true
60
60
  },
61
61
  "wrangler": {
@@ -71,6 +71,6 @@
71
71
  "check": "vp check",
72
72
  "check:fix": "vp check --fix",
73
73
  "test": "vp test --passWithNoTests",
74
- "verify:package": "publint --pack pnpm --strict && attw --pack --profile esm-only && node scripts/verify-packed-exports.mts"
74
+ "verify:package": "node scripts/verify-packed-exports.mts"
75
75
  }
76
76
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"compose-Cichpffs.d.mts","names":[],"sources":["../src/compose.ts"],"mappings":";;UAGU;WACC;;KAGN,cAAc;KAEP,cAAc,uBAAuB;KAErC,iBAAiB,KAAK;WACvB,mBAAmB;;iBAQd,iBAAiB,oBAAoB,mBAAmB"}