@kasoa/vite-plus-config 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -69,7 +69,7 @@ export default composeConfig(
69
69
  );
70
70
  ```
71
71
 
72
- The native fragment permits React Native's `__DEV__` and Expo's statically replaced `process.env`, rejects DOM and Worker globals, excludes DOM accessibility rules, and ignores `.expo` output. `reactNativeTestLintConfig` assigns portable test files to Vitest and `*.native.test.*` or `*.native.spec.*` files to Jest.
72
+ The native fragment permits React Native's `__DEV__` and Expo's statically replaced `process.env`, rejects DOM and Worker globals, excludes DOM accessibility rules, and ignores `.expo` output. It also follows the bundled Hermes runtime: `toReversed()` remains preferred, while APIs that Hermes lacks are rejected: `toSorted()`, `Array.fromAsync`, `RegExp.escape`, `Temporal`, and `Intl.RelativeTimeFormat`, `PluralRules`, `ListFormat`, `Segmenter` and `DisplayNames`. Copied arrays may use `sort()`. `reactNativeTestLintConfig` assigns portable test files to Vitest and `*.native.test.*` or `*.native.spec.*` files to Jest.
73
73
 
74
74
  ## Libraries and workspaces
75
75
 
@@ -181,12 +181,14 @@ Configuration and CommonJS files receive the Node profile from `baseToolingConfi
181
181
 
182
182
  ## Cloudflare Workers tests
183
183
 
184
- Install the optional peers:
184
+ Install the optional peer:
185
185
 
186
186
  ```bash
187
- pnpm add -D @cloudflare/vitest-plugin@^1 wrangler@^4
187
+ pnpm add -D @cloudflare/vitest-plugin@^1
188
188
  ```
189
189
 
190
+ `@cloudflare/vitest-plugin` 1.x supports Vitest 4 only, so Workers tests need Vite+ 0.3 until Cloudflare adds Vitest 5 support. The rest of this package also works with Vite+ 1.x.
191
+
190
192
  ```ts
191
193
  import {
192
194
  baseToolingConfig,
@@ -219,7 +221,9 @@ export default composeConfig(
219
221
  );
220
222
  ```
221
223
 
222
- Wrangler owns Worker development, builds, type generation, and deployment. Vite+ owns checks and workerd tests.
224
+ `createCloudflareTestConfig` reads `cloudflare.config.ts` when the project has one (the `cf` CLI format) and `wrangler.jsonc` otherwise; pass `wrangler.configPath` to choose a file explicitly. The `cf` CLI or Wrangler owns Worker development, builds, type generation, and deployment. Vite+ owns checks and workerd tests. Generated `.cloudflare/` and `.wrangler/` output is ignored.
225
+
226
+ With `cloudflare.config.ts`, `@cloudflare/vitest-plugin` renames the Worker under test, so a Durable Object binding that points back at the same Worker fails to start. Bind the local class directly in the test options: `createCloudflareTestConfig({ miniflare: { durableObjects: { MY_OBJECT: "MyObject" } } })`.
223
227
 
224
228
  ## Overrides
225
229
 
@@ -21,6 +21,7 @@ const DEFAULT_IGNORE_PATTERNS = [
21
21
  "dist/**",
22
22
  "dist-ssr/**",
23
23
  "**/.wrangler/**",
24
+ "**/.cloudflare/**",
24
25
  "**/migrations/**",
25
26
  "**/drizzle/migrations.js",
26
27
  "**/drizzle/meta/*.json"
@@ -32,7 +33,8 @@ const DEFAULT_STAGED_CHECK_COMMAND = "vp check --fix";
32
33
  const DEFAULT_STAGED_FORMAT_GLOB = "*.{css,html,json,jsonc,less,md,mdx,scss,yaml,yml}";
33
34
  const DEFAULT_STAGED_FORMAT_COMMAND = "vp fmt --write --no-error-on-unmatched-pattern";
34
35
  const DEFAULT_WRANGLER_CONFIG_PATH = "./wrangler.jsonc";
36
+ const CLOUDFLARE_CONFIG_PATH = "./cloudflare.config.ts";
35
37
  //#endregion
36
- export { DEFAULT_IGNORE_PATTERNS as a, DEFAULT_STAGED_FORMAT_COMMAND as c, REACT_NATIVE_IGNORE_PATTERNS as d, REACT_NATIVE_JEST_SETUP_FILES as f, VITEST_SETUP_FILES as g, TEST_FILES as h, CONFIG_FILES as i, DEFAULT_STAGED_FORMAT_GLOB as l, RUNTIME_OVERRIDE_EXCLUDE_FILES as m, CODE_FILES as n, DEFAULT_STAGED_CHECK_COMMAND as o, REACT_NATIVE_JEST_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 };
38
+ export { VITEST_SETUP_FILES as _, CONFIG_FILES as a, DEFAULT_STAGED_CHECK_GLOB as c, DEFAULT_WRANGLER_CONFIG_PATH as d, REACT_NATIVE_IGNORE_PATTERNS as f, TEST_FILES as g, RUNTIME_OVERRIDE_EXCLUDE_FILES as h, COMMONJS_FILES as i, DEFAULT_STAGED_FORMAT_COMMAND as l, REACT_NATIVE_JEST_TEST_FILES as m, CLOUDFLARE_WORKER_IGNORE_PATTERNS as n, DEFAULT_IGNORE_PATTERNS as o, REACT_NATIVE_JEST_SETUP_FILES as p, CODE_FILES as r, DEFAULT_STAGED_CHECK_COMMAND as s, CLOUDFLARE_CONFIG_PATH as t, DEFAULT_STAGED_FORMAT_GLOB as u };
37
39
 
38
- //# sourceMappingURL=constants-DInx77MZ.mjs.map
40
+ //# sourceMappingURL=constants-D3UBePrC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-D3UBePrC.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 VITEST_SETUP_FILES = [\n \"**/{vitest.setup,setup.vitest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const REACT_NATIVE_JEST_TEST_FILES = [\n \"**/*.native.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const REACT_NATIVE_JEST_SETUP_FILES = [\n \"**/{jest.setup,setup.jest}.{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 \"**/.cloudflare/**\",\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\";\nexport const CLOUDFLARE_CONFIG_PATH = \"./cloudflare.config.ts\";\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,qBAAqB,CAChC,gEACF;AACA,MAAa,+BAA+B,CAC1C,yDACF;AACA,MAAa,gCAAgC,CAC3C,4DACF;AACA,MAAa,iCAAoD;CAC/D,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAEA,MAAa,0BAA0B;CACrC;CACA;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;AAC5C,MAAa,yBAAyB"}
@@ -2,10 +2,9 @@ import { t as ConfigFragment } from "../../compose-XJvIUwAG.mjs";
2
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
- interface CloudflareTestConfigOptions extends Omit<CloudflareTestOptions, "wrangler"> {
5
+ export interface CloudflareTestConfigOptions extends Omit<CloudflareTestOptions, "wrangler"> {
6
6
  readonly wrangler?: CloudflareTestOptions["wrangler"];
7
7
  }
8
- declare function createCloudflareTestConfig(options?: CloudflareTestConfigOptions): ConfigFragment;
8
+ export declare function createCloudflareTestConfig(options?: CloudflareTestConfigOptions): ConfigFragment;
9
9
  //#endregion
10
- export { CloudflareTestConfigOptions, createCloudflareTestConfig };
11
10
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/cloudflare-workers/index.ts"],"mappings":";;;KAOK,wBAAwB,QAC3B,YAAY,kBAAkB,yBAC1B;UAGW,oCAAoC,KAAK;WAC/C,WAAW;;iBAUN,2BACd,UAAS,8BACR"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/cloudflare-workers/index.ts"],"mappings":";;;KAQK,wBAAwB,QAC3B,YAAY,kBAAkB,yBAC1B;iBAGW,oCAAoC,KAAK;WAC/C,WAAW;;wBAUN,2BACd,UAAS,8BACR"}
@@ -1,13 +1,17 @@
1
- import { u as DEFAULT_WRANGLER_CONFIG_PATH } from "../../constants-DInx77MZ.mjs";
1
+ import { d as DEFAULT_WRANGLER_CONFIG_PATH, t as CLOUDFLARE_CONFIG_PATH } from "../../constants-D3UBePrC.mjs";
2
2
  import { lazyPlugins } from "vite-plus";
