@thethracian/oxlint-config 0.2.0 → 0.3.0

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 (279) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +125 -19
  3. package/dist/codemod-fix/cli.d.ts +3 -0
  4. package/dist/codemod-fix/cli.d.ts.map +1 -0
  5. package/dist/codemod-fix/cli.js +22 -0
  6. package/dist/codemod-fix/cli.js.map +1 -0
  7. package/dist/codemod-fix/index.d.ts +44 -0
  8. package/dist/codemod-fix/index.d.ts.map +1 -0
  9. package/dist/codemod-fix/index.js +110 -0
  10. package/dist/codemod-fix/index.js.map +1 -0
  11. package/dist/codemods/arrow-body-style.d.ts +7 -0
  12. package/dist/codemods/arrow-body-style.d.ts.map +1 -0
  13. package/dist/codemods/arrow-body-style.js +106 -0
  14. package/dist/codemods/arrow-body-style.js.map +1 -0
  15. package/dist/codemods/comment-format.d.ts +24 -0
  16. package/dist/codemods/comment-format.d.ts.map +1 -0
  17. package/dist/codemods/comment-format.js +100 -0
  18. package/dist/codemods/comment-format.js.map +1 -0
  19. package/dist/codemods/explicit-return-types.d.ts +7 -0
  20. package/dist/codemods/explicit-return-types.d.ts.map +1 -0
  21. package/dist/codemods/explicit-return-types.js +350 -0
  22. package/dist/codemods/explicit-return-types.js.map +1 -0
  23. package/dist/codemods/format-file-header.d.ts +7 -0
  24. package/dist/codemods/format-file-header.d.ts.map +1 -0
  25. package/dist/codemods/format-file-header.js +163 -0
  26. package/dist/codemods/format-file-header.js.map +1 -0
  27. package/dist/codemods/format-jsdoc-comments.d.ts +7 -0
  28. package/dist/codemods/format-jsdoc-comments.d.ts.map +1 -0
  29. package/dist/codemods/format-jsdoc-comments.js +129 -0
  30. package/dist/codemods/format-jsdoc-comments.js.map +1 -0
  31. package/dist/codemods/function-declarations.d.ts +7 -0
  32. package/dist/codemods/function-declarations.d.ts.map +1 -0
  33. package/dist/codemods/function-declarations.js +202 -0
  34. package/dist/codemods/function-declarations.js.map +1 -0
  35. package/dist/codemods/inline-export-lists.d.ts +7 -0
  36. package/dist/codemods/inline-export-lists.d.ts.map +1 -0
  37. package/dist/codemods/inline-export-lists.js +168 -0
  38. package/dist/codemods/inline-export-lists.js.map +1 -0
  39. package/dist/codemods/internal-export-docs.d.ts +7 -0
  40. package/dist/codemods/internal-export-docs.d.ts.map +1 -0
  41. package/dist/codemods/internal-export-docs.js +93 -0
  42. package/dist/codemods/internal-export-docs.js.map +1 -0
  43. package/dist/codemods/no-ternary-branch-initializers.d.ts +14 -0
  44. package/dist/codemods/no-ternary-branch-initializers.d.ts.map +1 -0
  45. package/dist/codemods/no-ternary-branch-initializers.js +240 -0
  46. package/dist/codemods/no-ternary-branch-initializers.js.map +1 -0
  47. package/dist/codemods/no-ternary-variable-initializers.d.ts +14 -0
  48. package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -0
  49. package/dist/codemods/no-ternary-variable-initializers.js +235 -0
  50. package/dist/codemods/no-ternary-variable-initializers.js.map +1 -0
  51. package/dist/codemods/no-ternary.d.ts +7 -0
  52. package/dist/codemods/no-ternary.d.ts.map +1 -0
  53. package/dist/codemods/no-ternary.js +215 -0
  54. package/dist/codemods/no-ternary.js.map +1 -0
  55. package/dist/codemods/rename-acronyms.d.ts +8 -0
  56. package/dist/codemods/rename-acronyms.d.ts.map +1 -0
  57. package/dist/codemods/rename-acronyms.js +193 -0
  58. package/dist/codemods/rename-acronyms.js.map +1 -0
  59. package/dist/codemods/run.d.ts +2 -0
  60. package/dist/codemods/run.d.ts.map +1 -0
  61. package/dist/codemods/run.js +14 -0
  62. package/dist/codemods/run.js.map +1 -0
  63. package/dist/codemods/sort-imports.d.ts +7 -0
  64. package/dist/codemods/sort-imports.d.ts.map +1 -0
  65. package/dist/codemods/sort-imports.js +235 -0
  66. package/dist/codemods/sort-imports.js.map +1 -0
  67. package/dist/index.d.ts +30 -96
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +157 -95
  70. package/dist/index.js.map +1 -1
  71. package/dist/rules/acronym-case.d.ts +7 -3
  72. package/dist/rules/acronym-case.d.ts.map +1 -1
  73. package/dist/rules/acronym-case.js +129 -120
  74. package/dist/rules/acronym-case.js.map +1 -1
  75. package/dist/rules/acronyms-1.d.ts +3 -0
  76. package/dist/rules/acronyms-1.d.ts.map +1 -0
  77. package/dist/rules/acronyms-1.js +407 -0
  78. package/dist/rules/acronyms-1.js.map +1 -0
  79. package/dist/rules/acronyms-2.d.ts +3 -0
  80. package/dist/rules/acronyms-2.d.ts.map +1 -0
  81. package/dist/rules/acronyms-2.js +407 -0
  82. package/dist/rules/acronyms-2.js.map +1 -0
  83. package/dist/rules/acronyms-3.d.ts +3 -0
  84. package/dist/rules/acronyms-3.d.ts.map +1 -0
  85. package/dist/rules/acronyms-3.js +407 -0
  86. package/dist/rules/acronyms-3.js.map +1 -0
  87. package/dist/rules/acronyms-4.d.ts +3 -0
  88. package/dist/rules/acronyms-4.d.ts.map +1 -0
  89. package/dist/rules/acronyms-4.js +377 -0
  90. package/dist/rules/acronyms-4.js.map +1 -0
  91. package/dist/rules/acronyms.d.ts +1 -8
  92. package/dist/rules/acronyms.d.ts.map +1 -1
  93. package/dist/rules/acronyms.js +14 -1578
  94. package/dist/rules/acronyms.js.map +1 -1
  95. package/dist/rules/boolean-prefix.d.ts +11 -2
  96. package/dist/rules/boolean-prefix.d.ts.map +1 -1
  97. package/dist/rules/boolean-prefix.js +95 -59
  98. package/dist/rules/boolean-prefix.js.map +1 -1
  99. package/dist/rules/camel-case-identifiers.d.ts +3 -4
  100. package/dist/rules/camel-case-identifiers.d.ts.map +1 -1
  101. package/dist/rules/camel-case-identifiers.js +59 -40
  102. package/dist/rules/camel-case-identifiers.js.map +1 -1
  103. package/dist/rules/char-class.d.ts +26 -13
  104. package/dist/rules/char-class.d.ts.map +1 -1
  105. package/dist/rules/char-class.js +56 -24
  106. package/dist/rules/char-class.js.map +1 -1
  107. package/dist/rules/diagnostic-guidance.d.ts +91 -0
  108. package/dist/rules/diagnostic-guidance.d.ts.map +1 -0
  109. package/dist/rules/diagnostic-guidance.js +243 -0
  110. package/dist/rules/diagnostic-guidance.js.map +1 -0
  111. package/dist/rules/effect-default-ast.d.ts +89 -0
  112. package/dist/rules/effect-default-ast.d.ts.map +1 -0
  113. package/dist/rules/effect-default-ast.js +208 -0
  114. package/dist/rules/effect-default-ast.js.map +1 -0
  115. package/dist/rules/effect-default-compat-rules.d.ts +76 -0
  116. package/dist/rules/effect-default-compat-rules.d.ts.map +1 -0
  117. package/dist/rules/effect-default-compat-rules.js +270 -0
  118. package/dist/rules/effect-default-compat-rules.js.map +1 -0
  119. package/dist/rules/effect-default-env-rules.d.ts +60 -0
  120. package/dist/rules/effect-default-env-rules.d.ts.map +1 -0
  121. package/dist/rules/effect-default-env-rules.js +259 -0
  122. package/dist/rules/effect-default-env-rules.js.map +1 -0
  123. package/dist/rules/effect-default-fiber-helpers.d.ts +13 -0
  124. package/dist/rules/effect-default-fiber-helpers.d.ts.map +1 -0
  125. package/dist/rules/effect-default-fiber-helpers.js +76 -0
  126. package/dist/rules/effect-default-fiber-helpers.js.map +1 -0
  127. package/dist/rules/effect-default-floating-helpers.d.ts +7 -0
  128. package/dist/rules/effect-default-floating-helpers.d.ts.map +1 -0
  129. package/dist/rules/effect-default-floating-helpers.js +113 -0
  130. package/dist/rules/effect-default-floating-helpers.js.map +1 -0
  131. package/dist/rules/effect-default-helpers.d.ts +8 -32
  132. package/dist/rules/effect-default-helpers.d.ts.map +1 -1
  133. package/dist/rules/effect-default-helpers.js +11 -458
  134. package/dist/rules/effect-default-helpers.js.map +1 -1
  135. package/dist/rules/effect-default-resource-helpers.d.ts +18 -4
  136. package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -1
  137. package/dist/rules/effect-default-resource-helpers.js +30 -13
  138. package/dist/rules/effect-default-resource-helpers.js.map +1 -1
  139. package/dist/rules/effect-default-safety-helpers.d.ts +43 -0
  140. package/dist/rules/effect-default-safety-helpers.d.ts.map +1 -0
  141. package/dist/rules/effect-default-safety-helpers.js +126 -0
  142. package/dist/rules/effect-default-safety-helpers.js.map +1 -0
  143. package/dist/rules/effect-default-scan-helpers.d.ts +43 -0
  144. package/dist/rules/effect-default-scan-helpers.d.ts.map +1 -0
  145. package/dist/rules/effect-default-scan-helpers.js +141 -0
  146. package/dist/rules/effect-default-scan-helpers.js.map +1 -0
  147. package/dist/rules/effect-default-schema-helpers.d.ts +37 -0
  148. package/dist/rules/effect-default-schema-helpers.d.ts.map +1 -0
  149. package/dist/rules/effect-default-schema-helpers.js +104 -0
  150. package/dist/rules/effect-default-schema-helpers.js.map +1 -0
  151. package/dist/rules/effect-default-test-helpers.d.ts +18 -4
  152. package/dist/rules/effect-default-test-helpers.d.ts.map +1 -1
  153. package/dist/rules/effect-default-test-helpers.js +41 -20
  154. package/dist/rules/effect-default-test-helpers.js.map +1 -1
  155. package/dist/rules/effect-default-workflow-helpers.d.ts +91 -0
  156. package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -0
  157. package/dist/rules/effect-default-workflow-helpers.js +247 -0
  158. package/dist/rules/effect-default-workflow-helpers.js.map +1 -0
  159. package/dist/rules/effect-default.d.ts +1 -1
  160. package/dist/rules/effect-default.d.ts.map +1 -1
  161. package/dist/rules/effect-default.js +198 -637
  162. package/dist/rules/effect-default.js.map +1 -1
  163. package/dist/rules/effect-exported-declarations.d.ts +19 -0
  164. package/dist/rules/effect-exported-declarations.d.ts.map +1 -0
  165. package/dist/rules/effect-exported-declarations.js +237 -0
  166. package/dist/rules/effect-exported-declarations.js.map +1 -0
  167. package/dist/rules/effect-path-options.d.ts +49 -11
  168. package/dist/rules/effect-path-options.d.ts.map +1 -1
  169. package/dist/rules/effect-path-options.js +85 -52
  170. package/dist/rules/effect-path-options.js.map +1 -1
  171. package/dist/rules/effect-rule-aliases.d.ts +55 -0
  172. package/dist/rules/effect-rule-aliases.d.ts.map +1 -0
  173. package/dist/rules/effect-rule-aliases.js +278 -0
  174. package/dist/rules/effect-rule-aliases.js.map +1 -0
  175. package/dist/rules/effect-rule-core.d.ts +46 -24
  176. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  177. package/dist/rules/effect-rule-core.js +263 -303
  178. package/dist/rules/effect-rule-core.js.map +1 -1
  179. package/dist/rules/effect-rule-names.d.ts +12 -3
  180. package/dist/rules/effect-rule-names.d.ts.map +1 -1
  181. package/dist/rules/effect-rule-names.js +15 -3
  182. package/dist/rules/effect-rule-names.js.map +1 -1
  183. package/dist/rules/effect-source-comments.d.ts +7 -0
  184. package/dist/rules/effect-source-comments.d.ts.map +1 -0
  185. package/dist/rules/effect-source-comments.js +227 -0
  186. package/dist/rules/effect-source-comments.js.map +1 -0
  187. package/dist/rules/effect-source-helpers.d.ts +4 -9
  188. package/dist/rules/effect-source-helpers.d.ts.map +1 -1
  189. package/dist/rules/effect-source-helpers.js +7 -333
  190. package/dist/rules/effect-source-helpers.js.map +1 -1
  191. package/dist/rules/effect-source-navigation.d.ts +25 -0
  192. package/dist/rules/effect-source-navigation.d.ts.map +1 -0
  193. package/dist/rules/effect-source-navigation.js +244 -0
  194. package/dist/rules/effect-source-navigation.js.map +1 -0
  195. package/dist/rules/effect-source-scan.d.ts +30 -7
  196. package/dist/rules/effect-source-scan.d.ts.map +1 -1
  197. package/dist/rules/effect-source-scan.js +377 -297
  198. package/dist/rules/effect-source-scan.js.map +1 -1
  199. package/dist/rules/effect-strict-ast-specs.d.ts +8 -0
  200. package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -0
  201. package/dist/rules/effect-strict-ast-specs.js +166 -0
  202. package/dist/rules/effect-strict-ast-specs.js.map +1 -0
  203. package/dist/rules/effect-strict-boundary-helpers.d.ts +25 -0
  204. package/dist/rules/effect-strict-boundary-helpers.d.ts.map +1 -0
  205. package/dist/rules/effect-strict-boundary-helpers.js +127 -0
  206. package/dist/rules/effect-strict-boundary-helpers.js.map +1 -0
  207. package/dist/rules/effect-strict-core-specs.d.ts +8 -0
  208. package/dist/rules/effect-strict-core-specs.d.ts.map +1 -0
  209. package/dist/rules/effect-strict-core-specs.js +334 -0
  210. package/dist/rules/effect-strict-core-specs.js.map +1 -0
  211. package/dist/rules/effect-strict-external-helpers.d.ts +25 -0
  212. package/dist/rules/effect-strict-external-helpers.d.ts.map +1 -0
  213. package/dist/rules/effect-strict-external-helpers.js +87 -0
  214. package/dist/rules/effect-strict-external-helpers.js.map +1 -0
  215. package/dist/rules/effect-strict-helpers.d.ts +75 -33
  216. package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
  217. package/dist/rules/effect-strict-helpers.js +124 -246
  218. package/dist/rules/effect-strict-helpers.js.map +1 -1
  219. package/dist/rules/effect-strict-internals.d.ts +198 -0
  220. package/dist/rules/effect-strict-internals.d.ts.map +1 -0
  221. package/dist/rules/effect-strict-internals.js +477 -0
  222. package/dist/rules/effect-strict-internals.js.map +1 -0
  223. package/dist/rules/effect-strict-segment-helpers.d.ts +79 -0
  224. package/dist/rules/effect-strict-segment-helpers.d.ts.map +1 -0
  225. package/dist/rules/effect-strict-segment-helpers.js +308 -0
  226. package/dist/rules/effect-strict-segment-helpers.js.map +1 -0
  227. package/dist/rules/effect-strict.d.ts +1 -1
  228. package/dist/rules/effect-strict.d.ts.map +1 -1
  229. package/dist/rules/effect-strict.js +10 -661
  230. package/dist/rules/effect-strict.js.map +1 -1
  231. package/dist/rules/max-import-depth.d.ts +2 -2
  232. package/dist/rules/max-import-depth.d.ts.map +1 -1
  233. package/dist/rules/max-import-depth.js +52 -17
  234. package/dist/rules/max-import-depth.js.map +1 -1
  235. package/dist/rules/max-line-length.d.ts +9 -2
  236. package/dist/rules/max-line-length.d.ts.map +1 -1
  237. package/dist/rules/max-line-length.js +62 -7
  238. package/dist/rules/max-line-length.js.map +1 -1
  239. package/dist/rules/no-commented-out-code.d.ts +3 -7
  240. package/dist/rules/no-commented-out-code.d.ts.map +1 -1
  241. package/dist/rules/no-commented-out-code.js +157 -102
  242. package/dist/rules/no-commented-out-code.js.map +1 -1
  243. package/dist/rules/pascal-case-types.d.ts +1 -1
  244. package/dist/rules/pascal-case-types.d.ts.map +1 -1
  245. package/dist/rules/pascal-case-types.js +65 -46
  246. package/dist/rules/pascal-case-types.js.map +1 -1
  247. package/dist/rules/plugin-commented-out-code-rule.d.ts +32 -0
  248. package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -0
  249. package/dist/rules/plugin-commented-out-code-rule.js +135 -0
  250. package/dist/rules/plugin-commented-out-code-rule.js.map +1 -0
  251. package/dist/rules/plugin.d.ts +3 -121
  252. package/dist/rules/plugin.d.ts.map +1 -1
  253. package/dist/rules/plugin.js +195 -201
  254. package/dist/rules/plugin.js.map +1 -1
  255. package/dist/rules/private-underscore.d.ts +1 -1
  256. package/dist/rules/private-underscore.d.ts.map +1 -1
  257. package/dist/rules/private-underscore.js +11 -4
  258. package/dist/rules/private-underscore.js.map +1 -1
  259. package/dist/rules/require-file-doc.d.ts +5 -6
  260. package/dist/rules/require-file-doc.d.ts.map +1 -1
  261. package/dist/rules/require-file-doc.js +127 -78
  262. package/dist/rules/require-file-doc.js.map +1 -1
  263. package/dist/rules/require-function-doc-ignored-text.d.ts +7 -0
  264. package/dist/rules/require-function-doc-ignored-text.d.ts.map +1 -0
  265. package/dist/rules/require-function-doc-ignored-text.js +67 -0
  266. package/dist/rules/require-function-doc-ignored-text.js.map +1 -0
  267. package/dist/rules/require-function-doc-local-exports.d.ts +7 -0
  268. package/dist/rules/require-function-doc-local-exports.d.ts.map +1 -0
  269. package/dist/rules/require-function-doc-local-exports.js +114 -0
  270. package/dist/rules/require-function-doc-local-exports.js.map +1 -0
  271. package/dist/rules/require-function-doc.d.ts +3 -18
  272. package/dist/rules/require-function-doc.d.ts.map +1 -1
  273. package/dist/rules/require-function-doc.js +404 -218
  274. package/dist/rules/require-function-doc.js.map +1 -1
  275. package/dist/rules/source-cache.d.ts +19 -0
  276. package/dist/rules/source-cache.d.ts.map +1 -0
  277. package/dist/rules/source-cache.js +63 -0
  278. package/dist/rules/source-cache.js.map +1 -0
  279. package/package.json +15 -10
