{"_id":"@alphinex/eslint-config","_rev":"2-f81f45071d995922e57ee77fbd0854cf","name":"@alphinex/eslint-config","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@alphinex/eslint-config","version":"1.0.0","license":"UNLICENSED","_id":"@alphinex/eslint-config@1.0.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"5733f90d5f86edfeec3db6b2ff1746995761ae7c","tarball":"https://registry.npmjs.org/@alphinex/eslint-config/-/eslint-config-1.0.0.tgz","fileCount":5,"integrity":"sha512-JymvSWCKyLH777U26u4zR1GbjHh7RwQZKxRwBCMftp1z2DnOT/uOfgo58Frp3Df/ATzty+gdxStihsPz3G0vqw==","signatures":[{"sig":"MEYCIQDvX4kjrpJxDDo8yg9EQhLk39qwx3dbOL6upHFqcNA4CAIhANe7QUllRKvjV/fl9lgSIC4SIrfIJAVX5AwozFx/fwBl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4469},"main":"./base.js","type":"module","exports":{"./a11y":"./a11y.js","./base":"./base.js","./react":"./react.js"},"private":false,"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"directories":{},"_nodeVersion":"22.14.0","dependencies":{"@eslint/js":"^9.17.0","typescript-eslint":"^8.18.1","eslint-plugin-react":"^7.37.2","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react-hooks":"^5.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.0_1786551565035_0.24269637586109805","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alphinex/eslint-config","version":"1.0.1","private":false,"license":"UNLICENSED","type":"module","main":"./base.js","exports":{"./base":"./base.js","./react":"./react.js","./a11y":"./a11y.js"},"dependencies":{"@eslint/js":"^9.17.0","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.31.0","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-react":"^7.37.2","eslint-plugin-react-hooks":"^5.1.0","typescript-eslint":"^8.18.1"},"peerDependencies":{"eslint":"^9.0.0"},"_nodeVersion":"22.14.0","_id":"@alphinex/eslint-config@1.0.1","dist":{"integrity":"sha512-fHBQ2Ig4GCC/PF29RHN2rq/8O36XuWm8nZfFg2E+OQ0tDYfmmxyF8bYE+MGQystBoipFzTlt4o1X4S5P8nqG5A==","shasum":"49828b7a43ef836d7992202e34eff9a9adcde2bd","tarball":"https://registry.npmjs.org/@alphinex/eslint-config/-/eslint-config-1.0.1.tgz","fileCount":5,"unpackedSize":5441,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCI9LEpefHOPSbF6tGLzN5i0vDv6fHK5U9h0AgXOMaYzQIhAMXug0sfd7l+1gXQz2Eslmjb/PU3akQUCDgcOdWBmwf7"}]},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"directories":{},"maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_1.0.1_1786555259256_0.2644429914721209"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T16:19:24.924Z","modified":"2026-08-12T17:20:59.835Z","1.0.0":"2026-08-12T16:19:25.176Z","1.0.1":"2026-08-12T17:20:59.402Z"},"license":"UNLICENSED","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"readme":"# @alphinex/eslint-config\n\nShared ESLint flat configs for apps and packages built on the Alphinex platform.\n\n## Usage\n\n```js\n// eslint.config.js\nimport react from \"@alphinex/eslint-config/react\";\n\nexport default [...react];\n```\n\n- `@alphinex/eslint-config/base` — TypeScript + import hygiene rules, no framework assumptions.\n- `@alphinex/eslint-config/react` — `base` plus React/React Hooks rules and the platform's design-\n  token discipline (no raw hex/rgb color literals — use `var(--aui-*)` or the Tailwind preset\n  utilities) and RTL logical-property discipline.\n- `@alphinex/eslint-config/a11y` — accessibility rules (`eslint-plugin-jsx-a11y`).\n\n## Allowing raw color literals in a primitive color-ramp file\n\nThe one sanctioned place for raw hex/rgb literals is a primitive color-ramp definition (a\n`ColorRamp`-shaped token file, per `@alphinex/theme`'s docs) — everywhere else must reference a\nsemantic token. `no-restricted-syntax` can only be toggled per rule, not per selector, so scope the\noverride to that single file by path in your own `eslint.config.js` (this is exactly how\n`@alphinex/theme` itself allows raw literals in `src/tokens/primitives.ts`):\n\n```js\n// eslint.config.js\nimport react from \"@alphinex/eslint-config/react\";\n\nexport default [\n  ...react,\n  {\n    // Your primitive color-ramp file only — turning the rule off here also lifts the\n    // RTL logical-property rule for this file, which is fine since a token-definition\n    // file has no JSX/classNames to enforce that against.\n    files: [\"src/theme/colorRamp.ts\"],\n    rules: {\n      \"no-restricted-syntax\": \"off\",\n    },\n  },\n];\n```\n","readmeFilename":""}