eslint-plugin-copilot 1.0.5

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.
Files changed (424) hide show
  1. package/CHANGELOG.md +5316 -0
  2. package/LICENSE +21 -0
  3. package/README.md +192 -0
  4. package/dist/_internal/copilot-config-references.d.ts +34 -0
  5. package/dist/_internal/copilot-config-references.d.ts.map +1 -0
  6. package/dist/_internal/copilot-config-references.js +55 -0
  7. package/dist/_internal/copilot-config-references.js.map +1 -0
  8. package/dist/_internal/copilot-customization-names.d.ts +21 -0
  9. package/dist/_internal/copilot-customization-names.d.ts.map +1 -0
  10. package/dist/_internal/copilot-customization-names.js +56 -0
  11. package/dist/_internal/copilot-customization-names.js.map +1 -0
  12. package/dist/_internal/copilot-file-kind.d.ts +19 -0
  13. package/dist/_internal/copilot-file-kind.d.ts.map +1 -0
  14. package/dist/_internal/copilot-file-kind.js +111 -0
  15. package/dist/_internal/copilot-file-kind.js.map +1 -0
  16. package/dist/_internal/create-copilot-rule.d.ts +39 -0
  17. package/dist/_internal/create-copilot-rule.d.ts.map +1 -0
  18. package/dist/_internal/create-copilot-rule.js +56 -0
  19. package/dist/_internal/create-copilot-rule.js.map +1 -0
  20. package/dist/_internal/customization-body.d.ts +6 -0
  21. package/dist/_internal/customization-body.d.ts.map +1 -0
  22. package/dist/_internal/customization-body.js +15 -0
  23. package/dist/_internal/customization-body.js.map +1 -0
  24. package/dist/_internal/duplicate-names.d.ts +12 -0
  25. package/dist/_internal/duplicate-names.d.ts.map +1 -0
  26. package/dist/_internal/duplicate-names.js +24 -0
  27. package/dist/_internal/duplicate-names.js.map +1 -0
  28. package/dist/_internal/file-system.d.ts +21 -0
  29. package/dist/_internal/file-system.d.ts.map +1 -0
  30. package/dist/_internal/file-system.js +86 -0
  31. package/dist/_internal/file-system.js.map +1 -0
  32. package/dist/_internal/frontmatter.d.ts +37 -0
  33. package/dist/_internal/frontmatter.d.ts.map +1 -0
  34. package/dist/_internal/frontmatter.js +398 -0
  35. package/dist/_internal/frontmatter.js.map +1 -0
  36. package/dist/_internal/markdown-links.d.ts +21 -0
  37. package/dist/_internal/markdown-links.d.ts.map +1 -0
  38. package/dist/_internal/markdown-links.js +81 -0
  39. package/dist/_internal/markdown-links.js.map +1 -0
  40. package/dist/_internal/markdown-rule.d.ts +13 -0
  41. package/dist/_internal/markdown-rule.d.ts.map +1 -0
  42. package/dist/_internal/markdown-rule.js +19 -0
  43. package/dist/_internal/markdown-rule.js.map +1 -0
  44. package/dist/_internal/repository-hooks-json.d.ts +55 -0
  45. package/dist/_internal/repository-hooks-json.d.ts.map +1 -0
  46. package/dist/_internal/repository-hooks-json.js +80 -0
  47. package/dist/_internal/repository-hooks-json.js.map +1 -0
  48. package/dist/_internal/rule-catalog.d.ts +20 -0
  49. package/dist/_internal/rule-catalog.d.ts.map +1 -0
  50. package/dist/_internal/rule-catalog.js +97 -0
  51. package/dist/_internal/rule-catalog.js.map +1 -0
  52. package/dist/_internal/rule-docs-url.d.ts +9 -0
  53. package/dist/_internal/rule-docs-url.d.ts.map +1 -0
  54. package/dist/_internal/rule-docs-url.js +9 -0
  55. package/dist/_internal/rule-docs-url.js.map +1 -0
  56. package/dist/_internal/rules-registry.d.ts +83 -0
  57. package/dist/_internal/rules-registry.d.ts.map +1 -0
  58. package/dist/_internal/rules-registry.js +145 -0
  59. package/dist/_internal/rules-registry.js.map +1 -0
  60. package/dist/_internal/skill-files.d.ts +8 -0
  61. package/dist/_internal/skill-files.d.ts.map +1 -0
  62. package/dist/_internal/skill-files.js +18 -0
  63. package/dist/_internal/skill-files.js.map +1 -0
  64. package/dist/plugin.cjs +5312 -0
  65. package/dist/plugin.cjs.map +7 -0
  66. package/dist/plugin.d.cts +34 -0
  67. package/dist/plugin.d.ts +34 -0
  68. package/dist/plugin.d.ts.map +1 -0
  69. package/dist/plugin.js +142 -0
  70. package/dist/plugin.js.map +1 -0
  71. package/dist/rules/no-blank-customization-body.d.ts +4 -0
  72. package/dist/rules/no-blank-customization-body.d.ts.map +1 -0
  73. package/dist/rules/no-blank-customization-body.js +49 -0
  74. package/dist/rules/no-blank-customization-body.js.map +1 -0
  75. package/dist/rules/no-blank-repository-instructions.d.ts +4 -0
  76. package/dist/rules/no-blank-repository-instructions.d.ts.map +1 -0
  77. package/dist/rules/no-blank-repository-instructions.js +49 -0
  78. package/dist/rules/no-blank-repository-instructions.js.map +1 -0
  79. package/dist/rules/no-blank-skill-body.d.ts +4 -0
  80. package/dist/rules/no-blank-skill-body.d.ts.map +1 -0
  81. package/dist/rules/no-blank-skill-body.js +48 -0
  82. package/dist/rules/no-blank-skill-body.js.map +1 -0
  83. package/dist/rules/no-deprecated-agent-infer.d.ts +4 -0
  84. package/dist/rules/no-deprecated-agent-infer.d.ts.map +1 -0
  85. package/dist/rules/no-deprecated-agent-infer.js +48 -0
  86. package/dist/rules/no-deprecated-agent-infer.js.map +1 -0
  87. package/dist/rules/no-duplicate-agent-names.d.ts +4 -0
  88. package/dist/rules/no-duplicate-agent-names.d.ts.map +1 -0
  89. package/dist/rules/no-duplicate-agent-names.js +72 -0
  90. package/dist/rules/no-duplicate-agent-names.js.map +1 -0
  91. package/dist/rules/no-duplicate-prompt-names.d.ts +4 -0
  92. package/dist/rules/no-duplicate-prompt-names.d.ts.map +1 -0
  93. package/dist/rules/no-duplicate-prompt-names.js +72 -0
  94. package/dist/rules/no-duplicate-prompt-names.js.map +1 -0
  95. package/dist/rules/no-duplicate-skill-names.d.ts +4 -0
  96. package/dist/rules/no-duplicate-skill-names.d.ts.map +1 -0
  97. package/dist/rules/no-duplicate-skill-names.js +74 -0
  98. package/dist/rules/no-duplicate-skill-names.js.map +1 -0
  99. package/dist/rules/no-duplicate-slash-command-names.d.ts +4 -0
  100. package/dist/rules/no-duplicate-slash-command-names.d.ts.map +1 -0
  101. package/dist/rules/no-duplicate-slash-command-names.js +82 -0
  102. package/dist/rules/no-duplicate-slash-command-names.js.map +1 -0
  103. package/dist/rules/no-empty-repository-hook-arrays.d.ts +4 -0
  104. package/dist/rules/no-empty-repository-hook-arrays.d.ts.map +1 -0
  105. package/dist/rules/no-empty-repository-hook-arrays.js +49 -0
  106. package/dist/rules/no-empty-repository-hook-arrays.js.map +1 -0
  107. package/dist/rules/no-legacy-chatmode-files.d.ts +4 -0
  108. package/dist/rules/no-legacy-chatmode-files.d.ts.map +1 -0
  109. package/dist/rules/no-legacy-chatmode-files.js +42 -0
  110. package/dist/rules/no-legacy-chatmode-files.js.map +1 -0
  111. package/dist/rules/prefer-custom-instructions-under-code-review-limit.d.ts +4 -0
  112. package/dist/rules/prefer-custom-instructions-under-code-review-limit.d.ts.map +1 -0
  113. package/dist/rules/prefer-custom-instructions-under-code-review-limit.js +52 -0
  114. package/dist/rules/prefer-custom-instructions-under-code-review-limit.js.map +1 -0
  115. package/dist/rules/prefer-fast-repository-hooks.d.ts +4 -0
  116. package/dist/rules/prefer-fast-repository-hooks.d.ts.map +1 -0
  117. package/dist/rules/prefer-fast-repository-hooks.js +58 -0
  118. package/dist/rules/prefer-fast-repository-hooks.js.map +1 -0
  119. package/dist/rules/prefer-qualified-tools.d.ts +4 -0
  120. package/dist/rules/prefer-qualified-tools.d.ts.map +1 -0
  121. package/dist/rules/prefer-qualified-tools.js +56 -0
  122. package/dist/rules/prefer-qualified-tools.js.map +1 -0
  123. package/dist/rules/require-agent-tool-for-subagents.d.ts +4 -0
  124. package/dist/rules/require-agent-tool-for-subagents.d.ts.map +1 -0
  125. package/dist/rules/require-agent-tool-for-subagents.js +64 -0
  126. package/dist/rules/require-agent-tool-for-subagents.js.map +1 -0
  127. package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.d.ts +4 -0
  128. package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.d.ts.map +1 -0
  129. package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.js +50 -0
  130. package/dist/rules/require-agents-md-for-cross-surface-agent-instructions.js.map +1 -0
  131. package/dist/rules/require-chatmode-file-metadata.d.ts +4 -0
  132. package/dist/rules/require-chatmode-file-metadata.d.ts.map +1 -0
  133. package/dist/rules/require-chatmode-file-metadata.js +59 -0
  134. package/dist/rules/require-chatmode-file-metadata.js.map +1 -0
  135. package/dist/rules/require-existing-agent-hook-cwd.d.ts +4 -0
  136. package/dist/rules/require-existing-agent-hook-cwd.d.ts.map +1 -0
  137. package/dist/rules/require-existing-agent-hook-cwd.js +64 -0
  138. package/dist/rules/require-existing-agent-hook-cwd.js.map +1 -0
  139. package/dist/rules/require-existing-agent-mcp-servers.d.ts +4 -0
  140. package/dist/rules/require-existing-agent-mcp-servers.d.ts.map +1 -0
  141. package/dist/rules/require-existing-agent-mcp-servers.js +58 -0
  142. package/dist/rules/require-existing-agent-mcp-servers.js.map +1 -0
  143. package/dist/rules/require-existing-relative-agent-links.d.ts +4 -0
  144. package/dist/rules/require-existing-relative-agent-links.d.ts.map +1 -0
  145. package/dist/rules/require-existing-relative-agent-links.js +61 -0
  146. package/dist/rules/require-existing-relative-agent-links.js.map +1 -0
  147. package/dist/rules/require-existing-relative-instructions-links.d.ts +4 -0
  148. package/dist/rules/require-existing-relative-instructions-links.d.ts.map +1 -0
  149. package/dist/rules/require-existing-relative-instructions-links.js +61 -0
  150. package/dist/rules/require-existing-relative-instructions-links.js.map +1 -0
  151. package/dist/rules/require-existing-relative-prompt-links.d.ts +4 -0
  152. package/dist/rules/require-existing-relative-prompt-links.d.ts.map +1 -0
  153. package/dist/rules/require-existing-relative-prompt-links.js +61 -0
  154. package/dist/rules/require-existing-relative-prompt-links.js.map +1 -0
  155. package/dist/rules/require-existing-relative-skill-links.d.ts +4 -0
  156. package/dist/rules/require-existing-relative-skill-links.d.ts.map +1 -0
  157. package/dist/rules/require-existing-relative-skill-links.js +61 -0
  158. package/dist/rules/require-existing-relative-skill-links.js.map +1 -0
  159. package/dist/rules/require-existing-repository-hook-cwd.d.ts +4 -0
  160. package/dist/rules/require-existing-repository-hook-cwd.d.ts.map +1 -0
  161. package/dist/rules/require-existing-repository-hook-cwd.js +65 -0
  162. package/dist/rules/require-existing-repository-hook-cwd.js.map +1 -0
  163. package/dist/rules/require-github-copilot-target-for-mcp-servers.d.ts +4 -0
  164. package/dist/rules/require-github-copilot-target-for-mcp-servers.d.ts.map +1 -0
  165. package/dist/rules/require-github-copilot-target-for-mcp-servers.js +63 -0
  166. package/dist/rules/require-github-copilot-target-for-mcp-servers.js.map +1 -0
  167. package/dist/rules/require-instructions-apply-to.d.ts +4 -0
  168. package/dist/rules/require-instructions-apply-to.d.ts.map +1 -0
  169. package/dist/rules/require-instructions-apply-to.js +60 -0
  170. package/dist/rules/require-instructions-apply-to.js.map +1 -0
  171. package/dist/rules/require-json-agent-mcp-servers.d.ts +4 -0
  172. package/dist/rules/require-json-agent-mcp-servers.d.ts.map +1 -0
  173. package/dist/rules/require-json-agent-mcp-servers.js +58 -0
  174. package/dist/rules/require-json-agent-mcp-servers.js.map +1 -0
  175. package/dist/rules/require-prompt-file-metadata.d.ts +4 -0
  176. package/dist/rules/require-prompt-file-metadata.d.ts.map +1 -0
  177. package/dist/rules/require-prompt-file-metadata.js +104 -0
  178. package/dist/rules/require-prompt-file-metadata.js.map +1 -0
  179. package/dist/rules/require-qualified-agent-handoff-models.d.ts +4 -0
  180. package/dist/rules/require-qualified-agent-handoff-models.d.ts.map +1 -0
  181. package/dist/rules/require-qualified-agent-handoff-models.js +78 -0
  182. package/dist/rules/require-qualified-agent-handoff-models.js.map +1 -0
  183. package/dist/rules/require-relative-agent-hook-cwd.d.ts +4 -0
  184. package/dist/rules/require-relative-agent-hook-cwd.d.ts.map +1 -0
  185. package/dist/rules/require-relative-agent-hook-cwd.js +70 -0
  186. package/dist/rules/require-relative-agent-hook-cwd.js.map +1 -0
  187. package/dist/rules/require-relative-agent-links.d.ts +4 -0
  188. package/dist/rules/require-relative-agent-links.d.ts.map +1 -0
  189. package/dist/rules/require-relative-agent-links.js +58 -0
  190. package/dist/rules/require-relative-agent-links.js.map +1 -0
  191. package/dist/rules/require-relative-instructions-links.d.ts +4 -0
  192. package/dist/rules/require-relative-instructions-links.d.ts.map +1 -0
  193. package/dist/rules/require-relative-instructions-links.js +58 -0
  194. package/dist/rules/require-relative-instructions-links.js.map +1 -0
  195. package/dist/rules/require-relative-prompt-links.d.ts +4 -0
  196. package/dist/rules/require-relative-prompt-links.d.ts.map +1 -0
  197. package/dist/rules/require-relative-prompt-links.js +82 -0
  198. package/dist/rules/require-relative-prompt-links.js.map +1 -0
  199. package/dist/rules/require-relative-repository-hook-cwd.d.ts +4 -0
  200. package/dist/rules/require-relative-repository-hook-cwd.d.ts.map +1 -0
  201. package/dist/rules/require-relative-repository-hook-cwd.js +63 -0
  202. package/dist/rules/require-relative-repository-hook-cwd.js.map +1 -0
  203. package/dist/rules/require-relative-skill-links.d.ts +4 -0
  204. package/dist/rules/require-relative-skill-links.d.ts.map +1 -0
  205. package/dist/rules/require-relative-skill-links.js +58 -0
  206. package/dist/rules/require-relative-skill-links.js.map +1 -0
  207. package/dist/rules/require-repository-hook-arrays.d.ts +4 -0
  208. package/dist/rules/require-repository-hook-arrays.d.ts.map +1 -0
  209. package/dist/rules/require-repository-hook-arrays.js +54 -0
  210. package/dist/rules/require-repository-hook-arrays.js.map +1 -0
  211. package/dist/rules/require-repository-hook-command-shell.d.ts +4 -0
  212. package/dist/rules/require-repository-hook-command-shell.d.ts.map +1 -0
  213. package/dist/rules/require-repository-hook-command-shell.js +57 -0
  214. package/dist/rules/require-repository-hook-command-shell.js.map +1 -0
  215. package/dist/rules/require-repository-hooks-object.d.ts +4 -0
  216. package/dist/rules/require-repository-hooks-object.d.ts.map +1 -0
  217. package/dist/rules/require-repository-hooks-object.js +50 -0
  218. package/dist/rules/require-repository-hooks-object.js.map +1 -0
  219. package/dist/rules/require-repository-instructions-file.d.ts +4 -0
  220. package/dist/rules/require-repository-instructions-file.d.ts.map +1 -0
  221. package/dist/rules/require-repository-instructions-file.js +50 -0
  222. package/dist/rules/require-repository-instructions-file.js.map +1 -0
  223. package/dist/rules/require-skill-file-location.d.ts +4 -0
  224. package/dist/rules/require-skill-file-location.d.ts.map +1 -0
  225. package/dist/rules/require-skill-file-location.js +46 -0
  226. package/dist/rules/require-skill-file-location.js.map +1 -0
  227. package/dist/rules/require-skill-file-metadata.d.ts +4 -0
  228. package/dist/rules/require-skill-file-metadata.d.ts.map +1 -0
  229. package/dist/rules/require-skill-file-metadata.js +60 -0
  230. package/dist/rules/require-skill-file-metadata.js.map +1 -0
  231. package/dist/rules/require-skill-md-filename.d.ts +4 -0
  232. package/dist/rules/require-skill-md-filename.d.ts.map +1 -0
  233. package/dist/rules/require-skill-md-filename.js +55 -0
  234. package/dist/rules/require-skill-md-filename.js.map +1 -0
  235. package/dist/rules/require-skill-name-match-directory.d.ts +4 -0
  236. package/dist/rules/require-skill-name-match-directory.d.ts.map +1 -0
  237. package/dist/rules/require-skill-name-match-directory.js +59 -0
  238. package/dist/rules/require-skill-name-match-directory.js.map +1 -0
  239. package/dist/rules/require-string-repository-hook-env-values.d.ts +4 -0
  240. package/dist/rules/require-string-repository-hook-env-values.d.ts.map +1 -0
  241. package/dist/rules/require-string-repository-hook-env-values.js +59 -0
  242. package/dist/rules/require-string-repository-hook-env-values.js.map +1 -0
  243. package/dist/rules/require-valid-agent-argument-hint.d.ts +4 -0
  244. package/dist/rules/require-valid-agent-argument-hint.d.ts.map +1 -0
  245. package/dist/rules/require-valid-agent-argument-hint.js +51 -0
  246. package/dist/rules/require-valid-agent-argument-hint.js.map +1 -0
  247. package/dist/rules/require-valid-agent-handoff-send.d.ts +4 -0
  248. package/dist/rules/require-valid-agent-handoff-send.d.ts.map +1 -0
  249. package/dist/rules/require-valid-agent-handoff-send.js +67 -0
  250. package/dist/rules/require-valid-agent-handoff-send.js.map +1 -0
  251. package/dist/rules/require-valid-agent-handoffs.d.ts +4 -0
  252. package/dist/rules/require-valid-agent-handoffs.d.ts.map +1 -0
  253. package/dist/rules/require-valid-agent-handoffs.js +78 -0
  254. package/dist/rules/require-valid-agent-handoffs.js.map +1 -0
  255. package/dist/rules/require-valid-agent-hook-events.d.ts +4 -0
  256. package/dist/rules/require-valid-agent-hook-events.d.ts.map +1 -0
  257. package/dist/rules/require-valid-agent-hook-events.js +68 -0
  258. package/dist/rules/require-valid-agent-hook-events.js.map +1 -0
  259. package/dist/rules/require-valid-agent-hook-timeouts.d.ts +4 -0
  260. package/dist/rules/require-valid-agent-hook-timeouts.d.ts.map +1 -0
  261. package/dist/rules/require-valid-agent-hook-timeouts.js +83 -0
  262. package/dist/rules/require-valid-agent-hook-timeouts.js.map +1 -0
  263. package/dist/rules/require-valid-agent-hooks.d.ts +4 -0
  264. package/dist/rules/require-valid-agent-hooks.d.ts.map +1 -0
  265. package/dist/rules/require-valid-agent-hooks.js +86 -0
  266. package/dist/rules/require-valid-agent-hooks.js.map +1 -0
  267. package/dist/rules/require-valid-agent-invocation-controls.d.ts +4 -0
  268. package/dist/rules/require-valid-agent-invocation-controls.d.ts.map +1 -0
  269. package/dist/rules/require-valid-agent-invocation-controls.js +71 -0
  270. package/dist/rules/require-valid-agent-invocation-controls.js.map +1 -0
  271. package/dist/rules/require-valid-agent-mcp-servers.d.ts +4 -0
  272. package/dist/rules/require-valid-agent-mcp-servers.d.ts.map +1 -0
  273. package/dist/rules/require-valid-agent-mcp-servers.js +64 -0
  274. package/dist/rules/require-valid-agent-mcp-servers.js.map +1 -0
  275. package/dist/rules/require-valid-agent-model.d.ts +4 -0
  276. package/dist/rules/require-valid-agent-model.d.ts.map +1 -0
  277. package/dist/rules/require-valid-agent-model.js +64 -0
  278. package/dist/rules/require-valid-agent-model.js.map +1 -0
  279. package/dist/rules/require-valid-agent-name.d.ts +4 -0
  280. package/dist/rules/require-valid-agent-name.d.ts.map +1 -0
  281. package/dist/rules/require-valid-agent-name.js +51 -0
  282. package/dist/rules/require-valid-agent-name.js.map +1 -0
  283. package/dist/rules/require-valid-agent-subagents.d.ts +4 -0
  284. package/dist/rules/require-valid-agent-subagents.d.ts.map +1 -0
  285. package/dist/rules/require-valid-agent-subagents.js +79 -0
  286. package/dist/rules/require-valid-agent-subagents.js.map +1 -0
  287. package/dist/rules/require-valid-agent-target.d.ts +4 -0
  288. package/dist/rules/require-valid-agent-target.d.ts.map +1 -0
  289. package/dist/rules/require-valid-agent-target.js +62 -0
  290. package/dist/rules/require-valid-agent-target.js.map +1 -0
  291. package/dist/rules/require-valid-agent-tools.d.ts +4 -0
  292. package/dist/rules/require-valid-agent-tools.d.ts.map +1 -0
  293. package/dist/rules/require-valid-agent-tools.js +64 -0
  294. package/dist/rules/require-valid-agent-tools.js.map +1 -0
  295. package/dist/rules/require-valid-instructions-apply-to-globs.d.ts +4 -0
  296. package/dist/rules/require-valid-instructions-apply-to-globs.d.ts.map +1 -0
  297. package/dist/rules/require-valid-instructions-apply-to-globs.js +79 -0
  298. package/dist/rules/require-valid-instructions-apply-to-globs.js.map +1 -0
  299. package/dist/rules/require-valid-prompt-argument-hint.d.ts +4 -0
  300. package/dist/rules/require-valid-prompt-argument-hint.d.ts.map +1 -0
  301. package/dist/rules/require-valid-prompt-argument-hint.js +52 -0
  302. package/dist/rules/require-valid-prompt-argument-hint.js.map +1 -0
  303. package/dist/rules/require-valid-prompt-model.d.ts +4 -0
  304. package/dist/rules/require-valid-prompt-model.d.ts.map +1 -0
  305. package/dist/rules/require-valid-prompt-model.js +77 -0
  306. package/dist/rules/require-valid-prompt-model.js.map +1 -0
  307. package/dist/rules/require-valid-prompt-name.d.ts +4 -0
  308. package/dist/rules/require-valid-prompt-name.d.ts.map +1 -0
  309. package/dist/rules/require-valid-prompt-name.js +51 -0
  310. package/dist/rules/require-valid-prompt-name.js.map +1 -0
  311. package/dist/rules/require-valid-prompt-tools.d.ts +4 -0
  312. package/dist/rules/require-valid-prompt-tools.d.ts.map +1 -0
  313. package/dist/rules/require-valid-prompt-tools.js +64 -0
  314. package/dist/rules/require-valid-prompt-tools.js.map +1 -0
  315. package/dist/rules/require-valid-repository-hook-command-type.d.ts +4 -0
  316. package/dist/rules/require-valid-repository-hook-command-type.d.ts.map +1 -0
  317. package/dist/rules/require-valid-repository-hook-command-type.js +58 -0
  318. package/dist/rules/require-valid-repository-hook-command-type.js.map +1 -0
  319. package/dist/rules/require-valid-repository-hook-env.d.ts +4 -0
  320. package/dist/rules/require-valid-repository-hook-env.d.ts.map +1 -0
  321. package/dist/rules/require-valid-repository-hook-env.js +57 -0
  322. package/dist/rules/require-valid-repository-hook-env.js.map +1 -0
  323. package/dist/rules/require-valid-repository-hook-events.d.ts +4 -0
  324. package/dist/rules/require-valid-repository-hook-events.d.ts.map +1 -0
  325. package/dist/rules/require-valid-repository-hook-events.js +55 -0
  326. package/dist/rules/require-valid-repository-hook-events.js.map +1 -0
  327. package/dist/rules/require-valid-repository-hook-timeouts.d.ts +4 -0
  328. package/dist/rules/require-valid-repository-hook-timeouts.d.ts.map +1 -0
  329. package/dist/rules/require-valid-repository-hook-timeouts.js +59 -0
  330. package/dist/rules/require-valid-repository-hook-timeouts.js.map +1 -0
  331. package/dist/rules/require-valid-repository-hook-version.d.ts +4 -0
  332. package/dist/rules/require-valid-repository-hook-version.d.ts.map +1 -0
  333. package/dist/rules/require-valid-repository-hook-version.js +53 -0
  334. package/dist/rules/require-valid-repository-hook-version.js.map +1 -0
  335. package/dist/rules/require-valid-skill-directory-name.d.ts +4 -0
  336. package/dist/rules/require-valid-skill-directory-name.d.ts.map +1 -0
  337. package/dist/rules/require-valid-skill-directory-name.js +50 -0
  338. package/dist/rules/require-valid-skill-directory-name.js.map +1 -0
  339. package/dist/rules/require-valid-skill-license.d.ts +4 -0
  340. package/dist/rules/require-valid-skill-license.d.ts.map +1 -0
  341. package/dist/rules/require-valid-skill-license.js +47 -0
  342. package/dist/rules/require-valid-skill-license.js.map +1 -0
  343. package/dist/rules/require-valid-skill-name.d.ts +4 -0
  344. package/dist/rules/require-valid-skill-name.d.ts.map +1 -0
  345. package/dist/rules/require-valid-skill-name.js +57 -0
  346. package/dist/rules/require-valid-skill-name.js.map +1 -0
  347. package/docs/rules/getting-started.md +24 -0
  348. package/docs/rules/guides/copilot-customization-files.md +17 -0
  349. package/docs/rules/no-blank-customization-body.md +52 -0
  350. package/docs/rules/no-blank-repository-instructions.md +37 -0
  351. package/docs/rules/no-blank-skill-body.md +41 -0
  352. package/docs/rules/no-deprecated-agent-infer.md +42 -0
  353. package/docs/rules/no-duplicate-agent-names.md +36 -0
  354. package/docs/rules/no-duplicate-prompt-names.md +36 -0
  355. package/docs/rules/no-duplicate-skill-names.md +37 -0
  356. package/docs/rules/no-duplicate-slash-command-names.md +40 -0
  357. package/docs/rules/no-empty-repository-hook-arrays.md +44 -0
  358. package/docs/rules/no-legacy-chatmode-files.md +53 -0
  359. package/docs/rules/overview.md +27 -0
  360. package/docs/rules/prefer-custom-instructions-under-code-review-limit.md +39 -0
  361. package/docs/rules/prefer-fast-repository-hooks.md +43 -0
  362. package/docs/rules/prefer-qualified-tools.md +49 -0
  363. package/docs/rules/presets/all.md +82 -0
  364. package/docs/rules/presets/index.md +78 -0
  365. package/docs/rules/presets/minimal.md +16 -0
  366. package/docs/rules/presets/recommended.md +67 -0
  367. package/docs/rules/presets/strict.md +81 -0
  368. package/docs/rules/require-agent-tool-for-subagents.md +44 -0
  369. package/docs/rules/require-agents-md-for-cross-surface-agent-instructions.md +39 -0
  370. package/docs/rules/require-chatmode-file-metadata.md +41 -0
  371. package/docs/rules/require-existing-agent-hook-cwd.md +51 -0
  372. package/docs/rules/require-existing-agent-mcp-servers.md +43 -0
  373. package/docs/rules/require-existing-relative-agent-links.md +41 -0
  374. package/docs/rules/require-existing-relative-instructions-links.md +43 -0
  375. package/docs/rules/require-existing-relative-prompt-links.md +41 -0
  376. package/docs/rules/require-existing-relative-skill-links.md +44 -0
  377. package/docs/rules/require-existing-repository-hook-cwd.md +45 -0
  378. package/docs/rules/require-github-copilot-target-for-mcp-servers.md +46 -0
  379. package/docs/rules/require-instructions-apply-to.md +40 -0
  380. package/docs/rules/require-json-agent-mcp-servers.md +41 -0
  381. package/docs/rules/require-prompt-file-metadata.md +45 -0
  382. package/docs/rules/require-qualified-agent-handoff-models.md +47 -0
  383. package/docs/rules/require-relative-agent-hook-cwd.md +50 -0
  384. package/docs/rules/require-relative-agent-links.md +40 -0
  385. package/docs/rules/require-relative-instructions-links.md +42 -0
  386. package/docs/rules/require-relative-prompt-links.md +43 -0
  387. package/docs/rules/require-relative-repository-hook-cwd.md +43 -0
  388. package/docs/rules/require-relative-skill-links.md +42 -0
  389. package/docs/rules/require-repository-hook-arrays.md +33 -0
  390. package/docs/rules/require-repository-hook-command-shell.md +44 -0
  391. package/docs/rules/require-repository-hooks-object.md +34 -0
  392. package/docs/rules/require-repository-instructions-file.md +42 -0
  393. package/docs/rules/require-skill-file-location.md +33 -0
  394. package/docs/rules/require-skill-file-metadata.md +40 -0
  395. package/docs/rules/require-skill-md-filename.md +43 -0
  396. package/docs/rules/require-skill-name-match-directory.md +46 -0
  397. package/docs/rules/require-string-repository-hook-env-values.md +43 -0
  398. package/docs/rules/require-valid-agent-argument-hint.md +42 -0
  399. package/docs/rules/require-valid-agent-handoff-send.md +49 -0
  400. package/docs/rules/require-valid-agent-handoffs.md +51 -0
  401. package/docs/rules/require-valid-agent-hook-events.md +47 -0
  402. package/docs/rules/require-valid-agent-hook-timeouts.md +49 -0
  403. package/docs/rules/require-valid-agent-hooks.md +49 -0
  404. package/docs/rules/require-valid-agent-invocation-controls.md +45 -0
  405. package/docs/rules/require-valid-agent-mcp-servers.md +45 -0
  406. package/docs/rules/require-valid-agent-model.md +43 -0
  407. package/docs/rules/require-valid-agent-name.md +42 -0
  408. package/docs/rules/require-valid-agent-subagents.md +52 -0
  409. package/docs/rules/require-valid-agent-target.md +44 -0
  410. package/docs/rules/require-valid-agent-tools.md +43 -0
  411. package/docs/rules/require-valid-instructions-apply-to-globs.md +45 -0
  412. package/docs/rules/require-valid-prompt-argument-hint.md +42 -0
  413. package/docs/rules/require-valid-prompt-model.md +45 -0
  414. package/docs/rules/require-valid-prompt-name.md +42 -0
  415. package/docs/rules/require-valid-prompt-tools.md +43 -0
  416. package/docs/rules/require-valid-repository-hook-command-type.md +45 -0
  417. package/docs/rules/require-valid-repository-hook-env.md +43 -0
  418. package/docs/rules/require-valid-repository-hook-events.md +34 -0
  419. package/docs/rules/require-valid-repository-hook-timeouts.md +43 -0
  420. package/docs/rules/require-valid-repository-hook-version.md +34 -0
  421. package/docs/rules/require-valid-skill-directory-name.md +34 -0
  422. package/docs/rules/require-valid-skill-license.md +45 -0
  423. package/docs/rules/require-valid-skill-name.md +43 -0
  424. package/package.json +562 -0
