{"_id":"@asa1984/configs","_rev":"4-b7cc0a4996201b4e38dd21b4871e7e7f","name":"@asa1984/configs","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@asa1984/configs","version":"0.1.0","author":"asa1984 <me@asa1984.dev>","license":"MIT","_id":"@asa1984/configs@0.1.0","maintainers":[{"name":"asa1984","email":"satoasa9913@gmail.com"}],"dist":{"shasum":"6cb47606047f0b9c3e80fd265b025cdd378bfb5e","tarball":"https://registry.npmjs.org/@asa1984/configs/-/configs-0.1.0.tgz","fileCount":11,"integrity":"sha512-TRybXDkvSicdAjCtTdFYcMArvQ9WPfUqTUhRTafK+7aaavQKQ7I6VbzpnKtj04DXfjZM9RU0dN71GHsQ5+889g==","signatures":[{"sig":"MEYCIQC2cs47CnNhO5GJM5K9VaWW44nXh6MfI8UyGahksiH3kgIhAPbar7CMO83+aMdVrdrkxoaX24M3XmlpYHY7PHSnZbcB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7236},"type":"module","exports":{"./oxfmt":{"types":"./dist/oxfmt/index.d.ts","default":"./dist/oxfmt/index.js"},"./oxlint":{"types":"./dist/oxlint/index.d.ts","default":"./dist/oxlint/index.js"},"./tsconfig":"./src/tsconfig/base.json","./package.json":"./package.json"},"scripts":{"lint":"oxlint","build":"tsgo -p tsconfig.build.json","format":"oxfmt","lint:fix":"oxlint --fix","typecheck":"tsgo"},"_npmUser":{"name":"asa1984","email":"satoasa9913@gmail.com"},"repository":{"url":"git+https://github.com/asa1984/configs.git","type":"git"},"description":"asa1984's configurations","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.14.3","oxfmt":"0.51.0","oxlint":"1.66.0","rulesync":"8.19.0","oxlint-tsgolint":"0.23.0","@typescript/native-preview":"7.0.0-dev.20260523.1"},"peerDependencies":{"oxfmt":">=0.51.0","oxlint":">=1.66.0"},"peerDependenciesMeta":{"oxfmt":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/configs_0.1.0_1779619976160_0.9409708433986654","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@asa1984/configs","version":"0.1.1","author":"asa1984 <me@asa1984.dev>","license":"MIT","_id":"@asa1984/configs@0.1.1","maintainers":[{"name":"asa1984","email":"satoasa9913@gmail.com"}],"dist":{"shasum":"3f5900ee67be43ff35165efe8ee1a07f502ae1dd","tarball":"https://registry.npmjs.org/@asa1984/configs/-/configs-0.1.1.tgz","fileCount":11,"integrity":"sha512-j4IdI9sHTo0bvUYlzqrFGd8rq85we/yHsVe+2vDT7PC7I2+eS+PLE1i2ep9RB2lQjYSlcrteA6vaD5jyI3MGyw==","signatures":[{"sig":"MEQCIH4cq9b8qTb2/gT7G0+TmAuiOWEiGF64zccyt3HKOwWhAiBA28FB9t2glbBbdAmI2DHSN7vuClI2kYOs4oz2uasyEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7236},"type":"module","exports":{"./oxfmt":{"types":"./dist/oxfmt/index.d.ts","default":"./dist/oxfmt/index.js"},"./oxlint":{"types":"./dist/oxlint/index.d.ts","default":"./dist/oxlint/index.js"},"./tsconfig":"./src/tsconfig/base.json","./package.json":"./package.json"},"scripts":{"lint":"oxlint","build":"tsgo -p tsconfig.build.json","format":"oxfmt","lint:fix":"oxlint --fix","typecheck":"tsgo"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1ffbcc8-cb32-4076-a553-9c39b138f278"}},"repository":{"url":"git+https://github.com/asa1984/configs.git","type":"git"},"description":"asa1984's configurations","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.14.3","oxfmt":"0.51.0","oxlint":"1.66.0","rulesync":"8.19.0","oxlint-tsgolint":"0.23.0","@typescript/native-preview":"7.0.0-dev.20260523.1"},"peerDependencies":{"oxfmt":">=0.51.0","oxlint":">=1.66.0"},"peerDependenciesMeta":{"oxfmt":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/configs_0.1.1_1779621949704_0.09095807306445614","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@asa1984/configs","version":"0.2.0","author":"asa1984 <me@asa1984.dev>","license":"MIT","_id":"@asa1984/configs@0.2.0","maintainers":[{"name":"asa1984","email":"satoasa9913@gmail.com"}],"dist":{"shasum":"37dfe652991ae5bf62d0f5ac0c36e1a3acc555bc","tarball":"https://registry.npmjs.org/@asa1984/configs/-/configs-0.2.0.tgz","fileCount":32,"integrity":"sha512-ZWqUS8neUVUIU4KrX5ynCmep9iL21OvR+yWYjHeJsStzVZZvdco3dkPSdhAJfVyoLCbSWGuuQmxl4Qln5Wg5kw==","signatures":[{"sig":"MEUCIQDEpGHZiwjQQOsSMgQR4eQRSM9Eo7RqOOVN3640ZLA85gIgTk3v3/9KbEBD70mZLY3AzC4EDnc86+cheGOKenWaW+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@asa1984%2fconfigs@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":437271},"type":"module","exports":{"./oxfmt":{"types":"./dist/oxfmt/index.d.ts","default":"./dist/oxfmt/index.js"},"./oxlint":{"types":"./dist/oxlint/index.d.ts","default":"./dist/oxlint/index.js"},"./tsconfig":"./src/tsconfig/base.json","./package.json":"./package.json"},"scripts":{"lint":"oxlint","build":"pnpm generate && tsgo -p tsconfig.build.json","format":"oxfmt","generate":"node scripts/generate.ts","lint:fix":"oxlint --fix","typecheck":"tsgo"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1ffbcc8-cb32-4076-a553-9c39b138f278"}},"repository":{"url":"git+https://github.com/asa1984/configs.git","type":"git"},"description":"asa1984's configurations","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsr":"0.14.3","oxfmt":"0.51.0","oxlint":"1.66.0","rulesync":"8.19.0","@eslint/js":"10.0.1","@types/node":"25.9.1","eslint-typegen":"2.3.1","oxlint-tsgolint":"0.23.0","eslint-plugin-jsdoc":"63.0.0","eslint-plugin-import":"2.32.0","@vitest/eslint-plugin":"1.6.18","eslint-plugin-promise":"7.3.0","eslint-plugin-unicorn":"64.0.0","@typescript/native-preview":"7.0.0-dev.20260527.2","@typescript-eslint/eslint-plugin":"8.60.0"},"peerDependencies":{"oxfmt":">=0.51.0","oxlint":">=1.66.0"},"peerDependenciesMeta":{"oxfmt":{"optional":true},"oxlint":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/configs_0.2.0_1780323045699_0.14427186757105104","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@asa1984/configs","version":"0.3.0","description":"asa1984's configurations","license":"MIT","author":"asa1984 <me@asa1984.dev>","repository":{"type":"git","url":"git+https://github.com/asa1984/configs.git"},"type":"module","exports":{"./oxlint":{"types":"./dist/oxlint/index.d.ts","default":"./dist/oxlint/index.js"},"./oxfmt":{"types":"./dist/oxfmt/index.d.ts","default":"./dist/oxfmt/index.js"},"./vite-plus":{"types":"./dist/vite-plus/index.d.ts","default":"./dist/vite-plus/index.js"},"./tsconfig":"./src/tsconfig/base.json","./package.json":"./package.json"},"publishConfig":{"access":"public","provenance":true},"devDependencies":{"@eslint/js":"10.0.1","@types/node":"25.9.5","@typescript-eslint/eslint-plugin":"8.63.0","@typescript/native":"npm:typescript@7.0.2","@vitest/eslint-plugin":"1.6.20","eslint-plugin-import":"2.32.0","eslint-plugin-jsdoc":"63.0.14","eslint-plugin-promise":"7.3.0","eslint-plugin-react":"7.37.5","eslint-plugin-react-hooks":"7.1.1","eslint-plugin-react-perf":"3.3.3","eslint-plugin-unicorn":"64.0.0","eslint-typegen":"2.3.1","jsr":"0.14.3","oxfmt":"0.65.0","oxlint":"1.80.0","oxlint-tsgolint":"7.0.2001","rulesync":"8.32.0","typescript":"npm:@typescript/typescript6@6.0.2","vite-plus":"0.3.0"},"peerDependencies":{"oxfmt":">=0.51.0","oxlint":">=1.66.0","vite-plus":">=0.3.0"},"peerDependenciesMeta":{"oxfmt":{"optional":true},"oxlint":{"optional":true},"vite-plus":{"optional":true}},"scripts":{"build":"pnpm generate && tsc -p tsconfig.build.json","format":"oxfmt","generate":"node scripts/generate.ts","lint":"oxlint","lint:fix":"oxlint --fix","typecheck":"tsc"},"_nodeVersion":"24.15.0","_id":"@asa1984/configs@0.3.0","dist":{"integrity":"sha512-eVS5xPxky0qmJDgUqeSKT6OJHQKlh5aLkLQ5txrT0SRwQlRntiuODlMZ1YO9eEmQVXUmN6lwKWzkZYzLzY8zgw==","shasum":"9af028348db09503b68f0b90541148fb20d04b68","tarball":"https://registry.npmjs.org/@asa1984/configs/-/configs-0.3.0.tgz","fileCount":36,"unpackedSize":452043,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@asa1984%2fconfigs@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCHECGR+62o4eOXqWP5z7bnCicR4YJbAvP9IJjts4YbBgIgQYF9TRvdBnoYQ3KfVgikcZx/eQARupx/Cb2tIJbpfe0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1ffbcc8-cb32-4076-a553-9c39b138f278"}},"directories":{},"maintainers":[{"name":"asa1984","email":"satoasa9913@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/configs_0.3.0_1788216702445_0.44442428165538184"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-24T10:52:56.040Z","modified":"2026-08-31T22:51:42.961Z","0.1.0":"2026-05-24T10:52:56.297Z","0.1.1":"2026-05-24T11:25:49.836Z","0.2.0":"2026-06-01T14:10:45.837Z","0.3.0":"2026-08-31T22:51:42.599Z"},"author":"asa1984 <me@asa1984.dev>","license":"MIT","repository":{"type":"git","url":"git+https://github.com/asa1984/configs.git"},"description":"asa1984's configurations","maintainers":[{"name":"asa1984","email":"satoasa9913@gmail.com"}],"readme":"# @asa1984/configs\n\n## Install\n\n```\npnpm add -D @asa1984/configs\n```\n\n## Usage\n\n### Oxlint\n\nEach builder returns a plain oxlint config fragment carrying this project's recommended settings for one concern. List them in `extends` and `defineConfig` merges everything — together with any other config properties you set — into a single config.\n\n```ts\n// oxlint.config.ts\nimport { defineConfig, javascript, node, sorting, typescript } from \"@asa1984/configs/oxlint\";\n\nexport default defineConfig({\n  extends: [javascript(), typescript(), sorting(), node()],\n\n  // any other oxlint config property is merged on top of `extends`\n  ignorePatterns: [\"dist/**\"],\n  overrides: [\n    {\n      files: [\"**/*.{test,spec}.ts\"],\n      rules: { \"typescript/no-explicit-any\": \"off\" },\n    },\n  ],\n});\n```\n\nBecause every builder takes and returns a raw `OxlintConfig`, you override its defaults by passing a fragment, which is merged on top:\n\n```ts\ntypescript({ rules: { \"typescript/strict-boolean-expressions\": \"off\" } });\n```\n\nAvailable builders:\n\n- **Plugins / rules**: `javascript`, `typescript`, `react`, `vitest`, `sorting`\n- **Environments**: `node`, `browser`, `worker`\n\n`javascript` is the type-info-free baseline for all JavaScript/TypeScript code: ESLint core plus the `import` / `jsdoc` / `oxc` / `promise` / `unicorn` plugins in one clippy-strength set (`correctness` denied, `suspicious` / `perf` warned). Opinion-splitting style rules such as sorting are kept out of it — opt in via `sorting`.\n\n`react` takes an options object before the overrides fragment. With React Compiler, pass `compiler: true` to drop the manual-memoization hygiene rules (`react-perf`), which the compiler makes redundant:\n\n```ts\nreact(); // react + react-hooks + react-perf\nreact({ compiler: true }); // react + react-hooks, no react-perf\nreact({ compiler: true }, { rules: { \"react/exhaustive-deps\": \"off\" } });\n```\n\nMerge semantics: `defineConfig` merges the `extends` fragments via `mergeConfigs` (also exported), then lets the config's own properties win. Scalar fields and `rules` let the later fragment win; `plugins`, `ignorePatterns`, `overrides`, `extends`, and `jsPlugins` accumulate.\n\n### Oxfmt\n\n```ts\n// oxfmt.config.ts\nimport { defineConfig } from \"@asa1984/configs/oxfmt\";\n\nexport default defineConfig();\n```\n\n### Vite+\n\n[Vite+](https://viteplus.dev) projects keep lint/format configuration in the `lint` and `fmt` blocks of `vite.config.ts`. The dedicated entry point wraps vite-plus's `defineConfig` and applies the same fragment model to those blocks; every other block passes through untouched.\n\n```ts\n// vite.config.ts\nimport { browser, defineConfig, javascript, sorting, typescript } from \"@asa1984/configs/vite-plus\";\n\nexport default defineConfig({\n  lint: {\n    extends: [javascript(), typescript(), sorting(), browser()],\n\n    // any other oxlint config property is merged on top of `extends`;\n    // `typeCheck` enables the type-aware path for `vp lint` / `vp check`\n    options: { typeCheck: true },\n  },\n  fmt: {}, // shared oxfmt defaults; pass overrides here, or omit the block entirely\n\n  // any other vite-plus config property passes through\n  test: {},\n});\n```\n\nOnly the object form of vite-plus's `defineConfig` is supported (not the function forms). The block factories `lint` and `fmt` are also exported, for use with vite-plus's own `defineConfig`:\n\n```ts\n// vite.config.ts\nimport { defineConfig } from \"vite-plus\";\nimport { fmt, javascript, lint, typescript } from \"@asa1984/configs/vite-plus\";\n\nexport default defineConfig({\n  lint: lint({ extends: [javascript(), typescript()] }),\n  fmt: fmt(),\n});\n```\n\n### TypeScript\n\n```json\n// tsconfig.json\n{\n  \"extends\": \"@asa1984/configs/tsconfig\"\n}\n```\n","readmeFilename":""}