@nr1e/commons 0.1.0 → 0.1.1-alpha.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 (438) hide show
  1. package/.editorconfig +19 -0
  2. package/.eslintignore +3 -0
  3. package/.eslintrc.json +4 -0
  4. package/.git/COMMIT_EDITMSG +5 -0
  5. package/.git/FETCH_HEAD +1 -0
  6. package/.git/HEAD +1 -0
  7. package/.git/config +18 -0
  8. package/.git/config.worktree +5 -0
  9. package/.git/description +1 -0
  10. package/.git/hooks/applypatch-msg.sample +15 -0
  11. package/.git/hooks/commit-msg.sample +24 -0
  12. package/.git/hooks/fsmonitor-watchman.sample +174 -0
  13. package/.git/hooks/post-update.sample +8 -0
  14. package/.git/hooks/pre-applypatch.sample +14 -0
  15. package/.git/hooks/pre-commit.sample +49 -0
  16. package/.git/hooks/pre-merge-commit.sample +13 -0
  17. package/.git/hooks/pre-push.sample +53 -0
  18. package/.git/hooks/pre-rebase.sample +169 -0
  19. package/.git/hooks/pre-receive.sample +24 -0
  20. package/.git/hooks/prepare-commit-msg.sample +42 -0
  21. package/.git/hooks/push-to-checkout.sample +78 -0
  22. package/.git/hooks/sendemail-validate.sample +77 -0
  23. package/.git/hooks/update.sample +128 -0
  24. package/.git/index +0 -0
  25. package/.git/info/exclude +6 -0
  26. package/.git/logs/HEAD +2 -0
  27. package/.git/logs/refs/heads/develop +2 -0
  28. package/.git/logs/refs/remotes/origin/develop +2 -0
  29. package/.git/objects/07/c0af7cd711cab6a55ad3dc349ac8c70775623c +0 -0
  30. package/.git/objects/09/8fb5a5ff070a1ee3ea11db1a3568af3fea6fa2 +0 -0
  31. package/.git/objects/0d/698432e2c44311c17b845cc63093a898972b95 +0 -0
  32. package/.git/objects/10/ba4a7d64968326293182d571a9c73f5e041fb6 +3 -0
  33. package/.git/objects/12/069a5aa45479564e00749f730582627a276a55 +3 -0
  34. package/.git/objects/14/5ab9cf82c40696a07ab42f117ba199acb2a50b +4 -0
  35. package/.git/objects/17/7b0dc4bf884f8ae0403b4aad053e76baafd632 +2 -0
  36. package/.git/objects/1d/a517ce3527df45a4f28e52ff2c0d9d1c8179f6 +0 -0
  37. package/.git/objects/26/d9a4912af870ce319f5cb5102651d49baac4ab +1 -0
  38. package/.git/objects/27/50076ed23b5211a52ef834f40f183ddecb917a +0 -0
  39. package/.git/objects/2a/96e4bb57fa4bd69c719dca224b17b569e94e82 +2 -0
  40. package/.git/objects/2b/38c26b4ec43b8f5574acb164d2ba64bca8e230 +0 -0
  41. package/.git/objects/2c/61d463bee185f04e7c2bd1d2a15ad1117c589e +0 -0
  42. package/.git/objects/2d/22dbc836cfd75c8d7640ebe5a4fe90bd2c23c6 +0 -0
  43. package/.git/objects/38/0be191ee415827a1217f46626fea4fefba48e5 +0 -0
  44. package/.git/objects/4c/bb28de66d7aaeb4d7737cc2be955adc0c886b5 +0 -0
  45. package/.git/objects/50/150b739272269be2ede552448013eba65323da +0 -0
  46. package/.git/objects/53/2b7b796ffd3223f913a5a5e1e17743ee3591fe +0 -0
  47. package/.git/objects/54/f13d9d62fbedd19b41134ba17153c4328de95b +0 -0
  48. package/.git/objects/5d/4aa0709f62f1bc1fa80251208b570cb3b89d9c +0 -0
  49. package/.git/objects/63/1c43e00d4c34ba914c510f4fe2e6df15b8b06e +0 -0
  50. package/.git/objects/63/9900d13c6182e452e33a3bd638e70a0146c785 +2 -0
  51. package/.git/objects/64/3fa02661c3a1b54205729a75d2fb5f013833af +0 -0
  52. package/.git/objects/6c/59086d862516d2fffa5da2035e5003100fb5c7 +0 -0
  53. package/.git/objects/6c/b74f90a0c799eea1c54a04d8d6a8a9e9691cca +2 -0
  54. package/.git/objects/6d/f39e776d6a89628ce4a005a011911298651635 +0 -0
  55. package/.git/objects/70/0e093acb1c1e55d523507411b7940a01a3bb65 +0 -0
  56. package/.git/objects/74/c82ffe8eb71efecbccfdf67b590949c944dd1a +0 -0
  57. package/.git/objects/76/1413a07839108abb46ef0e4490bd1c1444b4fc +0 -0
  58. package/.git/objects/77/96f8282f2c553ecdde72bc976478eb3a8a948e +0 -0
  59. package/.git/objects/79/ee123c2b23e069e35ed634d687e17f731cc702 +0 -0
  60. package/.git/objects/7d/80af9735f0527db35ecc79ae3c887e445cb3e0 +0 -0
  61. package/.git/objects/85/1d8d26c2a946ccfd5461a2573665c1fb7d71f7 +0 -0
  62. package/.git/objects/85/c5f24b8c55496f82a2680f94a7d3fa32887ea0 +0 -0
  63. package/.git/objects/87/00b3833597b600e6f0ffcfbaf622fd8cfaa9c3 +1 -0
  64. package/.git/objects/87/f31d3df8e7edbf96e45d80126f878b8e0c243f +0 -0
  65. package/.git/objects/8d/d819967bdc8457f04c1b5498bce89380d6552b +7 -0
  66. package/.git/objects/92/608c4e069a4301d466d8d18daecbe7abc9500e +0 -0
  67. package/.git/objects/94/a25f7f4cb416c083d265558da75d457237d671 +0 -0
  68. package/.git/objects/9c/69411050eac81b5dce09314516a30b38c41a20 +3 -0
  69. package/.git/objects/9f/54b5b21769da383f12fb9c7bd364bdb05e13a9 +0 -0
  70. package/.git/objects/a5/886c22eb68b152bb95ec5151504676d8e78ae1 +0 -0
  71. package/.git/objects/a6/582c9510e264f3b46fc3b20597a16923a03523 +0 -0
  72. package/.git/objects/a9/d7db9c0a81b2db47ca92e4e180b30090b27632 +0 -0
  73. package/.git/objects/aa/8ae6a0af7014d738cc551d1ffebeb4e19e6b73 +0 -0
  74. package/.git/objects/ad/c418f9105db9ec488de6831584b82e3929eaef +0 -0
  75. package/.git/objects/ae/14b04cdf65ade0f70577cdea2f85203f4c1bde +0 -0
  76. package/.git/objects/b0/c1c68fbbad6b190434cd2bb0e807796bd56fca +0 -0
  77. package/.git/objects/b1/0f0d0ef3bc5aaf3a91be0b991cb6fe0fcadc40 +0 -0
  78. package/.git/objects/b1/3c15806ef3856ecd8660b0bb36f39830daa3c2 +0 -0
  79. package/.git/objects/b6/3b642cfb4254fc0f7058903abc5b481895c4ef +0 -0
  80. package/.git/objects/b8/a2c461d7ffed9d4ba242c58a52341832b99e0a +0 -0
  81. package/.git/objects/bc/91e0079eb00d56dcde16714748f36a10dbd525 +0 -0
  82. package/.git/objects/c1/beeb895b71b709e48560460199db11b3fc18af +0 -0
  83. package/.git/objects/c5/166c2aeebaeb0a0f7654223c843c50cd4c8953 +0 -0
  84. package/.git/objects/d4/0a2096fc36c1fd9c7a9263c458d5e8a4a5bee7 +0 -0
  85. package/.git/objects/e8/019be9e978a8e2f094e748cbb6ce0c7163adee +0 -0
  86. package/.git/objects/eb/1d744c4e9b47bc902647298424320078e32980 +0 -0
  87. package/.git/objects/ee/15af38be7f3c3862229e59c6b5688f8e0f6099 +0 -0
  88. package/.git/objects/f1/9e0f429f231c34432784f9e33b92ac1d598c17 +0 -0
  89. package/.git/objects/f9/86f2fe82493e85651396b6d5886316d1c890dd +0 -0
  90. package/.git/refs/heads/develop +1 -0
  91. package/.git/refs/remotes/origin/develop +1 -0
  92. package/.git/shallow +1 -0
  93. package/.github/dependabot.yml +10 -0
  94. package/.github/workflows/ci.yml +12 -0
  95. package/.github/workflows/issues.yml +13 -0
  96. package/.github/workflows/publish.yml +20 -0
  97. package/.gitignore +13 -0
  98. package/.idea/.gitignore +10 -0
  99. package/.idea/aws.xml +11 -0
  100. package/.idea/codeStyles/Project.xml +58 -0
  101. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  102. package/.idea/commons-js.iml +14 -0
  103. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  104. package/.idea/misc.xml +6 -0
  105. package/.idea/modules.xml +8 -0
  106. package/.idea/prettier.xml +6 -0
  107. package/.idea/vcs.xml +6 -0
  108. package/.npmrc +1 -0
  109. package/.prettierignore +7 -0
  110. package/.prettierrc.cjs +3 -0
  111. package/LICENSE +26 -0
  112. package/README.md +14 -0
  113. package/coverage/base.css +224 -0
  114. package/coverage/bitsnbytes/b64.mts.html +559 -0
  115. package/coverage/bitsnbytes/index.html +131 -0
  116. package/coverage/bitsnbytes/index.mts.html +88 -0
  117. package/coverage/clover.xml +1003 -0
  118. package/coverage/coverage-final.json +15 -0
  119. package/coverage/errors/errors.mts.html +898 -0
  120. package/coverage/errors/index.html +131 -0
  121. package/coverage/errors/index.mts.html +88 -0
  122. package/coverage/favicon.png +0 -0
  123. package/coverage/http/http-method.mts.html +112 -0
  124. package/coverage/http/http-status-code.mts.html +211 -0
  125. package/coverage/http/index.html +146 -0
  126. package/coverage/http/index.mts.html +91 -0
  127. package/coverage/index.html +191 -0
  128. package/coverage/lang/index.html +146 -0
  129. package/coverage/lang/index.mts.html +91 -0
  130. package/coverage/lang/sleep.mts.html +109 -0
  131. package/coverage/lang/type-functions.mts.html +124 -0
  132. package/coverage/oauth/crypto-functions.mts.html +217 -0
  133. package/coverage/oauth/index.html +131 -0
  134. package/coverage/oauth/index.mts.html +88 -0
  135. package/coverage/prettify.css +1 -0
  136. package/coverage/sort-arrow-sprite.png +0 -0
  137. package/coverage/validator/index.html +131 -0
  138. package/coverage/validator/index.mts.html +88 -0
  139. package/coverage/validator/validators.mts.html +1237 -0
  140. package/dist/package.json +72 -0
  141. package/node_modules/@eslint/eslintrc/LICENSE +19 -0
  142. package/node_modules/@eslint/eslintrc/README.md +115 -0
  143. package/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +1104 -0
  144. package/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +1 -0
  145. package/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +4344 -0
  146. package/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +1 -0
  147. package/node_modules/@eslint/eslintrc/package.json +82 -0
  148. package/node_modules/@eslint/eslintrc/universal.js +9 -0
  149. package/node_modules/@eslint/js/LICENSE +19 -0
  150. package/node_modules/@eslint/js/README.md +57 -0
  151. package/node_modules/@eslint/js/package.json +31 -0
  152. package/node_modules/@eslint/js/src/index.js +17 -0
  153. package/node_modules/@eslint-community/eslint-utils/LICENSE +21 -0
  154. package/node_modules/@eslint-community/eslint-utils/README.md +37 -0
  155. package/node_modules/@eslint-community/eslint-utils/index.js +2068 -0
  156. package/node_modules/@eslint-community/eslint-utils/index.js.map +1 -0
  157. package/node_modules/@eslint-community/eslint-utils/index.mjs +2027 -0
  158. package/node_modules/@eslint-community/eslint-utils/index.mjs.map +1 -0
  159. package/node_modules/@eslint-community/eslint-utils/package.json +73 -0
  160. package/node_modules/@eslint-community/regexpp/LICENSE +21 -0
  161. package/node_modules/@eslint-community/regexpp/README.md +177 -0
  162. package/node_modules/@eslint-community/regexpp/index.d.ts +1065 -0
  163. package/node_modules/@eslint-community/regexpp/index.js +2747 -0
  164. package/node_modules/@eslint-community/regexpp/index.js.map +1 -0
  165. package/node_modules/@eslint-community/regexpp/index.mjs +2737 -0
  166. package/node_modules/@eslint-community/regexpp/index.mjs.map +1 -0
  167. package/node_modules/@eslint-community/regexpp/package.json +93 -0
  168. package/node_modules/@types/node/LICENSE +21 -0
  169. package/node_modules/@types/node/README.md +15 -0
  170. package/node_modules/@types/node/package.json +217 -0
  171. package/node_modules/@typescript-eslint/eslint-plugin/LICENSE +21 -0
  172. package/node_modules/@typescript-eslint/eslint-plugin/README.md +10 -0
  173. package/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +23 -0
  174. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/README.md +23 -0
  175. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/TEMPLATE.md +26 -0
  176. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/adjacent-overload-signatures.md +93 -0
  177. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/array-type.md +103 -0
  178. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/await-thenable.md +40 -0
  179. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md +148 -0
  180. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-tslint-comment.md +39 -0
  181. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md +183 -0
  182. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/block-spacing.md +12 -0
  183. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/brace-style.md +12 -0
  184. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/camelcase.md +10 -0
  185. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-literal-property-style.md +114 -0
  186. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md +22 -0
  187. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-spacing.md +12 -0
  188. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-generic-constructors.md +73 -0
  189. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-indexed-object-style.md +80 -0
  190. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md +108 -0
  191. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md +82 -0
  192. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-exports.md +100 -0
  193. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md +105 -0
  194. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.md +48 -0
  195. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md +77 -0
  196. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md +319 -0
  197. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md +331 -0
  198. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md +250 -0
  199. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/func-call-spacing.md +12 -0
  200. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/indent.md +20 -0
  201. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md +12 -0
  202. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/key-spacing.md +12 -0
  203. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md +12 -0
  204. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-around-comment.md +37 -0
  205. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md +63 -0
  206. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-delimiter-style.md +161 -0
  207. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.md +1360 -0
  208. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/method-signature-style.md +110 -0
  209. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md +706 -0
  210. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-array-constructor.md +35 -0
  211. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-base-to-string.md +88 -0
  212. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md +56 -0
  213. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-void-expression.md +116 -0
  214. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-dupe-class-members.md +12 -0
  215. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-duplicate-enum-values.md +50 -0
  216. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-duplicate-imports.md +12 -0
  217. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-duplicate-type-constituents.md +61 -0
  218. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-dynamic-delete.md +53 -0
  219. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md +88 -0
  220. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-interface.md +70 -0
  221. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-explicit-any.md +174 -0
  222. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-non-null-assertion.md +52 -0
  223. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-parens.md +12 -0
  224. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-semi.md +12 -0
  225. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.md +294 -0
  226. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md +106 -0
  227. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-for-in-array.md +56 -0
  228. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implicit-any-catch.md +73 -0
  229. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md +101 -0
  230. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-import-type-side-effects.md +75 -0
  231. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-inferrable-types.md +103 -0
  232. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md +12 -0
  233. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md +113 -0
  234. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md +12 -0
  235. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loss-of-precision.md +12 -0
  236. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md +131 -0
  237. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-meaningless-void-operator.md +47 -0
  238. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-misused-new.md +46 -0
  239. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-misused-promises.md +245 -0
  240. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-mixed-enums.md +88 -0
  241. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md +129 -0
  242. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-asserted-nullish-coalescing.md +49 -0
  243. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md +35 -0
  244. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-assertion.md +42 -0
  245. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-parameter-properties.md +406 -0
  246. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md +73 -0
  247. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redundant-type-constituents.md +78 -0
  248. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-require-imports.md +37 -0
  249. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-restricted-imports.md +63 -0
  250. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md +101 -0
  251. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md +38 -0
  252. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md +111 -0
  253. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-type-alias.md +602 -0
  254. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md +133 -0
  255. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-condition.md +103 -0
  256. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-qualifier.md +51 -0
  257. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-arguments.md +73 -0
  258. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md +77 -0
  259. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-constraint.md +55 -0
  260. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-argument.md +83 -0
  261. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-assignment.md +86 -0
  262. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-call.md +58 -0
  263. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-declaration-merging.md +54 -0
  264. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-enum-comparison.md +75 -0
  265. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md +64 -0
  266. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md +103 -0
  267. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-expressions.md +12 -0
  268. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-vars.md +12 -0
  269. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-use-before-define.md +97 -0
  270. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-constructor.md +21 -0
  271. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-empty-export.md +43 -0
  272. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-var-requires.md +37 -0
  273. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.md +41 -0
  274. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/object-curly-spacing.md +12 -0
  275. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/padding-line-between-statements.md +35 -0
  276. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/parameter-properties.md +485 -0
  277. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-as-const.md +44 -0
  278. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-enum-initializers.md +62 -0
  279. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-for-of.md +46 -0
  280. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md +92 -0
  281. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-includes.md +77 -0
  282. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md +101 -0
  283. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-namespace-keyword.md +47 -0
  284. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-nullish-coalescing.md +164 -0
  285. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.md +71 -0
  286. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md +268 -0
  287. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly.md +87 -0
  288. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md +58 -0
  289. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-regexp-exec.md +46 -0
  290. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-return-this-type.md +87 -0
  291. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-string-starts-ends-with.md +57 -0
  292. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md +69 -0
  293. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/promise-function-async.md +59 -0
  294. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/quotes.md +12 -0
  295. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-array-sort-compare.md +78 -0
  296. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-await.md +24 -0
  297. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-plus-operands.md +208 -0
  298. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md +117 -0
  299. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md +216 -0
  300. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/semi.md +16 -0
  301. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-constituents.md +101 -0
  302. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-union-intersection-members.md +106 -0
  303. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-blocks.md +42 -0
  304. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-function-paren.md +12 -0
  305. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-infix-ops.md +16 -0
  306. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md +183 -0
  307. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/switch-exhaustiveness-check.md +106 -0
  308. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/triple-slash-reference.md +61 -0
  309. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.md +303 -0
  310. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md +320 -0
  311. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unbound-method.md +103 -0
  312. package/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unified-signatures.md +70 -0
  313. package/node_modules/@typescript-eslint/eslint-plugin/index.d.ts +4 -0
  314. package/node_modules/@typescript-eslint/eslint-plugin/package.json +87 -0
  315. package/node_modules/@typescript-eslint/parser/LICENSE +22 -0
  316. package/node_modules/@typescript-eslint/parser/README.md +10 -0
  317. package/node_modules/@typescript-eslint/parser/dist/index.js +17 -0
  318. package/node_modules/@typescript-eslint/parser/package.json +75 -0
  319. package/node_modules/@typescript-eslint/scope-manager/LICENSE +21 -0
  320. package/node_modules/@typescript-eslint/scope-manager/README.md +8 -0
  321. package/node_modules/@typescript-eslint/scope-manager/dist/index.js +31 -0
  322. package/node_modules/@typescript-eslint/scope-manager/package.json +67 -0
  323. package/node_modules/@typescript-eslint/type-utils/LICENSE +21 -0
  324. package/node_modules/@typescript-eslint/type-utils/README.md +12 -0
  325. package/node_modules/@typescript-eslint/type-utils/dist/index.js +36 -0
  326. package/node_modules/@typescript-eslint/type-utils/package.json +71 -0
  327. package/node_modules/@typescript-eslint/types/LICENSE +21 -0
  328. package/node_modules/@typescript-eslint/types/README.md +12 -0
  329. package/node_modules/@typescript-eslint/types/dist/index.js +24 -0
  330. package/node_modules/@typescript-eslint/types/package.json +84 -0
  331. package/node_modules/@typescript-eslint/typescript-estree/LICENSE +26 -0
  332. package/node_modules/@typescript-eslint/typescript-estree/README.md +10 -0
  333. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +38 -0
  334. package/node_modules/@typescript-eslint/typescript-estree/package.json +85 -0
  335. package/node_modules/@typescript-eslint/utils/LICENSE +21 -0
  336. package/node_modules/@typescript-eslint/utils/README.md +10 -0
  337. package/node_modules/@typescript-eslint/utils/dist/index.js +41 -0
  338. package/node_modules/@typescript-eslint/utils/package.json +70 -0
  339. package/node_modules/@typescript-eslint/visitor-keys/LICENSE +21 -0
  340. package/node_modules/@typescript-eslint/visitor-keys/README.md +10 -0
  341. package/node_modules/@typescript-eslint/visitor-keys/dist/index.js +8 -0
  342. package/node_modules/@typescript-eslint/visitor-keys/package.json +60 -0
  343. package/node_modules/@vitest/coverage-v8/LICENSE +21 -0
  344. package/node_modules/@vitest/coverage-v8/dist/index.js +54 -0
  345. package/node_modules/@vitest/coverage-v8/package.json +72 -0
  346. package/package.json +6 -6
  347. package/pnpm-lock.yaml +3277 -0
  348. package/src/bitsnbytes/b64.mts +158 -0
  349. package/src/bitsnbytes/b64.test.mts +78 -0
  350. package/src/bitsnbytes/index.mts +1 -0
  351. package/src/errors/errors.mts +271 -0
  352. package/src/errors/errors.test.mts +74 -0
  353. package/src/errors/index.mts +1 -0
  354. package/src/http/http-method.mts +9 -0
  355. package/src/http/http-status-code.mts +42 -0
  356. package/src/http/index.mts +2 -0
  357. package/src/lang/index.mts +2 -0
  358. package/src/lang/sleep.mts +8 -0
  359. package/src/lang/type-functions.mts +13 -0
  360. package/src/oauth/crypto-functions.mts +44 -0
  361. package/src/oauth/crypto-functions.test.mts +48 -0
  362. package/src/oauth/index.mts +1 -0
  363. package/src/validator/index.mts +1 -0
  364. package/src/validator/validators.mts +384 -0
  365. package/src/validator/validators.test.mts +245 -0
  366. package/tsconfig.json +18 -0
  367. /package/{bitsnbytes → dist/bitsnbytes}/b64.d.mts +0 -0
  368. /package/{bitsnbytes → dist/bitsnbytes}/b64.d.mts.map +0 -0
  369. /package/{bitsnbytes → dist/bitsnbytes}/b64.mjs +0 -0
  370. /package/{bitsnbytes → dist/bitsnbytes}/b64.mjs.map +0 -0
  371. /package/{bitsnbytes → dist/bitsnbytes}/b64.test.d.mts +0 -0
  372. /package/{bitsnbytes → dist/bitsnbytes}/b64.test.d.mts.map +0 -0
  373. /package/{bitsnbytes → dist/bitsnbytes}/b64.test.mjs +0 -0
  374. /package/{bitsnbytes → dist/bitsnbytes}/b64.test.mjs.map +0 -0
  375. /package/{bitsnbytes → dist/bitsnbytes}/index.d.mts +0 -0
  376. /package/{bitsnbytes → dist/bitsnbytes}/index.d.mts.map +0 -0
  377. /package/{bitsnbytes → dist/bitsnbytes}/index.mjs +0 -0
  378. /package/{bitsnbytes → dist/bitsnbytes}/index.mjs.map +0 -0
  379. /package/{errors → dist/errors}/errors.d.mts +0 -0
  380. /package/{errors → dist/errors}/errors.d.mts.map +0 -0
  381. /package/{errors → dist/errors}/errors.mjs +0 -0
  382. /package/{errors → dist/errors}/errors.mjs.map +0 -0
  383. /package/{errors → dist/errors}/errors.test.d.mts +0 -0
  384. /package/{errors → dist/errors}/errors.test.d.mts.map +0 -0
  385. /package/{errors → dist/errors}/errors.test.mjs +0 -0
  386. /package/{errors → dist/errors}/errors.test.mjs.map +0 -0
  387. /package/{errors → dist/errors}/index.d.mts +0 -0
  388. /package/{errors → dist/errors}/index.d.mts.map +0 -0
  389. /package/{errors → dist/errors}/index.mjs +0 -0
  390. /package/{errors → dist/errors}/index.mjs.map +0 -0
  391. /package/{http → dist/http}/http-method.d.mts +0 -0
  392. /package/{http → dist/http}/http-method.d.mts.map +0 -0
  393. /package/{http → dist/http}/http-method.mjs +0 -0
  394. /package/{http → dist/http}/http-method.mjs.map +0 -0
  395. /package/{http → dist/http}/http-status-code.d.mts +0 -0
  396. /package/{http → dist/http}/http-status-code.d.mts.map +0 -0
  397. /package/{http → dist/http}/http-status-code.mjs +0 -0
  398. /package/{http → dist/http}/http-status-code.mjs.map +0 -0
  399. /package/{http → dist/http}/index.d.mts +0 -0
  400. /package/{http → dist/http}/index.d.mts.map +0 -0
  401. /package/{http → dist/http}/index.mjs +0 -0
  402. /package/{http → dist/http}/index.mjs.map +0 -0
  403. /package/{lang → dist/lang}/index.d.mts +0 -0
  404. /package/{lang → dist/lang}/index.d.mts.map +0 -0
  405. /package/{lang → dist/lang}/index.mjs +0 -0
  406. /package/{lang → dist/lang}/index.mjs.map +0 -0
  407. /package/{lang → dist/lang}/sleep.d.mts +0 -0
  408. /package/{lang → dist/lang}/sleep.d.mts.map +0 -0
  409. /package/{lang → dist/lang}/sleep.mjs +0 -0
  410. /package/{lang → dist/lang}/sleep.mjs.map +0 -0
  411. /package/{lang → dist/lang}/type-functions.d.mts +0 -0
  412. /package/{lang → dist/lang}/type-functions.d.mts.map +0 -0
  413. /package/{lang → dist/lang}/type-functions.mjs +0 -0
  414. /package/{lang → dist/lang}/type-functions.mjs.map +0 -0
  415. /package/{oauth → dist/oauth}/crypto-functions.d.mts +0 -0
  416. /package/{oauth → dist/oauth}/crypto-functions.d.mts.map +0 -0
  417. /package/{oauth → dist/oauth}/crypto-functions.mjs +0 -0
  418. /package/{oauth → dist/oauth}/crypto-functions.mjs.map +0 -0
  419. /package/{oauth → dist/oauth}/crypto-functions.test.d.mts +0 -0
  420. /package/{oauth → dist/oauth}/crypto-functions.test.d.mts.map +0 -0
  421. /package/{oauth → dist/oauth}/crypto-functions.test.mjs +0 -0
  422. /package/{oauth → dist/oauth}/crypto-functions.test.mjs.map +0 -0
  423. /package/{oauth → dist/oauth}/index.d.mts +0 -0
  424. /package/{oauth → dist/oauth}/index.d.mts.map +0 -0
  425. /package/{oauth → dist/oauth}/index.mjs +0 -0
  426. /package/{oauth → dist/oauth}/index.mjs.map +0 -0
  427. /package/{validator → dist/validator}/index.d.mts +0 -0
  428. /package/{validator → dist/validator}/index.d.mts.map +0 -0
  429. /package/{validator → dist/validator}/index.mjs +0 -0
  430. /package/{validator → dist/validator}/index.mjs.map +0 -0
  431. /package/{validator → dist/validator}/validators.d.mts +0 -0
  432. /package/{validator → dist/validator}/validators.d.mts.map +0 -0
  433. /package/{validator → dist/validator}/validators.mjs +0 -0
  434. /package/{validator → dist/validator}/validators.mjs.map +0 -0
  435. /package/{validator → dist/validator}/validators.test.d.mts +0 -0
  436. /package/{validator → dist/validator}/validators.test.d.mts.map +0 -0
  437. /package/{validator → dist/validator}/validators.test.mjs +0 -0
  438. /package/{validator → dist/validator}/validators.test.mjs.map +0 -0