package/package.json ADDED
@@ -0,0 +1,562 @@
1
+ {
2
+ "$schema": "https://www.schemastore.org/package.json",
3
+ "name": "eslint-plugin-copilot",
4
+ "version": "1.0.5",
5
+ "private": false,
6
+ "description": "ESLint rules for GitHub Copilot repository customization files.",
7
+ "keywords": [
8
+ "copilot",
9
+ "eslint",
10
+ "eslint-plugin",
11
+ "eslintplugin",
12
+ "github-copilot",
13
+ "markdown"
14
+ ],
15
+ "homepage": "https://github.com/Nick2bad4u/eslint-plugin-copilot",
16
+ "bugs": {
17
+ "url": "https://github.com/Nick2bad4u/eslint-plugin-copilot/issues",
18
+ "email": "20943337+Nick2bad4u@users.noreply.github.com"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/Nick2bad4u/eslint-plugin-copilot.git"
23
+ },
24
+ "license": "MIT",
25
+ "author": "Nick2bad4u <20943337+Nick2bad4u@users.noreply.github.com> (https://github.com/Nick2bad4u)",
26
+ "contributors": [
27
+ {
28
+ "name": "Nick2bad4u",
29
+ "email": "20943337+Nick2bad4u@users.noreply.github.com",
30
+ "url": "https://github.com/Nick2bad4u"
31
+ }
32
+ ],
33
+ "sideEffects": false,
34
+ "type": "module",
35
+ "exports": {
36
+ ".": {
37
+ "import": {
38
+ "types": "./dist/plugin.d.ts",
39
+ "default": "./dist/plugin.js"
40
+ },
41
+ "require": {
42
+ "types": "./dist/plugin.d.cts",
43
+ "default": "./dist/plugin.cjs"
44
+ },
45
+ "default": "./dist/plugin.js"
46
+ },
47
+ "./package.json": "./package.json"
48
+ },
49
+ "main": "./dist/plugin.cjs",
50
+ "types": "./dist/plugin.d.ts",
51
+ "files": [
52
+ "dist",
53
+ "docs/rules/**",
54
+ "CHANGELOG.md"
55
+ ],
56
+ "workspaces": [
57
+ "docs/docusaurus"
58
+ ],
59
+ "scripts": {
60
+ "build": "tsc -p tsconfig.build.json && npm run build:types:cjs && npm run build:cjs",
61
+ "build:cjs": "esbuild dist/plugin.js --bundle --format=cjs --platform=node --packages=external --sourcemap --outfile=dist/plugin.cjs --footer:js=\"module.exports = module.exports.default;\"",
62
+ "build:clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
63
+ "build:eslint-inspector": "npx -y @eslint/config-inspector@1.4.2 build --outDir \"docs/docusaurus/static/eslint-inspector\" --base \"/eslint-plugin-copilot/eslint-inspector/\"",
64
+ "build:eslint-inspector:local": "npx @eslint/config-inspector",
65
+ "build:stylelint-inspector": "npx -y stylelint-config-inspector@latest build --outDir \"docs/docusaurus/static/stylelint-inspector\" --base \"/eslint-plugin-copilot/stylelint-inspector/\"",
66
+ "build:stylelint-inspector:local": "npx stylelint-config-inspector@latest",
67
+ "build:types:cjs": "node -e \"require('node:fs').copyFileSync('dist/plugin.d.ts','dist/plugin.d.cts')\"",
68
+ "changelog:generate": "git-cliff --config cliff.toml --output CHANGELOG.md",
69
+ "changelog:preview": "git-cliff --config cliff.toml --unreleased",
70
+ "changelog:release-notes": "git-cliff --config cliff.toml --latest --strip all",
71
+ "clean:cache": "rimraf dist coverage cache .cache .vite .turbo",
72
+ "clean:cache:coverage": "rimraf coverage .coverage",
73
+ "clean:cache:dist": "rimraf dist release",
74
+ "clean:cache:eslint": "rimraf .cache/.eslintcache",
75
+ "clean:cache:ncu": "rimraf .cache/.ncu-cache.json",
76
+ "clean:cache:prettier": "rimraf .cache/.prettier-cache .prettier-cache .prettiercache",
77
+ "clean:cache:stryker": "rimraf .stryker-tmp",
78
+ "clean:cache:stylelint": "rimraf .cache/stylelintcache stylelintcache .stylelintcache",
79
+ "clean:cache:temp": "rimraf \".temp/.**\" --glob",
80
+ "clean:cache:typescript": "rimraf .cache/**.tsbuildinfo .cache/builds",
81
+ "clean:cache:vite": "rimraf .cache/vite .cache/vitest .cache/vitest-zero-coverage .cache/vite-zero-coverage",
82
+ "clean:database": "rimraf %appdata%/uptime-watcher/uptime-watcher.sqlite",
83
+ "clean:docs": "rimraf docs/docusaurus/.docusaurus/** docs/docusaurus/build/** docs/docusaurus/site-docs/developer/api/**",
84
+ "clean:docusaurus": "npm run clean:docs && npm run --workspace docs/docusaurus clear",
85
+ "cognitive-complexity": "cognitive-complexity-ts --threshold 10",
86
+ "commit": "git-cz",
87
+ "contrib": "all-contributors",
88
+ "contrib:add": "all-contributors add",
89
+ "contrib:check": "all-contributors check",
90
+ "contrib:compare": "npm run contrib:check",
91
+ "contrib:generate": "all-contributors generate",
92
+ "coverage": "vitest run --coverage",
93
+ "docs:api": "npm run --workspace docs/docusaurus docs:api",
94
+ "docs:api:local": "npm run --workspace docs/docusaurus docs:api:local",
95
+ "docs:build": "npm run --workspace docs/docusaurus build",
96
+ "docs:build:local": "npm run --workspace docs/docusaurus build:local",
97
+ "docs:check-links": "npm run docs:api && node ./scripts/check-doc-links.mjs",
98
+ "docs:devtools:metadata": "node scripts/generate-devtools-workspace-metadata.mjs",
99
+ "docs:serve": "npm run --workspace docs/docusaurus serve",
100
+ "docs:start": "npm run --workspace docs/docusaurus start",
101
+ "docs:start:devtools": "npm run docs:devtools:metadata && npm run docs:api:local && npm run --workspace docs/docusaurus start:devtools",
102
+ "docs:toc": "remark docs --use remark-toc --output",
103
+ "docs:typecheck": "npm run --workspace docs/docusaurus typecheck",
104
+ "docs:typedoc": "npm run --workspace docs/docusaurus docs:api",
105
+ "docs:typedoc:local": "npm run --workspace docs/docusaurus docs:api:local",
106
+ "docs:validate-links": "remark docs --use remark-validate-links --frail",
107
+ "knip": "cross-env NODE_OPTIONS=--max_old_space_size=4096 NODE_NO_WARNINGS=1 npx knip -c knip.config.ts --include-libs --cache --cache-location .cache/knip --tsConfig tsconfig.json",
108
+ "lint": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache",
109
+ "lint:action": "npm run lint:actions",
110
+ "lint:actions": "node scripts/lint-actionlint.mjs",
111
+ "lint:all": "npm run lint && npm run lint:css && npm run lint:prettier && npm run lint:remark && npm run lint:package && npm run lint:secretlint && npm run lint:yaml && npm run lint:actions && npm run lint:circular",
112
+ "lint:all:fix": "npm run lint:fix && npm run lint:css:fix && npm run lint:prettier:fix && npm run lint:remark && npm run lint:package && npm run lint:secretlint && npm run lint:yaml:fix && npm run lint:actions && npm run lint:circular",
113
+ "lint:all:fix:quiet": "npm run lint:fix:quiet && npm run lint:css:fix && npm run lint:prettier:fix && npm run lint:remark && npm run lint:package && npm run lint:secretlint && npm run lint:yaml:fix && npm run lint:actions && npm run lint:circular",
114
+ "lint:circular": "npm run madge:circular",
115
+ "lint:compat:eslint9": "node scripts/eslint9-compat-smoke.mjs",
116
+ "lint:config:build": "npm run build:eslint-inspector",
117
+ "lint:config:inspect": "npx eslint --inspect-config",
118
+ "lint:css": "stylelint --cache --config stylelint.config.mjs --cache-strategy content --cache-location .cache/stylelintcache src/ docs/ --custom-formatter stylelint-formatter-pretty && echo \"Stylelint done!\"",
119
+ "lint:css:fix": "stylelint --cache --config stylelint.config.mjs --cache-strategy content --cache-location .cache/stylelintcache src/ docs/ --custom-formatter stylelint-formatter-pretty --fix && echo \"Stylelint done!\"",
120
+ "lint:depcheck": "depcheck",
121
+ "lint:deps": "depcheck && npm run knip",
122
+ "lint:dupes": "jscpd src/ --config jscpd.json",
123
+ "lint:dupes:all": "jscpd src/ --config jscpd.json --min-lines 3",
124
+ "lint:dupes:skiplocal": "jscpd src/ --skipLocal --config jscpd.json",
125
+ "lint:dupes:skiplocal:all": "jscpd src/ --skipLocal --config jscpd.json --min-lines 3",
126
+ "lint:duplicates": "npm run lint:dupes",
127
+ "lint:exports": "ts-unused-exports tsconfig.json src/plugin.ts --excludePathsFromReport=plugin.ts",
128
+ "lint:fix": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache --fix",
129
+ "lint:fix:quiet": "cross-env ESLINT_PROGRESS=off NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache --fix && echo \"Eslint fix done!\"",
130
+ "lint:grype": "grype . -c .grype.yaml --name eslint-plugin-copilot",
131
+ "lint:knip": "npm run knip",
132
+ "lint:knip:exports": "npm run knip -- --include exports,nsExports,classMembers,types,nsTypes,enumMembers,duplicates",
133
+ "lint:knip:unused:exports": "npm run knip -- --dependencies --exports",
134
+ "lint:leaves": "npm run madge:leaves",
135
+ "lint:metrics": "npm run sloc",
136
+ "lint:node-version-files": "node scripts/sync-node-version-files.mjs --check",
137
+ "lint:orphans": "npm run madge:orphans",
138
+ "lint:package": "npm run lint:node-version-files && npm run lint:package-sort && npm run lint:packagelintrc && echo \"Package.json lint done!\"",
139
+ "lint:package:strict": "npm run lint:node-version-files && npm run lint:package-sort && npm run lint:package-check && npm run lint:packagelintrc && echo \"Package.json lint done!\"",
140
+ "lint:package-check": "publint && attw --pack .",
141
+ "lint:package-check:strict": "publint && attw --pack . --profile strict",
142
+ "lint:package-sort": "sort-package-json \"./package.json\" \"./docs/docusaurus/package.json\"",
143
+ "lint:package-sort-check": "sort-package-json --check \"./package.json\" \"./docs/docusaurus/package.json\"",
144
+ "lint:packagelintrc": "npmPkgJsonLint . --config .npmpackagejsonlintrc.json",
145
+ "lint:prettier": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --check",
146
+ "lint:prettier:fix": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --write",
147
+ "lint:publint": "publint",
148
+ "lint:quiet": "cross-env ESLINT_PROGRESS=nofile NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache && echo \"Eslint done!\"",
149
+ "lint:remark": "remark --rc-path .remarkrc.mjs --silently-ignore --ignore-path .remarkignore --frail \"*.{md,mdx}\" \"docs/**/*.{md,mdx}\" --quiet",
150
+ "lint:remark:fix": "prettier --log-level warn --ignore-path prettierignore.remark --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --no-error-on-unmatched-pattern --write \"*.{md,mdx}\" \"docs/**/*.{md,mdx}\" && npm run remark:fix",
151
+ "lint:secretlint": "secretlint --secretlintrc .secretlintrc.json --secretlintignore .secretlintignore \"./*\" \".vscode/**\" \"assets/**\" \"src/**\" \"electron/**\" \"shared/**\" \"config/**\" \"scripts/**\" \"playwright/**\" \"storybook/**\" \".storybook\" \"tests/**\" \"benchmarks/**\" \".devin/**\" \"public/**\" \".github/**\" \"docs/Architecture/**\" \"docs/*\" \"docs/assets/**\" \"docs/Guides/**\" \"docs/Testing/**\" \"docs/TSDoc/**\" \"docs/docusaurus/src/**\" \"docs/docusaurus/static/**\" \"docs/docusaurus/blog/**\" \"docs/docusaurus/docs/**\" \"docs/docusaurus/docs/*\"",
152
+ "lint:secrets": "detect-secrets scan",
153
+ "lint:unused": "npm run knip -- --include unlisted,unresolved,duplicates",
154
+ "lint:unused-deps": "depcheck --ignores='@types/*,@testing-library/*,@vitest/*'",
155
+ "lint:yaml": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache \"**/*.{yml,yaml}\" && echo \"YAML lint done!\"",
156
+ "lint:yaml:fix": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache --fix \"**/*.{yml,yaml}\" && echo \"YAML lint (fix) done!\"",
157
+ "madge:circular": "madge --circular --no-spinner --ts-config tsconfig.json --extensions ts,tsx,js,jsx,mjs,cjs,cts,mts ./src --exclude \"(^|[\\/])(test|dist|node_modules|cache|.cache|coverage|build|eslint-inspector|temp|.docusaurus)($|[\\/])|\\.css$\"",
158
+ "madge:leaves": "madge --leaves --no-spinner --ts-config tsconfig.json --extensions ts,tsx,js,jsx,mjs,cjs,cts,mts ./src --exclude \"(^|[\\/])(test|dist|node_modules|cache|.cache|coverage|build|eslint-inspector|temp|.docusaurus)($|[\\/])|\\.css$\"",
159
+ "madge:orphans": "madge --orphans --no-spinner --ts-config tsconfig.json --extensions ts,tsx,js,jsx,mjs,cjs,cts,mts ./src --exclude \"(^|[\\/])(test|dist|node_modules|cache|.cache|coverage|build|eslint-inspector|temp|.docusaurus)($|[\\/])|\\.css$\"",
160
+ "open:coverage": "open-cli coverage/index.html",
161
+ "prepublishOnly": "npm run release:check",
162
+ "release:check": "npm run release:verify",
163
+ "release:verify": "npm run build && npm run lint && npm run typecheck && npm run test && npm run sync:readme-rules-table && npm run sync:presets-rules-matrix && npm run docs:check-links && npm pack --dry-run",
164
+ "remark:fix": "remark --rc-path .remarkrc.mjs --silently-ignore --ignore-path .remarkignore --frail --quiet --output -- \"*.{md,mdx}\" \"docs/**/*.{md,mdx}\"",
165
+ "remark:test-config": "remark --rc-path .remarkrc.mjs --silently-ignore --ignore-path .remarkignore --frail \"README.md\"",
166
+ "sync:node-version-files": "node scripts/sync-node-version-files.mjs",
167
+ "sync:peer-eslint-range": "node scripts/sync-peer-eslint-range.mjs",
168
+ "sync:presets-rules-matrix": "node scripts/sync-presets-rules-matrix.mjs",
169
+ "sync:readme-rules-table": "node scripts/sync-readme-rules-table.mjs",
170
+ "sync:readme-rules-table:update": "npm run build && cross-env COPILOT_UPDATE_GENERATED_DOCS=1 vitest run test/readme-rules-table-sync.test.ts -u",
171
+ "sync:readme-rules-table:write": "node scripts/sync-readme-rules-table.mjs --write",
172
+ "pretest": "npm run build",
173
+ "test": "vitest run",
174
+ "test:ci": "cross-env CI=true vitest run --reporter=default",
175
+ "test:coverage": "vitest run --coverage --reporter=default",
176
+ "test:coverage:detailed": "vitest run --coverage --reporter=verbose",
177
+ "test:coverage:minimal": "vitest run --coverage --reporter=dot",
178
+ "test:coverage:open": "npm run test:coverage && npm run open:coverage",
179
+ "test:coverage:quiet": "vitest run --coverage --reporter=default --silent",
180
+ "test:coverage:verbose": "vitest run --coverage --reporter=verbose",
181
+ "test:detailed": "vitest run --reporter=verbose",
182
+ "test:minimal": "vitest run --reporter=dot",
183
+ "test:open": "npm run test:coverage && npm run open:coverage",
184
+ "test:quiet": "vitest run --reporter=default --silent",
185
+ "test:serial": "cross-env MAX_THREADS=1 vitest run",
186
+ "test:stryker": "stryker run --ignoreStatic --concurrency 12 --incrementalFile .cache/stryker/incremental-fast.json",
187
+ "test:stryker:ci": "cross-env CI=true stryker run --ignoreStatic --concurrency 2 --incrementalFile .cache/stryker/incremental-fast-ci.json",
188
+ "test:stryker:full": "stryker run --concurrency 12 --incrementalFile .cache/stryker/incremental-full.json",
189
+ "test:stryker:full:ci": "cross-env CI=true stryker run --concurrency 2 --incrementalFile .cache/stryker/incremental-full-ci.json",
190
+ "test:verbose": "vitest run --reporter=verbose",
191
+ "test:watch": "vitest",
192
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.build.json --noEmit && tsc -p tsconfig.eslint.json --noEmit && tsc -p tsconfig.js.json --noEmit && npm run --workspace docs/docusaurus typecheck",
193
+ "typecheck:all": "npm run typecheck",
194
+ "types:update": "typesync",
195
+ "update-deps": "npx ncu -i --install never && npm run sync:peer-eslint-range && npm install --force",
196
+ "verify:readme-rules-table": "npm run build && npm run sync:readme-rules-table"
197
+ },
198
+ "overrides": {
199
+ "jsonc-eslint-parser": "$jsonc-eslint-parser"
200
+ },
201
+ "dependencies": {
202
+ "@typescript-eslint/parser": "^8.57.1",
203
+ "@typescript-eslint/type-utils": "^8.57.1",
204
+ "@typescript-eslint/utils": "^8.57.1"
205
+ },
206
+ "devDependencies": {
207
+ "@arethetypeswrong/cli": "^0.18.2",
208
+ "@csstools/stylelint-formatter-github": "^2.0.0",
209
+ "@docusaurus/eslint-plugin": "^3.9.2",
210
+ "@double-great/remark-lint-alt-text": "^1.1.1",
211
+ "@double-great/stylelint-a11y": "^3.4.6",
212
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
213
+ "@eslint-react/eslint-plugin": "^3.0.0",
214
+ "@eslint/compat": "^2.0.3",
215
+ "@eslint/config-helpers": "^0.5.3",
216
+ "@eslint/config-inspector": "^1.5.0",
217
+ "@eslint/css": "^1.0.0",
218
+ "@eslint/js": "^10.0.1",
219
+ "@eslint/json": "^1.1.0",
220
+ "@eslint/markdown": "^7.5.1",
221
+ "@html-eslint/eslint-plugin": "^0.58.1",
222
+ "@html-eslint/parser": "^0.58.1",
223
+ "@microsoft/eslint-plugin-sdl": "^1.1.0",
224
+ "@microsoft/tsdoc-config": "^0.18.1",
225
+ "@secretlint/secretlint-rule-anthropic": "^11.3.1",
226
+ "@secretlint/secretlint-rule-aws": "^11.3.1",
227
+ "@secretlint/secretlint-rule-database-connection-string": "^11.3.1",
228
+ "@secretlint/secretlint-rule-gcp": "^11.3.1",
229
+ "@secretlint/secretlint-rule-github": "^11.3.1",
230
+ "@secretlint/secretlint-rule-no-dotenv": "^11.3.1",
231
+ "@secretlint/secretlint-rule-no-homedir": "^11.3.1",
232
+ "@secretlint/secretlint-rule-npm": "^11.3.1",
233
+ "@secretlint/secretlint-rule-openai": "^11.3.1",
234
+ "@secretlint/secretlint-rule-pattern": "^11.3.1",
235
+ "@secretlint/secretlint-rule-preset-recommend": "^11.3.1",
236
+ "@secretlint/secretlint-rule-privatekey": "^11.3.1",
237
+ "@secretlint/secretlint-rule-secp256k1-privatekey": "^11.3.1",
238
+ "@secretlint/types": "^11.3.1",
239
+ "@softonus/prettier-plugin-duplicate-remover": "^1.1.2",
240
+ "@stryker-ignorer/console-all": "^0.3.2",
241
+ "@stryker-mutator/core": "^9.6.0",
242
+ "@stryker-mutator/typescript-checker": "^9.6.0",
243
+ "@stryker-mutator/vitest-runner": "^9.6.0",
244
+ "@stylelint-types/stylelint-order": "^7.0.1",
245
+ "@stylelint-types/stylelint-stylistic": "^5.0.0",
246
+ "@stylistic/eslint-plugin": "^5.10.0",
247
+ "@stylistic/stylelint-plugin": "^5.0.1",
248
+ "@types/eslint-plugin-jsx-a11y": "^6.10.1",
249
+ "@types/eslint-plugin-security": "^3.0.1",
250
+ "@types/htmlhint": "^1.1.5",
251
+ "@types/madge": "^5.0.3",
252
+ "@types/node": "^25.5.0",
253
+ "@types/postcss-clamp": "^4.1.3",
254
+ "@types/postcss-flexbugs-fixes": "^5.0.3",
255
+ "@types/postcss-html": "^1.5.3",
256
+ "@types/postcss-import": "^14.0.3",
257
+ "@types/postcss-inline-svg": "^5.0.4",
258
+ "@types/postcss-normalize": "^9.0.4",
259
+ "@types/postcss-reporter": "^7.0.5",
260
+ "@types/sloc": "^0.2.3",
261
+ "@typescript-eslint/eslint-plugin": "^8.57.1",
262
+ "@typescript-eslint/rule-tester": "^8.57.1",
263
+ "@vitest/coverage-v8": "^4.1.0",
264
+ "@vitest/eslint-plugin": "^1.6.12",
265
+ "@vitest/ui": "^4.1.0",
266
+ "actionlint": "^2.0.6",
267
+ "all-contributors-cli": "^6.26.1",
268
+ "cognitive-complexity-ts": "^0.8.1",
269
+ "commitlint": "^20.5.0",
270
+ "commitlint-config-gitmoji": "^2.3.1",
271
+ "cross-env": "^10.1.0",
272
+ "depcheck": "^1.4.7",
273
+ "detect-secrets": "^1.0.6",
274
+ "eslint": "^10.0.3",
275
+ "eslint-config-flat-gitignore": "^2.2.1",
276
+ "eslint-config-prettier": "^10.1.8",
277
+ "eslint-formatter-unix": "^9.0.1",
278
+ "eslint-import-resolver-typescript": "^4.4.4",
279
+ "eslint-plugin-array-func": "^5.1.1",
280
+ "eslint-plugin-canonical": "^5.1.3",
281
+ "eslint-plugin-case-police": "^2.2.0",
282
+ "eslint-plugin-comment-length": "^2.3.0",
283
+ "eslint-plugin-css-modules": "^2.12.0",
284
+ "eslint-plugin-de-morgan": "^2.1.1",
285
+ "eslint-plugin-depend": "^1.5.0",
286
+ "eslint-plugin-eslint-plugin": "^7.3.2",
287
+ "eslint-plugin-etc": "^2.0.3",
288
+ "eslint-plugin-etc-misc": "^1.0.3",
289
+ "eslint-plugin-file-progress-2": "^3.4.3",
290
+ "eslint-plugin-html": "^8.1.4",
291
+ "eslint-plugin-import-x": "^4.16.2",
292
+ "eslint-plugin-jsdoc": "^62.8.0",
293
+ "eslint-plugin-jsonc": "^3.1.2",
294
+ "eslint-plugin-jsx-a11y": "^6.10.2",
295
+ "eslint-plugin-listeners": "^1.5.1",
296
+ "eslint-plugin-loadable-imports": "^1.0.1",
297
+ "eslint-plugin-math": "^0.13.1",
298
+ "eslint-plugin-module-interop": "^0.3.1",
299
+ "eslint-plugin-n": "^17.24.0",
300
+ "eslint-plugin-nitpick": "^0.12.0",
301
+ "eslint-plugin-no-barrel-files": "^1.2.2",
302
+ "eslint-plugin-no-explicit-type-exports": "^0.12.1",
303
+ "eslint-plugin-no-function-declare-after-return": "^1.1.0",
304
+ "eslint-plugin-no-lookahead-lookbehind-regexp": "^0.4.0",
305
+ "eslint-plugin-no-only-tests": "^3.3.0",
306
+ "eslint-plugin-no-secrets": "^2.3.3",
307
+ "eslint-plugin-no-unsanitized": "^4.1.5",
308
+ "eslint-plugin-no-use-extend-native": "^0.7.2",
309
+ "eslint-plugin-node-dependencies": "^2.2.0",
310
+ "eslint-plugin-package-json": "^0.91.0",
311
+ "eslint-plugin-perfectionist": "^5.7.0",
312
+ "eslint-plugin-prefer-arrow": "^1.2.3",
313
+ "eslint-plugin-prettier": "^5.5.5",
314
+ "eslint-plugin-promise": "^7.2.1",
315
+ "eslint-plugin-redos": "^4.5.0",
316
+ "eslint-plugin-regexp": "^3.1.0",
317
+ "eslint-plugin-require-jsdoc": "^1.0.4",
318
+ "eslint-plugin-security": "^4.0.0",
319
+ "eslint-plugin-sonarjs": "^4.0.2",
320
+ "eslint-plugin-sort-class-members": "^1.21.0",
321
+ "eslint-plugin-testing-library": "^7.16.1",
322
+ "eslint-plugin-toml": "^1.3.1",
323
+ "eslint-plugin-total-functions": "^7.1.0",
324
+ "eslint-plugin-tsdoc": "^0.5.2",
325
+ "eslint-plugin-tsdoc-require-2": "^1.0.5",
326
+ "eslint-plugin-undefined-css-classes": "^0.1.5",
327
+ "eslint-plugin-unicorn": "^63.0.0",
328
+ "eslint-plugin-unused-imports": "^4.4.1",
329
+ "eslint-plugin-write-good-comments": "^0.2.0",
330
+ "eslint-plugin-yml": "^3.3.1",
331
+ "eslint-rule-benchmark": "^0.8.0",
332
+ "fast-check": "^4.6.0",
333
+ "git-cliff": "^2.12.0",
334
+ "gitleaks-secret-scanner": "^2.1.1",
335
+ "globals": "^17.4.0",
336
+ "htmlhint": "^1.9.2",
337
+ "jscpd": "^4.0.8",
338
+ "jsonc-eslint-parser": "^3.1.0",
339
+ "knip": "^5.88.1",
340
+ "leasot": "^14.4.0",
341
+ "madge": "^8.0.0",
342
+ "markdown-link-check": "^3.14.2",
343
+ "npm-check-updates": "^19.6.5",
344
+ "npm-package-json-lint": "^9.1.0",
345
+ "picocolors": "^1.1.1",
346
+ "postcss": "^8.5.8",
347
+ "postcss-assets": "^6.0.0",
348
+ "postcss-clamp": "^4.1.0",
349
+ "postcss-combine-duplicated-selectors": "^10.0.3",
350
+ "postcss-flexbugs-fixes": "^5.0.2",
351
+ "postcss-html": "^1.8.1",
352
+ "postcss-import": "^16.1.1",
353
+ "postcss-inline-svg": "^6.0.0",
354
+ "postcss-logical": "^9.0.0",
355
+ "postcss-normalize": "^13.0.1",
356
+ "postcss-reporter": "^7.1.0",
357
+ "postcss-round-subpixels": "^2.0.0",
358
+ "postcss-scss": "^4.0.9",
359
+ "postcss-sort-media-queries": "^6.3.2",
360
+ "postcss-styled-jsx": "^1.0.1",
361
+ "postcss-styled-syntax": "^0.7.1",
362
+ "postcss-viewport-height-correction": "^1.1.1",
363
+ "prettier": "^3.8.1",
364
+ "prettier-plugin-ini": "^1.3.0",
365
+ "prettier-plugin-interpolated-html-tags": "^2.0.1",
366
+ "prettier-plugin-jsdoc": "^1.8.0",
367
+ "prettier-plugin-jsdoc-type": "^0.2.0",
368
+ "prettier-plugin-merge": "^0.10.0",
369
+ "prettier-plugin-multiline-arrays": "^4.1.5",
370
+ "prettier-plugin-packagejson": "^3.0.2",
371
+ "prettier-plugin-properties": "^0.3.1",
372
+ "prettier-plugin-sort-json": "^4.2.0",
373
+ "prettier-plugin-toml": "^2.0.6",
374
+ "publint": "^0.3.18",
375
+ "recheck-jar": "^4.5.0",
376
+ "rehype-katex": "^7.0.1",
377
+ "remark": "^15.0.1",
378
+ "remark-cli": "^12.0.1",
379
+ "remark-directive": "^4.0.0",
380
+ "remark-frontmatter": "^5.0.0",
381
+ "remark-gfm": "^4.0.1",
382
+ "remark-ignore": "^3.0.0",
383
+ "remark-inline-links": "^7.0.0",
384
+ "remark-lint": "^10.0.1",
385
+ "remark-lint-blockquote-indentation": "^4.0.1",
386
+ "remark-lint-check-toc": "^1.0.0",
387
+ "remark-lint-checkbox-character-style": "^5.0.1",
388
+ "remark-lint-checkbox-content-indent": "^5.0.1",
389
+ "remark-lint-code-block-split-list": "^1.0.0",
390
+ "remark-lint-code-block-style": "^4.0.1",
391
+ "remark-lint-correct-media-syntax": "^1.0.1",
392
+ "remark-lint-definition-case": "^4.0.1",
393
+ "remark-lint-definition-sort": "^1.0.1",
394
+ "remark-lint-definition-spacing": "^4.0.1",
395
+ "remark-lint-directive-attribute-sort": "^1.0.1",
396
+ "remark-lint-directive-collapsed-attribute": "^1.0.1",
397
+ "remark-lint-directive-quote-style": "^1.0.1",
398
+ "remark-lint-directive-shortcut-attribute": "^1.0.1",
399
+ "remark-lint-directive-unique-attribute-name": "^1.0.1",
400
+ "remark-lint-emphasis-marker": "^4.0.1",
401
+ "remark-lint-fenced-code-flag": "^4.2.0",
402
+ "remark-lint-fenced-code-flag-case": "^3.0.0",
403
+ "remark-lint-fenced-code-marker": "^4.0.1",
404
+ "remark-lint-file-extension": "^3.0.1",
405
+ "remark-lint-final-definition": "^4.0.2",
406
+ "remark-lint-final-newline": "^3.0.1",
407
+ "remark-lint-first-heading-level": "^4.0.1",
408
+ "remark-lint-frontmatter-schema": "^3.15.4",
409
+ "remark-lint-hard-break-spaces": "^4.1.1",
410
+ "remark-lint-heading-capitalization": "^1.3.0",
411
+ "remark-lint-heading-increment": "^4.0.1",
412
+ "remark-lint-heading-style": "^4.0.1",
413
+ "remark-lint-heading-whitespace": "^1.0.0",
414
+ "remark-lint-linebreak-style": "^4.0.1",
415
+ "remark-lint-link-title-style": "^4.0.1",
416
+ "remark-lint-list-item-bullet-indent": "^5.0.1",
417
+ "remark-lint-list-item-content-indent": "^4.0.1",
418
+ "remark-lint-list-item-indent": "^4.0.1",
419
+ "remark-lint-list-item-spacing": "^5.0.1",
420
+ "remark-lint-maximum-heading-length": "^4.1.1",
421
+ "remark-lint-maximum-line-length": "^4.1.1",
422
+ "remark-lint-mdx-jsx-attribute-sort": "^1.0.1",
423
+ "remark-lint-mdx-jsx-no-void-children": "^1.0.1",
424
+ "remark-lint-mdx-jsx-quote-style": "^1.0.1",
425
+ "remark-lint-mdx-jsx-self-close": "^1.0.1",
426
+ "remark-lint-mdx-jsx-shorthand-attribute": "^1.0.1",
427
+ "remark-lint-mdx-jsx-unique-attribute-name": "^1.0.1",
428
+ "remark-lint-media-style": "^1.0.1",
429
+ "remark-lint-no-blockquote-without-marker": "^6.0.1",
430
+ "remark-lint-no-consecutive-blank-lines": "^5.0.1",
431
+ "remark-lint-no-dead-urls": "^2.0.1",
432
+ "remark-lint-no-duplicate-defined-urls": "^3.0.1",
433
+ "remark-lint-no-duplicate-definitions": "^4.0.1",
434
+ "remark-lint-no-duplicate-headings": "^4.0.1",
435
+ "remark-lint-no-duplicate-headings-in-section": "^4.0.1",
436
+ "remark-lint-no-emphasis-as-heading": "^4.0.1",
437
+ "remark-lint-no-empty-sections": "^4.0.0",
438
+ "remark-lint-no-empty-url": "^4.0.1",
439
+ "remark-lint-no-file-name-articles": "^3.0.1",
440
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.1",
441
+ "remark-lint-no-file-name-irregular-characters": "^3.0.1",
442
+ "remark-lint-no-file-name-mixed-case": "^3.0.1",
443
+ "remark-lint-no-file-name-outer-dashes": "^3.0.1",
444
+ "remark-lint-no-heading-content-indent": "^5.0.1",
445
+ "remark-lint-no-heading-indent": "^5.0.1",
446
+ "remark-lint-no-heading-like-paragraph": "^4.0.1",
447
+ "remark-lint-no-heading-punctuation": "^4.0.1",
448
+ "remark-lint-no-hidden-table-cell": "^1.0.1",
449
+ "remark-lint-no-html": "^4.0.1",
450
+ "remark-lint-no-literal-urls": "^4.0.1",
451
+ "remark-lint-no-missing-blank-lines": "^4.0.1",
452
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.1",
453
+ "remark-lint-no-paragraph-content-indent": "^5.0.1",
454
+ "remark-lint-no-reference-like-url": "^4.0.1",
455
+ "remark-lint-no-shell-dollars": "^4.0.1",
456
+ "remark-lint-no-shortcut-reference-image": "^4.0.1",
457
+ "remark-lint-no-shortcut-reference-link": "^4.0.1",
458
+ "remark-lint-no-table-indentation": "^5.0.1",
459
+ "remark-lint-no-tabs": "^4.0.1",
460
+ "remark-lint-no-undefined-references": "^5.0.2",
461
+ "remark-lint-no-unneeded-full-reference-image": "^4.0.1",
462
+ "remark-lint-no-unneeded-full-reference-link": "^4.0.1",
463
+ "remark-lint-no-unused-definitions": "^4.0.2",
464
+ "remark-lint-ordered-list-marker-style": "^4.0.1",
465
+ "remark-lint-ordered-list-marker-value": "^4.0.1",
466
+ "remark-lint-rule-style": "^4.0.1",
467
+ "remark-lint-strikethrough-marker": "^3.0.1",
468
+ "remark-lint-strong-marker": "^4.0.1",
469
+ "remark-lint-table-cell-padding": "^5.1.1",
470
+ "remark-lint-table-pipe-alignment": "^4.1.1",
471
+ "remark-lint-table-pipes": "^5.0.1",
472
+ "remark-lint-unordered-list-marker-style": "^4.0.1",
473
+ "remark-lint-write-good": "^1.2.0",
474
+ "remark-math": "^6.0.0",
475
+ "remark-preset-lint-consistent": "^6.0.1",
476
+ "remark-preset-lint-markdown-style-guide": "^6.0.1",
477
+ "remark-preset-lint-recommended": "^7.0.1",
478
+ "remark-preset-prettier": "^2.0.2",
479
+ "remark-toc": "^9.0.0",
480
+ "remark-validate-links": "^13.1.0",
481
+ "remark-wiki-link": "^2.0.1",
482
+ "rimraf": "^6.1.3",
483
+ "secretlint": "^11.3.1",
484
+ "sloc": "^0.3.2",
485
+ "sort-package-json": "^3.6.1",
486
+ "stylelint": "^17.5.0",
487
+ "stylelint-actions-formatters": "^16.3.1",
488
+ "stylelint-checkstyle-formatter": "^0.1.2",
489
+ "stylelint-codeframe-formatter": "^1.2.0",
490
+ "stylelint-config-alphabetical-order": "^2.0.0",
491
+ "stylelint-config-idiomatic-order": "^10.0.0",
492
+ "stylelint-config-inspector": "^2.0.1",
493
+ "stylelint-config-recess-order": "^7.7.0",
494
+ "stylelint-config-recommended": "^18.0.0",
495
+ "stylelint-config-sass-guidelines": "^13.0.0",
496
+ "stylelint-config-standard": "^40.0.0",
497
+ "stylelint-config-standard-scss": "^17.0.0",
498
+ "stylelint-config-tailwindcss": "^1.0.1",
499
+ "stylelint-declaration-block-no-ignored-properties": "^3.0.0",
500
+ "stylelint-declaration-strict-value": "^1.11.1",
501
+ "stylelint-define-config": "^17.2.0",
502
+ "stylelint-find-new-rules": "^6.0.0",
503
+ "stylelint-formatter-gitlab-code-quality-report": "^1.1.0",
504
+ "stylelint-formatter-pretty": "^4.0.1",
505
+ "stylelint-gamut": "^2.0.0",
506
+ "stylelint-group-selectors": "^1.0.10",
507
+ "stylelint-high-performance-animation": "^2.0.0",
508
+ "stylelint-media-use-custom-media": "^4.1.0",
509
+ "stylelint-no-browser-hacks": "^2.0.0",
510
+ "stylelint-no-indistinguishable-colors": "^2.3.1",
511
+ "stylelint-no-restricted-syntax": "^2.2.1",
512
+ "stylelint-no-unresolved-module": "^2.5.2",
513
+ "stylelint-no-unsupported-browser-features": "^8.1.1",
514
+ "stylelint-order": "^8.1.1",
515
+ "stylelint-plugin-defensive-css": "^2.8.0",
516
+ "stylelint-plugin-logical-css": "^2.0.2",
517
+ "stylelint-plugin-use-baseline": "^1.2.7",
518
+ "stylelint-prettier": "^5.0.3",
519
+ "stylelint-react-native": "^2.7.0",
520
+ "stylelint-scales": "^5.0.0",
521
+ "stylelint-selector-bem-pattern": "^4.0.1",
522
+ "stylelint-use-nesting": "^6.0.2",
523
+ "stylelint-value-no-unknown-custom-properties": "^6.1.1",
524
+ "toml-eslint-parser": "^1.0.3",
525
+ "ts-unused-exports": "^11.0.1",
526
+ "typedoc": "^0.28.17",
527
+ "typescript": "^5.9.3",
528
+ "typescript-eslint": "^8.57.1",
529
+ "typesync": "^0.14.3",
530
+ "vfile": "^6.0.3",
531
+ "vite": "^8.0.1",
532
+ "vite-tsconfig-paths": "^6.1.1",
533
+ "vitest": "^4.1.0",
534
+ "yaml-eslint-parser": "^2.0.0",
535
+ "yamllint-js": "^0.2.4"
536
+ },
537
+ "peerDependencies": {
538
+ "eslint": "^9.0.0 || ^10.0.3",
539
+ "typescript": ">=5.0.0"
540
+ },
541
+ "packageManager": "npm@11.12.0",
542
+ "engines": {
543
+ "node": ">=22.0.0"
544
+ },
545
+ "devEngines": {
546
+ "runtime": {
547
+ "name": "node",
548
+ "version": ">=22.0.0",
549
+ "onFail": "error"
550
+ },
551
+ "packageManager": {
552
+ "name": "npm",
553
+ "version": ">=11.0.0",
554
+ "onFail": "error"
555
+ }
556
+ },
557
+ "publishConfig": {
558
+ "provenance": true,
559
+ "registry": "https://registry.npmjs.org/"
560
+ },
561
+ "readme": "README.md"
562
+ }