{"_id":"@arkmp/eslint-plugin","_rev":"6-b8bb93cb0564b341a2dd9f34435e48c4","name":"@arkmp/eslint-plugin","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@arkmp/eslint-plugin","version":"0.1.0","_id":"@arkmp/eslint-plugin@0.1.0","maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"dist":{"shasum":"3eb541249a25571830608c56399d834a47091c01","tarball":"https://registry.npmjs.org/@arkmp/eslint-plugin/-/eslint-plugin-0.1.0.tgz","fileCount":8,"integrity":"sha512-oeKms61Gl3FKNelsYUNInqXYbrz+HEUzSCoANHwTlxyLDpPzby2161hMNSmqT/d9jc7dhEMxfJ9Pn3Kb5JnKig==","signatures":[{"sig":"MEYCIQD5/L/x66rTcBvcdRrZM48wkUt5i1QzqGx8eqxW4kPcBwIhALItaFC/LDOjpc4ABj9ZnZIYqG482UmaZVKrBpvzjPmf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143685},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"d2efd12b935de83497533454e82230ee5aa245f1","scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"_npmVersion":"11.9.0","description":"> 对外发布包","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@typescript-eslint/utils":"^8.46.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^24.13.3","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/rule-tester":"^8.46.4"},"peerDependencies":{"eslint":"^9.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.0_1784917483949_0.8385544214856677","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@arkmp/eslint-plugin","version":"0.1.1","_id":"@arkmp/eslint-plugin@0.1.1","maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"dist":{"shasum":"a1e6d713ced0aa99578e0583268c2a218205658c","tarball":"https://registry.npmjs.org/@arkmp/eslint-plugin/-/eslint-plugin-0.1.1.tgz","fileCount":8,"integrity":"sha512-LZGRL2LYAnFGoj/bO3MxguFzGSACU4joLYGop0qwRk3fVeKZ1dO1osR5UvWKt7mESUk6xyzhKoz4RETYrr4qHg==","signatures":[{"sig":"MEUCIDPa4FTXOUg+SzydihVBadF5z/SfCJqRyDdIJYuyVYkXAiEA+TpzOwyLXKf/TiKt+48BJLswWTFxk26AE7XEjQhqISc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143685},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"d2efd12b935de83497533454e82230ee5aa245f1","scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"_npmVersion":"11.9.0","description":"> 对外发布包","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@typescript-eslint/utils":"^8.46.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^24.13.3","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/rule-tester":"^8.46.4"},"peerDependencies":{"eslint":"^9.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.1_1785144908790_0.5273395272574921","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arkmp/eslint-plugin","version":"0.1.2","_id":"@arkmp/eslint-plugin@0.1.2","maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"dist":{"shasum":"7f1038a2274f3342532f39fde2403452273260b7","tarball":"https://registry.npmjs.org/@arkmp/eslint-plugin/-/eslint-plugin-0.1.2.tgz","fileCount":8,"integrity":"sha512-LVDUIXUwAFHCKR9RbEMi1NjmZfsMUoRnr5myqM54DDWAnv2fp/NFBwAz7G3YUM6I9Gy6DKWDC6YDGd1VwjZHxQ==","signatures":[{"sig":"MEUCIQDTJn37/nsSGqvFQ7Qj2HVsVrmrVZPgpa7MIA+H933UpwIgRvvNlLEZocjSz9J20t13SS6CN4Rfxz9vy/hHj+L2+4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149934},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"7dd7c0c99f403db9abac411a65c1d3ffd9c1b69d","scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"_npmVersion":"11.9.0","description":"> 对外发布包","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@typescript-eslint/utils":"^8.46.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^24.13.3","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/rule-tester":"^8.46.4"},"peerDependencies":{"eslint":"^9.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.2_1785199680093_0.7067196973598506","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@arkmp/eslint-plugin","version":"0.1.4","_id":"@arkmp/eslint-plugin@0.1.4","maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"dist":{"shasum":"6be9ec4a51f1a6b7c8d0d0fb23ebf3a0a55da9ad","tarball":"https://registry.npmjs.org/@arkmp/eslint-plugin/-/eslint-plugin-0.1.4.tgz","fileCount":8,"integrity":"sha512-S5h37wSaC6TqBqWouRqMp0/xjwo6vs2a1lniyboKKLsb08OEH/FfonJQjzdnxBm0HcTSmjDPrfHvD9OzlToCFg==","signatures":[{"sig":"MEQCIANmcj13rAiQ35Dj20vrpK1fMIjGclOq5h39ntd9TVfPAiBo3EmsjcvauEIYVmWzyULn/EpkdhPon5typy3mt04JbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149933},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"directories":{},"_nodeVersion":"24.14.0","dependencies":{"@typescript-eslint/utils":"^8.46.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^24.13.3","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/rule-tester":"^8.46.4"},"peerDependencies":{"eslint":"^9.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.1.4_1785206115764_0.4141857094535384","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@arkmp/eslint-plugin","version":"0.2.0","_id":"@arkmp/eslint-plugin@0.2.0","maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"dist":{"shasum":"fe3f1676cadb2b3d5dd18dd9fdd5b88a5aaf8669","tarball":"https://registry.npmjs.org/@arkmp/eslint-plugin/-/eslint-plugin-0.2.0.tgz","fileCount":8,"integrity":"sha512-oe717Yw5iu/pG9Y/rWID0KBCGxHPt2B7UrOIc2llUIVunj1QiZp+/ykyY6dw2KFT6GMmScZ3HpjH92sSUlzjQg==","signatures":[{"sig":"MEQCIHw3hh56J5I/H+hKaXnQSG7BCrws160TJZEsyZlP2vfTAiBJnKunbseOZqziNw0gOehzQAQpv46cMWKoOZ4Vqay8Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149933},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"directories":{},"_nodeVersion":"24.14.0","dependencies":{"@typescript-eslint/utils":"^8.46.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","tsdown":"^0.22.14","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^24.13.3","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/rule-tester":"^8.46.4"},"peerDependencies":{"eslint":"^9.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin_0.2.0_1785210226796_0.6170229153540643","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@arkmp/eslint-plugin","version":"0.2.1","type":"module","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.mts","dependencies":{"@typescript-eslint/utils":"^8.46.4"},"peerDependencies":{"eslint":"^9.0.0","typescript":"^5.0.0"},"devDependencies":{"@types/node":"^24.13.3","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/rule-tester":"^8.46.4","eslint":"^9.39.1","tsdown":"^0.22.14","typescript":"^5.9.3","vitest":"^4.1.10"},"scripts":{"build":"tsdown","test":"vitest run","typecheck":"tsc --noEmit"},"_nodeVersion":"24.14.0","_id":"@arkmp/eslint-plugin@0.2.1","dist":{"integrity":"sha512-VPQF+Z6zxKNy2Tqcn4g9MXEZFiTlTIAegix4htRoCkThXWYuH2j86dFAJRktmTJxLOb4xht7UgoEL4CEOwNVKw==","shasum":"1fb5f93fcd180c7536f12661a59748da734c803e","tarball":"https://registry.npmjs.org/@arkmp/eslint-plugin/-/eslint-plugin-0.2.1.tgz","fileCount":8,"unpackedSize":149933,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGKI9xc/ShwsWhAYBl3Icvpgbs5vmcqC+LR4YW5cfYc8AiEAtv9UaBUIunbJjNbu2cgalPpVKN0sxhI+LDxtgmrbHF4="}]},"_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"directories":{},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin_0.2.1_1785298608983_0.20368234987413758"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T18:24:43.794Z","modified":"2026-07-29T04:16:49.311Z","0.1.0":"2026-07-24T18:24:44.100Z","0.1.1":"2026-07-27T09:35:08.922Z","0.1.2":"2026-07-28T00:48:00.249Z","0.1.4":"2026-07-28T02:35:15.905Z","0.2.0":"2026-07-28T03:43:46.940Z","0.2.1":"2026-07-29T04:16:49.166Z"},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"readme":"# @arkmp/eslint-plugin\n\n> 对外发布包\n\nArkMP 源码侧（`.ets`）编码期越界语法检查。每条规则对应 `docs/arkui-miniprogram/08-limitations.md` 的一条限制，在编码期给出与编译期一致的诊断（E1xxx / W2xxx / E3xxx 语义）。\n\n## 所属层\n\nL6 source-side（独立子树）。\n\n## 依赖\n\n无 workspace 依赖。运行依赖 `@typescript-eslint/utils`，并以 `eslint`（`^9.0.0`）与 `typescript`（`^5.0.0`）为 peerDependency——前者提供规则运行环境，后者提供类型信息。\n\n## 导出 API\n\n### `rules`\n\n全部 14 条规则的对象表，键为规则名（如 `'no-unknown-decorator'`）。每条规则基于 `@typescript-eslint/utils` 的 `RuleCreator` 创建，文档链接统一指向 08 篇对应锚点。其中 13 条对应编译期限制（08 篇 E1xxx / W2xxx / E3xxx），1 条为 ArkTS 编码风格建议（`no-var`，无编译期诊断码）。\n\n### `recommendedRules: Record<'arkmp/${RuleName}', 'error' | 'warn'>`\n\nrecommended 配置的规则级别。E 级（编译期 error）为 `'error'`，W 级（降级提示）为 `'warn'`，与 08 篇诊断级别对齐。\n\n### `configs`\n\nflat config 形式的配置对象表，当前含 `recommended`（注册 `arkmp` 插件并启用 `recommendedRules`）。\n\n### `default`（默认导出）\n\nESLint 插件对象，含 `meta`（`name`/`version`）、`rules`、`configs`。\n\n### `RuleName`（类型）\n\n`keyof typeof rules`，全部规则名的联合类型。\n\n### 规则清单\n\n| 规则 | 级别 | 说明 |\n| --- | --- | --- |\n| `no-unknown-decorator` | error | 禁止白名单之外的装饰器（08 篇装饰器白名单） |\n| `no-ui-call-outside-build` | error | 禁止在 `build()` / `@Builder` 之外调用 UI 组件 |\n| `no-side-effect-in-build` | error | 禁止在 `build()` 中修改状态或发起副作用调用 |\n| `single-root-node` | error | `build()` 最多一个根节点 |\n| `no-lazy-foreach` | error | 禁止 `LazyForEach` / `IDataSource`（08 篇 E1001） |\n| `no-geometry-transition` | error | 禁止 `geometryTransition` 共享元素转场（08 篇 E1003） |\n| `no-concurrent` | error | 禁止 `@Concurrent` 并发装饰器（08 篇 E1004） |\n| `no-wrap-builder` | error | 禁止 `wrapBuilder` / `@LocalBuilder` 动态组件（08 篇 E1005） |\n| `no-dynamic-this-access` | warn | 禁止 `this[key]` 动态属性访问（08 篇 W2001，降级 Proxy 兜底） |\n| `no-unsupported-component` | error | 禁止不可编译的 ArkUI 组件（08 篇 E1xxx） |\n| `no-degraded-capability` | warn | 提示将降级处理的 ArkUI 能力（08 篇组件能力表，warning 级） |\n| `no-miniprogram-api` | error | 禁止直接使用 `wx.*` / `this.data` / `setData` 等产物 API（08 篇 E3xxx） |\n| `require-literal-decorator-args` | error | `@Watch`/`@StorageLink` 参数必须为字符串字面量（编译期静态求值） |\n| `no-var` | warn | 禁止 `var` 声明，改用 `let` / `const`（08 篇 ArkTS 编码风格建议，非编译限制） |\n\n## 用法示例\n\n```ts\nimport arkmp from '@arkmp/eslint-plugin';\n\n// flat config\nexport default [\n  arkmp.configs.recommended,\n  // 或按需启用单条规则\n  // { plugins: { arkmp }, rules: { 'arkmp/no-unknown-decorator': 'error' } },\n];\n```\n\n```json\n// eslint.config.js 引入后，.ets 源码中越界写法会被标记\n// 例：@Foo 装饰器不在白名单 → no-unknown-decorator 报错\n// 例：this.setData({}) → no-miniprogram-api 报错\n```\n\n## 测试\n\n```bash\npnpm --filter @arkmp/eslint-plugin test\n```\n","readmeFilename":""}