@@ -0,0 +1,331 @@
1
+ ---
2
+ description: 'Require explicit accessibility modifiers on class properties and methods.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/explicit-member-accessibility** for documentation.
8
+
9
+ TypeScript allows placing explicit `public`, `protected`, and `private` accessibility modifiers in front of class members.
10
+ The modifiers exist solely in the type system and just server to describe who is allowed to access those members.
11
+
12
+ Leaving off accessibility modifiers makes for less code to read and write.
13
+ Members are `public` by default.
14
+
15
+ However, adding in explicit accessibility modifiers can be helpful in codebases with many classes for enforcing proper privacy of members.
16
+ Some developers also find it preferable for code readability to keep member publicity explicit.
17
+
18
+ ## Examples
19
+
20
+ This rule aims to make code more readable and explicit about who can use
21
+ which properties.
22
+
23
+ ## Options
24
+
25
+ ### Configuring in a mixed JS/TS codebase
26
+
27
+ If you are working on a codebase within which you lint non-TypeScript code (i.e. `.js`/`.mjs`/`.cjs`/`.jsx`), you should ensure that you should use [ESLint `overrides`](https://eslint.org/docs/user-guide/configuring#disabling-rules-only-for-a-group-of-files) to only enable the rule on `.ts`/`.mts`/`.cts`/`.tsx` files. If you don't, then you will get unfixable lint errors reported within `.js`/`.mjs`/`.cjs`/`.jsx` files.
28
+
29
+ ```jsonc
30
+ {
31
+ "rules": {
32
+ // disable the rule for all files
33
+ "@typescript-eslint/explicit-member-accessibility": "off"
34
+ },
35
+ "overrides": [
36
+ {
37
+ // enable the rule specifically for TypeScript files
38
+ "files": ["*.ts", "*.mts", "*.cts", "*.tsx"],
39
+ "rules": {
40
+ "@typescript-eslint/explicit-member-accessibility": "error"
41
+ }
42
+ }
43
+ ]
44
+ }
45
+ ```
46
+
47
+ ### `accessibility`
48
+
49
+ This rule in its default state requires no configuration and will enforce that every class member has an accessibility modifier. If you would like to allow for some implicit public members then you have the following options:
50
+
51
+ ```ts
52
+ {
53
+ accessibility: 'explicit',
54
+ overrides: {
55
+ accessors: 'explicit',
56
+ constructors: 'no-public',
57
+ methods: 'explicit',
58
+ properties: 'off',
59
+ parameterProperties: 'explicit'
60
+ }
61
+ }
62
+ ```
63
+
64
+ Note the above is an example of a possible configuration you could use - it is not the default configuration.
65
+
66
+ The following patterns are considered incorrect code if no options are provided:
67
+
68
+ ```ts
69
+ class Animal {
70
+ constructor(name) {
71
+ // No accessibility modifier
72
+ this.animalName = name;
73
+ }
74
+ animalName: string; // No accessibility modifier
75
+ get name(): string {
76
+ // No accessibility modifier
77
+ return this.animalName;
78
+ }
79
+ set name(value: string) {
80
+ // No accessibility modifier
81
+ this.animalName = value;
82
+ }
83
+ walk() {
84
+ // method
85
+ }
86
+ }
87
+ ```
88
+
89
+ The following patterns are considered correct with the default options `{ accessibility: 'explicit' }`:
90
+
91
+ ```ts
92
+ class Animal {
93
+ public constructor(public breed, name) {
94
+ // Parameter property and constructor
95
+ this.animalName = name;
96
+ }
97
+ private animalName: string; // Property
98
+ get name(): string {
99
+ // get accessor
100
+ return this.animalName;
101
+ }
102
+ set name(value: string) {
103
+ // set accessor
104
+ this.animalName = value;
105
+ }
106
+ public walk() {
107
+ // method
108
+ }
109
+ }
110
+ ```
111
+
112
+ The following patterns are considered incorrect with the accessibility set to **no-public** `[{ accessibility: 'no-public' }]`:
113
+
114
+ ```ts
115
+ class Animal {
116
+ public constructor(public breed, name) {
117
+ // Parameter property and constructor
118
+ this.animalName = name;
119
+ }
120
+ public animalName: string; // Property
121
+ public get name(): string {
122
+ // get accessor
123
+ return this.animalName;
124
+ }
125
+ public set name(value: string) {
126
+ // set accessor
127
+ this.animalName = value;
128
+ }
129
+ public walk() {
130
+ // method
131
+ }
132
+ }
133
+ ```
134
+
135
+ The following patterns are considered correct with the accessibility set to **no-public** `[{ accessibility: 'no-public' }]`:
136
+
137
+ ```ts
138
+ class Animal {
139
+ constructor(protected breed, name) {
140
+ // Parameter property and constructor
141
+ this.name = name;
142
+ }
143
+ private animalName: string; // Property
144
+ get name(): string {
145
+ // get accessor
146
+ return this.animalName;
147
+ }
148
+ private set name(value: string) {
149
+ // set accessor
150
+ this.animalName = value;
151
+ }
152
+ protected walk() {
153
+ // method
154
+ }
155
+ }
156
+ ```
157
+
158
+ ### Overrides
159
+
160
+ There are three ways in which an override can be used.
161
+
162
+ - To disallow the use of public on a given member.
163
+ - To enforce explicit member accessibility when the root has allowed implicit public accessibility
164
+ - To disable any checks on given member type
165
+
166
+ #### Disallow the use of public on a given member
167
+
168
+ e.g. `[ { overrides: { constructors: 'no-public' } } ]`
169
+
170
+ The following patterns are considered incorrect with the example override
171
+
172
+ ```ts
173
+ class Animal {
174
+ public constructor(protected animalName) {}
175
+ public get name() {
176
+ return this.animalName;
177
+ }
178
+ }
179
+ ```
180
+
181
+ The following patterns are considered correct with the example override
182
+
183
+ ```ts
184
+ class Animal {
185
+ constructor(protected animalName) {}
186
+ public get name() {
187
+ return this.animalName;
188
+ }
189
+ }
190
+ ```
191
+
192
+ #### Require explicit accessibility for a given member
193
+
194
+ e.g. `[ { accessibility: 'no-public', overrides: { properties: 'explicit' } } ]`
195
+
196
+ The following patterns are considered incorrect with the example override
197
+
198
+ ```ts
199
+ class Animal {
200
+ constructor(protected animalName) {}
201
+ get name() {
202
+ return this.animalName;
203
+ }
204
+ protected set name(value: string) {
205
+ this.animalName = value;
206
+ }
207
+ legs: number;
208
+ private hasFleas: boolean;
209
+ }
210
+ ```
211
+
212
+ The following patterns are considered correct with the example override
213
+
214
+ ```ts
215
+ class Animal {
216
+ constructor(protected animalName) {}
217
+ get name() {
218
+ return this.animalName;
219
+ }
220
+ protected set name(value: string) {
221
+ this.animalName = value;
222
+ }
223
+ public legs: number;
224
+ private hasFleas: boolean;
225
+ }
226
+ ```
227
+
228
+ e.g. `[ { accessibility: 'off', overrides: { parameterProperties: 'explicit' } } ]`
229
+
230
+ The following code is considered incorrect with the example override
231
+
232
+ ```ts
233
+ class Animal {
234
+ constructor(readonly animalName: string) {}
235
+ }
236
+ ```
237
+
238
+ The following code patterns are considered correct with the example override
239
+
240
+ ```ts
241
+ class Animal {
242
+ constructor(public readonly animalName: string) {}
243
+ }
244
+
245
+ class Animal {
246
+ constructor(public animalName: string) {}
247
+ }
248
+
249
+ class Animal {
250
+ constructor(animalName: string) {}
251
+ }
252
+ ```
253
+
254
+ e.g. `[ { accessibility: 'off', overrides: { parameterProperties: 'no-public' } } ]`
255
+
256
+ The following code is considered incorrect with the example override
257
+
258
+ ```ts
259
+ class Animal {
260
+ constructor(public readonly animalName: string) {}
261
+ }
262
+ ```
263
+
264
+ The following code is considered correct with the example override
265
+
266
+ ```ts
267
+ class Animal {
268
+ constructor(public animalName: string) {}
269
+ }
270
+ ```
271
+
272
+ #### Disable any checks on given member type
273
+
274
+ e.g. `[{ overrides: { accessors : 'off' } } ]`
275
+
276
+ As no checks on the overridden member type are performed all permutations of visibility are permitted for that member type
277
+
278
+ The follow pattern is considered incorrect for the given configuration
279
+
280
+ ```ts
281
+ class Animal {
282
+ constructor(protected animalName) {}
283
+ public get name() {
284
+ return this.animalName;
285
+ }
286
+ get legs() {
287
+ return this.legCount;
288
+ }
289
+ }
290
+ ```
291
+
292
+ The following patterns are considered correct with the example override
293
+
294
+ ```ts
295
+ class Animal {
296
+ public constructor(protected animalName) {}
297
+ public get name() {
298
+ return this.animalName;
299
+ }
300
+ get legs() {
301
+ return this.legCount;
302
+ }
303
+ }
304
+ ```
305
+
306
+ ### Except specific methods
307
+
308
+ If you want to ignore some specific methods, you can do it by specifying method names. Note that this option does not care for the context, and will ignore every method with these names, which could lead to it missing some cases. You should use this sparingly.
309
+ e.g. `[ { ignoredMethodNames: ['specificMethod', 'whateverMethod'] } ]`
310
+
311
+ ```ts
312
+ class Animal {
313
+ get specificMethod() {
314
+ console.log('No error because you specified this method on option');
315
+ }
316
+ get whateverMethod() {
317
+ console.log('No error because you specified this method on option');
318
+ }
319
+ public get otherMethod() {
320
+ console.log('This method comply with this rule');
321
+ }
322
+ }
323
+ ```
324
+
325
+ ## When Not To Use It
326
+
327
+ If you think defaulting to public is a good default, then you should consider using the `no-public` setting. If you want to mix implicit and explicit public members then disable this rule.
328
+
329
+ ## Further Reading
330
+
331
+ - TypeScript [Accessibility Modifiers Handbook Docs](https://www.typescriptlang.org/docs/handbook/2/classes.html#member-visibility)
@@ -0,0 +1,250 @@
1
+ ---
2
+ description: "Require explicit return and argument types on exported functions' and classes' public class methods."
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/explicit-module-boundary-types** for documentation.
8
+
9
+ Explicit types for function return values and arguments makes it clear to any calling code what is the module boundary's input and output.
10
+ Adding explicit type annotations for those types can help improve code readability.
11
+ It can also improve TypeScript type checking performance on larger codebases.
12
+
13
+ ## Examples
14
+
15
+ <!--tabs-->
16
+
17
+ ### ❌ Incorrect
18
+
19
+ ```ts
20
+ // Should indicate that no value is returned (void)
21
+ export function test() {
22
+ return;
23
+ }
24
+
25
+ // Should indicate that a number is returned
26
+ export default function () {
27
+ return 1;
28
+ }
29
+
30
+ // Should indicate that a string is returned
31
+ export var arrowFn = () => 'test';
32
+
33
+ // All arguments should be typed
34
+ export var arrowFn = (arg): string => `test ${arg}`;
35
+ export var arrowFn = (arg: any): string => `test ${arg}`;
36
+
37
+ export class Test {
38
+ // Should indicate that no value is returned (void)
39
+ method() {
40
+ return;
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### ✅ Correct
46
+
47
+ ```ts
48
+ // Function is not exported
49
+ function test() {
50
+ return;
51
+ }
52
+
53
+ // A return value of type number
54
+ export var fn = function (): number {
55
+ return 1;
56
+ };
57
+
58
+ // A return value of type string
59
+ export var arrowFn = (): string => 'test';
60
+
61
+ // All arguments should be typed
62
+ export var arrowFn = (arg: string): string => `test ${arg}`;
63
+ export var arrowFn = (arg: unknown): string => `test ${arg}`;
64
+
65
+ // Class is not exported
66
+ class Test {
67
+ method() {
68
+ return;
69
+ }
70
+ }
71
+ ```
72
+
73
+ ## Options
74
+
75
+ ### Configuring in a mixed JS/TS codebase
76
+
77
+ If you are working on a codebase within which you lint non-TypeScript code (i.e. `.js`/`.mjs`/`.cjs`/`.jsx`), you should ensure that you should use [ESLint `overrides`](https://eslint.org/docs/user-guide/configuring#disabling-rules-only-for-a-group-of-files) to only enable the rule on `.ts`/`.mts`/`.cts`/`.tsx` files. If you don't, then you will get unfixable lint errors reported within `.js`/`.mjs`/`.cjs`/`.jsx` files.
78
+
79
+ ```jsonc
80
+ {
81
+ "rules": {
82
+ // disable the rule for all files
83
+ "@typescript-eslint/explicit-module-boundary-types": "off"
84
+ },
85
+ "overrides": [
86
+ {
87
+ // enable the rule specifically for TypeScript files
88
+ "files": ["*.ts", "*.mts", "*.cts", "*.tsx"],
89
+ "rules": {
90
+ "@typescript-eslint/explicit-module-boundary-types": "error"
91
+ }
92
+ }
93
+ ]
94
+ }
95
+ ```
96
+
97
+ ### `allowArgumentsExplicitlyTypedAsAny`
98
+
99
+ Examples of code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: false }`:
100
+
101
+ <!--tabs-->
102
+
103
+ #### ❌ Incorrect
104
+
105
+ ```ts
106
+ export const func = (value: any): number => value + 1;
107
+ ```
108
+
109
+ #### ✅ Correct
110
+
111
+ ```ts
112
+ export const func = (value: number): number => value + 1;
113
+ ```
114
+
115
+ ### `allowDirectConstAssertionInArrowFunctions`
116
+
117
+ Examples of code for this rule with `{ allowDirectConstAssertionInArrowFunctions: false }`:
118
+
119
+ <!--tabs-->
120
+
121
+ #### ❌ Incorrect
122
+
123
+ ```ts
124
+ export const func = (value: number) => ({ type: 'X', value });
125
+ export const foo = () => ({
126
+ bar: true,
127
+ });
128
+ export const bar = () => 1;
129
+ ```
130
+
131
+ #### ✅ Correct
132
+
133
+ ```ts
134
+ export const func = (value: number) => ({ type: 'X', value } as const);
135
+ export const foo = () =>
136
+ ({
137
+ bar: true,
138
+ } as const);
139
+ export const bar = () => 1 as const;
140
+ ```
141
+
142
+ ### `allowedNames`
143
+
144
+ You may pass function/method names you would like this rule to ignore, like so:
145
+
146
+ ```json
147
+ {
148
+ "@typescript-eslint/explicit-module-boundary-types": [
149
+ "error",
150
+ {
151
+ "allowedNames": ["ignoredFunctionName", "ignoredMethodName"]
152
+ }
153
+ ]
154
+ }
155
+ ```
156
+
157
+ ### `allowHigherOrderFunctions`
158
+
159
+ Examples of code for this rule with `{ allowHigherOrderFunctions: false }`:
160
+
161
+ <!--tabs-->
162
+
163
+ #### ❌ Incorrect
164
+
165
+ ```ts
166
+ export const arrowFn = () => () => {};
167
+
168
+ export function fn() {
169
+ return function () {};
170
+ }
171
+
172
+ export function foo(outer: string) {
173
+ return function (inner: string) {};
174
+ }
175
+ ```
176
+
177
+ #### ✅ Correct
178
+
179
+ ```ts
180
+ export const arrowFn = () => (): void => {};
181
+
182
+ export function fn() {
183
+ return function (): void {};
184
+ }
185
+
186
+ export function foo(outer: string) {
187
+ return function (inner: string): void {};
188
+ }
189
+ ```
190
+
191
+ ### `allowTypedFunctionExpressions`
192
+
193
+ Examples of code for this rule with `{ allowTypedFunctionExpressions: false }`:
194
+
195
+ <!--tabs-->
196
+
197
+ #### ❌ Incorrect
198
+
199
+ ```ts
200
+ export let arrowFn = () => 'test';
201
+
202
+ export let funcExpr = function () {
203
+ return 'test';
204
+ };
205
+
206
+ export let objectProp = {
207
+ foo: () => 1,
208
+ };
209
+
210
+ export const foo = bar => {};
211
+ ```
212
+
213
+ #### ✅ Correct
214
+
215
+ ```ts
216
+ type FuncType = () => string;
217
+
218
+ export let arrowFn: FuncType = () => 'test';
219
+
220
+ export let funcExpr: FuncType = function () {
221
+ return 'test';
222
+ };
223
+
224
+ export let asTyped = (() => '') as () => string;
225
+ export let castTyped = <() => string>(() => '');
226
+
227
+ interface ObjectType {
228
+ foo(): number;
229
+ }
230
+ export let objectProp: ObjectType = {
231
+ foo: () => 1,
232
+ };
233
+ export let objectPropAs = {
234
+ foo: () => 1,
235
+ } as ObjectType;
236
+ export let objectPropCast = <ObjectType>{
237
+ foo: () => 1,
238
+ };
239
+
240
+ type FooType = (bar: string) => void;
241
+ export const foo: FooType = bar => {};
242
+ ```
243
+
244
+ ## When Not To Use It
245
+
246
+ If you wish to make sure all functions have explicit return types, as opposed to only the module boundaries, you can use [explicit-function-return-type](./explicit-function-return-type.md)
247
+
248
+ ## Further Reading
249
+
250
+ - TypeScript [Functions](https://www.typescriptlang.org/docs/handbook/functions.html#function-types)
@@ -0,0 +1,12 @@
1
+ ---
2
+ description: 'Require or disallow spacing between function identifiers and their invocations.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/func-call-spacing** for documentation.
8
+
9
+ ## Examples
10
+
11
+ This rule extends the base [`eslint/func-call-spacing`](https://eslint.org/docs/rules/func-call-spacing) rule.
12
+ It adds support for generic type parameters on function calls.
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: 'Enforce consistent indentation.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/indent** for documentation.
8
+
9
+ ## Warning
10
+
11
+ :::warning
12
+
13
+ Please read [Issue #1824: Problems with the indent rule](https://github.com/typescript-eslint/typescript-eslint/issues/1824) before using this rule!
14
+
15
+ :::
16
+
17
+ ## Examples
18
+
19
+ This rule extends the base [`eslint/indent`](https://eslint.org/docs/rules/indent) rule.
20
+ It adds support for TypeScript nodes.
@@ -0,0 +1,12 @@
1
+ ---
2
+ description: 'Require or disallow initialization in variable declarations.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/init-declarations** for documentation.
8
+
9
+ ## Examples
10
+
11
+ This rule extends the base [`eslint/init-declarations`](https://eslint.org/docs/rules/init-declarations) rule.
12
+ It adds support for TypeScript's `declare` variables.
@@ -0,0 +1,12 @@
1
+ ---
2
+ description: 'Enforce consistent spacing between property names and type annotations in types and interfaces.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/key-spacing** for documentation.
8
+
9
+ ## Examples
10
+
11
+ This rule extends the base [`eslint/key-spacing`](https://eslint.org/docs/rules/key-spacing) rule.
12
+ This version adds support for type annotations on interfaces, classes and type literals properties.
@@ -0,0 +1,12 @@
1
+ ---
2
+ description: 'Enforce consistent spacing before and after keywords.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/keyword-spacing** for documentation.
8
+
9
+ ## Examples
10
+
11
+ This rule extends the base [`eslint/keyword-spacing`](https://eslint.org/docs/rules/keyword-spacing) rule.
12
+ This version adds support for generic type parameters on function calls.
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: 'Require empty lines around comments.'
3
+ ---
4
+
5
+ > 🛑 This file is source code, not the primary documentation location! 🛑
6
+ >
7
+ > See **https://typescript-eslint.io/rules/lines-around-comment** for documentation.
8
+
9
+ ## Rule Details
10
+
11
+ This rule extends the base [`eslint/lines-around-comment`](https://eslint.org/docs/rules/lines-around-comment) rule.
12
+ It adds support for TypeScript syntax.
13
+
14
+ See the [ESLint documentation](https://eslint.org/docs/rules/lines-around-comment) for more details on the `comma-dangle` rule.
15
+
16
+ ## Rule Changes
17
+
18
+ ```jsonc
19
+ {
20
+ // note you must disable the base rule as it can report incorrect errors
21
+ "lines-around-comment": "off",
22
+ "@typescript-eslint/lines-around-comment": ["error"]
23
+ }
24
+ ```
25
+
26
+ ## Options
27
+
28
+ In addition to the options supported by the `lines-around-comment` rule in ESLint core, the rule adds the following options:
29
+
30
+ - `allowEnumEnd: true` doesn't require a blank line after an enum body block end
31
+ - `allowEnumStart: true` doesn't require a blank line before an enum body block start
32
+ - `allowInterfaceEnd: true` doesn't require a blank line before an interface body block end
33
+ - `allowInterfaceStart: true` doesn't require a blank line after an interface body block start
34
+ - `allowModuleEnd: true` doesn't require a blank line before a module body block end
35
+ - `allowModuleStart: true` doesn't require a blank line after a module body block start
36
+ - `allowTypeEnd: true` doesn't require a blank line before a type literal block end
37
+ - `allowTypeStart: true` doesn't require a blank line after a type literal block start