@kasoa/vite-plus-config 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -10
- package/dist/constants-DInx77MZ.mjs +38 -0
- package/dist/constants-DInx77MZ.mjs.map +1 -0
- package/dist/src/cloudflare-workers/index.d.mts +1 -1
- package/dist/src/cloudflare-workers/index.mjs +2 -2
- package/dist/src/cloudflare-workers/index.mjs.map +1 -1
- package/dist/src/index.d.mts +6 -1
- package/dist/src/index.d.mts.map +1 -1
- package/dist/src/index.mjs +142 -16
- package/dist/src/index.mjs.map +1 -1
- package/package.json +9 -9
- package/dist/constants-D2PDomKY.mjs +0 -33
- package/dist/constants-D2PDomKY.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# @kasoa/vite-plus-config
|
|
2
2
|
|
|
3
|
-
Strict, composable Vite+ configuration fragments. Requires Node.js 24.11 or newer, Vite+ 0.
|
|
3
|
+
Strict, composable Vite+ configuration fragments. Requires Node.js 24.11 or newer, Vite+ 0.3.0 or newer, and TypeScript 7.
|
|
4
|
+
|
|
5
|
+
The preset is intentionally strict. Fix violations by default. When a runtime, protocol, generated file, framework, or external signature requires an exception, keep it narrow and explain why it is necessary.
|
|
4
6
|
|
|
5
7
|
## Installation
|
|
6
8
|
|
|
@@ -52,10 +54,10 @@ The source runtime and test runtime are independent. The example uses Vitest's d
|
|
|
52
54
|
import {
|
|
53
55
|
baseToolingConfig,
|
|
54
56
|
composeConfig,
|
|
55
|
-
nodeTestLintConfig,
|
|
56
57
|
reactCoreConfig,
|
|
57
58
|
reactNativeGeneratedConfig,
|
|
58
59
|
reactNativeRuntimeConfig,
|
|
60
|
+
reactNativeTestLintConfig,
|
|
59
61
|
} from "@kasoa/vite-plus-config";
|
|
60
62
|
|
|
61
63
|
export default composeConfig(
|
|
@@ -63,11 +65,11 @@ export default composeConfig(
|
|
|
63
65
|
reactCoreConfig,
|
|
64
66
|
reactNativeRuntimeConfig,
|
|
65
67
|
reactNativeGeneratedConfig,
|
|
66
|
-
|
|
68
|
+
reactNativeTestLintConfig,
|
|
67
69
|
);
|
|
68
70
|
```
|
|
69
71
|
|
|
70
|
-
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.
|
|
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.
|
|
71
73
|
|
|
72
74
|
## Libraries and workspaces
|
|
73
75
|
|
|
@@ -182,7 +184,7 @@ Configuration and CommonJS files receive the Node profile from `baseToolingConfi
|
|
|
182
184
|
Install the optional peers:
|
|
183
185
|
|
|
184
186
|
```bash
|
|
185
|
-
pnpm add -D @cloudflare/vitest-
|
|
187
|
+
pnpm add -D @cloudflare/vitest-plugin@^1 wrangler@^4
|
|
186
188
|
```
|
|
187
189
|
|
|
188
190
|
```ts
|
|
@@ -221,7 +223,7 @@ Wrangler owns Worker development, builds, type generation, and deployment. Vite+
|
|
|
221
223
|
|
|
222
224
|
## Overrides
|
|
223
225
|
|
|
224
|
-
Preset rules are inherited through Oxlint, so an ordinary final rule replaces a preset tuple atomically:
|
|
226
|
+
Preset rules are inherited through Oxlint, so an ordinary final rule replaces a preset tuple atomically. Prefer improving owned code. Tune a shared limit only when the project has a deliberate, reviewable reason:
|
|
225
227
|
|
|
226
228
|
```ts
|
|
227
229
|
import { baseToolingConfig, composeConfig, nodeRuntimeConfig } from "@kasoa/vite-plus-config";
|
|
@@ -229,13 +231,14 @@ import { baseToolingConfig, composeConfig, nodeRuntimeConfig } from "@kasoa/vite
|
|
|
229
231
|
export default composeConfig(baseToolingConfig, nodeRuntimeConfig, {
|
|
230
232
|
lint: {
|
|
231
233
|
rules: {
|
|
232
|
-
|
|
233
|
-
"max-params": ["warn", { max: 5 }],
|
|
234
|
+
"max-params": ["error", { max: 4 }],
|
|
234
235
|
},
|
|
235
236
|
},
|
|
236
237
|
});
|
|
237
238
|
```
|
|
238
239
|
|
|
240
|
+
Keep exceptions as narrow as the constraint. For example, an externally fixed callback signature should use a local directive with a concrete reason rather than weakening `max-params` throughout a project. Dependent sequential work may suppress `no-await-in-loop` at the relevant `await` with a concrete explanation.
|
|
241
|
+
|
|
239
242
|
To change a scoped test rule, construct that test fragment directly instead of composing the default one:
|
|
240
243
|
|
|
241
244
|
```ts
|
|
@@ -260,7 +263,9 @@ const testLintConfig = {
|
|
|
260
263
|
|
|
261
264
|
React fragments report React Compiler violations but do not install or enable compiler transforms.
|
|
262
265
|
|
|
263
|
-
##
|
|
266
|
+
## Project commands and hooks
|
|
267
|
+
|
|
268
|
+
Run these commands in the consuming project:
|
|
264
269
|
|
|
265
270
|
```bash
|
|
266
271
|
vp check
|
|
@@ -268,7 +273,11 @@ vp check --fix
|
|
|
268
273
|
vp test
|
|
269
274
|
```
|
|
270
275
|
|
|
271
|
-
Import Vitest APIs from `vite-plus/test`.
|
|
276
|
+
Import Vitest APIs from `vite-plus/test`. The base fragment routes code through `vp check --fix` and supported non-code files through `vp fmt --write` when `vp staged` runs. Commit a project-owned `.vite-hooks/pre-commit` containing `vp staged`, then run `vp config --no-agent` to install or refresh Vite+'s generated dispatcher.
|
|
277
|
+
|
|
278
|
+
## Contributing
|
|
279
|
+
|
|
280
|
+
Repository maintenance, verification, rule policy, and release guidance live in the [contributor guide](https://github.com/emmanuelchucks/kasoa/blob/main/CONTRIBUTING.md).
|
|
272
281
|
|
|
273
282
|
## License
|
|
274
283
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/constants.ts
|
|
2
|
+
const CODE_FILES = ["**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
3
|
+
const COMMONJS_FILES = ["**/*.{cjs,cts}"];
|
|
4
|
+
const CONFIG_FILES = ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
5
|
+
const TEST_FILES = [
|
|
6
|
+
"**/test/**",
|
|
7
|
+
"**/tests/**",
|
|
8
|
+
"**/__tests__/**",
|
|
9
|
+
"**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"
|
|
10
|
+
];
|
|
11
|
+
const VITEST_SETUP_FILES = ["**/{vitest.setup,setup.vitest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
12
|
+
const REACT_NATIVE_JEST_TEST_FILES = ["**/*.native.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
13
|
+
const REACT_NATIVE_JEST_SETUP_FILES = ["**/{jest.setup,setup.jest}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
14
|
+
const RUNTIME_OVERRIDE_EXCLUDE_FILES = [
|
|
15
|
+
...COMMONJS_FILES,
|
|
16
|
+
...CONFIG_FILES,
|
|
17
|
+
...TEST_FILES
|
|
18
|
+
];
|
|
19
|
+
const DEFAULT_IGNORE_PATTERNS = [
|
|
20
|
+
"node_modules/**",
|
|
21
|
+
"dist/**",
|
|
22
|
+
"dist-ssr/**",
|
|
23
|
+
"**/.wrangler/**",
|
|
24
|
+
"**/migrations/**",
|
|
25
|
+
"**/drizzle/migrations.js",
|
|
26
|
+
"**/drizzle/meta/*.json"
|
|
27
|
+
];
|
|
28
|
+
const CLOUDFLARE_WORKER_IGNORE_PATTERNS = ["**/worker-configuration.d.ts"];
|
|
29
|
+
const REACT_NATIVE_IGNORE_PATTERNS = ["**/.expo/**"];
|
|
30
|
+
const DEFAULT_STAGED_CHECK_GLOB = "*.{js,jsx,ts,tsx,mjs,cjs,mts,cts,svelte,vue}";
|
|
31
|
+
const DEFAULT_STAGED_CHECK_COMMAND = "vp check --fix";
|
|
32
|
+
const DEFAULT_STAGED_FORMAT_GLOB = "*.{css,html,json,jsonc,less,md,mdx,scss,yaml,yml}";
|
|
33
|
+
const DEFAULT_STAGED_FORMAT_COMMAND = "vp fmt --write --no-error-on-unmatched-pattern";
|
|
34
|
+
const DEFAULT_WRANGLER_CONFIG_PATH = "./wrangler.jsonc";
|
|
35
|
+
//#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 };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=constants-DInx77MZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as ConfigFragment } from "../../compose-XJvIUwAG.mjs";
|
|
2
|
-
import { cloudflareTest } from "@cloudflare/vitest-
|
|
2
|
+
import { cloudflareTest } from "@cloudflare/vitest-plugin";
|
|
3
3
|
//#region src/cloudflare-workers/index.d.ts
|
|
4
4
|
type CloudflareTestOptions = Exclude<NonNullable<Parameters<typeof cloudflareTest>[0]>, (...args: readonly never[]) => unknown>;
|
|
5
5
|
interface CloudflareTestConfigOptions extends Omit<CloudflareTestOptions, "wrangler"> {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { u as DEFAULT_WRANGLER_CONFIG_PATH } from "../../constants-DInx77MZ.mjs";
|
|
2
2
|
import { lazyPlugins } from "vite-plus";
|
|
3
|
-
import { cloudflareTest } from "@cloudflare/vitest-
|
|
3
|
+
import { cloudflareTest } from "@cloudflare/vitest-plugin";
|
|
4
4
|
//#region src/cloudflare-workers/index.ts
|
|
5
5
|
function createLazyPluginInputs(factory) {
|
|
6
6
|
return lazyPlugins(factory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/cloudflare-workers/index.ts"],"sourcesContent":["import { cloudflareTest } from \"@cloudflare/vitest-
|
|
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"}
|
package/dist/src/index.d.mts
CHANGED
|
@@ -5,6 +5,9 @@ declare const CODE_FILES: readonly ["**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
|
5
5
|
declare const COMMONJS_FILES: readonly ["**/*.{cjs,cts}"];
|
|
6
6
|
declare const CONFIG_FILES: readonly ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
7
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}"];
|
|
8
11
|
declare const RUNTIME_OVERRIDE_EXCLUDE_FILES: readonly string[];
|
|
9
12
|
//#endregion
|
|
10
13
|
//#region src/fragments.d.ts
|
|
@@ -21,6 +24,7 @@ declare const cloudflareWorkerGeneratedConfig: ConfigFragment;
|
|
|
21
24
|
declare const nodeTestLintConfig: ConfigFragment;
|
|
22
25
|
declare const browserTestLintConfig: ConfigFragment;
|
|
23
26
|
declare const cloudflareWorkerTestLintConfig: ConfigFragment;
|
|
27
|
+
declare const reactNativeTestLintConfig: ConfigFragment;
|
|
24
28
|
declare const libraryPackDefaults: PackConfig;
|
|
25
29
|
declare const libraryPackConfig: ConfigFragment;
|
|
26
30
|
declare const workspaceRunConfig: ConfigFragment;
|
|
@@ -38,10 +42,11 @@ declare const reactDomLint: LintProfile;
|
|
|
38
42
|
declare const reactNativeRuntimeLint: LintProfile;
|
|
39
43
|
declare const reactWebLint: LintProfile;
|
|
40
44
|
declare const reactNativeLint: LintProfile;
|
|
45
|
+
declare const reactNativeJestTestLint: LintProfile;
|
|
41
46
|
declare const cloudflareWorkerLint: LintProfile;
|
|
42
47
|
declare const nodeTestLint: LintProfile;
|
|
43
48
|
declare const browserTestLint: LintProfile;
|
|
44
49
|
declare const cloudflareWorkerTestLint: LintProfile;
|
|
45
50
|
//#endregion
|
|
46
|
-
export { CODE_FILES, COMMONJS_FILES, CONFIG_FILES, type ConfigFragment, type PluginInput, RUNTIME_OVERRIDE_EXCLUDE_FILES, TEST_FILES, baseToolingConfig, browserLint, browserRuntimeConfig, browserTestLint, browserTestLintConfig, cloudflareWorkerGeneratedConfig, cloudflareWorkerLint, cloudflareWorkerRuntimeConfig, cloudflareWorkerTestLint, cloudflareWorkerTestLintConfig, composeConfig, libraryPackConfig, libraryPackDefaults, nodeLint, nodeRuntimeConfig, nodeTestLint, nodeTestLintConfig, reactCoreConfig, reactCoreLint, reactDomConfig, reactDomLint, reactNativeGeneratedConfig, reactNativeLint, reactNativeRuntimeConfig, reactNativeRuntimeLint, reactWebLint, workspaceRunConfig };
|
|
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 };
|
|
47
52
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/src/index.d.mts.map
CHANGED
|
@@ -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;;;
|
|
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"}
|
package/dist/src/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DEFAULT_IGNORE_PATTERNS, d as TEST_FILES, i as CONFIG_FILES, l as
|
|
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";
|
|
2
2
|
import { defineConfig, mergeConfig } from "vite-plus";
|
|
3
3
|
//#region src/compose.ts
|
|
4
4
|
function toUserConfig(config) {
|
|
@@ -35,10 +35,7 @@ const baseFormatConfig = {
|
|
|
35
35
|
]
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
const reactFormatConfig = { sortTailwindcss: {
|
|
39
|
-
attributes: ["/.*ClassName/"],
|
|
40
|
-
functions: ["tv"]
|
|
41
|
-
} };
|
|
38
|
+
const reactFormatConfig = { sortTailwindcss: { functions: ["tv"] } };
|
|
42
39
|
const reactNativeFormatConfig = { ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS] };
|
|
43
40
|
const cloudflareWorkerFormatConfig = { ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS] };
|
|
44
41
|
//#endregion
|
|
@@ -54,12 +51,54 @@ const browserRules = {
|
|
|
54
51
|
"unicorn/prefer-modern-dom-apis": "error"
|
|
55
52
|
};
|
|
56
53
|
//#endregion
|
|
54
|
+
//#region src/lint/rules/jest.ts
|
|
55
|
+
const jestRules = {
|
|
56
|
+
"max-nested-callbacks": ["error", { max: 4 }],
|
|
57
|
+
"jest/consistent-test-it": ["error", {
|
|
58
|
+
fn: "test",
|
|
59
|
+
withinDescribe: "it"
|
|
60
|
+
}],
|
|
61
|
+
"jest/max-nested-describe": ["error", { max: 3 }],
|
|
62
|
+
"jest/no-alias-methods": "error",
|
|
63
|
+
"jest/no-duplicate-hooks": "error",
|
|
64
|
+
"jest/no-identical-title": "error",
|
|
65
|
+
"jest/no-interpolation-in-snapshots": "error",
|
|
66
|
+
"jest/no-large-snapshots": "error",
|
|
67
|
+
"jest/no-mocks-import": "error",
|
|
68
|
+
"jest/no-restricted-jest-methods": ["error", {
|
|
69
|
+
doMock: "Use a maintained implementation, spy, or injected owned dependency.",
|
|
70
|
+
mock: "Use a maintained implementation, spy, or injected owned dependency.",
|
|
71
|
+
unstable_mockModule: "Use a maintained implementation, spy, or injected owned dependency."
|
|
72
|
+
}],
|
|
73
|
+
"jest/no-test-prefixes": "error",
|
|
74
|
+
"jest/no-test-return-statement": "error",
|
|
75
|
+
"jest/no-unneeded-async-expect-function": "error",
|
|
76
|
+
"jest/padding-around-after-all-blocks": "error",
|
|
77
|
+
"jest/padding-around-test-blocks": "error",
|
|
78
|
+
"jest/prefer-called-with": "error",
|
|
79
|
+
"jest/prefer-comparison-matcher": "error",
|
|
80
|
+
"jest/prefer-each": "error",
|
|
81
|
+
"jest/prefer-equality-matcher": "error",
|
|
82
|
+
"jest/prefer-hooks-in-order": "error",
|
|
83
|
+
"jest/prefer-hooks-on-top": "error",
|
|
84
|
+
"jest/prefer-importing-jest-globals": "error",
|
|
85
|
+
"jest/prefer-mock-promise-shorthand": "error",
|
|
86
|
+
"jest/prefer-mock-return-shorthand": "error",
|
|
87
|
+
"jest/prefer-spy-on": "error",
|
|
88
|
+
"jest/prefer-to-be": "error",
|
|
89
|
+
"jest/prefer-to-contain": "error",
|
|
90
|
+
"jest/prefer-to-have-been-called-times": "error",
|
|
91
|
+
"jest/prefer-to-have-length": "error",
|
|
92
|
+
"jest/prefer-todo": "error"
|
|
93
|
+
};
|
|
94
|
+
//#endregion
|
|
57
95
|
//#region src/lint/rules/node.ts
|
|
58
96
|
const nodeRules = {
|
|
59
97
|
"node/exports-style": "error",
|
|
60
98
|
"node/global-require": "error",
|
|
61
99
|
"node/no-exports-assign": "error",
|
|
62
|
-
"node/no-mixed-requires": "error"
|
|
100
|
+
"node/no-mixed-requires": "error",
|
|
101
|
+
"unicorn/prefer-node-protocol": "error"
|
|
63
102
|
};
|
|
64
103
|
//#endregion
|
|
65
104
|
//#region src/lint/rules/react-core.ts
|
|
@@ -86,7 +125,19 @@ const reactCoreRules = {
|
|
|
86
125
|
"react/self-closing-comp": "error",
|
|
87
126
|
"react/state-in-constructor": "error",
|
|
88
127
|
"react/exhaustive-deps": "error",
|
|
89
|
-
"react/
|
|
128
|
+
"react/error-boundaries": "error",
|
|
129
|
+
"react/globals": "error",
|
|
130
|
+
"react/immutability": "error",
|
|
131
|
+
"react/incompatible-library": "error",
|
|
132
|
+
"react/preserve-manual-memoization": "error",
|
|
133
|
+
"react/purity": "error",
|
|
134
|
+
"react/refs": "error",
|
|
135
|
+
"react/set-state-in-effect": "error",
|
|
136
|
+
"react/set-state-in-render": "error",
|
|
137
|
+
"react/static-components": "error",
|
|
138
|
+
"react/unsupported-syntax": "error",
|
|
139
|
+
"react/use-memo": "error",
|
|
140
|
+
"react/void-use-memo": "error",
|
|
90
141
|
"react/react-in-jsx-scope": "off",
|
|
91
142
|
"react/jsx-key": "error",
|
|
92
143
|
"react/jsx-no-duplicate-props": "error",
|
|
@@ -124,6 +175,7 @@ const reactNativeRules = {
|
|
|
124
175
|
//#endregion
|
|
125
176
|
//#region src/lint/rules/vitest.ts
|
|
126
177
|
const vitestRules = {
|
|
178
|
+
"max-nested-callbacks": ["error", { max: 4 }],
|
|
127
179
|
"vitest/consistent-each-for": "error",
|
|
128
180
|
"vitest/consistent-test-it": ["error", {
|
|
129
181
|
fn: "test",
|
|
@@ -138,6 +190,10 @@ const vitestRules = {
|
|
|
138
190
|
"vitest/no-interpolation-in-snapshots": "error",
|
|
139
191
|
"vitest/no-large-snapshots": "error",
|
|
140
192
|
"vitest/no-mocks-import": "error",
|
|
193
|
+
"vitest/no-restricted-vi-methods": ["error", {
|
|
194
|
+
doMock: "Use a maintained implementation, spy, or injected owned dependency.",
|
|
195
|
+
mock: "Use a maintained implementation, spy, or injected owned dependency."
|
|
196
|
+
}],
|
|
141
197
|
"vitest/no-test-prefixes": "error",
|
|
142
198
|
"vitest/no-test-return-statement": "error",
|
|
143
199
|
"vitest/no-unneeded-async-expect-function": "error",
|
|
@@ -191,6 +247,10 @@ const browserEnvironment = {
|
|
|
191
247
|
browser: true
|
|
192
248
|
};
|
|
193
249
|
const reactNativeEnvironment = { ...neutralEnvironment };
|
|
250
|
+
const reactNativeJestEnvironment = {
|
|
251
|
+
...reactNativeEnvironment,
|
|
252
|
+
jest: true
|
|
253
|
+
};
|
|
194
254
|
const cloudflareWorkerEnvironment = {
|
|
195
255
|
...neutralEnvironment,
|
|
196
256
|
serviceworker: true,
|
|
@@ -323,6 +383,20 @@ const reactNativeLint = {
|
|
|
323
383
|
...reactNativeRules
|
|
324
384
|
}
|
|
325
385
|
};
|
|
386
|
+
const reactNativeJestTestLint = {
|
|
387
|
+
env: reactNativeJestEnvironment,
|
|
388
|
+
globals: reactNativeGlobals,
|
|
389
|
+
plugins: [
|
|
390
|
+
...BASE_LINT_PLUGINS,
|
|
391
|
+
"react",
|
|
392
|
+
"jest"
|
|
393
|
+
],
|
|
394
|
+
rules: {
|
|
395
|
+
...reactCoreRules,
|
|
396
|
+
...reactNativeRules,
|
|
397
|
+
...jestRules
|
|
398
|
+
}
|
|
399
|
+
};
|
|
326
400
|
const cloudflareWorkerLint = {
|
|
327
401
|
env: cloudflareWorkerEnvironment,
|
|
328
402
|
globals: cloudflareWorkerGlobals,
|
|
@@ -386,6 +460,7 @@ const universalRules = {
|
|
|
386
460
|
"no-case-declarations": "error",
|
|
387
461
|
"no-constructor-return": "error",
|
|
388
462
|
"no-else-return": "error",
|
|
463
|
+
"no-empty": "error",
|
|
389
464
|
"no-extra-label": "error",
|
|
390
465
|
"no-fallthrough": "error",
|
|
391
466
|
"no-implicit-coercion": "error",
|
|
@@ -405,11 +480,21 @@ const universalRules = {
|
|
|
405
480
|
"no-promise-executor-return": "error",
|
|
406
481
|
"no-prototype-builtins": "error",
|
|
407
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
|
+
],
|
|
408
494
|
"no-return-assign": "error",
|
|
409
495
|
"no-script-url": "error",
|
|
410
496
|
"no-self-compare": "error",
|
|
411
497
|
"no-template-curly-in-string": "error",
|
|
412
|
-
"no-throw-literal": "error",
|
|
413
498
|
"no-useless-call": "error",
|
|
414
499
|
"no-useless-computed-key": "error",
|
|
415
500
|
"no-useless-return": "error",
|
|
@@ -427,7 +512,6 @@ const universalRules = {
|
|
|
427
512
|
"prefer-numeric-literals": "error",
|
|
428
513
|
"prefer-object-has-own": "error",
|
|
429
514
|
"prefer-object-spread": "error",
|
|
430
|
-
"prefer-promise-reject-errors": "error",
|
|
431
515
|
"prefer-regex-literals": "error",
|
|
432
516
|
"prefer-rest-params": "error",
|
|
433
517
|
"prefer-spread": "error",
|
|
@@ -443,7 +527,6 @@ const universalRules = {
|
|
|
443
527
|
"typescript/array-type": "error",
|
|
444
528
|
"typescript/ban-ts-comment": ["error", { minimumDescriptionLength: 10 }],
|
|
445
529
|
"typescript/ban-tslint-comment": "error",
|
|
446
|
-
"typescript/ban-types": "error",
|
|
447
530
|
"typescript/class-literal-property-style": "error",
|
|
448
531
|
"typescript/consistent-generic-constructors": "error",
|
|
449
532
|
"typescript/consistent-indexed-object-style": "error",
|
|
@@ -457,7 +540,7 @@ const universalRules = {
|
|
|
457
540
|
"typescript/method-signature-style": "error",
|
|
458
541
|
"typescript/no-confusing-void-expression": "error",
|
|
459
542
|
"typescript/no-deprecated": "error",
|
|
460
|
-
"typescript/no-empty-
|
|
543
|
+
"typescript/no-empty-object-type": "error",
|
|
461
544
|
"typescript/no-inferrable-types": "error",
|
|
462
545
|
"typescript/no-misused-promises": "error",
|
|
463
546
|
"typescript/no-mixed-enums": "error",
|
|
@@ -468,6 +551,8 @@ const universalRules = {
|
|
|
468
551
|
"typescript/no-unsafe-function-type": "error",
|
|
469
552
|
"typescript/no-unsafe-member-access": "error",
|
|
470
553
|
"typescript/no-unsafe-return": "error",
|
|
554
|
+
"typescript/no-unsafe-type-assertion": "error",
|
|
555
|
+
"typescript/no-wrapper-object-types": "error",
|
|
471
556
|
"typescript/only-throw-error": "error",
|
|
472
557
|
"typescript/parameter-properties": "error",
|
|
473
558
|
"typescript/prefer-enum-initializers": "error",
|
|
@@ -482,7 +567,6 @@ const universalRules = {
|
|
|
482
567
|
"typescript/prefer-regexp-exec": "error",
|
|
483
568
|
"typescript/prefer-return-this-type": "error",
|
|
484
569
|
"typescript/prefer-string-starts-ends-with": "error",
|
|
485
|
-
"typescript/prefer-ts-expect-error": "error",
|
|
486
570
|
"typescript/related-getter-setter-pairs": "error",
|
|
487
571
|
"typescript/restrict-plus-operands": "error",
|
|
488
572
|
"typescript/return-await": "error",
|
|
@@ -553,7 +637,6 @@ const universalRules = {
|
|
|
553
637
|
"unicorn/prefer-object-from-entries": "error",
|
|
554
638
|
"unicorn/prefer-optional-catch-binding": "error",
|
|
555
639
|
"unicorn/prefer-prototype-methods": "error",
|
|
556
|
-
"unicorn/prefer-reflect-apply": "error",
|
|
557
640
|
"unicorn/prefer-regexp-test": "error",
|
|
558
641
|
"unicorn/prefer-response-static-json": "error",
|
|
559
642
|
"unicorn/prefer-set-has": "error",
|
|
@@ -648,7 +731,7 @@ const baseLintConfig = {
|
|
|
648
731
|
},
|
|
649
732
|
{
|
|
650
733
|
files: ["**/*.d.ts"],
|
|
651
|
-
rules: { "typescript/no-empty-
|
|
734
|
+
rules: { "typescript/no-empty-object-type": "off" }
|
|
652
735
|
}
|
|
653
736
|
]
|
|
654
737
|
};
|
|
@@ -698,12 +781,49 @@ const cloudflareWorkerTestLintConfig$1 = { overrides: [{
|
|
|
698
781
|
files: [...TEST_FILES],
|
|
699
782
|
...cloudflareWorkerTestLint
|
|
700
783
|
}] };
|
|
784
|
+
const reactNativeTestLintConfig$1 = { overrides: [
|
|
785
|
+
{
|
|
786
|
+
files: [...TEST_FILES],
|
|
787
|
+
excludeFiles: [
|
|
788
|
+
...VITEST_SETUP_FILES,
|
|
789
|
+
...REACT_NATIVE_JEST_TEST_FILES,
|
|
790
|
+
...REACT_NATIVE_JEST_SETUP_FILES
|
|
791
|
+
],
|
|
792
|
+
...nodeTestLint
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
files: [...VITEST_SETUP_FILES],
|
|
796
|
+
excludeFiles: [...REACT_NATIVE_JEST_TEST_FILES, ...REACT_NATIVE_JEST_SETUP_FILES],
|
|
797
|
+
...nodeTestLint,
|
|
798
|
+
rules: {
|
|
799
|
+
...nodeTestLint.rules,
|
|
800
|
+
"vitest/no-restricted-vi-methods": "off"
|
|
801
|
+
}
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
files: [...REACT_NATIVE_JEST_TEST_FILES],
|
|
805
|
+
excludeFiles: [...VITEST_SETUP_FILES, ...REACT_NATIVE_JEST_SETUP_FILES],
|
|
806
|
+
...reactNativeJestTestLint
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
files: [...REACT_NATIVE_JEST_SETUP_FILES],
|
|
810
|
+
excludeFiles: [...VITEST_SETUP_FILES, ...REACT_NATIVE_JEST_TEST_FILES],
|
|
811
|
+
...reactNativeJestTestLint,
|
|
812
|
+
rules: {
|
|
813
|
+
...reactNativeJestTestLint.rules,
|
|
814
|
+
"jest/no-restricted-jest-methods": "off"
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
] };
|
|
701
818
|
//#endregion
|
|
702
819
|
//#region src/fragments.ts
|
|
703
820
|
const baseToolingConfig = {
|
|
704
821
|
fmt: baseFormatConfig,
|
|
705
822
|
lint: baseLintConfig,
|
|
706
|
-
staged: {
|
|
823
|
+
staged: {
|
|
824
|
+
[DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND,
|
|
825
|
+
[DEFAULT_STAGED_FORMAT_GLOB]: DEFAULT_STAGED_FORMAT_COMMAND
|
|
826
|
+
}
|
|
707
827
|
};
|
|
708
828
|
const nodeRuntimeConfig = { lint: nodeRuntimeLintConfig };
|
|
709
829
|
const browserRuntimeConfig = { lint: browserRuntimeLintConfig };
|
|
@@ -725,10 +845,16 @@ const cloudflareWorkerGeneratedConfig = {
|
|
|
725
845
|
const nodeTestLintConfig = { lint: nodeTestLintConfig$1 };
|
|
726
846
|
const browserTestLintConfig = { lint: browserTestLintConfig$1 };
|
|
727
847
|
const cloudflareWorkerTestLintConfig = { lint: cloudflareWorkerTestLintConfig$1 };
|
|
848
|
+
const reactNativeTestLintConfig = { lint: reactNativeTestLintConfig$1 };
|
|
728
849
|
const libraryPackDefaults = {
|
|
850
|
+
attw: {
|
|
851
|
+
level: "error",
|
|
852
|
+
profile: "esm-only"
|
|
853
|
+
},
|
|
729
854
|
clean: true,
|
|
730
855
|
dts: true,
|
|
731
856
|
format: ["esm"],
|
|
857
|
+
publint: { strict: true },
|
|
732
858
|
sourcemap: true
|
|
733
859
|
};
|
|
734
860
|
const libraryPackConfig = { pack: libraryPackDefaults };
|
|
@@ -740,6 +866,6 @@ const workspaceRunConfig = { run: {
|
|
|
740
866
|
enablePrePostScripts: true
|
|
741
867
|
} };
|
|
742
868
|
//#endregion
|
|
743
|
-
export { CODE_FILES, COMMONJS_FILES, CONFIG_FILES, RUNTIME_OVERRIDE_EXCLUDE_FILES, TEST_FILES, baseToolingConfig, browserLint, browserRuntimeConfig, browserTestLint, browserTestLintConfig, cloudflareWorkerGeneratedConfig, cloudflareWorkerLint, cloudflareWorkerRuntimeConfig, cloudflareWorkerTestLint, cloudflareWorkerTestLintConfig, composeConfig, libraryPackConfig, libraryPackDefaults, nodeLint, nodeRuntimeConfig, nodeTestLint, nodeTestLintConfig, reactCoreConfig, reactCoreLint, reactDomConfig, reactDomLint, reactNativeGeneratedConfig, reactNativeLint, reactNativeRuntimeConfig, reactNativeRuntimeLint, reactWebLint, workspaceRunConfig };
|
|
869
|
+
export { CODE_FILES, COMMONJS_FILES, CONFIG_FILES, 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 };
|
|
744
870
|
|
|
745
871
|
//# sourceMappingURL=index.mjs.map
|
package/dist/src/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["nodeTestLintConfig","browserTestLintConfig","cloudflareWorkerTestLintConfig","nodeTestLintSettings","browserTestLintSettings","cloudflareWorkerTestLintSettings"],"sources":["../../src/compose.ts","../../src/format.ts","../../src/lint/rules/browser.ts","../../src/lint/rules/node.ts","../../src/lint/rules/react-core.ts","../../src/lint/rules/react-dom.ts","../../src/lint/rules/react-native.ts","../../src/lint/rules/vitest.ts","../../src/lint/profiles.ts","../../src/lint/rules/universal.ts","../../src/lint/configs.ts","../../src/fragments.ts"],"sourcesContent":["import type { UserConfig } from \"vite-plus\";\nimport { defineConfig, mergeConfig } from \"vite-plus\";\n\ninterface NamedPlugin {\n readonly name: string;\n}\n\ntype PluginValue = NamedPlugin | false | null | undefined;\n\nexport type PluginInput = PluginValue | 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 attributes: [\"/.*ClassName/\"],\n functions: [\"tv\"],\n },\n};\n\nexport const reactNativeFormatConfig: FormatConfig = {\n ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],\n};\n\nexport const cloudflareWorkerFormatConfig: FormatConfig = {\n ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS],\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const browserRules: LintRules = {\n \"no-alert\": \"error\",\n \"unicorn/prefer-classlist-toggle\": \"error\",\n \"unicorn/prefer-dom-node-append\": \"error\",\n \"unicorn/prefer-dom-node-dataset\": \"error\",\n \"unicorn/prefer-dom-node-remove\": \"error\",\n \"unicorn/prefer-dom-node-text-content\": \"error\",\n \"unicorn/prefer-keyboard-event-key\": \"error\",\n \"unicorn/prefer-modern-dom-apis\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const nodeRules: LintRules = {\n \"node/exports-style\": \"error\",\n \"node/global-require\": \"error\",\n \"node/no-exports-assign\": \"error\",\n \"node/no-mixed-requires\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactCoreRules: LintRules = {\n \"react/display-name\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n namedComponents: \"function-declaration\",\n unnamedComponents: [\"arrow-function\", \"function-expression\"],\n },\n ],\n \"react/hook-use-state\": \"error\",\n \"react/jsx-boolean-value\": \"error\",\n \"react/jsx-curly-brace-presence\": \"error\",\n \"react/jsx-fragments\": \"error\",\n \"react/jsx-max-depth\": [\n \"error\",\n {\n max: 6,\n },\n ],\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/jsx-pascal-case\": \"error\",\n \"react/no-array-index-key\": \"error\",\n \"react/no-object-type-as-default-prop\": \"error\",\n \"react/no-redundant-should-component-update\": \"error\",\n \"react/no-set-state\": \"error\",\n \"react/prefer-es6-class\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n \"react/self-closing-comp\": \"error\",\n \"react/state-in-constructor\": \"error\",\n \"react/exhaustive-deps\": \"error\",\n \"react/react-compiler\": \"error\",\n \"react/react-in-jsx-scope\": \"off\",\n \"react/jsx-key\": \"error\",\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-clone-element\": \"error\",\n \"react/no-direct-mutation-state\": \"error\",\n \"react/no-react-children\": \"error\",\n \"react/no-string-refs\": \"error\",\n \"react/no-unsafe\": \"error\",\n \"react/style-prop-object\": \"off\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactDomRules: LintRules = {\n \"react/checked-requires-onchange-or-readonly\": \"error\",\n \"react/jsx-no-target-blank\": \"error\",\n \"react/no-unescaped-entities\": \"error\",\n \"react/no-danger\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-find-dom-node\": \"error\",\n \"react/no-unknown-property\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const reactNativeRules: LintRules = {\n \"react/iframe-missing-sandbox\": \"off\",\n \"react/jsx-no-script-url\": \"off\",\n \"react/no-unknown-property\": \"off\",\n \"react/no-unescaped-entities\": \"off\",\n \"react/no-unstable-nested-components\": [\n \"error\",\n {\n allowAsProps: true,\n },\n ],\n \"react/void-dom-elements-no-children\": \"off\",\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const vitestRules: LintRules = {\n \"vitest/consistent-each-for\": \"error\",\n \"vitest/consistent-test-it\": [\n \"error\",\n {\n fn: \"test\",\n withinDescribe: \"it\",\n },\n ],\n \"vitest/consistent-vitest-vi\": \"error\",\n \"vitest/max-nested-describe\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"vitest/no-alias-methods\": \"error\",\n \"vitest/no-duplicate-hooks\": \"error\",\n \"vitest/no-identical-title\": \"error\",\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/no-interpolation-in-snapshots\": \"error\",\n \"vitest/no-large-snapshots\": \"error\",\n \"vitest/no-mocks-import\": \"error\",\n \"vitest/no-test-prefixes\": \"error\",\n \"vitest/no-test-return-statement\": \"error\",\n \"vitest/no-unneeded-async-expect-function\": \"error\",\n \"vitest/padding-around-after-all-blocks\": \"error\",\n \"vitest/padding-around-test-blocks\": \"error\",\n \"vitest/prefer-called-exactly-once-with\": \"error\",\n \"vitest/prefer-called-once\": \"error\",\n \"vitest/prefer-called-with\": \"error\",\n \"vitest/prefer-comparison-matcher\": \"error\",\n \"vitest/prefer-each\": \"error\",\n \"vitest/prefer-equality-matcher\": \"error\",\n \"vitest/prefer-expect-resolves\": \"error\",\n \"vitest/prefer-expect-type-of\": \"error\",\n \"vitest/prefer-hooks-in-order\": \"error\",\n \"vitest/prefer-hooks-on-top\": \"error\",\n \"vitest/prefer-import-in-mock\": \"error\",\n \"vitest/prefer-importing-vitest-globals\": \"error\",\n \"vitest/prefer-mock-promise-shorthand\": \"error\",\n \"vitest/prefer-mock-return-shorthand\": \"error\",\n \"vitest/prefer-spy-on\": \"error\",\n \"vitest/prefer-strict-boolean-matchers\": \"error\",\n \"vitest/prefer-strict-equal\": \"error\",\n \"vitest/prefer-to-be\": \"error\",\n \"vitest/prefer-to-be-object\": \"error\",\n \"vitest/prefer-to-contain\": \"error\",\n \"vitest/prefer-to-have-been-called-times\": \"error\",\n \"vitest/prefer-to-have-length\": \"error\",\n \"vitest/prefer-todo\": \"error\",\n};\n","import type { LintConfig, LintProfile } from \"./types.ts\";\nimport { browserRules } from \"./rules/browser.ts\";\nimport { nodeRules } from \"./rules/node.ts\";\nimport { reactCoreRules } from \"./rules/react-core.ts\";\nimport { reactDomRules } from \"./rules/react-dom.ts\";\nimport { reactNativeRules } from \"./rules/react-native.ts\";\nimport { vitestRules } from \"./rules/vitest.ts\";\n\nexport const BASE_LINT_PLUGINS = [\"typescript\", \"unicorn\", \"oxc\", \"import\", \"promise\"] as const;\n\nexport const neutralEnvironment: NonNullable<LintConfig[\"env\"]> = {\n browser: false,\n node: false,\n serviceworker: false,\n worker: false,\n} as const;\n\nexport const nodeEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n node: true,\n} as const;\n\nexport const browserEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n browser: true,\n} as const;\n\nexport const reactNativeEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n} as const;\n\nexport const cloudflareWorkerEnvironment: NonNullable<LintConfig[\"env\"]> = {\n ...neutralEnvironment,\n serviceworker: true,\n worker: true,\n} as const;\n\nconst platformGlobalsOff = {\n __DEV__: \"off\",\n Cloudflare: \"off\",\n DigestStream: \"off\",\n FixedLengthStream: \"off\",\n HTMLRewriter: \"off\",\n IdentityTransformStream: \"off\",\n process: \"off\",\n WebSocketPair: \"off\",\n WebSocketRequestResponsePair: \"off\",\n} as const;\n\nconst nodeGlobals = {\n ...platformGlobalsOff,\n console: \"readonly\",\n process: \"readonly\",\n} as const;\n\nconst cloudflareWorkerGlobals = {\n ...platformGlobalsOff,\n Cloudflare: \"readonly\",\n DigestStream: \"readonly\",\n FixedLengthStream: \"readonly\",\n HTMLRewriter: \"readonly\",\n IdentityTransformStream: \"readonly\",\n WebSocketPair: \"readonly\",\n WebSocketRequestResponsePair: \"readonly\",\n} as const;\n\nexport const neutralLint: LintProfile = {\n env: neutralEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS],\n};\n\nexport const nodeLint: LintProfile = {\n env: nodeEnvironment,\n globals: nodeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"node\"],\n rules: nodeRules,\n};\n\nexport const browserLint: LintProfile = {\n env: browserEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS],\n rules: browserRules,\n};\n\nexport const reactCoreLint: LintProfile = {\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: reactCoreRules,\n};\n\nexport const reactDomLint: LintProfile = {\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jsx-a11y\"],\n rules: reactDomRules,\n};\n\nconst reactNativeGlobals = {\n ...platformGlobalsOff,\n __BUNDLE_START_TIME__: \"readonly\",\n __DEV__: \"readonly\",\n AbortController: \"readonly\",\n AbortSignal: \"readonly\",\n alert: \"readonly\",\n Blob: \"readonly\",\n cancelAnimationFrame: \"readonly\",\n clearImmediate: \"readonly\",\n clearInterval: \"readonly\",\n clearTimeout: \"readonly\",\n console: \"readonly\",\n crypto: \"readonly\",\n DOMRect: \"readonly\",\n ErrorUtils: \"readonly\",\n Event: \"readonly\",\n EventTarget: \"readonly\",\n fetch: \"readonly\",\n fetchBundle: \"readonly\",\n File: \"readonly\",\n FileReader: \"readonly\",\n FormData: \"readonly\",\n Headers: \"readonly\",\n HermesInternal: \"readonly\",\n navigator: \"readonly\",\n originalXMLHttpRequest: \"readonly\",\n performance: \"readonly\",\n process: \"readonly\",\n queueMicrotask: \"readonly\",\n requestAnimationFrame: \"readonly\",\n Request: \"readonly\",\n require: \"readonly\",\n Response: \"readonly\",\n setImmediate: \"readonly\",\n setInterval: \"readonly\",\n setTimeout: \"readonly\",\n URL: \"readonly\",\n URLSearchParams: \"readonly\",\n WebSocket: \"readonly\",\n XMLHttpRequest: \"readonly\",\n XMLHttpRequestUpload: \"readonly\",\n} as const;\n\nexport const reactNativeRuntimeLint: LintProfile = {\n env: reactNativeEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: reactNativeRules,\n};\n\nexport const reactWebLint: LintProfile = {\n env: browserEnvironment,\n globals: platformGlobalsOff,\n plugins: [...BASE_LINT_PLUGINS, \"react\", \"jsx-a11y\"],\n rules: {\n ...browserRules,\n ...reactCoreRules,\n ...reactDomRules,\n },\n};\n\nexport const reactNativeLint: LintProfile = {\n env: reactNativeEnvironment,\n globals: reactNativeGlobals,\n plugins: [...BASE_LINT_PLUGINS, \"react\"],\n rules: {\n ...reactCoreRules,\n ...reactNativeRules,\n },\n};\n\nexport const cloudflareWorkerLint: LintProfile = {\n env: cloudflareWorkerEnvironment,\n globals: cloudflareWorkerGlobals,\n plugins: [...BASE_LINT_PLUGINS],\n};\n\nexport const nodeTestLint: LintProfile = {\n ...nodeLint,\n plugins: [...BASE_LINT_PLUGINS, \"node\", \"vitest\"],\n rules: {\n ...nodeRules,\n ...vitestRules,\n },\n};\n\nexport const browserTestLint: LintProfile = {\n ...browserLint,\n plugins: [...BASE_LINT_PLUGINS, \"vitest\"],\n rules: {\n ...browserRules,\n ...vitestRules,\n },\n};\n\nexport const cloudflareWorkerTestLint: LintProfile = {\n ...cloudflareWorkerLint,\n plugins: [...BASE_LINT_PLUGINS, \"vitest\"],\n rules: vitestRules,\n};\n","import type { LintRules } from \"../types.ts\";\n\nexport const universalRules: LintRules = {\n \"accessor-pairs\": \"error\",\n \"array-callback-return\": \"error\",\n \"arrow-body-style\": \"error\",\n curly: [\"error\", \"multi-line\", \"consistent\"],\n \"default-case-last\": \"error\",\n \"default-param-last\": \"error\",\n eqeqeq: \"error\",\n \"func-name-matching\": \"error\",\n \"func-names\": \"error\",\n \"grouped-accessor-pairs\": [\"error\", \"getBeforeSet\"],\n \"guard-for-in\": \"error\",\n \"import/consistent-type-specifier-style\": \"error\",\n \"import/first\": \"error\",\n \"import/newline-after-import\": \"error\",\n \"import/no-duplicates\": \"error\",\n \"import/no-mutable-exports\": \"error\",\n \"import/no-named-default\": \"error\",\n \"logical-assignment-operators\": \"error\",\n \"max-depth\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"max-nested-callbacks\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"max-params\": [\n \"error\",\n {\n max: 3,\n },\n ],\n \"no-array-constructor\": \"error\",\n \"no-await-in-loop\": \"error\",\n \"no-case-declarations\": \"error\",\n \"no-constructor-return\": \"error\",\n \"no-else-return\": \"error\",\n \"no-extra-label\": \"error\",\n \"no-fallthrough\": \"error\",\n \"no-implicit-coercion\": \"error\",\n \"no-inline-comments\": \"error\",\n \"no-inner-declarations\": \"error\",\n \"no-label-var\": \"error\",\n \"no-labels\": \"error\",\n \"no-lone-blocks\": \"error\",\n \"no-lonely-if\": \"error\",\n \"no-loop-func\": \"error\",\n \"no-multi-assign\": \"error\",\n \"no-multi-str\": \"error\",\n \"no-nested-ternary\": \"error\",\n \"no-new-func\": \"error\",\n \"no-new-wrappers\": \"error\",\n \"no-object-constructor\": \"error\",\n \"no-promise-executor-return\": \"error\",\n \"no-prototype-builtins\": \"error\",\n \"no-redeclare\": \"error\",\n \"no-return-assign\": \"error\",\n \"no-script-url\": \"error\",\n \"no-self-compare\": \"error\",\n \"no-template-curly-in-string\": \"error\",\n \"no-throw-literal\": \"error\",\n \"no-useless-call\": \"error\",\n \"no-useless-computed-key\": \"error\",\n \"no-useless-return\": \"error\",\n \"no-warning-comments\": \"error\",\n \"object-shorthand\": \"error\",\n \"operator-assignment\": \"error\",\n \"oxc/branches-sharing-code\": \"error\",\n \"oxc/no-accumulating-spread\": \"error\",\n \"oxc/no-map-spread\": \"error\",\n \"prefer-arrow-callback\": \"error\",\n \"prefer-const\": \"error\",\n \"prefer-destructuring\": \"error\",\n \"prefer-exponentiation-operator\": \"error\",\n \"prefer-named-capture-group\": \"error\",\n \"prefer-numeric-literals\": \"error\",\n \"prefer-object-has-own\": \"error\",\n \"prefer-object-spread\": \"error\",\n \"prefer-promise-reject-errors\": \"error\",\n \"prefer-regex-literals\": \"error\",\n \"prefer-rest-params\": \"error\",\n \"prefer-spread\": \"error\",\n \"prefer-template\": \"error\",\n \"promise/no-nesting\": \"error\",\n \"promise/no-return-wrap\": \"error\",\n \"promise/param-names\": \"error\",\n \"promise/prefer-await-to-then\": \"error\",\n \"promise/prefer-catch\": \"error\",\n radix: \"error\",\n \"symbol-description\": \"error\",\n \"typescript/adjacent-overload-signatures\": \"error\",\n \"typescript/array-type\": \"error\",\n \"typescript/ban-ts-comment\": [\n \"error\",\n {\n minimumDescriptionLength: 10,\n },\n ],\n \"typescript/ban-tslint-comment\": \"error\",\n \"typescript/ban-types\": \"error\",\n \"typescript/class-literal-property-style\": \"error\",\n \"typescript/consistent-generic-constructors\": \"error\",\n \"typescript/consistent-indexed-object-style\": \"error\",\n \"typescript/consistent-type-assertions\": \"error\",\n \"typescript/consistent-type-exports\": \"error\",\n \"typescript/consistent-type-imports\": [\n \"error\",\n {\n prefer: \"type-imports\",\n fixStyle: \"separate-type-imports\",\n },\n ],\n \"typescript/dot-notation\": \"error\",\n \"typescript/method-signature-style\": \"error\",\n \"typescript/no-confusing-void-expression\": \"error\",\n \"typescript/no-deprecated\": \"error\",\n \"typescript/no-empty-interface\": \"error\",\n \"typescript/no-inferrable-types\": \"error\",\n \"typescript/no-misused-promises\": \"error\",\n \"typescript/no-mixed-enums\": \"error\",\n \"typescript/no-unnecessary-qualifier\": \"error\",\n \"typescript/no-unsafe-argument\": \"error\",\n \"typescript/no-unsafe-assignment\": \"error\",\n \"typescript/no-unsafe-call\": \"error\",\n \"typescript/no-unsafe-function-type\": \"error\",\n \"typescript/no-unsafe-member-access\": \"error\",\n \"typescript/no-unsafe-return\": \"error\",\n \"typescript/only-throw-error\": \"error\",\n \"typescript/parameter-properties\": \"error\",\n \"typescript/prefer-enum-initializers\": \"error\",\n \"typescript/prefer-find\": \"error\",\n \"typescript/prefer-for-of\": \"error\",\n \"typescript/prefer-function-type\": \"error\",\n \"typescript/prefer-includes\": \"error\",\n \"typescript/prefer-nullish-coalescing\": \"error\",\n \"typescript/prefer-promise-reject-errors\": \"error\",\n \"typescript/prefer-readonly\": \"error\",\n \"typescript/prefer-reduce-type-parameter\": \"error\",\n \"typescript/prefer-regexp-exec\": \"error\",\n \"typescript/prefer-return-this-type\": \"error\",\n \"typescript/prefer-string-starts-ends-with\": \"error\",\n \"typescript/prefer-ts-expect-error\": \"error\",\n \"typescript/related-getter-setter-pairs\": \"error\",\n \"typescript/restrict-plus-operands\": \"error\",\n \"typescript/return-await\": \"error\",\n \"typescript/strict-boolean-expressions\": \"error\",\n \"typescript/strict-void-return\": \"error\",\n \"typescript/switch-exhaustiveness-check\": \"error\",\n \"typescript/unified-signatures\": \"error\",\n \"unicorn/catch-error-name\": \"error\",\n \"unicorn/consistent-assert\": \"error\",\n \"unicorn/consistent-date-clone\": \"error\",\n \"unicorn/consistent-empty-array-spread\": \"error\",\n \"unicorn/consistent-existence-index-check\": \"error\",\n \"unicorn/consistent-template-literal-escape\": \"error\",\n \"unicorn/custom-error-definition\": \"error\",\n \"unicorn/error-message\": \"error\",\n \"unicorn/escape-case\": \"error\",\n \"unicorn/explicit-length-check\": \"error\",\n \"unicorn/explicit-timer-delay\": \"error\",\n \"unicorn/filename-case\": [\n \"error\",\n {\n case: \"kebabCase\",\n },\n ],\n \"unicorn/max-nested-calls\": [\n \"error\",\n {\n max: 5,\n },\n ],\n \"unicorn/new-for-builtins\": \"error\",\n \"unicorn/no-array-callback-reference\": \"error\",\n \"unicorn/no-array-method-this-argument\": \"error\",\n \"unicorn/no-await-expression-member\": \"error\",\n \"unicorn/no-console-spaces\": \"error\",\n \"unicorn/no-hex-escape\": \"error\",\n \"unicorn/no-immediate-mutation\": \"error\",\n \"unicorn/no-instanceof-array\": \"error\",\n \"unicorn/no-negation-in-equality-check\": \"error\",\n \"unicorn/no-new-buffer\": \"error\",\n \"unicorn/no-static-only-class\": \"error\",\n \"unicorn/no-this-assignment\": \"error\",\n \"unicorn/no-typeof-undefined\": \"error\",\n \"unicorn/no-unnecessary-array-flat-depth\": \"error\",\n \"unicorn/no-unnecessary-array-splice-count\": \"error\",\n \"unicorn/no-unnecessary-slice-end\": \"error\",\n \"unicorn/no-unreadable-array-destructuring\": \"error\",\n \"unicorn/no-unreadable-iife\": \"error\",\n \"unicorn/no-useless-collection-argument\": \"error\",\n \"unicorn/no-useless-promise-resolve-reject\": \"error\",\n \"unicorn/no-useless-switch-case\": \"error\",\n \"unicorn/no-useless-undefined\": \"error\",\n \"unicorn/no-zero-fractions\": \"error\",\n \"unicorn/number-literal-case\": \"error\",\n \"unicorn/numeric-separators-style\": \"error\",\n \"unicorn/prefer-array-find\": \"error\",\n \"unicorn/prefer-array-flat\": \"error\",\n \"unicorn/prefer-array-flat-map\": \"error\",\n \"unicorn/prefer-array-index-of\": \"error\",\n \"unicorn/prefer-array-some\": \"error\",\n \"unicorn/prefer-at\": \"error\",\n \"unicorn/prefer-bigint-literals\": \"error\",\n \"unicorn/prefer-blob-reading-methods\": \"error\",\n \"unicorn/prefer-class-fields\": \"error\",\n \"unicorn/prefer-code-point\": \"error\",\n \"unicorn/prefer-date-now\": \"error\",\n \"unicorn/prefer-default-parameters\": \"error\",\n \"unicorn/prefer-export-from\": \"error\",\n \"unicorn/prefer-global-this\": \"error\",\n \"unicorn/prefer-import-meta-properties\": \"error\",\n \"unicorn/prefer-includes\": \"error\",\n \"unicorn/prefer-logical-operator-over-ternary\": \"error\",\n \"unicorn/prefer-math-min-max\": \"error\",\n \"unicorn/prefer-math-trunc\": \"error\",\n \"unicorn/prefer-native-coercion-functions\": \"error\",\n \"unicorn/prefer-negative-index\": \"error\",\n \"unicorn/prefer-number-coercion\": \"error\",\n \"unicorn/prefer-object-from-entries\": \"error\",\n \"unicorn/prefer-optional-catch-binding\": \"error\",\n \"unicorn/prefer-prototype-methods\": \"error\",\n \"unicorn/prefer-reflect-apply\": \"error\",\n \"unicorn/prefer-regexp-test\": \"error\",\n \"unicorn/prefer-response-static-json\": \"error\",\n \"unicorn/prefer-set-has\": \"error\",\n \"unicorn/prefer-single-call\": \"error\",\n \"unicorn/prefer-spread\": \"error\",\n \"unicorn/prefer-string-raw\": \"error\",\n \"unicorn/prefer-string-replace-all\": \"error\",\n \"unicorn/prefer-string-slice\": \"error\",\n \"unicorn/prefer-string-trim-start-end\": \"error\",\n \"unicorn/prefer-structured-clone\": \"error\",\n \"unicorn/prefer-ternary\": [\"error\", \"only-single-line\"],\n \"unicorn/prefer-type-error\": \"error\",\n \"unicorn/relative-url-style\": \"error\",\n \"unicorn/require-array-join-separator\": \"error\",\n \"unicorn/require-module-attributes\": \"error\",\n \"unicorn/require-number-to-fixed-digits-argument\": \"error\",\n \"unicorn/switch-case-braces\": \"error\",\n \"unicorn/switch-case-break-position\": \"error\",\n \"unicorn/text-encoding-identifier-case\": \"error\",\n \"unicorn/throw-new-error\": \"error\",\n yoda: \"error\",\n complexity: [\n \"error\",\n {\n max: 20,\n },\n ],\n \"getter-return\": \"error\",\n \"no-bitwise\": \"error\",\n \"no-console\": [\n \"error\",\n {\n allow: [\"info\", \"warn\", \"error\"],\n },\n ],\n \"no-param-reassign\": [\n \"error\",\n {\n props: true,\n },\n ],\n \"no-plusplus\": \"error\",\n \"no-undef\": \"error\",\n \"no-unneeded-ternary\": \"error\",\n \"no-unreachable\": \"error\",\n \"import/no-cycle\": \"error\",\n \"import/no-unassigned-import\": \"off\",\n \"oxc/bad-match-all-arg\": \"error\",\n \"typescript/consistent-return\": \"error\",\n \"typescript/explicit-module-boundary-types\": \"error\",\n \"typescript/no-dynamic-delete\": \"error\",\n \"typescript/no-explicit-any\": \"error\",\n \"typescript/no-floating-promises\": \"error\",\n \"typescript/no-misused-spread\": \"error\",\n \"typescript/no-non-null-assertion\": \"error\",\n \"typescript/no-require-imports\": \"error\",\n \"typescript/no-unnecessary-condition\": \"error\",\n \"typescript/no-unnecessary-type-arguments\": \"error\",\n \"typescript/no-unnecessary-type-assertion\": \"error\",\n \"typescript/no-unnecessary-type-parameters\": \"error\",\n \"typescript/no-useless-default-assignment\": \"error\",\n \"typescript/non-nullable-type-assertion-style\": \"error\",\n \"typescript/prefer-optional-chain\": \"error\",\n \"typescript/require-array-sort-compare\": \"error\",\n \"typescript/restrict-template-expressions\": \"error\",\n \"typescript/unbound-method\": \"error\",\n \"typescript/use-unknown-in-catch-callback-variable\": \"error\",\n \"unicorn/no-abusive-eslint-disable\": \"error\",\n};\n","import type { LintConfig } from \"./types.ts\";\nimport {\n CLOUDFLARE_WORKER_IGNORE_PATTERNS,\n CODE_FILES,\n COMMONJS_FILES,\n CONFIG_FILES,\n DEFAULT_IGNORE_PATTERNS,\n REACT_NATIVE_IGNORE_PATTERNS,\n RUNTIME_OVERRIDE_EXCLUDE_FILES,\n TEST_FILES,\n} from \"../constants.ts\";\nimport {\n BASE_LINT_PLUGINS,\n browserEnvironment,\n browserTestLint,\n cloudflareWorkerEnvironment,\n cloudflareWorkerLint,\n cloudflareWorkerTestLint,\n neutralEnvironment,\n neutralLint,\n nodeEnvironment,\n nodeLint,\n nodeTestLint,\n reactNativeRuntimeLint,\n} from \"./profiles.ts\";\nimport { browserRules } from \"./rules/browser.ts\";\nimport { nodeRules } from \"./rules/node.ts\";\nimport { reactCoreRules } from \"./rules/react-core.ts\";\nimport { reactDomRules } from \"./rules/react-dom.ts\";\nimport { reactNativeRules } from \"./rules/react-native.ts\";\nimport { universalRules } from \"./rules/universal.ts\";\n\nexport const baseLintConfig: LintConfig = {\n plugins: [...BASE_LINT_PLUGINS],\n ignorePatterns: [...DEFAULT_IGNORE_PATTERNS],\n env: neutralEnvironment,\n globals: neutralLint.globals,\n options: {\n reportUnusedDisableDirectives: \"error\",\n typeAware: true,\n typeCheck: true,\n },\n categories: {\n correctness: \"error\",\n suspicious: \"error\",\n },\n extends: [{ rules: universalRules }],\n overrides: [\n {\n files: [...COMMONJS_FILES],\n ...nodeLint,\n rules: {\n ...nodeRules,\n \"typescript/no-require-imports\": \"off\",\n },\n },\n {\n files: [...CONFIG_FILES],\n ...nodeLint,\n rules: {\n ...nodeRules,\n \"func-names\": \"off\",\n },\n },\n {\n files: [\"**/*.d.ts\"],\n rules: {\n \"typescript/no-empty-interface\": \"off\",\n },\n },\n ],\n};\n\nexport const nodeRuntimeLintConfig: LintConfig = {\n env: nodeEnvironment,\n globals: nodeLint.globals,\n plugins: [\"node\"],\n extends: [{ rules: nodeRules }],\n};\n\nexport const browserRuntimeLintConfig: LintConfig = {\n env: browserEnvironment,\n globals: neutralLint.globals,\n overrides: [\n {\n files: [...CODE_FILES],\n excludeFiles: [...RUNTIME_OVERRIDE_EXCLUDE_FILES],\n rules: browserRules,\n },\n ],\n};\n\nexport const reactCoreLintConfig: LintConfig = {\n plugins: [\"react\"],\n extends: [{ rules: reactCoreRules }],\n};\n\nexport const reactDomLintConfig: LintConfig = {\n plugins: [\"jsx-a11y\"],\n extends: [{ rules: reactDomRules }],\n};\n\nexport const reactNativeRuntimeLintConfig: LintConfig = {\n env: reactNativeRuntimeLint.env,\n globals: reactNativeRuntimeLint.globals,\n extends: [{ rules: reactNativeRules }],\n};\n\nexport const cloudflareWorkerRuntimeLintConfig: LintConfig = {\n env: cloudflareWorkerEnvironment,\n globals: cloudflareWorkerLint.globals,\n};\n\nexport const reactNativeGeneratedLintConfig: LintConfig = {\n ignorePatterns: [...REACT_NATIVE_IGNORE_PATTERNS],\n};\n\nexport const cloudflareWorkerGeneratedLintConfig: LintConfig = {\n ignorePatterns: [...CLOUDFLARE_WORKER_IGNORE_PATTERNS],\n};\n\nexport const nodeTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...nodeTestLint,\n },\n ],\n};\n\nexport const browserTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...browserTestLint,\n },\n ],\n};\n\nexport const cloudflareWorkerTestLintConfig: LintConfig = {\n overrides: [\n {\n files: [...TEST_FILES],\n ...cloudflareWorkerTestLint,\n },\n ],\n};\n","import type { UserConfig } from \"vite-plus\";\nimport type { ConfigFragment } from \"./compose.ts\";\nimport { DEFAULT_STAGED_CHECK_COMMAND, DEFAULT_STAGED_CHECK_GLOB } from \"./constants.ts\";\nimport {\n baseFormatConfig,\n cloudflareWorkerFormatConfig,\n reactFormatConfig,\n reactNativeFormatConfig,\n} from \"./format.ts\";\nimport {\n baseLintConfig,\n browserRuntimeLintConfig,\n browserTestLintConfig as browserTestLintSettings,\n cloudflareWorkerGeneratedLintConfig,\n cloudflareWorkerRuntimeLintConfig,\n cloudflareWorkerTestLintConfig as cloudflareWorkerTestLintSettings,\n nodeRuntimeLintConfig,\n nodeTestLintConfig as nodeTestLintSettings,\n reactCoreLintConfig,\n reactDomLintConfig,\n reactNativeGeneratedLintConfig,\n reactNativeRuntimeLintConfig,\n} from \"./lint/configs.ts\";\n\ntype PackConfig = Exclude<UserConfig[\"pack\"], readonly unknown[] | undefined>;\n\nexport const baseToolingConfig: ConfigFragment = {\n fmt: baseFormatConfig,\n lint: baseLintConfig,\n staged: {\n [DEFAULT_STAGED_CHECK_GLOB]: DEFAULT_STAGED_CHECK_COMMAND,\n },\n};\n\nexport const nodeRuntimeConfig: ConfigFragment = {\n lint: nodeRuntimeLintConfig,\n};\n\nexport const browserRuntimeConfig: ConfigFragment = {\n lint: browserRuntimeLintConfig,\n};\n\nexport const reactCoreConfig: ConfigFragment = {\n fmt: reactFormatConfig,\n lint: reactCoreLintConfig,\n};\n\nexport const reactDomConfig: ConfigFragment = {\n lint: reactDomLintConfig,\n};\n\nexport const reactNativeRuntimeConfig: ConfigFragment = {\n lint: reactNativeRuntimeLintConfig,\n};\n\nexport const reactNativeGeneratedConfig: ConfigFragment = {\n fmt: reactNativeFormatConfig,\n lint: reactNativeGeneratedLintConfig,\n};\n\nexport const cloudflareWorkerRuntimeConfig: ConfigFragment = {\n lint: cloudflareWorkerRuntimeLintConfig,\n};\n\nexport const cloudflareWorkerGeneratedConfig: ConfigFragment = {\n fmt: cloudflareWorkerFormatConfig,\n lint: cloudflareWorkerGeneratedLintConfig,\n};\n\nexport const nodeTestLintConfig: ConfigFragment = {\n lint: nodeTestLintSettings,\n};\n\nexport const browserTestLintConfig: ConfigFragment = {\n lint: browserTestLintSettings,\n};\n\nexport const cloudflareWorkerTestLintConfig: ConfigFragment = {\n lint: cloudflareWorkerTestLintSettings,\n};\n\nexport const libraryPackDefaults: PackConfig = {\n clean: true,\n dts: true,\n format: [\"esm\"],\n sourcemap: true,\n};\n\nexport const libraryPackConfig: ConfigFragment = {\n pack: libraryPackDefaults,\n};\n\nexport const workspaceRunConfig: ConfigFragment = {\n run: {\n cache: {\n scripts: true,\n tasks: true,\n },\n enablePrePostScripts: true,\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["nodeTestLintConfig","browserTestLintConfig","cloudflareWorkerTestLintConfig","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kasoa/vite-plus-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Kasoa's Vite+ configurations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"config",
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"access": "public"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@cloudflare/vitest-
|
|
46
|
-
"@types/node": "
|
|
45
|
+
"@cloudflare/vitest-plugin": "1.0.0",
|
|
46
|
+
"@types/node": "24.13.3",
|
|
47
47
|
"typescript": "^7.0.2",
|
|
48
|
-
"vite-plus": "^0.
|
|
49
|
-
"wrangler": "^4.
|
|
48
|
+
"vite-plus": "^0.3.0",
|
|
49
|
+
"wrangler": "^4.125.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@cloudflare/vitest-
|
|
52
|
+
"@cloudflare/vitest-plugin": "^1.0.0",
|
|
53
53
|
"typescript": ">=7 <8",
|
|
54
|
-
"vite-plus": ">=0.
|
|
54
|
+
"vite-plus": ">=0.3.0 <1",
|
|
55
55
|
"wrangler": ">=4 <5"
|
|
56
56
|
},
|
|
57
57
|
"peerDependenciesMeta": {
|
|
58
|
-
"@cloudflare/vitest-
|
|
58
|
+
"@cloudflare/vitest-plugin": {
|
|
59
59
|
"optional": true
|
|
60
60
|
},
|
|
61
61
|
"wrangler": {
|
|
@@ -71,6 +71,6 @@
|
|
|
71
71
|
"check": "vp check",
|
|
72
72
|
"check:fix": "vp check --fix",
|
|
73
73
|
"test": "vp test --passWithNoTests",
|
|
74
|
-
"verify:package": "
|
|
74
|
+
"verify:package": "node scripts/verify-packed-exports.mts"
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
//#region src/constants.ts
|
|
2
|
-
const CODE_FILES = ["**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
3
|
-
const COMMONJS_FILES = ["**/*.{cjs,cts}"];
|
|
4
|
-
const CONFIG_FILES = ["**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"];
|
|
5
|
-
const TEST_FILES = [
|
|
6
|
-
"**/test/**",
|
|
7
|
-
"**/tests/**",
|
|
8
|
-
"**/__tests__/**",
|
|
9
|
-
"**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}"
|
|
10
|
-
];
|
|
11
|
-
const RUNTIME_OVERRIDE_EXCLUDE_FILES = [
|
|
12
|
-
...COMMONJS_FILES,
|
|
13
|
-
...CONFIG_FILES,
|
|
14
|
-
...TEST_FILES
|
|
15
|
-
];
|
|
16
|
-
const DEFAULT_IGNORE_PATTERNS = [
|
|
17
|
-
"node_modules/**",
|
|
18
|
-
"dist/**",
|
|
19
|
-
"dist-ssr/**",
|
|
20
|
-
"**/.wrangler/**",
|
|
21
|
-
"**/migrations/**",
|
|
22
|
-
"**/drizzle/migrations.js",
|
|
23
|
-
"**/drizzle/meta/*.json"
|
|
24
|
-
];
|
|
25
|
-
const CLOUDFLARE_WORKER_IGNORE_PATTERNS = ["**/worker-configuration.d.ts"];
|
|
26
|
-
const REACT_NATIVE_IGNORE_PATTERNS = ["**/.expo/**"];
|
|
27
|
-
const DEFAULT_STAGED_CHECK_GLOB = "*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}";
|
|
28
|
-
const DEFAULT_STAGED_CHECK_COMMAND = "vp check --fix";
|
|
29
|
-
const DEFAULT_WRANGLER_CONFIG_PATH = "./wrangler.jsonc";
|
|
30
|
-
//#endregion
|
|
31
|
-
export { DEFAULT_IGNORE_PATTERNS as a, DEFAULT_WRANGLER_CONFIG_PATH as c, TEST_FILES as d, CONFIG_FILES as i, REACT_NATIVE_IGNORE_PATTERNS as l, CODE_FILES as n, DEFAULT_STAGED_CHECK_COMMAND as o, COMMONJS_FILES as r, DEFAULT_STAGED_CHECK_GLOB as s, CLOUDFLARE_WORKER_IGNORE_PATTERNS as t, RUNTIME_OVERRIDE_EXCLUDE_FILES as u };
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=constants-D2PDomKY.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants-D2PDomKY.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const CODE_FILES = [\"**/*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"] as const;\nexport const COMMONJS_FILES = [\"**/*.{cjs,cts}\"] as const;\nexport const CONFIG_FILES = [\"**/*.config.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\"] as const;\nexport const TEST_FILES = [\n \"**/test/**\",\n \"**/tests/**\",\n \"**/__tests__/**\",\n \"**/*.{test,spec}.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\",\n] as const;\nexport const RUNTIME_OVERRIDE_EXCLUDE_FILES: readonly string[] = [\n ...COMMONJS_FILES,\n ...CONFIG_FILES,\n ...TEST_FILES,\n] as const;\n\nexport const DEFAULT_IGNORE_PATTERNS = [\n \"node_modules/**\",\n \"dist/**\",\n \"dist-ssr/**\",\n \"**/.wrangler/**\",\n \"**/migrations/**\",\n \"**/drizzle/migrations.js\",\n \"**/drizzle/meta/*.json\",\n] as const;\nexport const CLOUDFLARE_WORKER_IGNORE_PATTERNS = [\"**/worker-configuration.d.ts\"] as const;\nexport const REACT_NATIVE_IGNORE_PATTERNS = [\"**/.expo/**\"] as const;\n\nexport const DEFAULT_STAGED_CHECK_GLOB = \"*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}\";\nexport const DEFAULT_STAGED_CHECK_COMMAND = \"vp check --fix\";\nexport const DEFAULT_WRANGLER_CONFIG_PATH = \"./wrangler.jsonc\";\n"],"mappings":";AAAA,MAAa,aAAa,CAAC,sCAAsC;AACjE,MAAa,iBAAiB,CAAC,gBAAgB;AAC/C,MAAa,eAAe,CAAC,6CAA6C;AAC1E,MAAa,aAAa;CACxB;CACA;CACA;CACA;AACF;AACA,MAAa,iCAAoD;CAC/D,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAEA,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAa,oCAAoC,CAAC,8BAA8B;AAChF,MAAa,+BAA+B,CAAC,aAAa;AAE1D,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,+BAA+B"}
|