3
3
  import { cloudflareTest } from "@cloudflare/vitest-plugin";
4
+ import { existsSync } from "node:fs";
4
5
  //#region src/cloudflare-workers/index.ts
5
6
  function createLazyPluginInputs(factory) {
6
7
  return lazyPlugins(factory);
7
8
  }
8
9
  function createCloudflareTestConfig(options = {}) {
9
10
  const { wrangler, ...pluginOptions } = options;
10
- return { plugins: createLazyPluginInputs(() => [cloudflareTest({
11
+ return { plugins: createLazyPluginInputs(() => [wrangler === void 0 && existsSync("./cloudflare.config.ts") ? cloudflareTest({
12
+ ...pluginOptions,
13
+ experimental: { newConfig: { configPath: CLOUDFLARE_CONFIG_PATH } }
14
+ }) : cloudflareTest({
11
15
  ...pluginOptions,
12
16
  wrangler: {
13
17
  configPath: DEFAULT_WRANGLER_CONFIG_PATH,
@@ -1 +1 @@
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
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/cloudflare-workers/index.ts"],"sourcesContent":["import { cloudflareTest } from \"@cloudflare/vitest-plugin\";\nimport { existsSync } from \"node:fs\";\nimport { lazyPlugins } from \"vite-plus\";\nimport type { ConfigFragment } from \"../compose.ts\";\nimport { CLOUDFLARE_CONFIG_PATH, 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 // Projects managed by the cf CLI keep their Worker in cloudflare.config.ts.\n wrangler === undefined && existsSync(CLOUDFLARE_CONFIG_PATH)\n ? cloudflareTest({\n ...pluginOptions,\n experimental: { newConfig: { configPath: CLOUDFLARE_CONFIG_PATH } },\n })\n : cloudflareTest({\n ...pluginOptions,\n wrangler: { configPath: DEFAULT_WRANGLER_CONFIG_PATH, ...wrangler },\n }),\n ]),\n };\n}\n"],"mappings":";;;;;AAiBA,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,CAEpC,aAAa,KAAA,KAAa,WAAA,wBAAiC,IACvD,eAAe;EACb,GAAG;EACH,cAAc,EAAE,WAAW,EAAE,YAAY,uBAAuB,EAAE;CACpE,CAAC,IACD,eAAe;EACb,GAAG;EACH,UAAU;GAAE,YAAY;GAA8B,GAAG;EAAS;CACpE,CAAC,CACP,CAAC,EACH;AACF"}
@@ -1,33 +1,33 @@
1
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
- declare const CODE_FILES: readonly ["**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
5
- declare const COMMONJS_FILES: readonly ["**/*.{cjs,cts}"];
6
- declare const CONFIG_FILES: readonly ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
7
- declare const TEST_FILES: readonly ["**/test/**", "**/tests/**", "**/__tests__/**", "**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
8
- declare const VITEST_SETUP_FILES: readonly ["**/{vitest.setup,setup.vitest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
9
- declare const REACT_NATIVE_JEST_TEST_FILES: readonly ["**/*.native.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
10
- declare const REACT_NATIVE_JEST_SETUP_FILES: readonly ["**/{jest.setup,setup.jest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
11
- declare const RUNTIME_OVERRIDE_EXCLUDE_FILES: readonly string[];
4
+ export declare const CODE_FILES: readonly ["**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
5
+ export declare const COMMONJS_FILES: readonly ["**/*.{cjs,cts}"];
6
+ export declare const CONFIG_FILES: readonly ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
7
+ export declare const TEST_FILES: readonly ["**/test/**", "**/tests/**", "**/__tests__/**", "**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
8
+ export declare const VITEST_SETUP_FILES: readonly ["**/{vitest.setup,setup.vitest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
9
+ export declare const REACT_NATIVE_JEST_TEST_FILES: readonly ["**/*.native.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
10
+ export declare const REACT_NATIVE_JEST_SETUP_FILES: readonly ["**/{jest.setup,setup.jest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
11
+ export declare const RUNTIME_OVERRIDE_EXCLUDE_FILES: readonly string[];
12
12
  //#endregion
13
13
  //#region src/fragments.d.ts
14
14
  type PackConfig = Exclude<UserConfig["pack"], readonly unknown[] | undefined>;
15
- declare const baseToolingConfig: ConfigFragment;
16
- declare const nodeRuntimeConfig: ConfigFragment;
17
- declare const browserRuntimeConfig: ConfigFragment;
18
- declare const reactCoreConfig: ConfigFragment;
19
- declare const reactDomConfig: ConfigFragment;
20
- declare const reactNativeRuntimeConfig: ConfigFragment;
21
- declare const reactNativeGeneratedConfig: ConfigFragment;
22
- declare const cloudflareWorkerRuntimeConfig: ConfigFragment;
23
- declare const cloudflareWorkerGeneratedConfig: ConfigFragment;
24
- declare const nodeTestLintConfig: ConfigFragment;
25
- declare const browserTestLintConfig: ConfigFragment;
26
- declare const cloudflareWorkerTestLintConfig: ConfigFragment;
27
- declare const reactNativeTestLintConfig: ConfigFragment;
28
- declare const libraryPackDefaults: PackConfig;
29
- declare const libraryPackConfig: ConfigFragment;
30
- declare const workspaceRunConfig: ConfigFragment;
15
+ export declare const baseToolingConfig: ConfigFragment;
16
+ export declare const nodeRuntimeConfig: ConfigFragment;
17
+ export declare const browserRuntimeConfig: ConfigFragment;
18
+ export declare const reactCoreConfig: ConfigFragment;
19
+ export declare const reactDomConfig: ConfigFragment;
20
+ export declare const reactNativeRuntimeConfig: ConfigFragment;
21
+ export declare const reactNativeGeneratedConfig: ConfigFragment;
22
+ export declare const cloudflareWorkerRuntimeConfig: ConfigFragment;
23
+ export declare const cloudflareWorkerGeneratedConfig: ConfigFragment;
24
+ export declare const nodeTestLintConfig: ConfigFragment;
25
+ export declare const browserTestLintConfig: ConfigFragment;
26
+ export declare const cloudflareWorkerTestLintConfig: ConfigFragment;
27
+ export declare const reactNativeTestLintConfig: ConfigFragment;
28
+ export declare const libraryPackDefaults: PackConfig;
29
+ export declare const libraryPackConfig: ConfigFragment;
30
+ export declare const workspaceRunConfig: ConfigFragment;
31
31
  //#endregion
32
32
  //#region src/lint/types.d.ts
33
33
  type LintConfig = NonNullable<UserConfig["lint"]>;
@@ -35,18 +35,18 @@ type LintOverride = NonNullable<LintConfig["overrides"]>[number];
35
35
  type LintProfile = Omit<LintOverride, "excludeFiles" | "files">;
36
36
  //#endregion
37
37
  //#region src/lint/profiles.d.ts
38
- declare const nodeLint: LintProfile;
39
- declare const browserLint: LintProfile;
40
- declare const reactCoreLint: LintProfile;
41
- declare const reactDomLint: LintProfile;
42
- declare const reactNativeRuntimeLint: LintProfile;
43
- declare const reactWebLint: LintProfile;
44
- declare const reactNativeLint: LintProfile;
45
- declare const reactNativeJestTestLint: LintProfile;
46
- declare const cloudflareWorkerLint: LintProfile;
47
- declare const nodeTestLint: LintProfile;
48
- declare const browserTestLint: LintProfile;
49
- declare const cloudflareWorkerTestLint: LintProfile;
38
+ export declare const nodeLint: LintProfile;
39
+ export declare const browserLint: LintProfile;
40
+ export declare const reactCoreLint: LintProfile;
41
+ export declare const reactDomLint: LintProfile;
42
+ export declare const reactNativeRuntimeLint: LintProfile;
43
+ export declare const reactWebLint: LintProfile;
44
+ export declare const reactNativeLint: LintProfile;
45
+ export declare const reactNativeJestTestLint: LintProfile;
46
+ export declare const cloudflareWorkerLint: LintProfile;
47
+ export declare const nodeTestLint: LintProfile;
48
+ export declare const browserTestLint: LintProfile;
49
+ export declare const cloudflareWorkerTestLint: LintProfile;
50
50
  //#endregion
51
- export { CODE_FILES, COMMONJS_FILES, CONFIG_FILES, type ConfigFragment, type PluginInput, REACT_NATIVE_JEST_SETUP_FILES, REACT_NATIVE_JEST_TEST_FILES, RUNTIME_OVERRIDE_EXCLUDE_FILES, TEST_FILES, VITEST_SETUP_FILES, baseToolingConfig, browserLint, browserRuntimeConfig, browserTestLint, browserTestLintConfig, cloudflareWorkerGeneratedConfig, cloudflareWorkerLint, cloudflareWorkerRuntimeConfig, cloudflareWorkerTestLint, cloudflareWorkerTestLintConfig, composeConfig, libraryPackConfig, libraryPackDefaults, nodeLint, nodeRuntimeConfig, nodeTestLint, nodeTestLintConfig, reactCoreConfig, reactCoreLint, reactDomConfig, reactDomLint, reactNativeGeneratedConfig, reactNativeJestTestLint, reactNativeLint, reactNativeRuntimeConfig, reactNativeRuntimeLint, reactNativeTestLintConfig, reactWebLint, workspaceRunConfig };
51
+ export { type ConfigFragment, type PluginInput, composeConfig };
52
52
  //# sourceMappingURL=index.d.mts.map
@@ -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;cAGA;cAGA;cAGA;;;KCYR,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,2BAA2B;cAI3B,qBAAqB;cAcrB,mBAAmB;cAInB,oBAAoB;;;KC5GrB,aAAa,YAAY;KACzB,eAAe,YAAY;KAC3B,cAAc,KAAK;;;cC0ElB,UAAU;cAOV,aAAa;cAOb,eAAe;cAKf,cAAc;cAiDd,wBAAwB;cAOxB,cAAc;cAWd,iBAAiB;cAUjB,yBAAyB;cAWzB,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":";;;qBAAa;qBACA;qBACA;qBACA;qBAMA;qBAGA;qBAGA;qBAGA;;;KCYR,aAAa,QAAQ;qBAEb,mBAAmB;qBASnB,mBAAmB;qBAInB,sBAAsB;qBAItB,iBAAiB;qBAKjB,gBAAgB;qBAIhB,0BAA0B;qBAI1B,4BAA4B;qBAK5B,+BAA+B;qBAI/B,iCAAiC;qBAKjC,oBAAoB;qBAIpB,uBAAuB;qBAIvB,gCAAgC;qBAIhC,2BAA2B;qBAI3B,qBAAqB;qBAcrB,mBAAmB;qBAInB,oBAAoB;;;KC5GrB,aAAa,YAAY;KACzB,eAAe,YAAY;KAC3B,cAAc,KAAK;;;qBC0ElB,UAAU;qBAOV,aAAa;qBAOb,eAAe;qBAKf,cAAc;qBAiDd,wBAAwB;qBAOxB,cAAc;qBAWd,iBAAiB;qBAUjB,yBAAyB;qBAWzB,sBAAsB;qBAMtB,cAAc;qBASd,iBAAiB;qBASjB,0BAA0B"}
@@ -1,4 +1,4 @@
1
- import { a as DEFAULT_IGNORE_PATTERNS, c as DEFAULT_STAGED_FORMAT_COMMAND, d as REACT_NATIVE_IGNORE_PATTERNS, f as REACT_NATIVE_JEST_SETUP_FILES, g as VITEST_SETUP_FILES, h as TEST_FILES, i as CONFIG_FILES, l as DEFAULT_STAGED_FORMAT_GLOB, m as RUNTIME_OVERRIDE_EXCLUDE_FILES, n as CODE_FILES, o as DEFAULT_STAGED_CHECK_COMMAND, p as REACT_NATIVE_JEST_TEST_FILES, r as COMMONJS_FILES, s as DEFAULT_STAGED_CHECK_GLOB, t as CLOUDFLARE_WORKER_IGNORE_PATTERNS } from "../constants-DInx77MZ.mjs";
1
+ import { _ as VITEST_SETUP_FILES, a as CONFIG_FILES, c as DEFAULT_STAGED_CHECK_GLOB, f as REACT_NATIVE_IGNORE_PATTERNS, g as TEST_FILES, h as RUNTIME_OVERRIDE_EXCLUDE_FILES, i as COMMONJS_FILES, l as DEFAULT_STAGED_FORMAT_COMMAND, m as REACT_NATIVE_JEST_TEST_FILES, n as CLOUDFLARE_WORKER_IGNORE_PATTERNS, o as DEFAULT_IGNORE_PATTERNS, p as REACT_NATIVE_JEST_SETUP_FILES, r as CODE_FILES, s as DEFAULT_STAGED_CHECK_COMMAND, u as DEFAULT_STAGED_FORMAT_GLOB } from "../constants-D3UBePrC.mjs";
2
2
  import { defineConfig, mergeConfig } from "vite-plus";
3
3
  //#region src/compose.ts
4
4
  function toUserConfig(config) {
@@ -163,14 +163,325 @@ const reactDomRules = {
163
163
  "react/void-dom-elements-no-children": "error"
164
164
  };
165
165
  //#endregion
166
+ //#region src/lint/rules/universal.ts
167
+ const universalRestrictedProperties = [{
168
+ object: "Reflect",
169
+ property: "get"
170
+ }, {
171
+ object: "Reflect",
172
+ property: "apply"
173
+ }];
174
+ const universalRules = {
175
+ "accessor-pairs": "error",
176
+ "array-callback-return": "error",
177
+ "arrow-body-style": "error",
178
+ curly: [
179
+ "error",
180
+ "multi-line",
181
+ "consistent"
182
+ ],
183
+ "default-case-last": "error",
184
+ "default-param-last": "error",
185
+ eqeqeq: "error",
186
+ "func-name-matching": "error",
187
+ "func-names": "error",
188
+ "grouped-accessor-pairs": ["error", "getBeforeSet"],
189
+ "guard-for-in": "error",
190
+ "import/consistent-type-specifier-style": "error",
191
+ "import/first": "error",
192
+ "import/newline-after-import": "error",
193
+ "import/no-duplicates": "error",
194
+ "import/no-mutable-exports": "error",
195
+ "import/no-named-default": "error",
196
+ "logical-assignment-operators": "error",
197
+ "max-depth": ["error", { max: 3 }],
198
+ "max-nested-callbacks": ["error", { max: 3 }],
199
+ "max-params": ["error", { max: 3 }],
200
+ "no-array-constructor": "error",
201
+ "no-await-in-loop": "error",
202
+ "no-case-declarations": "error",
203
+ "no-constructor-return": "error",
204
+ "no-else-return": "error",
205
+ "no-empty": "error",
206
+ "no-extra-label": "error",
207
+ "no-fallthrough": "error",
208
+ "no-implicit-coercion": "error",
209
+ "no-inline-comments": "error",
210
+ "no-inner-declarations": "error",
211
+ "no-label-var": "error",
212
+ "no-labels": "error",
213
+ "no-lone-blocks": "error",
214
+ "no-lonely-if": "error",
215
+ "no-loop-func": "error",
216
+ "no-multi-assign": "error",
217
+ "no-multi-str": "error",
218
+ "no-nested-ternary": "error",
219
+ "no-new-func": "error",
220
+ "no-new-wrappers": "error",
221
+ "no-object-constructor": "error",
222
+ "no-promise-executor-return": "error",
223
+ "no-prototype-builtins": "error",
224
+ "no-redeclare": "error",
225
+ "no-restricted-properties": ["error", ...universalRestrictedProperties],
226
+ "no-return-assign": "error",
227
+ "no-script-url": "error",
228
+ "no-self-compare": "error",
229
+ "no-template-curly-in-string": "error",
230
+ "no-useless-call": "error",
231
+ "no-useless-computed-key": "error",
232
+ "no-useless-return": "error",
233
+ "no-warning-comments": "error",
234
+ "object-shorthand": "error",
235
+ "operator-assignment": "error",
236
+ "oxc/branches-sharing-code": "error",
237
+ "oxc/no-accumulating-spread": "error",
238
+ "oxc/no-map-spread": "error",
239
+ "prefer-arrow-callback": "error",
240
+ "prefer-const": "error",
241
+ "prefer-destructuring": "error",
242
+ "prefer-exponentiation-operator": "error",
243
+ "prefer-named-capture-group": "error",
244
+ "prefer-numeric-literals": "error",
245
+ "prefer-object-has-own": "error",
246
+ "prefer-object-spread": "error",
247
+ "prefer-regex-literals": "error",
248
+ "prefer-rest-params": "error",
249
+ "prefer-spread": "error",
250
+ "prefer-template": "error",
251
+ "promise/no-nesting": "error",
252
+ "promise/no-return-wrap": "error",
253
+ "promise/param-names": "error",
254
+ "promise/prefer-catch": "error",
255
+ radix: "error",
256
+ "symbol-description": "error",
257
+ "typescript/adjacent-overload-signatures": "error",
258
+ "typescript/array-type": "error",
259
+ "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
260
+ "typescript/ban-tslint-comment": "error",
261
+ "typescript/class-literal-property-style": "error",
262
+ "typescript/consistent-generic-constructors": "error",
263
+ "typescript/consistent-indexed-object-style": "error",
264
+ "typescript/consistent-type-assertions": "error",
265
+ "typescript/consistent-type-exports": "error",
266
+ "typescript/consistent-type-imports": ["error", {
267
+ prefer: "type-imports",
268
+ fixStyle: "separate-type-imports"
269
+ }],
270
+ "typescript/dot-notation": "error",
271
+ "typescript/method-signature-style": "error",
272
+ "typescript/no-confusing-void-expression": "error",
273
+ "typescript/no-deprecated": "error",
274
+ "typescript/no-empty-object-type": "error",
275
+ "typescript/no-inferrable-types": "error",
276
+ "typescript/no-misused-promises": "error",
277
+ "typescript/no-mixed-enums": "error",
278
+ "typescript/no-unnecessary-qualifier": "error",
279
+ "typescript/no-unsafe-argument": "error",
280
+ "typescript/no-unsafe-assignment": "error",
281
+ "typescript/no-unsafe-call": "error",
282
+ "typescript/no-unsafe-function-type": "error",
283
+ "typescript/no-unsafe-member-access": "error",
284
+ "typescript/no-unsafe-return": "error",
285
+ "typescript/no-unsafe-type-assertion": "error",
286
+ "typescript/no-wrapper-object-types": "error",
287
+ "typescript/only-throw-error": "error",
288
+ "typescript/parameter-properties": "error",
289
+ "typescript/prefer-enum-initializers": "error",
290
+ "typescript/prefer-find": "error",
291
+ "typescript/prefer-for-of": "error",
292
+ "typescript/prefer-function-type": "error",
293
+ "typescript/prefer-includes": "error",
294
+ "typescript/prefer-nullish-coalescing": "error",
295
+ "typescript/prefer-promise-reject-errors": "error",
296
+ "typescript/prefer-readonly": "error",
297
+ "typescript/prefer-reduce-type-parameter": "error",
298
+ "typescript/prefer-regexp-exec": "error",
299
+ "typescript/prefer-return-this-type": "error",
300
+ "typescript/prefer-string-starts-ends-with": "error",
301
+ "typescript/related-getter-setter-pairs": "error",
302
+ "typescript/restrict-plus-operands": "error",
303
+ "typescript/return-await": "error",
304
+ "typescript/strict-boolean-expressions": "error",
305
+ "typescript/strict-void-return": "error",
306
+ "typescript/switch-exhaustiveness-check": "error",
307
+ "typescript/unified-signatures": "error",
308
+ "unicorn/catch-error-name": "error",
309
+ "unicorn/consistent-assert": "error",
310
+ "unicorn/consistent-date-clone": "error",
311
+ "unicorn/consistent-empty-array-spread": "error",
312
+ "unicorn/consistent-existence-index-check": "error",
313
+ "unicorn/consistent-template-literal-escape": "error",
314
+ "unicorn/custom-error-definition": "error",
315
+ "unicorn/error-message": "error",
316
+ "unicorn/escape-case": "error",
317
+ "unicorn/explicit-length-check": "error",
318
+ "unicorn/explicit-timer-delay": "error",
319
+ "unicorn/filename-case": ["error", { case: "kebabCase" }],
320
+ "unicorn/max-nested-calls": ["error", { max: 5 }],
321
+ "unicorn/new-for-builtins": "error",
322
+ "unicorn/no-array-callback-reference": "error",
323
+ "unicorn/no-array-method-this-argument": "error",
324
+ "unicorn/no-console-spaces": "error",
325
+ "unicorn/no-hex-escape": "error",
326
+ "unicorn/no-immediate-mutation": "error",
327
+ "unicorn/no-instanceof-array": "error",
328
+ "unicorn/no-negation-in-equality-check": "error",
329
+ "unicorn/no-new-buffer": "error",
330
+ "unicorn/no-static-only-class": "error",
331
+ "unicorn/no-this-assignment": "error",
332
+ "unicorn/no-typeof-undefined": "error",
333
+ "unicorn/no-unnecessary-array-flat-depth": "error",
334
+ "unicorn/no-unnecessary-array-splice-count": "error",
335
+ "unicorn/no-unnecessary-slice-end": "error",
336
+ "unicorn/no-unreadable-array-destructuring": "error",
337
+ "unicorn/no-unreadable-iife": "error",
338
+ "unicorn/no-useless-collection-argument": "error",
339
+ "unicorn/no-useless-promise-resolve-reject": "error",
340
+ "unicorn/no-useless-switch-case": "error",
341
+ "unicorn/no-useless-undefined": "error",
342
+ "unicorn/no-zero-fractions": "error",
343
+ "unicorn/number-literal-case": "error",
344
+ "unicorn/numeric-separators-style": "error",
345
+ "unicorn/prefer-array-find": "error",
346
+ "unicorn/prefer-array-flat": "error",
347
+ "unicorn/prefer-array-flat-map": "error",
348
+ "unicorn/prefer-array-index-of": "error",
349
+ "unicorn/prefer-array-some": "error",
350
+ "unicorn/prefer-at": "error",
351
+ "unicorn/prefer-bigint-literals": "error",
352
+ "unicorn/prefer-blob-reading-methods": "error",
353
+ "unicorn/prefer-class-fields": "error",
354
+ "unicorn/prefer-code-point": "error",
355
+ "unicorn/prefer-date-now": "error",
356
+ "unicorn/prefer-default-parameters": "error",
357
+ "unicorn/prefer-export-from": "error",
358
+ "unicorn/prefer-global-this": "error",
359
+ "unicorn/prefer-import-meta-properties": "error",
360
+ "unicorn/prefer-includes": "error",
361
+ "unicorn/prefer-logical-operator-over-ternary": "error",
362
+ "unicorn/prefer-math-min-max": "error",
363
+ "unicorn/prefer-math-trunc": "error",
364
+ "unicorn/prefer-native-coercion-functions": "error",
365
+ "unicorn/prefer-negative-index": "error",
366
+ "unicorn/prefer-number-coercion": "error",
367
+ "unicorn/prefer-object-from-entries": "error",
368
+ "unicorn/prefer-optional-catch-binding": "error",
369
+ "unicorn/prefer-prototype-methods": "error",
370
+ "unicorn/prefer-regexp-test": "error",
371
+ "unicorn/prefer-response-static-json": "error",
372
+ "unicorn/prefer-set-has": "error",
373
+ "unicorn/prefer-single-call": "error",
374
+ "unicorn/prefer-spread": "error",
375
+ "unicorn/prefer-string-raw": "error",
376
+ "unicorn/prefer-string-replace-all": "error",
377
+ "unicorn/prefer-string-slice": "error",
378
+ "unicorn/prefer-string-trim-start-end": "error",
379
+ "unicorn/prefer-structured-clone": "error",
380
+ "unicorn/prefer-ternary": ["error", "only-single-line"],
381
+ "unicorn/prefer-type-error": "error",
382
+ "unicorn/relative-url-style": "error",
383
+ "unicorn/require-array-join-separator": "error",
384
+ "unicorn/require-module-attributes": "error",
385
+ "unicorn/require-number-to-fixed-digits-argument": "error",
386
+ "unicorn/switch-case-braces": "error",
387
+ "unicorn/switch-case-break-position": "error",
388
+ "unicorn/text-encoding-identifier-case": "error",
389
+ "unicorn/throw-new-error": "error",
390
+ yoda: "error",
391
+ complexity: ["error", { max: 20 }],
392
+ "getter-return": "error",
393
+ "no-bitwise": "error",
394
+ "no-console": ["error", { allow: [
395
+ "info",
396
+ "warn",
397
+ "error"
398
+ ] }],
399
+ "no-param-reassign": ["error", { props: true }],
400
+ "no-plusplus": "error",
401
+ "no-undef": "error",
402
+ "no-unneeded-ternary": "error",
403
+ "no-unreachable": "error",
404
+ "import/no-cycle": "error",
405
+ "import/no-unassigned-import": "off",
406
+ "oxc/bad-match-all-arg": "error",
407
+ "typescript/consistent-return": "error",
408
+ "typescript/no-dynamic-delete": "error",
409
+ "typescript/no-explicit-any": "error",
410
+ "typescript/no-floating-promises": "error",
411
+ "typescript/no-misused-spread": "error",
412
+ "typescript/no-non-null-assertion": "error",
413
+ "typescript/no-require-imports": "error",
414
+ "typescript/no-unnecessary-condition": "error",
415
+ "typescript/no-unnecessary-type-arguments": "error",
416
+ "typescript/no-unnecessary-type-assertion": "error",
417
+ "typescript/no-unnecessary-type-parameters": "error",
418
+ "typescript/no-useless-default-assignment": "error",
419
+ "typescript/non-nullable-type-assertion-style": "error",
420
+ "typescript/prefer-optional-chain": "error",
421
+ "typescript/require-array-sort-compare": "error",
422
+ "typescript/restrict-template-expressions": "error",
423
+ "typescript/unbound-method": "error",
424
+ "typescript/use-unknown-in-catch-callback-variable": "error",
425
+ "unicorn/no-abusive-eslint-disable": "error"
426
+ };
427
+ //#endregion
166
428
  //#region src/lint/rules/react-native.ts
167
429
  const reactNativeRules = {
168
- "react/iframe-missing-sandbox": "off",
169
- "react/jsx-no-script-url": "off",
430
+ "no-restricted-properties": [
431
+ "error",
432
+ ...universalRestrictedProperties,
433
+ {
434
+ property: "toSorted",
435
+ message: "Hermes lacks toSorted; copy the array before sorting."
436
+ },
437
+ {
438
+ object: "Intl",
439
+ property: "RelativeTimeFormat",
440
+ message: "Hermes lacks Intl.RelativeTimeFormat; use a supported formatter."
441
+ },
442
+ {
443
+ object: "Intl",
444
+ property: "PluralRules",
445
+ message: "Hermes lacks Intl.PluralRules; choose plural forms explicitly."
446
+ },
447
+ {
448
+ object: "Intl",
449
+ property: "ListFormat",
450
+ message: "Hermes lacks Intl.ListFormat; join lists explicitly."
451
+ },
452
+ {
453
+ object: "Intl",
454
+ property: "Segmenter",
455
+ message: "Hermes lacks Intl.Segmenter; split text explicitly."
456
+ },
457
+ {
458
+ object: "Intl",
459
+ property: "DisplayNames",
460
+ message: "Hermes lacks Intl.DisplayNames; map codes to names explicitly."
461
+ },
462
+ {
463
+ object: "Array",
464
+ property: "fromAsync",
465
+ message: "Hermes lacks Array.fromAsync; collect async values in a loop."
466
+ },
467
+ {
468
+ object: "RegExp",
469
+ property: "escape",
470
+ message: "Hermes lacks RegExp.escape; escape patterns explicitly."
471
+ }
472
+ ],
473
+ "no-restricted-globals": ["error", {
474
+ name: "Temporal",
475
+ message: "Hermes lacks Temporal; use Date."
476
+ }],
477
+ "react/iframe-missing-sandbox": "off",
478
+ "react/jsx-no-script-url": "off",
170
479
  "react/no-unknown-property": "off",
171
480
  "react/no-unescaped-entities": "off",
172
481
  "react/no-unstable-nested-components": ["error", { allowAsProps: true }],
173
- "react/void-dom-elements-no-children": "off"
482
+ "react/void-dom-elements-no-children": "off",
483
+ "unicorn/no-array-reverse": "error",
484
+ "unicorn/no-array-sort": ["error", { allowAfterSpread: true }]
174
485
  };
175
486
  //#endregion
176
487
  //#region src/lint/rules/vitest.ts
@@ -428,274 +739,6 @@ const cloudflareWorkerTestLint = {
428
739
  rules: vitestRules
429
740
  };
430
741
  //#endregion
431
- //#region src/lint/rules/universal.ts
432
- const universalRules = {
433
- "accessor-pairs": "error",
434
- "array-callback-return": "error",
435
- "arrow-body-style": "error",
436
- curly: [
437
- "error",
438
- "multi-line",
439
- "consistent"
440
- ],
441
- "default-case-last": "error",
442
- "default-param-last": "error",
443
- eqeqeq: "error",
444
- "func-name-matching": "error",
445
- "func-names": "error",
446
- "grouped-accessor-pairs": ["error", "getBeforeSet"],
447
- "guard-for-in": "error",
448
- "import/consistent-type-specifier-style": "error",
449
- "import/first": "error",
450
- "import/newline-after-import": "error",
451
- "import/no-duplicates": "error",
452
- "import/no-mutable-exports": "error",
453
- "import/no-named-default": "error",
454
- "logical-assignment-operators": "error",
455
- "max-depth": ["error", { max: 3 }],
456
- "max-nested-callbacks": ["error", { max: 3 }],
457
- "max-params": ["error", { max: 3 }],
458
- "no-array-constructor": "error",
459
- "no-await-in-loop": "error",
460
- "no-case-declarations": "error",
461
- "no-constructor-return": "error",
462
- "no-else-return": "error",
463
- "no-empty": "error",
464
- "no-extra-label": "error",
465
- "no-fallthrough": "error",
466
- "no-implicit-coercion": "error",
467
- "no-inline-comments": "error",
468
- "no-inner-declarations": "error",
469
- "no-label-var": "error",
470
- "no-labels": "error",
471
- "no-lone-blocks": "error",
472
- "no-lonely-if": "error",
473
- "no-loop-func": "error",
474
- "no-multi-assign": "error",
475
- "no-multi-str": "error",
476
- "no-nested-ternary": "error",
477
- "no-new-func": "error",
478
- "no-new-wrappers": "error",
479
- "no-object-constructor": "error",
480
- "no-promise-executor-return": "error",
481
- "no-prototype-builtins": "error",
482
- "no-redeclare": "error",
483
- "no-restricted-properties": [
484
- "error",
485
- {
486
- object: "Reflect",
487
- property: "get"
488
- },
489
- {
490
- object: "Reflect",
491
- property: "apply"
492
- }
493
- ],
494
- "no-return-assign": "error",
495
- "no-script-url": "error",
496
- "no-self-compare": "error",
497
- "no-template-curly-in-string": "error",
498
- "no-useless-call": "error",
499
- "no-useless-computed-key": "error",
500
- "no-useless-return": "error",
501
- "no-warning-comments": "error",
502
- "object-shorthand": "error",
503
- "operator-assignment": "error",
504
- "oxc/branches-sharing-code": "error",
505
- "oxc/no-accumulating-spread": "error",
506
- "oxc/no-map-spread": "error",
507
- "prefer-arrow-callback": "error",
508
- "prefer-const": "error",
509
- "prefer-destructuring": "error",
510
- "prefer-exponentiation-operator": "error",
511
- "prefer-named-capture-group": "error",
512
- "prefer-numeric-literals": "error",
513
- "prefer-object-has-own": "error",
514
- "prefer-object-spread": "error",
515
- "prefer-regex-literals": "error",
516
- "prefer-rest-params": "error",
517
- "prefer-spread": "error",
518
- "prefer-template": "error",
519
- "promise/no-nesting": "error",
520
- "promise/no-return-wrap": "error",
521
- "promise/param-names": "error",
522
- "promise/prefer-await-to-then": "error",
523
- "promise/prefer-catch": "error",
524
- radix: "error",
525
- "symbol-description": "error",
526
- "typescript/adjacent-overload-signatures": "error",
527
- "typescript/array-type": "error",
528
- "typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
529
- "typescript/ban-tslint-comment": "error",
530
- "typescript/class-literal-property-style": "error",
531
- "typescript/consistent-generic-constructors": "error",
532
- "typescript/consistent-indexed-object-style": "error",
533
- "typescript/consistent-type-assertions": "error",
534
- "typescript/consistent-type-exports": "error",
535
- "typescript/consistent-type-imports": ["error", {
536
- prefer: "type-imports",
537
- fixStyle: "separate-type-imports"
538
- }],
539
- "typescript/dot-notation": "error",
540
- "typescript/method-signature-style": "error",
541
- "typescript/no-confusing-void-expression": "error",
542
- "typescript/no-deprecated": "error",
543
- "typescript/no-empty-object-type": "error",
544
- "typescript/no-inferrable-types": "error",
545
- "typescript/no-misused-promises": "error",
546
- "typescript/no-mixed-enums": "error",
547
- "typescript/no-unnecessary-qualifier": "error",
548
- "typescript/no-unsafe-argument": "error",
549
- "typescript/no-unsafe-assignment": "error",
550
- "typescript/no-unsafe-call": "error",
551
- "typescript/no-unsafe-function-type": "error",
552
- "typescript/no-unsafe-member-access": "error",
553
- "typescript/no-unsafe-return": "error",
554
- "typescript/no-unsafe-type-assertion": "error",
555
- "typescript/no-wrapper-object-types": "error",
556
- "typescript/only-throw-error": "error",
557
- "typescript/parameter-properties": "error",
558
- "typescript/prefer-enum-initializers": "error",
559
- "typescript/prefer-find": "error",
560
- "typescript/prefer-for-of": "error",
561
- "typescript/prefer-function-type": "error",
562
- "typescript/prefer-includes": "error",
563
- "typescript/prefer-nullish-coalescing": "error",
564
- "typescript/prefer-promise-reject-errors": "error",
565
- "typescript/prefer-readonly": "error",
566
- "typescript/prefer-reduce-type-parameter": "error",
567
- "typescript/prefer-regexp-exec": "error",
568
- "typescript/prefer-return-this-type": "error",
569
- "typescript/prefer-string-starts-ends-with": "error",
570
- "typescript/related-getter-setter-pairs": "error",
571
- "typescript/restrict-plus-operands": "error",
572
- "typescript/return-await": "error",
573
- "typescript/strict-boolean-expressions": "error",
574
- "typescript/strict-void-return": "error",
575
- "typescript/switch-exhaustiveness-check": "error",
576
- "typescript/unified-signatures": "error",
577
- "unicorn/catch-error-name": "error",
578
- "unicorn/consistent-assert": "error",
579
- "unicorn/consistent-date-clone": "error",
580
- "unicorn/consistent-empty-array-spread": "error",
581
- "unicorn/consistent-existence-index-check": "error",
582
- "unicorn/consistent-template-literal-escape": "error",
583
- "unicorn/custom-error-definition": "error",
584
- "unicorn/error-message": "error",
585
- "unicorn/escape-case": "error",
586
- "unicorn/explicit-length-check": "error",
587
- "unicorn/explicit-timer-delay": "error",
588
- "unicorn/filename-case": ["error", { case: "kebabCase" }],
589
- "unicorn/max-nested-calls": ["error", { max: 5 }],
590
- "unicorn/new-for-builtins": "error",
591
- "unicorn/no-array-callback-reference": "error",
592
- "unicorn/no-array-method-this-argument": "error",
593
- "unicorn/no-await-expression-member": "error",
594
- "unicorn/no-console-spaces": "error",
595
- "unicorn/no-hex-escape": "error",
596
- "unicorn/no-immediate-mutation": "error",
597
- "unicorn/no-instanceof-array": "error",
598
- "unicorn/no-negation-in-equality-check": "error",
599
- "unicorn/no-new-buffer": "error",
600
- "unicorn/no-static-only-class": "error",
601
- "unicorn/no-this-assignment": "error",
602
- "unicorn/no-typeof-undefined": "error",
603
- "unicorn/no-unnecessary-array-flat-depth": "error",
604
- "unicorn/no-unnecessary-array-splice-count": "error",
605
- "unicorn/no-unnecessary-slice-end": "error",
606
- "unicorn/no-unreadable-array-destructuring": "error",
607
- "unicorn/no-unreadable-iife": "error",
608
- "unicorn/no-useless-collection-argument": "error",
609
- "unicorn/no-useless-promise-resolve-reject": "error",
610
- "unicorn/no-useless-switch-case": "error",
611
- "unicorn/no-useless-undefined": "error",
612
- "unicorn/no-zero-fractions": "error",
613
- "unicorn/number-literal-case": "error",
614
- "unicorn/numeric-separators-style": "error",
615
- "unicorn/prefer-array-find": "error",
616
- "unicorn/prefer-array-flat": "error",
617
- "unicorn/prefer-array-flat-map": "error",
618
- "unicorn/prefer-array-index-of": "error",
619
- "unicorn/prefer-array-some": "error",
620
- "unicorn/prefer-at": "error",
621
- "unicorn/prefer-bigint-literals": "error",
622
- "unicorn/prefer-blob-reading-methods": "error",
623
- "unicorn/prefer-class-fields": "error",
624
- "unicorn/prefer-code-point": "error",
625
- "unicorn/prefer-date-now": "error",
626
- "unicorn/prefer-default-parameters": "error",
627
- "unicorn/prefer-export-from": "error",
628
- "unicorn/prefer-global-this": "error",
629
- "unicorn/prefer-import-meta-properties": "error",
630
- "unicorn/prefer-includes": "error",
631
- "unicorn/prefer-logical-operator-over-ternary": "error",
632
- "unicorn/prefer-math-min-max": "error",
633
- "unicorn/prefer-math-trunc": "error",
634
- "unicorn/prefer-native-coercion-functions": "error",
635
- "unicorn/prefer-negative-index": "error",
636
- "unicorn/prefer-number-coercion": "error",
637
- "unicorn/prefer-object-from-entries": "error",
638
- "unicorn/prefer-optional-catch-binding": "error",
639
- "unicorn/prefer-prototype-methods": "error",
640
- "unicorn/prefer-regexp-test": "error",
641
- "unicorn/prefer-response-static-json": "error",
642
- "unicorn/prefer-set-has": "error",
643
- "unicorn/prefer-single-call": "error",
644
- "unicorn/prefer-spread": "error",
645
- "unicorn/prefer-string-raw": "error",
646
- "unicorn/prefer-string-replace-all": "error",
647
- "unicorn/prefer-string-slice": "error",
648
- "unicorn/prefer-string-trim-start-end": "error",
649
- "unicorn/prefer-structured-clone": "error",
650
- "unicorn/prefer-ternary": ["error", "only-single-line"],
651
- "unicorn/prefer-type-error": "error",
652
- "unicorn/relative-url-style": "error",
653
- "unicorn/require-array-join-separator": "error",
654
- "unicorn/require-module-attributes": "error",
655
- "unicorn/require-number-to-fixed-digits-argument": "error",
656
- "unicorn/switch-case-braces": "error",
657
- "unicorn/switch-case-break-position": "error",
658
- "unicorn/text-encoding-identifier-case": "error",
659
- "unicorn/throw-new-error": "error",
660
- yoda: "error",
661
- complexity: ["error", { max: 20 }],
662
- "getter-return": "error",
663
- "no-bitwise": "error",
664
- "no-console": ["error", { allow: [
665
- "info",
666
- "warn",
667
- "error"
668
- ] }],
669
- "no-param-reassign": ["error", { props: true }],
670
- "no-plusplus": "error",
671
- "no-undef": "error",
672
- "no-unneeded-ternary": "error",
673
- "no-unreachable": "error",
674
- "import/no-cycle": "error",
675
- "import/no-unassigned-import": "off",
676
- "oxc/bad-match-all-arg": "error",
677
- "typescript/consistent-return": "error",
678
- "typescript/explicit-module-boundary-types": "error",
679
- "typescript/no-dynamic-delete": "error",
680
- "typescript/no-explicit-any": "error",
681
- "typescript/no-floating-promises": "error",
682
- "typescript/no-misused-spread": "error",
683
- "typescript/no-non-null-assertion": "error",
684
- "typescript/no-require-imports": "error",
685
- "typescript/no-unnecessary-condition": "error",
686
- "typescript/no-unnecessary-type-arguments": "error",
687
- "typescript/no-unnecessary-type-assertion": "error",
688
- "typescript/no-unnecessary-type-parameters": "error",
689
- "typescript/no-useless-default-assignment": "error",
690
- "typescript/non-nullable-type-assertion-style": "error",
691
- "typescript/prefer-optional-chain": "error",
692
- "typescript/require-array-sort-compare": "error",
693
- "typescript/restrict-template-expressions": "error",
694
- "typescript/unbound-method": "error",
695
- "typescript/use-unknown-in-catch-callback-variable": "error",
696
- "unicorn/no-abusive-eslint-disable": "error"
697
- };
698
- //#endregion
699
742
  //#region src/lint/configs.ts
700
743
  const baseLintConfig = {
701
744
  plugins: [...BASE_LINT_PLUGINS],
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["nodeTestLintConfig","browserTestLintConfig","cloudflareWorkerTestLintConfig","reactNativeTestLintConfig","nodeTestLintSettings","browserTestLintSettings","cloudflareWorkerTestLintSettings","reactNativeTestLintSettings"],"sources":["../../src/compose.ts","../../src/format.ts","../../src/lint/rules/browser.ts","../../src/lint/rules/jest.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 jestRules: LintRules = {\n \"max-nested-callbacks\": [\n \"error\",\n {\n max: 4,\n },\n ],\n \"jest/consistent-test-it\": [\n \"error\",\n {\n fn: \"test\",\n withinDescribe: \"it\",\n },\n ],\n \"jest/max-nested-describe\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"jest/no-alias-methods\": \"error\",\n \"jest/no-duplicate-hooks\": \"error\",\n \"jest/no-identical-title\": \"error\",\n \"jest/no-interpolation-in-snapshots\": \"error\",\n \"jest/no-large-snapshots\": \"error\",\n \"jest/no-mocks-import\": \"error\",\n \"jest/no-restricted-jest-methods\": [\n \"error\",\n {\n doMock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n mock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n unstable_mockModule: \"Use a maintained implementation, spy, or injected owned dependency.\",\n },\n ],\n \"jest/no-test-prefixes\": \"error\",\n \"jest/no-test-return-statement\": \"error\",\n \"jest/no-unneeded-async-expect-function\": \"error\",\n \"jest/padding-around-after-all-blocks\": \"error\",\n \"jest/padding-around-test-blocks\": \"error\",\n \"jest/prefer-called-with\": \"error\",\n \"jest/prefer-comparison-matcher\": \"error\",\n \"jest/prefer-each\": \"error\",\n \"jest/prefer-equality-matcher\": \"error\",\n \"jest/prefer-hooks-in-order\": \"error\",\n \"jest/prefer-hooks-on-top\": \"error\",\n \"jest/prefer-importing-jest-globals\": \"error\",\n \"jest/prefer-mock-promise-shorthand\": \"error\",\n \"jest/prefer-mock-return-shorthand\": \"error\",\n \"jest/prefer-spy-on\": \"error\",\n \"jest/prefer-to-be\": \"error\",\n \"jest/prefer-to-contain\": \"error\",\n \"jest/prefer-to-have-been-called-times\": \"error\",\n \"jest/prefer-to-have-length\": \"error\",\n \"jest/prefer-todo\": \"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/error-boundaries\": \"error\",\n \"react/globals\": \"error\",\n \"react/immutability\": \"error\",\n \"react/incompatible-library\": \"error\",\n \"react/preserve-manual-memoization\": \"error\",\n \"react/purity\": \"error\",\n \"react/refs\": \"error\",\n \"react/set-state-in-effect\": \"error\",\n \"react/set-state-in-render\": \"error\",\n \"react/static-components\": \"error\",\n \"react/unsupported-syntax\": \"error\",\n \"react/use-memo\": \"error\",\n \"react/void-use-memo\": \"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-restricted-vi-methods\": [\n \"error\",\n {\n doMock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n mock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n },\n ],\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 { jestRules } from \"./rules/jest.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\nconst reactNativeJestEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...reactNativeEnvironment,\n jest: true,\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 reactNativeJestTestLint: LintProfile = {\n env: reactNativeJestEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jest\"],\n rules: {\n ...reactCoreRules,\n ...reactNativeRules,\n ...jestRules,\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-restricted-properties\": [\n \"error\",\n {\n object: \"Reflect\",\n property: \"get\",\n },\n {\n object: \"Reflect\",\n property: \"apply\",\n },\n ],\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-unsafe-type-assertion\": \"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-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 REACT_NATIVE_JEST_SETUP_FILES,\n REACT_NATIVE_JEST_TEST_FILES,\n RUNTIME_OVERRIDE_EXCLUDE_FILES,\n TEST_FILES,\n VITEST_SETUP_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 reactNativeJestTestLint,\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\nexport const reactNativeTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n excludeFiles: [\n ...VITEST_SETUP_FILES,\n ...REACT_NATIVE_JEST_TEST_FILES,\n ...REACT_NATIVE_JEST_SETUP_FILES,\n ],\n ...nodeTestLint,\n },\n {\n files: [...VITEST_SETUP_FILES],\n excludeFiles: [...REACT_NATIVE_JEST_TEST_FILES, ...REACT_NATIVE_JEST_SETUP_FILES],\n ...nodeTestLint,\n rules: {\n ...nodeTestLint.rules,\n \"vitest/no-restricted-vi-methods\": \"off\",\n },\n },\n {\n files: [...REACT_NATIVE_JEST_TEST_FILES],\n excludeFiles: [...VITEST_SETUP_FILES, ...REACT_NATIVE_JEST_SETUP_FILES],\n ...reactNativeJestTestLint,\n },\n {\n files: [...REACT_NATIVE_JEST_SETUP_FILES],\n excludeFiles: [...VITEST_SETUP_FILES, ...REACT_NATIVE_JEST_TEST_FILES],\n ...reactNativeJestTestLint,\n rules: {\n ...reactNativeJestTestLint.rules,\n \"jest/no-restricted-jest-methods\": \"off\",\n },\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 reactNativeTestLintConfig as reactNativeTestLintSettings,\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 reactNativeTestLintConfig: ConfigFragment = {\n lint: reactNativeTestLintSettings,\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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"}
1
+ {"version":3,"file":"index.mjs","names":["nodeTestLintConfig","browserTestLintConfig","cloudflareWorkerTestLintConfig","reactNativeTestLintConfig","nodeTestLintSettings","browserTestLintSettings","cloudflareWorkerTestLintSettings","reactNativeTestLintSettings"],"sources":["../../src/compose.ts","../../src/format.ts","../../src/lint/rules/browser.ts","../../src/lint/rules/jest.ts","../../src/lint/rules/node.ts","../../src/lint/rules/react-core.ts","../../src/lint/rules/react-dom.ts","../../src/lint/rules/universal.ts","../../src/lint/rules/react-native.ts","../../src/lint/rules/vitest.ts","../../src/lint/profiles.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 jestRules: LintRules = {\n \"max-nested-callbacks\": [\n \"error\",\n {\n max: 4,\n },\n ],\n \"jest/consistent-test-it\": [\n \"error\",\n {\n fn: \"test\",\n withinDescribe: \"it\",\n },\n ],\n \"jest/max-nested-describe\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"jest/no-alias-methods\": \"error\",\n \"jest/no-duplicate-hooks\": \"error\",\n \"jest/no-identical-title\": \"error\",\n \"jest/no-interpolation-in-snapshots\": \"error\",\n \"jest/no-large-snapshots\": \"error\",\n \"jest/no-mocks-import\": \"error\",\n \"jest/no-restricted-jest-methods\": [\n \"error\",\n {\n doMock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n mock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n unstable_mockModule: \"Use a maintained implementation, spy, or injected owned dependency.\",\n },\n ],\n \"jest/no-test-prefixes\": \"error\",\n \"jest/no-test-return-statement\": \"error\",\n \"jest/no-unneeded-async-expect-function\": \"error\",\n \"jest/padding-around-after-all-blocks\": \"error\",\n \"jest/padding-around-test-blocks\": \"error\",\n \"jest/prefer-called-with\": \"error\",\n \"jest/prefer-comparison-matcher\": \"error\",\n \"jest/prefer-each\": \"error\",\n \"jest/prefer-equality-matcher\": \"error\",\n \"jest/prefer-hooks-in-order\": \"error\",\n \"jest/prefer-hooks-on-top\": \"error\",\n \"jest/prefer-importing-jest-globals\": \"error\",\n \"jest/prefer-mock-promise-shorthand\": \"error\",\n \"jest/prefer-mock-return-shorthand\": \"error\",\n \"jest/prefer-spy-on\": \"error\",\n \"jest/prefer-to-be\": \"error\",\n \"jest/prefer-to-contain\": \"error\",\n \"jest/prefer-to-have-been-called-times\": \"error\",\n \"jest/prefer-to-have-length\": \"error\",\n \"jest/prefer-todo\": \"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/error-boundaries\": \"error\",\n \"react/globals\": \"error\",\n \"react/immutability\": \"error\",\n \"react/incompatible-library\": \"error\",\n \"react/preserve-manual-memoization\": \"error\",\n \"react/purity\": \"error\",\n \"react/refs\": \"error\",\n \"react/set-state-in-effect\": \"error\",\n \"react/set-state-in-render\": \"error\",\n \"react/static-components\": \"error\",\n \"react/unsupported-syntax\": \"error\",\n \"react/use-memo\": \"error\",\n \"react/void-use-memo\": \"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 universalRestrictedProperties = [\n {\n object: \"Reflect\",\n property: \"get\",\n },\n {\n object: \"Reflect\",\n property: \"apply\",\n },\n] as const;\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-restricted-properties\": [\"error\", ...universalRestrictedProperties],\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-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-unsafe-type-assertion\": \"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-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-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/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 { LintRules } from \"../types.ts\";\nimport { universalRestrictedProperties } from \"./universal.ts\";\n\nexport const reactNativeRules: LintRules = {\n \"no-restricted-properties\": [\n \"error\",\n ...universalRestrictedProperties,\n {\n property: \"toSorted\",\n message: \"Hermes lacks toSorted; copy the array before sorting.\",\n },\n {\n object: \"Intl\",\n property: \"RelativeTimeFormat\",\n message: \"Hermes lacks Intl.RelativeTimeFormat; use a supported formatter.\",\n },\n {\n object: \"Intl\",\n property: \"PluralRules\",\n message: \"Hermes lacks Intl.PluralRules; choose plural forms explicitly.\",\n },\n {\n object: \"Intl\",\n property: \"ListFormat\",\n message: \"Hermes lacks Intl.ListFormat; join lists explicitly.\",\n },\n {\n object: \"Intl\",\n property: \"Segmenter\",\n message: \"Hermes lacks Intl.Segmenter; split text explicitly.\",\n },\n {\n object: \"Intl\",\n property: \"DisplayNames\",\n message: \"Hermes lacks Intl.DisplayNames; map codes to names explicitly.\",\n },\n {\n object: \"Array\",\n property: \"fromAsync\",\n message: \"Hermes lacks Array.fromAsync; collect async values in a loop.\",\n },\n {\n object: \"RegExp\",\n property: \"escape\",\n message: \"Hermes lacks RegExp.escape; escape patterns explicitly.\",\n },\n ],\n \"no-restricted-globals\": [\n \"error\",\n { name: \"Temporal\", message: \"Hermes lacks Temporal; use Date.\" },\n ],\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 \"unicorn/no-array-reverse\": \"error\",\n \"unicorn/no-array-sort\": [\n \"error\",\n {\n allowAfterSpread: true,\n },\n ],\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-restricted-vi-methods\": [\n \"error\",\n {\n doMock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n mock: \"Use a maintained implementation, spy, or injected owned dependency.\",\n },\n ],\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 { jestRules } from \"./rules/jest.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\nconst reactNativeJestEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...reactNativeEnvironment,\n jest: true,\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 reactNativeJestTestLint: LintProfile = {\n env: reactNativeJestEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jest\"],\n rules: {\n ...reactCoreRules,\n ...reactNativeRules,\n ...jestRules,\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 { 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 REACT_NATIVE_JEST_SETUP_FILES,\n REACT_NATIVE_JEST_TEST_FILES,\n RUNTIME_OVERRIDE_EXCLUDE_FILES,\n TEST_FILES,\n VITEST_SETUP_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 reactNativeJestTestLint,\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\nexport const reactNativeTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n excludeFiles: [\n ...VITEST_SETUP_FILES,\n ...REACT_NATIVE_JEST_TEST_FILES,\n ...REACT_NATIVE_JEST_SETUP_FILES,\n ],\n ...nodeTestLint,\n },\n {\n files: [...VITEST_SETUP_FILES],\n excludeFiles: [...REACT_NATIVE_JEST_TEST_FILES, ...REACT_NATIVE_JEST_SETUP_FILES],\n ...nodeTestLint,\n rules: {\n ...nodeTestLint.rules,\n \"vitest/no-restricted-vi-methods\": \"off\",\n },\n },\n {\n files: [...REACT_NATIVE_JEST_TEST_FILES],\n excludeFiles: [...VITEST_SETUP_FILES, ...REACT_NATIVE_JEST_SETUP_FILES],\n ...reactNativeJestTestLint,\n },\n {\n files: [...REACT_NATIVE_JEST_SETUP_FILES],\n excludeFiles: [...VITEST_SETUP_FILES, ...REACT_NATIVE_JEST_TEST_FILES],\n ...reactNativeJestTestLint,\n rules: {\n ...reactNativeJestTestLint.rules,\n \"jest/no-restricted-jest-methods\": \"off\",\n },\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 reactNativeTestLintConfig as reactNativeTestLintSettings,\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 reactNativeTestLintConfig: ConfigFragment = {\n lint: reactNativeTestLintSettings,\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.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Kasoa's Vite+ configurations",
5
5
  "keywords": [
6
6
  "config",
@@ -42,24 +42,19 @@
42
42
  "access": "public"
43
43
  },
44
44
  "devDependencies": {
45
- "@cloudflare/vitest-plugin": "1.0.0",
45
+ "@cloudflare/vitest-plugin": "1.3.6",
46
46
  "@types/node": "24.13.3",
47
47
  "typescript": "^7.0.2",
48
- "vite-plus": "^0.3.0",
49
- "wrangler": "^4.125.0"
48
+ "vite-plus": "^0.3.0"
50
49
  },
51
50
  "peerDependencies": {
52
51
  "@cloudflare/vitest-plugin": "^1.0.0",
53
52
  "typescript": ">=7 <8",
54
- "vite-plus": ">=0.3.0 <1",
55
- "wrangler": ">=4 <5"
53
+ "vite-plus": ">=0.3.0 <2"
56
54
  },
57
55
  "peerDependenciesMeta": {
58
56
  "@cloudflare/vitest-plugin": {
59
57
  "optional": true
60
- },
61
- "wrangler": {
62
- "optional": true
63
58
  }
64
59
  },
65
60
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-DInx77MZ.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 VITEST_SETUP_FILES = [\n \"**/{vitest.setup,setup.vitest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const REACT_NATIVE_JEST_TEST_FILES = [\n \"**/*.native.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const REACT_NATIVE_JEST_SETUP_FILES = [\n \"**/{jest.setup,setup.jest}.{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,qBAAqB,CAChC,gEACF;AACA,MAAa,+BAA+B,CAC1C,yDACF;AACA,MAAa,gCAAgC,CAC3C,4DACF;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"}