@@ -1,76 +1,59 @@
1
- import { readFileSync } from 'node:fs';
2
- import isCommentedOutCode from './no-commented-out-code.js';
3
- import isPascalCase, { toPascalCase } from './pascal-case-types.js';
4
- import { isCamelCase, isUpperCase, toCamelCase } from './camel-case-identifiers.js';
5
- import hasBooleanPrefix, { suggestBooleanName } from './boolean-prefix.js';
6
- import hasLeadingUnderscore, { suggestPrivateName } from './private-underscore.js';
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Oxlint JavaScript plugin entry for The Thracian custom rules. */
3
+ /* -------------------------------------------------------------------------- */
4
+ import { acronymDiagnosticMessage, booleanDiagnosticMessage, constantDiagnosticMessage, fileDocDiagnosticMessage, functionDocDiagnosticMessage, importDepthDiagnosticMessage, jsExtensionDiagnosticMessage, lineLengthDiagnosticMessage, localExportListDiagnosticMessage, privateMemberDiagnosticMessage, renameDiagnosticMessage, typeDiagnosticMessage, } from './diagnostic-guidance.js';
7
5
  import findMisCasedAcronyms, { fixAcronymCase } from './acronym-case.js';
8
- import findLongLines from './max-line-length.js';
6
+ import hasLeadingUnderscore, { suggestPrivateName } from './private-underscore.js';
7
+ import { isCamelCase, isUpperCase, toCamelCase } from './camel-case-identifiers.js';
8
+ import isPascalCase, { toPascalCase } from './pascal-case-types.js';
9
9
  import countImportDepth from './max-import-depth.js';
