{"_id":"@arcmantle/eslint-config","_rev":"3-ed78f3b8742dd563d74a3002ff33d9a6","name":"@arcmantle/eslint-config","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@arcmantle/eslint-config","version":"1.0.0","author":{"name":"Kristoffer Roen-Lie"},"license":"Apache-2.0","_id":"@arcmantle/eslint-config@1.0.0","maintainers":[{"name":"roenlie","email":"kristofferroenlie@gmail.com"}],"dist":{"shasum":"dcd863ccd2c63a24166d0c33781f4500dae323f2","tarball":"https://registry.npmjs.org/@arcmantle/eslint-config/-/eslint-config-1.0.0.tgz","fileCount":4,"integrity":"sha512-tVppYoUqZHLKXptw9AGnYCanPuAEnj/kokaTpvbQzx9LFfWFG+L0IKhIjsXZZlKl24RW7wEXMA8szWC5m9UkNw==","signatures":[{"sig":"MEYCIQCGFHF8kfAcV/Gd0XdA1pkZftSWnogjor4VIEf1bjZh9AIhAKMltShDe1oIA9hY4a2/2duTWSp1dMdvr4U+7nrdwmov","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13165},"main":"index.js","type":"module","_from":"file:arcmantle-eslint-config-1.0.0.tgz","types":"index.d.ts","engines":{"node":">=22"},"scripts":{"build":"exit 0","lint-windows":"set TIMING=1 && pnpm eslint"},"_npmUser":{"name":"roenlie","actor":{"name":"roenlie","type":"user","email":"kristofferroenlie@gmail.com"},"email":"kristofferroenlie@gmail.com"},"_resolved":"/tmp/aff15f8dd3ef592e5d3206514e3305c5/arcmantle-eslint-config-1.0.0.tgz","_integrity":"sha512-tVppYoUqZHLKXptw9AGnYCanPuAEnj/kokaTpvbQzx9LFfWFG+L0IKhIjsXZZlKl24RW7wEXMA8szWC5m9UkNw==","_npmVersion":"11.4.2","description":"eslint config preferences.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"eslint":"^9.29.0","@eslint/js":"^9.29.0","eslint-plugin-lit":"^2.0.0","typescript-eslint":"^8.34.1","@stylistic/eslint-plugin":"^4.2.0","eslint-plugin-simple-import-sort":"^12.1.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","typescript":"^5.8.3","@types/node":"^24.0.10","@arcmantle/tsconfig":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.0_1751574946620_0.3181498646659793","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@arcmantle/eslint-config","version":"1.0.1","author":{"name":"Kristoffer Roen-Lie"},"license":"Apache-2.0","_id":"@arcmantle/eslint-config@1.0.1","maintainers":[{"name":"roenlie","email":"kristofferroenlie@gmail.com"}],"dist":{"shasum":"6e4566889063d84fc4f948fb2353b41bf0262d13","tarball":"https://registry.npmjs.org/@arcmantle/eslint-config/-/eslint-config-1.0.1.tgz","fileCount":4,"integrity":"sha512-mPKbAOiClULEorcOpHBOgKSu2ynI1+8piDHFw7xxwFpKc2b+ZQyAOAgcHdwcGQxZv+Ej/FOvkHHAeqia0X+3Xw==","signatures":[{"sig":"MEYCIQCFibdIo2fdxIGeIZ3u9m6XMYL/TNmGQHu4SxNzNpGvcQIhAJ165Ihntl/6ITxrhjcaydJ0nR7b09dA+MefUHwJ4XcW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13165},"main":"index.js","type":"module","_from":"file:arcmantle-eslint-config-1.0.1.tgz","types":"index.d.ts","engines":{"node":">=22"},"scripts":{"build":"exit 0","lint-windows":"set TIMING=1 && pnpm eslint"},"_npmUser":{"name":"roenlie","email":"kristofferroenlie@gmail.com"},"_resolved":"/tmp/404f0fe9b582023f6ef88c442f237cf8/arcmantle-eslint-config-1.0.1.tgz","_integrity":"sha512-mPKbAOiClULEorcOpHBOgKSu2ynI1+8piDHFw7xxwFpKc2b+ZQyAOAgcHdwcGQxZv+Ej/FOvkHHAeqia0X+3Xw==","_npmVersion":"11.4.2","description":"eslint config preferences.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"eslint":"^9.29.0","@eslint/js":"^9.29.0","eslint-plugin-lit":"^2.0.0","typescript-eslint":"^8.34.1","@stylistic/eslint-plugin":"^4.2.0","eslint-plugin-simple-import-sort":"^12.1.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","typescript":"^5.8.3","@types/node":"^24.0.14","@arcmantle/tsconfig":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_1.0.1_1752757866759_0.6595848140919631","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@arcmantle/eslint-config","version":"1.0.2","description":"eslint config preferences.","repository":{"type":"git","url":"git+https://github.com/arcmantle/eslint-config.git"},"license":"Apache-2.0","author":{"name":"Kristoffer Roen-Lie"},"type":"module","main":"index.js","types":"index.d.ts","dependencies":{"@eslint/js":"^9.29.0","@stylistic/eslint-plugin":"^4.2.0","eslint":"^9.29.0","eslint-plugin-lit":"^2.0.0","eslint-plugin-simple-import-sort":"^12.1.1","typescript-eslint":"^8.34.1"},"engines":{"node":">=22"},"devDependencies":{"@arcmantle/tsconfig":"^1.0.6","@types/node":"^24.0.14","rimraf":"^6.0.1","typescript":"^5.8.3"},"scripts":{"build":"exit 0","lint-windows":"set TIMING=1 && pnpm eslint"},"_id":"@arcmantle/eslint-config@1.0.2","bugs":{"url":"https://github.com/arcmantle/eslint-config/issues"},"homepage":"https://github.com/arcmantle/eslint-config#readme","_integrity":"sha512-yMrAgkjHp1T+4IyhrSzXXHGcOHfPbm7mKgjzL87HjWFqn6irsledERgotEJNv59ReWTIxBOuXkpbZjWLr8/N4g==","_resolved":"/tmp/de9dc6933dfccebfcdaea429e7afd4c1/arcmantle-eslint-config-1.0.2.tgz","_from":"file:arcmantle-eslint-config-1.0.2.tgz","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-yMrAgkjHp1T+4IyhrSzXXHGcOHfPbm7mKgjzL87HjWFqn6irsledERgotEJNv59ReWTIxBOuXkpbZjWLr8/N4g==","shasum":"5dcb6aac13823cb5aadf550c96b17c95136d1041","tarball":"https://registry.npmjs.org/@arcmantle/eslint-config/-/eslint-config-1.0.2.tgz","fileCount":4,"unpackedSize":13267,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC4X6Xsm2jzJ4kMdPzahOeX3EB/qzMxJX0aAzWYoxlPqAIhAJI2Ot7uqZHipTNK7WbJpqRwd8oNigDHrv2hZwmAb1qd"}]},"_npmUser":{"name":"roenlie","email":"kristofferroenlie@gmail.com"},"directories":{},"maintainers":[{"name":"roenlie","email":"kristofferroenlie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_1.0.2_1752781600562_0.05470488133912821"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-03T20:35:46.124Z","modified":"2025-07-17T19:46:40.917Z","1.0.0":"2025-07-03T20:35:46.821Z","1.0.1":"2025-07-17T13:11:06.934Z","1.0.2":"2025-07-17T19:46:40.732Z"},"author":{"name":"Kristoffer Roen-Lie"},"license":"Apache-2.0","description":"eslint config preferences.","maintainers":[{"name":"roenlie","email":"kristofferroenlie@gmail.com"}],"readme":"# @arcmantle/eslint-config\n\nA comprehensive ESLint configuration package for TypeScript and JavaScript projects, featuring stylistic rules, import sorting, and specialized configurations for different environments.\n\n## Features\n\n- 🎯 **TypeScript-first**: Built with TypeScript support as a primary concern\n- 🎨 **Stylistic Rules**: Comprehensive formatting and code style enforcement\n- 📦 **Import Sorting**: Automatic import organization with `simple-import-sort`\n- 🏗️ **Multiple Configs**: Tailored configurations for different project types\n- 🔧 **Modern ESLint**: Uses ESLint v9 flat config format\n- 🚀 **Lit Support**: Specialized rules for Lit element development\n\n## Installation\n\n```bash\nnpm install @arcmantle/eslint-config\n# or\npnpm add @arcmantle/eslint-config\n# or\nyarn add @arcmantle/eslint-config\n```\n\n## Usage\n\nCreate an `eslint.config.js` file in your project root:\n\n```javascript\nimport { configs } from '@arcmantle/eslint-config';\n\nexport default [\n  ...configs.recommended,\n  // Add your custom overrides here\n];\n```\n\n## Available Configurations\n\n### `recommended`\n\nThe default configuration suitable for most TypeScript/JavaScript projects.\n\n```javascript\nimport { configs } from '@arcmantle/eslint-config';\n\nexport default [...configs.recommended];\n```\n\n**Includes:**\n\n- ESLint recommended rules\n- TypeScript strict and stylistic rules\n- Stylistic formatting rules\n- Import sorting\n- Modern ECMAScript features support\n\n### `node`\n\nExtends the recommended config with Node.js specific optimizations.\n\n```javascript\nimport { configs } from '@arcmantle/eslint-config';\n\nexport default [...configs.node];\n```\n\n### `lit`\n\nSpecialized configuration for Lit element development.\n\n```javascript\nimport { configs } from '@arcmantle/eslint-config';\n\nexport default [...configs.lit];\n```\n\n**Includes:**\n\n- All recommended rules\n- Lit-specific linting rules\n- Custom element best practices\n\n## Configuration Details\n\n### Code Style Highlights\n\n- **Indentation**: Tab-based indentation\n- **Quotes**: Single quotes with template literal support\n- **Semicolons**: Always required\n- **Max Line Length**: 130 characters for code, 150 for comments\n- **Brace Style**: Stroustrup style\n- **Object/Array Spacing**: Enforced spacing for readability\n\n### Import Organization\n\nImports are automatically sorted using `simple-import-sort`:\n\n- External libraries first\n- Internal imports second\n- Relative imports last\n- Blank lines between import groups\n\n### TypeScript Features\n\n- Strict type checking enabled\n- Explicit return types required for public methods\n- Unused variables warning (prefix with `_` to ignore)\n- No-public accessibility modifier enforcement\n- Consistent generic constructor patterns\n\n## File Coverage\n\nThe configuration applies to:\n\n- `**/*.{js,jsx,mjs,cjs,ts,tsx}`\n\nAnd ignores:\n\n- `**/dist/**`\n- `**/node_modules/**`\n\n## Customization\n\nYou can override specific rules by extending the configuration:\n\n```javascript\nimport { configs } from '@arcmantle/eslint-config';\n\nexport default [\n  ...configs.recommended,\n  {\n    rules: {\n      // Your custom rule overrides\n      '@stylistic/max-len': ['warn', { code: 100 }],\n      '@typescript-eslint/no-explicit-any': 'error',\n    },\n  },\n];\n```\n\n## Requirements\n\n- **Node.js**: >= 22\n- **ESLint**: >= 9.29.0\n- **TypeScript**: >= 5.8.3 (for TypeScript projects)\n\n## Dependencies\n\nThis package includes and configures:\n\n- `@eslint/js` - Core ESLint rules\n- `@stylistic/eslint-plugin` - Code formatting rules\n- `eslint-plugin-lit` - Lit element specific rules\n- `eslint-plugin-simple-import-sort` - Import organization\n- `typescript-eslint` - TypeScript integration\n\n## License\n\nMIT\n\n## Author\n\nKristoffer Roen-Lie\n","readmeFilename":"README.md","homepage":"https://github.com/arcmantle/eslint-config#readme","repository":{"type":"git","url":"git+https://github.com/arcmantle/eslint-config.git"},"bugs":{"url":"https://github.com/arcmantle/eslint-config/issues"}}