10
- import hasRequiredFileDoc from './require-file-doc.js';
11
- import hasRequiredFunctionDocs from './require-function-doc.js';
12
10
  import effectDefaultRules from './effect-default.js';
13
11
  import effectStrictRules from './effect-strict.js';
14
- function getIdentifierName(node) {
15
- return typeof node?.name === 'string' ? node.name : undefined;
16
- }
17
- const noCommentedOutCodeRule = {
18
- create(context) {
19
- return {
20
- Program(node) {
21
- if (!context.filename) {
22
- return;
23
- }
24
- let source = undefined;
25
- try {
26
- source = readFileSync(context.filename, 'utf-8');
27
- }
28
- catch {
29
- return;
30
- }
31
- if (!source) {
32
- return;
33
- }
34
- const lines = source.split('\n');
35
- const singleLineRe = /\/\/\s*(.+)$/;
36
- for (let idx = 0; idx < lines.length; idx++) {
37
- const match = singleLineRe.exec(lines[idx]);
38
- if (match && isCommentedOutCode(match[1])) {
39
- context.report({
40
- message: 'Remove this commented-out code instead of leaving it dead.',
41
- node,
42
- });
43
- }
44
- }
45
- const multiLineRe = /\/\*\s*([\s\S]*?)\s*\*\//g;
46
- let mm = null;
47
- while ((mm = multiLineRe.exec(source)) !== null) {
48
- const [, body] = mm;
49
- if (isCommentedOutCode(body)) {
50
- context.report({
51
- message: 'Remove this commented-out code instead of leaving it dead.',
52
- node,
53
- });
54
- }
55
- }
56
- },
57
- };
58
- },
12
+ import { eslintCompatPlugin } from '@oxlint/plugins';
13
+ import findLongLines from './max-line-length.js';
14
+ import hasBooleanPrefix from './boolean-prefix.js';
15
+ import hasRequiredFileDoc from './require-file-doc.js';
16
+ import hasRequiredFunctionDocs from './require-function-doc.js';
17
+ import noCommentedOutCodeRule from './plugin-commented-out-code-rule.js';
18
+ import { readCachedSource } from './source-cache.js';
19
+ const getIdentifierName = (node) => {
20
+ if (typeof node?.name === 'string') {
21
+ return node.name;
22
+ }
23
+ return undefined;
24
+ };
25
+ const readSource = (context) => readCachedSource(context);
26
+ const isBooleanVar = (node) => {
27
+ if (node.typeAnnotation &&
28
+ node.typeAnnotation.typeAnnotation &&
29
+ node.typeAnnotation.typeAnnotation.type === 'TSBooleanKeyword') {
30
+ return true;
31
+ }
32
+ if (node.init && node.init.type === 'Literal' && typeof node.init.value === 'boolean') {
33
+ return true;
34
+ }
35
+ return false;
59
36
  };
60
- const pascalCaseTypesRule = {
61
- create(context) {
62
- function reportType(kind, name, node) {
37
+ const withCreateOnce = (rule) => Object.assign(rule, { create: rule.createOnce });
38
+ const pascalCaseTypesRule = withCreateOnce({
39
+ createOnce(context) {
40
+ const reportType = (kind, name, node) => {
63
41
  context.report({
64
- message: `Rename ${kind} from '${name}' to '${toPascalCase(name)}' (PascalCase required for types).`,
42
+ message: typeDiagnosticMessage(kind, name, toPascalCase(name)),
65
43
  node,
66
44
  });
67
- }
45
+ };
68
46
  return {
69
47
  ClassDeclaration(node) {
70
48
  if (node.id && !isPascalCase(node.id.name)) {
71
49
  reportType('class', node.id.name, node);
72
50
  }
73
51
  },
52
+ TSEnumDeclaration(node) {
53
+ if (node.id && !isPascalCase(node.id.name)) {
54
+ reportType('enum', node.id.name, node);
55
+ }
56
+ },
74
57
  TSInterfaceDeclaration(node) {
75
58
  if (node.id && !isPascalCase(node.id.name)) {
76
59
  reportType('interface', node.id.name, node);
@@ -81,60 +64,32 @@ const pascalCaseTypesRule = {
81
64
  reportType('type', node.id.name, node);
82
65
  }
83
66
  },
84
- TSEnumDeclaration(node) {
85
- if (node.id && !isPascalCase(node.id.name)) {
86
- reportType('enum', node.id.name, node);
87
- }
88
- },
89
67
  };
90
68
  },
91
- };
92
- const camelCaseIdentifiersRule = {
93
- create(context) {
69
+ });
70
+ const camelCaseIdentifiersRule = withCreateOnce({
71
+ createOnce(context) {
94
72
  return {
95
- VariableDeclarator(node) {
96
- const name = getIdentifierName(node.id);
97
- if (!name) {
98
- return;
99
- }
100
- const isConst = node.parent && node.parent.kind === 'const';
101
- if (isConst) {
102
- if (!isCamelCase(name) && !isUpperCase(name)) {
103
- context.report({
104
- message: `Rename constant '${name}' to '${toCamelCase(name)}' for camelCase, or '${name.toUpperCase()}' for UPPER_CASE convention.`,
105
- node,
106
- });
107
- }
108
- }
109
- else {
110
- if (!isCamelCase(name)) {
111
- context.report({
112
- message: `Rename variable '${name}' to '${toCamelCase(name)}' (camelCase required).`,
113
- node,
114
- });
115
- }
116
- }
117
- },
118
73
  FunctionDeclaration(node) {
119
74
  if (node.id && !isCamelCase(node.id.name)) {
120
75
  context.report({
121
- message: `Rename function '${node.id.name}' to '${toCamelCase(node.id.name)}' (camelCase required).`,
76
+ message: renameDiagnosticMessage('function', node.id.name, toCamelCase(node.id.name)),
122
77
  node,
123
78
  });
124
79
  }
125
80
  },
126
- Parameter(node) {
127
- if (node.type === 'Identifier' && node.value && !isCamelCase(node.value.name)) {
81
+ MethodDefinition(node) {
82
+ if (node.key && !isCamelCase(node.key.name)) {
128
83
  context.report({
129
- message: `Rename parameter '${node.value.name}' to '${toCamelCase(node.value.name)}' (camelCase required).`,
84
+ message: renameDiagnosticMessage('method', node.key.name, toCamelCase(node.key.name)),
130
85
  node,
131
86
  });
132
87
  }
133
88
  },
134
- MethodDefinition(node) {
135
- if (node.key && !isCamelCase(node.key.name)) {
89
+ Parameter(node) {
90
+ if (node.type === 'Identifier' && node.value && !isCamelCase(node.value.name)) {
136
91
  context.report({
137
- message: `Rename method '${node.key.name}' to '${toCamelCase(node.key.name)}' (camelCase required).`,
92
+ message: renameDiagnosticMessage('parameter', node.value.name, toCamelCase(node.value.name)),
138
93
  node,
139
94
  });
140
95
  }
@@ -142,27 +97,39 @@ const camelCaseIdentifiersRule = {
142
97
  PropertyDefinition(node) {
143
98
  if (node.key && !isCamelCase(node.key.name)) {
144
99
  context.report({
145
- message: `Rename property '${node.key.name}' to '${toCamelCase(node.key.name)}' (camelCase required).`,
100
+ message: renameDiagnosticMessage('property', node.key.name, toCamelCase(node.key.name)),
146
101
  node,
147
102
  });
148
103
  }
149
104
  },
105
+ VariableDeclarator(node) {
106
+ const name = getIdentifierName(node.id);
107
+ if (!name) {
108
+ return;
109
+ }
110
+ const isConst = node.parent && node.parent.kind === 'const';
111
+ if (isConst) {
112
+ if (!isCamelCase(name) && !isUpperCase(name)) {
113
+ context.report({
114
+ message: constantDiagnosticMessage(name, toCamelCase(name)),
115
+ node,
116
+ });
117
+ }
118
+ }
119
+ else {
120
+ if (!isCamelCase(name)) {
121
+ context.report({
122
+ message: renameDiagnosticMessage('variable', name, toCamelCase(name)),
123
+ node,
124
+ });
125
+ }
126
+ }
127
+ },
150
128
  };
151
129
  },
152
- };
153
- const booleanPrefixRule = {
154
- create(context) {
155
- function isBooleanVar(node) {
156
- if (node.typeAnnotation &&
157
- node.typeAnnotation.typeAnnotation &&
158
- node.typeAnnotation.typeAnnotation.type === 'TSBooleanKeyword') {
159
- return true;
160
- }
161
- if (node.init && node.init.type === 'Literal' && typeof node.init.value === 'boolean') {
162
- return true;
163
- }
164
- return false;
165
- }
130
+ });
131
+ const booleanPrefixRule = withCreateOnce({
132
+ createOnce(context) {
166
133
  return {
167
134
  VariableDeclarator(node) {
168
135
  const name = getIdentifierName(node.id);
@@ -171,61 +138,57 @@ const booleanPrefixRule = {
171
138
  }
172
139
  if (isBooleanVar(node) && !hasBooleanPrefix(name)) {
173
140
  context.report({
174
- message: `Rename boolean '${name}' to '${suggestBooleanName(name)}' (is_/has_/should_ prefix required for boolean variables).`,
141
+ message: booleanDiagnosticMessage(name),
175
142
  node,
176
143
  });
177
144
  }
178
145
  },
179
146
  };
180
147
  },
181
- };
182
- const privateUnderscoreRule = {
183
- create(context) {
148
+ });
149
+ const privateUnderscoreRule = withCreateOnce({
150
+ createOnce(context) {
184
151
  return {
185
- PropertyDefinition(node) {
152
+ MethodDefinition(node) {
186
153
  if (node.key && node.accessibility === 'private' && !hasLeadingUnderscore(node.key.name)) {
154
+ const replacement = suggestPrivateName(node.key.name);
187
155
  context.report({
188
- message: `Rename private property '${node.key.name}' to '${suggestPrivateName(node.key.name)}' (leading underscore required for private members).`,
156
+ message: privateMemberDiagnosticMessage('method', node.key.name, replacement),
189
157
  node,
190
158
  });
191
159
  }
192
160
  },
193
- MethodDefinition(node) {
161
+ PropertyDefinition(node) {
194
162
  if (node.key && node.accessibility === 'private' && !hasLeadingUnderscore(node.key.name)) {
163
+ const replacement = suggestPrivateName(node.key.name);
195
164
  context.report({
196
- message: `Rename private method '${node.key.name}' to '${suggestPrivateName(node.key.name)}' (leading underscore required for private members).`,
165
+ message: privateMemberDiagnosticMessage('property', node.key.name, replacement),
197
166
  node,
198
167
  });
199
168
  }
200
169
  },
201
170
  };
202
171
  },
203
- };
204
- const acronymCaseRule = {
205
- create(context) {
206
- function checkAcronyms(name, node) {
172
+ });
173
+ const acronymCaseRule = withCreateOnce({
174
+ createOnce(context) {
175
+ const checkAcronyms = (name, node) => {
207
176
  const violations = findMisCasedAcronyms(name);
208
177
  if (violations.length > 0) {
209
- const listed = violations.map((acr) => `'${acr}'`).join(', ');
178
+ const replacement = fixAcronymCase(name);
210
179
  context.report({
211
- message: `Rename '${name}' to '${fixAcronymCase(name)}' acronym${violations.length > 1 ? 's' : ''} ${listed} must be uppercase.`,
180
+ message: acronymDiagnosticMessage(name, replacement, violations),
212
181
  node,
213
182
  });
214
183
  }
215
- }
184
+ };
216
185
  return {
217
- VariableDeclarator(node) {
218
- const name = getIdentifierName(node.id);
219
- if (name) {
220
- checkAcronyms(name, node);
221
- }
222
- },
223
- FunctionDeclaration(node) {
186
+ ClassDeclaration(node) {
224
187
  if (node.id) {
225
188
  checkAcronyms(node.id.name, node);
226
189
  }
227
190
  },
228
- ClassDeclaration(node) {
191
+ FunctionDeclaration(node) {
229
192
  if (node.id) {
230
193
  checkAcronyms(node.id.name, node);
231
194
  }
@@ -235,37 +198,81 @@ const acronymCaseRule = {
235
198
  checkAcronyms(node.key.name, node);
236
199
  }
237
200
  },
201
+ Parameter(node) {
202
+ if (node.type === 'Identifier' && node.value) {
203
+ checkAcronyms(node.value.name, node);
204
+ }
205
+ },
238
206
  PropertyDefinition(node) {
239
207
  if (node.key) {
240
208
  checkAcronyms(node.key.name, node);
241
209
  }
242
210
  },
243
- Parameter(node) {
244
- if (node.type === 'Identifier' && node.value) {
245
- checkAcronyms(node.value.name, node);
211
+ VariableDeclarator(node) {
212
+ const name = getIdentifierName(node.id);
213
+ if (name) {
214
+ checkAcronyms(name, node);
246
215
  }
247
216
  },
248
217
  };
249
218
  },
219
+ });
220
+ const isJavaScriptSpecifier = (specifier) => typeof specifier === 'string' && specifier.endsWith('.js');
221
+ const reportJavaScriptSpecifier = (context, node, specifier) => {
222
+ context.report({
223
+ message: jsExtensionDiagnosticMessage(specifier),
224
+ node,
225
+ });
250
226
  };
251
- const maxImportDepthRule = {
252
- create(context) {
227
+ const noDynamicJSExtensionImportsRule = withCreateOnce({
228
+ createOnce(context) {
229
+ return {
230
+ CallExpression(node) {
231
+ if (node.callee?.name !== 'require') {
232
+ return;
233
+ }
234
+ const firstArgument = node.arguments?.[0]?.value;
235
+ if (isJavaScriptSpecifier(firstArgument)) {
236
+ reportJavaScriptSpecifier(context, node, firstArgument);
237
+ }
238
+ },
239
+ ImportExpression(node) {
240
+ const source = node.source?.value;
241
+ if (isJavaScriptSpecifier(source)) {
242
+ reportJavaScriptSpecifier(context, node, source);
243
+ }
244
+ },
245
+ };
246
+ },
247
+ });
248
+ const noLocalExportListRule = withCreateOnce({
249
+ createOnce(context) {
250
+ return {
251
+ ExportNamedDeclaration(node) {
252
+ if (node.source || node.declaration || !node.specifiers || node.specifiers.length === 0) {
253
+ return;
254
+ }
255
+ context.report({
256
+ message: localExportListDiagnosticMessage(),
257
+ node,
258
+ });
259
+ },
260
+ };
261
+ },
262
+ });
263
+ const maxImportDepthRule = withCreateOnce({
264
+ createOnce(context) {
253
265
  const MAX_DEPTH = 4;
254
- function checkPath(importPath, node) {
266
+ const checkPath = (importPath, node) => {
255
267
  const depth = countImportDepth(importPath);
256
268
  if (depth > MAX_DEPTH) {
257
269
  context.report({
258
- message: `Import path depth ${depth} exceeds maximum of ${MAX_DEPTH} (found '${importPath}'). Use a flatter directory structure or path alias.`,
270
+ message: importDepthDiagnosticMessage(depth, MAX_DEPTH, importPath),
259
271
  node,
260
272
  });
261
273
  }
262
- }
274
+ };
263
275
  return {
264
- ImportDeclaration(node) {
265
- if (node.source?.value) {
266
- checkPath(node.source.value, node);
267
- }
268
- },
269
276
  CallExpression(node) {
270
277
  if (node.callee?.name === 'require' &&
271
278
  node.arguments &&
@@ -274,109 +281,96 @@ const maxImportDepthRule = {
274
281
  checkPath(node.arguments[0].value, node);
275
282
  }
276
283
  },
284
+ ImportDeclaration(node) {
285
+ if (node.source?.value) {
286
+ checkPath(node.source.value, node);
287
+ }
288
+ },
277
289
  };
278
290
  },
279
- };
280
- const maxLineLengthRule = {
281
- create(context) {
291
+ });
292
+ const maxLineLengthRule = withCreateOnce({
293
+ createOnce(context) {
282
294
  return {
283
295
  Program(node) {
284
- if (!context.filename) {
285
- return;
286
- }
287
- let source = '';
288
- try {
289
- source = readFileSync(context.filename, 'utf-8');
290
- }
291
- catch {
292
- return;
293
- }
296
+ const source = readSource(context);
294
297
  for (const violation of findLongLines(source)) {
295
298
  context.report({
296
- message: `Line ${violation.line} has ${violation.length} characters, exceeding the maximum of 150.`,
299
+ message: lineLengthDiagnosticMessage(violation.line, violation.length),
297
300
  node,
298
301
  });
299
302
  }
300
303
  },
301
304
  };
302
305
  },
303
- };
304
- const requireFileDocRule = {
305
- create(context) {
306
+ });
307
+ const requireFileDocRule = withCreateOnce({
308
+ createOnce(context) {
306
309
  return {
307
310
  Program(node) {
308
- if (!context.filename) {
309
- return;
310
- }
311
- let source = '';
312
- try {
313
- source = readFileSync(context.filename, 'utf-8');
314
- }
315
- catch {
316
- return;
317
- }
311
+ const source = readSource(context);
318
312
  if (source === '') {
319
313
  return;
320
314
  }
321
315
  if (!hasRequiredFileDoc(source)) {
322
316
  context.report({
323
- message: 'File must have a JSDoc header comment (' +
324
- '/** ... */)' +
325
- ' describing its purpose. Use // @internal to opt out for internal modules.',
317
+ message: fileDocDiagnosticMessage(),
326
318
  node,
327
319
  });
328
320
  }
329
321
  },
330
322
  };
331
323
  },
332
- };
333
- const requireFunctionDocRule = {
334
- create(context) {
324
+ });
325
+ const requireFunctionDocRule = withCreateOnce({
326
+ createOnce(context) {
335
327
  return {
336
328
  Program(node) {
337
- if (!context.filename) {
338
- return;
339
- }
340
- let source = '';
341
- try {
342
- source = readFileSync(context.filename, 'utf-8');
343
- }
344
- catch {
345
- return;
346
- }
329
+ const source = readSource(context);
347
330
  if (source === '') {
348
331
  return;
349
332
  }
350
333
  if (!hasRequiredFunctionDocs(source)) {
351
334
  context.report({
352
- message: 'Missing JSDoc on an exported declaration. Every public function, class, type, ' +
353
- 'interface, enum, and const must have a non-empty /** ... */ JSDoc comment with ' +
354
- 'a description of its purpose, parameters, return value, and error conditions.',
335
+ message: functionDocDiagnosticMessage(),
355
336
  node,
356
337
  });
357
338
  }
358
339
  },
359
340
  };
360
341
  },
361
- };
342
+ });
362
343
  const plugin = {
363
344
  meta: {
364
345
  name: 'thethracian',
365
346
  },
366
347
  rules: {
367
- 'no-commented-out-code': noCommentedOutCodeRule,
368
- 'pascal-case-types': pascalCaseTypesRule,
369
- 'camel-case-identifiers': camelCaseIdentifiersRule,
370
- 'boolean-prefix': booleanPrefixRule,
371
- 'private-underscore': privateUnderscoreRule,
372
348
  'acronym-case': acronymCaseRule,
349
+ 'boolean-prefix': booleanPrefixRule,
350
+ 'camel-case-identifiers': camelCaseIdentifiersRule,
373
351
  'max-import-depth': maxImportDepthRule,
374
352
  'max-line-length': maxLineLengthRule,
353
+ 'no-commented-out-code': noCommentedOutCodeRule,
354
+ 'no-dynamic-js-extension-imports': noDynamicJSExtensionImportsRule,
355
+ 'no-local-export-list': noLocalExportListRule,
356
+ 'pascal-case-types': pascalCaseTypesRule,
357
+ 'private-underscore': privateUnderscoreRule,
375
358
  'require-file-doc': requireFileDocRule,
376
359
  'require-function-doc': requireFunctionDocRule,
377
360
  ...effectDefaultRules,
378
361
  ...effectStrictRules,
379
362
  },
380
363
  };
381
- export default plugin;
364
+ const isPlugin = (value) => {
365
+ if (typeof value !== 'object' || value === null) {
366
+ return false;
367
+ }
368
+ const rules = Reflect.get(value, 'rules');
369
+ return typeof rules === 'object' && rules !== null;
370
+ };
371
+ if (!isPlugin(plugin)) {
372
+ throw new TypeError('Invalid The Thracian Oxlint plugin shape.');
373
+ }
374
+ /** @internal Oxlint-compatible JavaScript plugin containing The Thracian custom rules. */
375
+ export default eslintCompatPlugin(plugin);
382
376
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/rules/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/rules/plugin.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@ export default function hasLeadingUnderscore(name: string): boolean;
5
5
  /**
6
6
  * Suggest a private-underscore-prefixed name.
7
7
  */
8
- export declare function suggestPrivateName(name: string): string;
8
+ export declare const suggestPrivateName: (name: string) => string;
9
9
  //# sourceMappingURL=private-underscore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"private-underscore.d.ts","sourceRoot":"","sources":["../../src/rules/private-underscore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD"}
1
+ {"version":3,"file":"private-underscore.d.ts","sourceRoot":"","sources":["../../src/rules/private-underscore.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAKjD,CAAC"}
@@ -1,13 +1,20 @@
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Private member naming helper for underscore-prefixed names. */
3
+ /* -------------------------------------------------------------------------- */
4
+ const CHAR_CODE_UNDERSCORE = 95;
1
5
  /**
2
6
  * Check if a name has a leading underscore (private member convention).
3
7
  */
4
8
  export default function hasLeadingUnderscore(name) {
5
- return name.length > 1 && name.charCodeAt(0) === 95;
9
+ return name.length > 1 && name.charCodeAt(0) === CHAR_CODE_UNDERSCORE;
6
10
  }
7
11
  /**
8
12
  * Suggest a private-underscore-prefixed name.
9
13
  */
10
- export function suggestPrivateName(name) {
11
- return name.length === 0 ? '_field' : `_${name}`;
12
- }
14
+ export const suggestPrivateName = (name) => {
15
+ if (name.length === 0) {
16
+ return '_field';
17
+ }
18
+ return `_${name}`;
19
+ };
13
20
  //# sourceMappingURL=private-underscore.js.map