@mnaoumov/typescript-dev-toolkit 0.0.0 → 1.1.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 (332) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -1
  3. package/bundlers/esbuild-impl/change-extension-plugin/package.json +6 -0
  4. package/bundlers/esbuild-impl/custom-esbuild-options-plugin/package.json +6 -0
  5. package/bundlers/esbuild-impl/fix-esm-plugin/package.json +6 -0
  6. package/bundlers/esbuild-impl/index/package.json +6 -0
  7. package/bundlers/esbuild-impl/package.json +6 -0
  8. package/bundlers/esbuild-impl/preprocess-plugin/package.json +6 -0
  9. package/bundlers/esbuild-impl/svelte-wrapper-plugin/package.json +6 -0
  10. package/bundlers/index/package.json +6 -0
  11. package/bundlers/package.json +6 -0
  12. package/dist/lib/cjs/build.cjs +191 -0
  13. package/dist/lib/cjs/build.d.cts +59 -0
  14. package/dist/lib/cjs/bundlers/esbuild-impl/change-extension-plugin.cjs +139 -0
  15. package/dist/lib/cjs/bundlers/esbuild-impl/change-extension-plugin.d.cts +25 -0
  16. package/dist/lib/cjs/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +96 -0
  17. package/dist/lib/cjs/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +14 -0
  18. package/dist/lib/cjs/bundlers/esbuild-impl/fix-esm-plugin.cjs +106 -0
  19. package/dist/lib/cjs/bundlers/esbuild-impl/fix-esm-plugin.d.cts +13 -0
  20. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +111 -0
  21. package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +6 -0
  22. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +211 -0
  23. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +143 -0
  24. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +129 -0
  25. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +14 -0
  26. package/dist/lib/cjs/bundlers/index.cjs +99 -0
  27. package/dist/lib/cjs/bundlers/index.d.cts +2 -0
  28. package/dist/lib/cjs/check-project-types.cjs +163 -0
  29. package/dist/lib/cjs/check-project-types.d.cts +92 -0
  30. package/dist/lib/cjs/cli-utils.cjs +276 -0
  31. package/dist/lib/cjs/cli-utils.d.cts +123 -0
  32. package/dist/lib/cjs/code-generator.cjs +96 -0
  33. package/dist/lib/cjs/code-generator.d.cts +14 -0
  34. package/dist/lib/cjs/commitlint-config.cjs +110 -0
  35. package/dist/lib/cjs/commitlint-config.d.cts +14 -0
  36. package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +110 -0
  37. package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +37 -0
  38. package/dist/lib/cjs/commitlint-spellcheck-header.cjs +126 -0
  39. package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +40 -0
  40. package/dist/lib/cjs/env-toggle.cjs +133 -0
  41. package/dist/lib/cjs/env-toggle.d.cts +42 -0
  42. package/dist/lib/cjs/exec.cjs +455 -0
  43. package/dist/lib/cjs/exec.d.cts +162 -0
  44. package/dist/lib/cjs/forbidden-patterns.cjs +157 -0
  45. package/dist/lib/cjs/forbidden-patterns.d.cts +57 -0
  46. package/dist/lib/cjs/formatters/dprint.cjs +108 -0
  47. package/dist/lib/cjs/formatters/dprint.d.cts +33 -0
  48. package/dist/lib/cjs/formatters/index.cjs +99 -0
  49. package/dist/lib/cjs/formatters/index.d.cts +2 -0
  50. package/dist/lib/cjs/fs.cjs +123 -0
  51. package/dist/lib/cjs/fs.d.cts +80 -0
  52. package/dist/lib/cjs/gate.cjs +140 -0
  53. package/dist/lib/cjs/gate.d.cts +93 -0
  54. package/dist/lib/cjs/git.cjs +109 -0
  55. package/dist/lib/cjs/git.d.cts +37 -0
  56. package/dist/lib/cjs/index.cjs +186 -0
  57. package/dist/lib/cjs/index.d.cts +35 -0
  58. package/dist/lib/cjs/json.cjs +141 -0
  59. package/dist/lib/cjs/json.d.cts +102 -0
  60. package/dist/lib/cjs/library-build.cjs +483 -0
  61. package/dist/lib/cjs/library-build.d.cts +101 -0
  62. package/dist/lib/cjs/library-references.d.cts +5 -0
  63. package/dist/lib/cjs/linters/cspell-content.cjs +124 -0
  64. package/dist/lib/cjs/linters/cspell-content.d.cts +46 -0
  65. package/dist/lib/cjs/linters/cspell.cjs +103 -0
  66. package/dist/lib/cjs/linters/cspell.d.cts +36 -0
  67. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.cjs +94 -0
  68. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.d.cts +49 -0
  69. package/dist/lib/cjs/linters/eslint-config.cjs +1068 -0
  70. package/dist/lib/cjs/linters/eslint-config.d.cts +123 -0
  71. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +130 -0
  72. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.d.cts +27 -0
  73. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +116 -0
  74. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +26 -0
  75. package/dist/lib/cjs/linters/eslint-rules/index.cjs +132 -0
  76. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +13 -0
  77. package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +175 -0
  78. package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +10 -0
  79. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +290 -0
  80. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.d.cts +10 -0
  81. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.cjs +265 -0
  82. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.d.cts +41 -0
  83. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.cjs +134 -0
  84. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.d.cts +20 -0
  85. package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.cjs +217 -0
  86. package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.d.cts +36 -0
  87. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +126 -0
  88. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.d.cts +10 -0
  89. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.cjs +125 -0
  90. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.d.cts +20 -0
  91. package/dist/lib/cjs/linters/eslint-rules/require-method-template.cjs +181 -0
  92. package/dist/lib/cjs/linters/eslint-rules/require-method-template.d.cts +14 -0
  93. package/dist/lib/cjs/linters/eslint-rules/require-super-call.cjs +217 -0
  94. package/dist/lib/cjs/linters/eslint-rules/require-super-call.d.cts +10 -0
  95. package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.cjs +92 -0
  96. package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.d.cts +18 -0
  97. package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.cjs +92 -0
  98. package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.d.cts +23 -0
  99. package/dist/lib/cjs/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +20 -0
  100. package/dist/lib/cjs/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +17 -0
  101. package/dist/lib/cjs/linters/eslint.cjs +196 -0
  102. package/dist/lib/cjs/linters/eslint.d.cts +74 -0
  103. package/dist/lib/cjs/linters/index.cjs +138 -0
  104. package/dist/lib/cjs/linters/index.d.cts +15 -0
  105. package/dist/lib/cjs/linters/lint-ignores.cjs +91 -0
  106. package/dist/lib/cjs/linters/lint-ignores.d.cts +30 -0
  107. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +169 -0
  108. package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +11 -0
  109. package/dist/lib/cjs/linters/markdownlint-content.cjs +120 -0
  110. package/dist/lib/cjs/linters/markdownlint-content.d.cts +47 -0
  111. package/dist/lib/cjs/linters/markdownlint-ignores.cjs +95 -0
  112. package/dist/lib/cjs/linters/markdownlint-ignores.d.cts +35 -0
  113. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +99 -0
  114. package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +2 -0
  115. package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.cjs +152 -0
  116. package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.d.cts +35 -0
  117. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1344 -0
  118. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2.d.cts +67 -0
  119. package/dist/lib/cjs/linters/markdownlint.cjs +151 -0
  120. package/dist/lib/cjs/linters/markdownlint.d.cts +32 -0
  121. package/dist/lib/cjs/linters/over-exposure.cjs +685 -0
  122. package/dist/lib/cjs/linters/over-exposure.d.cts +357 -0
  123. package/dist/lib/cjs/nano-staged-config.cjs +148 -0
  124. package/dist/lib/cjs/nano-staged-config.d.cts +54 -0
  125. package/dist/lib/cjs/npm-publish.cjs +93 -0
  126. package/dist/lib/cjs/npm-publish.d.cts +19 -0
  127. package/dist/lib/cjs/npm-run.cjs +120 -0
  128. package/dist/lib/cjs/npm-run.d.cts +34 -0
  129. package/dist/lib/cjs/npm.cjs +200 -0
  130. package/dist/lib/cjs/npm.d.cts +168 -0
  131. package/dist/lib/cjs/package-lock-integrity.cjs +134 -0
  132. package/dist/lib/cjs/package-lock-integrity.d.cts +38 -0
  133. package/dist/lib/cjs/package-manager.cjs +291 -0
  134. package/dist/lib/cjs/package-manager.d.cts +93 -0
  135. package/dist/lib/cjs/released-issues.cjs +178 -0
  136. package/dist/lib/cjs/released-issues.d.cts +79 -0
  137. package/dist/lib/cjs/repo-paths.cjs +167 -0
  138. package/dist/lib/cjs/repo-paths.d.cts +318 -0
  139. package/dist/lib/cjs/root.cjs +150 -0
  140. package/dist/lib/cjs/root.d.cts +107 -0
  141. package/dist/lib/cjs/test-runners/index.cjs +102 -0
  142. package/dist/lib/cjs/test-runners/index.d.cts +3 -0
  143. package/dist/lib/cjs/test-runners/vitest-config.cjs +126 -0
  144. package/dist/lib/cjs/test-runners/vitest-config.d.cts +90 -0
  145. package/dist/lib/cjs/test-runners/vitest.cjs +115 -0
  146. package/dist/lib/cjs/test-runners/vitest.d.cts +52 -0
  147. package/dist/lib/cjs/validate-declarations.cjs +120 -0
  148. package/dist/lib/cjs/validate-declarations.d.cts +37 -0
  149. package/dist/lib/cjs/version.cjs +758 -0
  150. package/dist/lib/cjs/version.d.cts +418 -0
  151. package/dist/lib/esm/build.d.mts +59 -0
  152. package/dist/lib/esm/build.mjs +165 -0
  153. package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.d.mts +25 -0
  154. package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.mjs +101 -0
  155. package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +14 -0
  156. package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +59 -0
  157. package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.d.mts +13 -0
  158. package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.mjs +69 -0
  159. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +6 -0
  160. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +60 -0
  161. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +143 -0
  162. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +176 -0
  163. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +14 -0
  164. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +82 -0
  165. package/dist/lib/esm/bundlers/index.d.mts +2 -0
  166. package/dist/lib/esm/bundlers/index.mjs +52 -0
  167. package/dist/lib/esm/check-project-types.d.mts +92 -0
  168. package/dist/lib/esm/check-project-types.mjs +123 -0
  169. package/dist/lib/esm/cli-utils.d.mts +123 -0
  170. package/dist/lib/esm/cli-utils.mjs +225 -0
  171. package/dist/lib/esm/code-generator.d.mts +14 -0
  172. package/dist/lib/esm/code-generator.mjs +59 -0
  173. package/dist/lib/esm/commitlint-config.d.mts +14 -0
  174. package/dist/lib/esm/commitlint-config.mjs +79 -0
  175. package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +37 -0
  176. package/dist/lib/esm/commitlint-forbidden-patterns.mjs +75 -0
  177. package/dist/lib/esm/commitlint-spellcheck-header.d.mts +40 -0
  178. package/dist/lib/esm/commitlint-spellcheck-header.mjs +87 -0
  179. package/dist/lib/esm/env-toggle.d.mts +42 -0
  180. package/dist/lib/esm/env-toggle.mjs +84 -0
  181. package/dist/lib/esm/exec.d.mts +162 -0
  182. package/dist/lib/esm/exec.mjs +410 -0
  183. package/dist/lib/esm/forbidden-patterns.d.mts +57 -0
  184. package/dist/lib/esm/forbidden-patterns.mjs +108 -0
  185. package/dist/lib/esm/formatters/dprint.d.mts +33 -0
  186. package/dist/lib/esm/formatters/dprint.mjs +75 -0
  187. package/dist/lib/esm/formatters/index.d.mts +2 -0
  188. package/dist/lib/esm/formatters/index.mjs +52 -0
  189. package/dist/lib/esm/fs.d.mts +80 -0
  190. package/dist/lib/esm/fs.mjs +89 -0
  191. package/dist/lib/esm/gate.d.mts +93 -0
  192. package/dist/lib/esm/gate.mjs +106 -0
  193. package/dist/lib/esm/git.d.mts +37 -0
  194. package/dist/lib/esm/git.mjs +72 -0
  195. package/dist/lib/esm/index.d.mts +35 -0
  196. package/dist/lib/esm/index.mjs +110 -0
  197. package/dist/lib/esm/json.d.mts +102 -0
  198. package/dist/lib/esm/json.mjs +106 -0
  199. package/dist/lib/esm/library-build.d.mts +101 -0
  200. package/dist/lib/esm/library-build.mjs +443 -0
  201. package/dist/lib/esm/library-references.d.mts +5 -0
  202. package/dist/lib/esm/linters/cspell-content.d.mts +46 -0
  203. package/dist/lib/esm/linters/cspell-content.mjs +87 -0
  204. package/dist/lib/esm/linters/cspell.d.mts +36 -0
  205. package/dist/lib/esm/linters/cspell.mjs +69 -0
  206. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.d.mts +49 -0
  207. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.mjs +57 -0
  208. package/dist/lib/esm/linters/eslint-config.d.mts +123 -0
  209. package/dist/lib/esm/linters/eslint-config.mjs +1022 -0
  210. package/dist/lib/esm/linters/eslint-no-restricted-syntax.d.mts +27 -0
  211. package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +93 -0
  212. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +26 -0
  213. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +77 -0
  214. package/dist/lib/esm/linters/eslint-rules/index.d.mts +13 -0
  215. package/dist/lib/esm/linters/eslint-rules/index.mjs +74 -0
  216. package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +10 -0
  217. package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +144 -0
  218. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.d.mts +10 -0
  219. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +277 -0
  220. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.d.mts +41 -0
  221. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.mjs +227 -0
  222. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.d.mts +20 -0
  223. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.mjs +96 -0
  224. package/dist/lib/esm/linters/eslint-rules/params-options-name-match.d.mts +36 -0
  225. package/dist/lib/esm/linters/eslint-rules/params-options-name-match.mjs +179 -0
  226. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.d.mts +10 -0
  227. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +88 -0
  228. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.d.mts +20 -0
  229. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.mjs +87 -0
  230. package/dist/lib/esm/linters/eslint-rules/require-method-template.d.mts +14 -0
  231. package/dist/lib/esm/linters/eslint-rules/require-method-template.mjs +142 -0
  232. package/dist/lib/esm/linters/eslint-rules/require-super-call.d.mts +10 -0
  233. package/dist/lib/esm/linters/eslint-rules/require-super-call.mjs +183 -0
  234. package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.d.mts +18 -0
  235. package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.mjs +55 -0
  236. package/dist/lib/esm/linters/eslint-rules/ts-estree-node.d.mts +23 -0
  237. package/dist/lib/esm/linters/eslint-rules/ts-estree-node.mjs +55 -0
  238. package/dist/lib/esm/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +20 -0
  239. package/dist/lib/esm/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +17 -0
  240. package/dist/lib/esm/linters/eslint.d.mts +74 -0
  241. package/dist/lib/esm/linters/eslint.mjs +159 -0
  242. package/dist/lib/esm/linters/index.d.mts +15 -0
  243. package/dist/lib/esm/linters/index.mjs +78 -0
  244. package/dist/lib/esm/linters/lint-ignores.d.mts +30 -0
  245. package/dist/lib/esm/linters/lint-ignores.mjs +54 -0
  246. package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +11 -0
  247. package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +122 -0
  248. package/dist/lib/esm/linters/markdownlint-content.d.mts +47 -0
  249. package/dist/lib/esm/linters/markdownlint-content.mjs +83 -0
  250. package/dist/lib/esm/linters/markdownlint-ignores.d.mts +35 -0
  251. package/dist/lib/esm/linters/markdownlint-ignores.mjs +57 -0
  252. package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
  253. package/dist/lib/esm/linters/markdownlint-rules/index.mjs +52 -0
  254. package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.d.mts +35 -0
  255. package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.mjs +114 -0
  256. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1344 -0
  257. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2.d.mts +67 -0
  258. package/dist/lib/esm/linters/markdownlint.d.mts +32 -0
  259. package/dist/lib/esm/linters/markdownlint.mjs +124 -0
  260. package/dist/lib/esm/linters/over-exposure.d.mts +357 -0
  261. package/dist/lib/esm/linters/over-exposure.mjs +672 -0
  262. package/dist/lib/esm/nano-staged-config.d.mts +54 -0
  263. package/dist/lib/esm/nano-staged-config.mjs +103 -0
  264. package/dist/lib/esm/npm-publish.d.mts +19 -0
  265. package/dist/lib/esm/npm-publish.mjs +56 -0
  266. package/dist/lib/esm/npm-run.d.mts +34 -0
  267. package/dist/lib/esm/npm-run.mjs +81 -0
  268. package/dist/lib/esm/npm.d.mts +168 -0
  269. package/dist/lib/esm/npm.mjs +155 -0
  270. package/dist/lib/esm/package-lock-integrity.d.mts +38 -0
  271. package/dist/lib/esm/package-lock-integrity.mjs +99 -0
  272. package/dist/lib/esm/package-manager.d.mts +93 -0
  273. package/dist/lib/esm/package-manager.mjs +245 -0
  274. package/dist/lib/esm/released-issues.d.mts +79 -0
  275. package/dist/lib/esm/released-issues.mjs +143 -0
  276. package/dist/lib/esm/repo-paths.d.mts +318 -0
  277. package/dist/lib/esm/repo-paths.mjs +130 -0
  278. package/dist/lib/esm/root.d.mts +107 -0
  279. package/dist/lib/esm/root.mjs +115 -0
  280. package/dist/lib/esm/test-runners/index.d.mts +3 -0
  281. package/dist/lib/esm/test-runners/index.mjs +54 -0
  282. package/dist/lib/esm/test-runners/vitest-config.d.mts +90 -0
  283. package/dist/lib/esm/test-runners/vitest-config.mjs +86 -0
  284. package/dist/lib/esm/test-runners/vitest.d.mts +52 -0
  285. package/dist/lib/esm/test-runners/vitest.mjs +76 -0
  286. package/dist/lib/esm/validate-declarations.d.mts +37 -0
  287. package/dist/lib/esm/validate-declarations.mjs +87 -0
  288. package/dist/lib/esm/version.d.mts +418 -0
  289. package/dist/lib/esm/version.mjs +723 -0
  290. package/formatters/dprint/package.json +6 -0
  291. package/formatters/index/package.json +6 -0
  292. package/formatters/package.json +6 -0
  293. package/linters/cspell/package.json +6 -0
  294. package/linters/cspell-content/package.json +6 -0
  295. package/linters/eslint/package.json +6 -0
  296. package/linters/eslint-agnostic-core-boundary/package.json +6 -0
  297. package/linters/eslint-config/package.json +6 -0
  298. package/linters/eslint-no-restricted-syntax/package.json +6 -0
  299. package/linters/eslint-rules/in-house-plugin/package.json +6 -0
  300. package/linters/eslint-rules/index/package.json +6 -0
  301. package/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
  302. package/linters/eslint-rules/no-unresolved-jsdoc-link/package.json +6 -0
  303. package/linters/eslint-rules/no-unused-params-members/package.json +6 -0
  304. package/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
  305. package/linters/eslint-rules/package.json +6 -0
  306. package/linters/eslint-rules/params-options-name-match/package.json +6 -0
  307. package/linters/eslint-rules/prefer-noop-async/package.json +6 -0
  308. package/linters/eslint-rules/readonly-params-options-result-members/package.json +6 -0
  309. package/linters/eslint-rules/require-method-template/package.json +6 -0
  310. package/linters/eslint-rules/require-super-call/package.json +6 -0
  311. package/linters/eslint-rules/rule-tester-helper/package.json +6 -0
  312. package/linters/eslint-rules/ts-estree-node/package.json +6 -0
  313. package/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs/package.json +4 -0
  314. package/linters/eslint-types/@types/eslint-plugin-verify-tsdoc/package.json +4 -0
  315. package/linters/index/package.json +6 -0
  316. package/linters/lint-ignores/package.json +6 -0
  317. package/linters/markdownlint/package.json +6 -0
  318. package/linters/markdownlint-cli2-config/package.json +6 -0
  319. package/linters/markdownlint-content/package.json +6 -0
  320. package/linters/markdownlint-ignores/package.json +6 -0
  321. package/linters/markdownlint-rules/index/package.json +6 -0
  322. package/linters/markdownlint-rules/no-soft-break-in-paragraph/package.json +6 -0
  323. package/linters/markdownlint-rules/package.json +6 -0
  324. package/linters/markdownlint-types/@types/markdownlint-cli2/package.json +4 -0
  325. package/linters/markdownlint-types/@types/markdownlint-cli2-config-schema/package.json +4 -0
  326. package/linters/over-exposure/package.json +6 -0
  327. package/linters/package.json +6 -0
  328. package/package.json +329 -13
  329. package/test-runners/index/package.json +6 -0
  330. package/test-runners/package.json +6 -0
  331. package/test-runners/vitest/package.json +6 -0
  332. package/test-runners/vitest-config/package.json +6 -0
@@ -0,0 +1,27 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * `no-restricted-syntax` rule entries for the shared ESLint config.
6
+ *
7
+ * Exported as a standalone constant so each selector can be unit-tested
8
+ * independently of the larger declarative config.
9
+ */
10
+ /**
11
+ * A single `no-restricted-syntax` entry pairing an ESLint AST selector with a
12
+ * human-readable message explaining why the pattern is banned.
13
+ */
14
+ export interface NoRestrictedSyntaxRuleEntry {
15
+ /**
16
+ * Human-readable message shown when the selector matches.
17
+ */
18
+ message: string;
19
+ /**
20
+ * ESLint AST selector identifying the banned pattern.
21
+ */
22
+ selector: string;
23
+ }
24
+ /**
25
+ * Restricted-syntax entries enforced by the shared ESLint config.
26
+ */
27
+ export declare const noRestrictedSyntaxRuleEntries: readonly NoRestrictedSyntaxRuleEntry[];
@@ -0,0 +1,93 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ (function initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ const noRestrictedSyntaxRuleEntries = [
49
+ {
50
+ message: "Do not use definite assignment assertions (!). Initialize the field or make it optional.",
51
+ selector: "PropertyDefinition[definite=true]"
52
+ },
53
+ {
54
+ message: "Do not use anonymous inline object types. Define a named interface or `type` alias instead.",
55
+ selector: "TSTypeLiteral:not(TSTypeAliasDeclaration > TSTypeLiteral)"
56
+ },
57
+ {
58
+ message: "Do not use anonymous inline mapped types. Define a named `type` alias instead.",
59
+ selector: "TSMappedType:not(TSTypeAliasDeclaration > TSMappedType)"
60
+ },
61
+ {
62
+ message: "Do not use double type assertions (as X as Y).",
63
+ selector: "TSAsExpression > TSAsExpression"
64
+ },
65
+ {
66
+ message: 'Do not use `as never`. It silently satisfies type constraints by claiming "this value is of every type" \u2014 almost always masks a real type mismatch. Fix the underlying types instead.',
67
+ selector: "TSAsExpression > TSNeverKeyword"
68
+ },
69
+ {
70
+ message: "Do not use `<never>` type assertions. Same reasoning as `as never`.",
71
+ selector: "TSTypeAssertion > TSNeverKeyword"
72
+ },
73
+ {
74
+ message: "Do not use _ prefix on methods or functions. The _ prefix is for unused parameters only.",
75
+ selector: "MethodDefinition[key.name=/^_/]:not([override=true])"
76
+ },
77
+ {
78
+ message: "Do not use _ prefix on methods or functions. The _ prefix is for unused parameters only.",
79
+ selector: "FunctionDeclaration[id.name=/^_/]"
80
+ },
81
+ {
82
+ message: 'Do not rename imports with "Mock" in the alias. Mock classes are the canonical types \u2014 use the original name.',
83
+ selector: "ImportSpecifier[local.name=/Mock/]:not([imported.name=/Mock/])"
84
+ },
85
+ {
86
+ message: "Do not use `declare` on class properties. Initialize the property or use a regular type annotation.",
87
+ selector: "PropertyDefinition[declare=true]"
88
+ }
89
+ ];
90
+ export {
91
+ noRestrictedSyntaxRuleEntries
92
+ };
93
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LW5vLXJlc3RyaWN0ZWQtc3ludGF4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBydWxlIGVudHJpZXMgZm9yIHRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZy5cbiAqXG4gKiBFeHBvcnRlZCBhcyBhIHN0YW5kYWxvbmUgY29uc3RhbnQgc28gZWFjaCBzZWxlY3RvciBjYW4gYmUgdW5pdC10ZXN0ZWRcbiAqIGluZGVwZW5kZW50bHkgb2YgdGhlIGxhcmdlciBkZWNsYXJhdGl2ZSBjb25maWcuXG4gKi9cblxuLyoqXG4gKiBBIHNpbmdsZSBgbm8tcmVzdHJpY3RlZC1zeW50YXhgIGVudHJ5IHBhaXJpbmcgYW4gRVNMaW50IEFTVCBzZWxlY3RvciB3aXRoIGFcbiAqIGh1bWFuLXJlYWRhYmxlIG1lc3NhZ2UgZXhwbGFpbmluZyB3aHkgdGhlIHBhdHRlcm4gaXMgYmFubmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyeSB7XG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBtZXNzYWdlIHNob3duIHdoZW4gdGhlIHNlbGVjdG9yIG1hdGNoZXMuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVTTGludCBBU1Qgc2VsZWN0b3IgaWRlbnRpZnlpbmcgdGhlIGJhbm5lZCBwYXR0ZXJuLlxuICAgKi9cbiAgc2VsZWN0b3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN0cmljdGVkLXN5bnRheCBlbnRyaWVzIGVuZm9yY2VkIGJ5IHRoZSBzaGFyZWQgRVNMaW50IGNvbmZpZy5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vUmVzdHJpY3RlZFN5bnRheFJ1bGVFbnRyaWVzOiByZWFkb25seSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnlbXSA9IFtcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRlZmluaXRlIGFzc2lnbm1lbnQgYXNzZXJ0aW9ucyAoISkuIEluaXRpYWxpemUgdGhlIGZpZWxkIG9yIG1ha2UgaXQgb3B0aW9uYWwuJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgYHR5cGVgIGFsaWFzIGluc3RlYWQuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUxpdGVyYWw6bm90KFRTVHlwZUFsaWFzRGVjbGFyYXRpb24gPiBUU1R5cGVMaXRlcmFsKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgbWFwcGVkIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBgdHlwZWAgYWxpYXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNNYXBwZWRUeXBlOm5vdChUU1R5cGVBbGlhc0RlY2xhcmF0aW9uID4gVFNNYXBwZWRUeXBlKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGBkZWNsYXJlYCBvbiBjbGFzcyBwcm9wZXJ0aWVzLiBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvciB1c2UgYSByZWd1bGFyIHR5cGUgYW5ub3RhdGlvbi4nLFxuICAgIHNlbGVjdG9yOiAnUHJvcGVydHlEZWZpbml0aW9uW2RlY2xhcmU9dHJ1ZV0nXG4gIH1cbl07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRCTyxNQUFNLGdDQUF3RTtBQUFBLEVBQ25GO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,26 @@
1
+ /// <reference path="../../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * The generic in-house ESLint rules, and the plugin that registers them.
6
+ *
7
+ * Every in-house rule is registered under ONE namespace, {@link IN_HOUSE_ESLINT_PLUGIN_NAME}, whichever package
8
+ * defines it, so a disable comment naming `obsidian-dev-utils/<rule>` keeps working however the rules are split
9
+ * between packages. ESLint refuses two different plugin objects under one namespace in a single configuration, so a
10
+ * package adding rules of its own builds ONE plugin from {@link genericInHouseEslintRules} plus its own and hands
11
+ * that to the generic configuration, rather than registering a second plugin beside {@link inHouseEslintPlugin}.
12
+ */
13
+ import type { ESLint } from 'eslint';
14
+ /**
15
+ * The namespace every in-house rule is registered under. It keeps the name of the library the rules started in,
16
+ * because existing disable comments name it.
17
+ */
18
+ export declare const IN_HOUSE_ESLINT_PLUGIN_NAME = "obsidian-dev-utils";
19
+ /**
20
+ * The generic in-house rules, keyed by their name inside {@link IN_HOUSE_ESLINT_PLUGIN_NAME}.
21
+ */
22
+ export declare const genericInHouseEslintRules: NonNullable<ESLint.Plugin['rules']>;
23
+ /**
24
+ * The ESLint plugin registering the generic in-house rules alone, for a project that adds none of its own.
25
+ */
26
+ export declare const inHouseEslintPlugin: ESLint.Plugin;
@@ -0,0 +1,77 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ (function initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import { noAsyncCallbackToUnsafeReturn } from "./no-async-callback-to-unsafe-return.mjs";
49
+ import { noUnresolvedJsdocLink } from "./no-unresolved-jsdoc-link.mjs";
50
+ import { noUnusedParamsMembers } from "./no-unused-params-members.mjs";
51
+ import { noUsedUnderscoreVariables } from "./no-used-underscore-variables.mjs";
52
+ import { paramsOptionsNameMatch } from "./params-options-name-match.mjs";
53
+ import { preferNoopAsync } from "./prefer-noop-async.mjs";
54
+ import { readonlyParamsOptionsResultMembers } from "./readonly-params-options-result-members.mjs";
55
+ import { requireMethodTemplate } from "./require-method-template.mjs";
56
+ import { requireSuperCall } from "./require-super-call.mjs";
57
+ const IN_HOUSE_ESLINT_PLUGIN_NAME = "obsidian-dev-utils";
58
+ const genericInHouseEslintRules = {
59
+ "no-async-callback-to-unsafe-return": noAsyncCallbackToUnsafeReturn,
60
+ "no-unresolved-jsdoc-link": noUnresolvedJsdocLink,
61
+ "no-unused-params-members": noUnusedParamsMembers,
62
+ "no-used-underscore-variables": noUsedUnderscoreVariables,
63
+ "params-options-name-match": paramsOptionsNameMatch,
64
+ "prefer-noop-async": preferNoopAsync,
65
+ "readonly-params-options-result-members": readonlyParamsOptionsResultMembers,
66
+ "require-method-template": requireMethodTemplate,
67
+ "require-super-call": requireSuperCall
68
+ };
69
+ const inHouseEslintPlugin = {
70
+ rules: genericInHouseEslintRules
71
+ };
72
+ export {
73
+ IN_HOUSE_ESLINT_PLUGIN_NAME,
74
+ genericInHouseEslintRules,
75
+ inHouseEslintPlugin
76
+ };
77
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luLWhvdXNlLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBnZW5lcmljIGluLWhvdXNlIEVTTGludCBydWxlcywgYW5kIHRoZSBwbHVnaW4gdGhhdCByZWdpc3RlcnMgdGhlbS5cbiAqXG4gKiBFdmVyeSBpbi1ob3VzZSBydWxlIGlzIHJlZ2lzdGVyZWQgdW5kZXIgT05FIG5hbWVzcGFjZSwge0BsaW5rIElOX0hPVVNFX0VTTElOVF9QTFVHSU5fTkFNRX0sIHdoaWNoZXZlciBwYWNrYWdlXG4gKiBkZWZpbmVzIGl0LCBzbyBhIGRpc2FibGUgY29tbWVudCBuYW1pbmcgYG9ic2lkaWFuLWRldi11dGlscy88cnVsZT5gIGtlZXBzIHdvcmtpbmcgaG93ZXZlciB0aGUgcnVsZXMgYXJlIHNwbGl0XG4gKiBiZXR3ZWVuIHBhY2thZ2VzLiBFU0xpbnQgcmVmdXNlcyB0d28gZGlmZmVyZW50IHBsdWdpbiBvYmplY3RzIHVuZGVyIG9uZSBuYW1lc3BhY2UgaW4gYSBzaW5nbGUgY29uZmlndXJhdGlvbiwgc28gYVxuICogcGFja2FnZSBhZGRpbmcgcnVsZXMgb2YgaXRzIG93biBidWlsZHMgT05FIHBsdWdpbiBmcm9tIHtAbGluayBnZW5lcmljSW5Ib3VzZUVzbGludFJ1bGVzfSBwbHVzIGl0cyBvd24gYW5kIGhhbmRzXG4gKiB0aGF0IHRvIHRoZSBnZW5lcmljIGNvbmZpZ3VyYXRpb24sIHJhdGhlciB0aGFuIHJlZ2lzdGVyaW5nIGEgc2Vjb25kIHBsdWdpbiBiZXNpZGUge0BsaW5rIGluSG91c2VFc2xpbnRQbHVnaW59LlxuICovXG5cbmltcG9ydCB0eXBlIHsgRVNMaW50IH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4gfSBmcm9tICcuL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4udHMnO1xuaW1wb3J0IHsgbm9VbnJlc29sdmVkSnNkb2NMaW5rIH0gZnJvbSAnLi9uby11bnJlc29sdmVkLWpzZG9jLWxpbmsudHMnO1xuaW1wb3J0IHsgbm9VbnVzZWRQYXJhbXNNZW1iZXJzIH0gZnJvbSAnLi9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyB9IGZyb20gJy4vbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcy50cyc7XG5pbXBvcnQgeyBwYXJhbXNPcHRpb25zTmFtZU1hdGNoIH0gZnJvbSAnLi9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoLnRzJztcbmltcG9ydCB7IHByZWZlck5vb3BBc3luYyB9IGZyb20gJy4vcHJlZmVyLW5vb3AtYXN5bmMudHMnO1xuaW1wb3J0IHsgcmVhZG9ubHlQYXJhbXNPcHRpb25zUmVzdWx0TWVtYmVycyB9IGZyb20gJy4vcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtcmVzdWx0LW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgcmVxdWlyZU1ldGhvZFRlbXBsYXRlIH0gZnJvbSAnLi9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZS50cyc7XG5pbXBvcnQgeyByZXF1aXJlU3VwZXJDYWxsIH0gZnJvbSAnLi9yZXF1aXJlLXN1cGVyLWNhbGwudHMnO1xuXG4vKipcbiAqIFRoZSBuYW1lc3BhY2UgZXZlcnkgaW4taG91c2UgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLiBJdCBrZWVwcyB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSB0aGUgcnVsZXMgc3RhcnRlZCBpbixcbiAqIGJlY2F1c2UgZXhpc3RpbmcgZGlzYWJsZSBjb21tZW50cyBuYW1lIGl0LlxuICovXG5leHBvcnQgY29uc3QgSU5fSE9VU0VfRVNMSU5UX1BMVUdJTl9OQU1FID0gJ29ic2lkaWFuLWRldi11dGlscyc7XG5cbi8qKlxuICogVGhlIGdlbmVyaWMgaW4taG91c2UgcnVsZXMsIGtleWVkIGJ5IHRoZWlyIG5hbWUgaW5zaWRlIHtAbGluayBJTl9IT1VTRV9FU0xJTlRfUExVR0lOX05BTUV9LlxuICovXG5leHBvcnQgY29uc3QgZ2VuZXJpY0luSG91c2VFc2xpbnRSdWxlczogTm9uTnVsbGFibGU8RVNMaW50LlBsdWdpblsncnVsZXMnXT4gPSB7XG4gICduby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4sXG4gICduby11bnJlc29sdmVkLWpzZG9jLWxpbmsnOiBub1VucmVzb2x2ZWRKc2RvY0xpbmssXG4gICduby11bnVzZWQtcGFyYW1zLW1lbWJlcnMnOiBub1VudXNlZFBhcmFtc01lbWJlcnMsXG4gICduby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyxcbiAgJ3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gnOiBwYXJhbXNPcHRpb25zTmFtZU1hdGNoLFxuICAncHJlZmVyLW5vb3AtYXN5bmMnOiBwcmVmZXJOb29wQXN5bmMsXG4gICdyZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycyc6IHJlYWRvbmx5UGFyYW1zT3B0aW9uc1Jlc3VsdE1lbWJlcnMsXG4gICdyZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSxcbiAgJ3JlcXVpcmUtc3VwZXItY2FsbCc6IHJlcXVpcmVTdXBlckNhbGxcbn07XG5cbi8qKlxuICogVGhlIEVTTGludCBwbHVnaW4gcmVnaXN0ZXJpbmcgdGhlIGdlbmVyaWMgaW4taG91c2UgcnVsZXMgYWxvbmUsIGZvciBhIHByb2plY3QgdGhhdCBhZGRzIG5vbmUgb2YgaXRzIG93bi5cbiAqL1xuZXhwb3J0IGNvbnN0IGluSG91c2VFc2xpbnRQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiBnZW5lcmljSW5Ib3VzZUVzbGludFJ1bGVzXG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTLHFDQUFxQztBQUM5QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGlDQUFpQztBQUMxQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDBDQUEwQztBQUNuRCxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHdCQUF3QjtBQU0xQixNQUFNLDhCQUE4QjtBQUtwQyxNQUFNLDRCQUFpRTtBQUFBLEVBQzVFLHNDQUFzQztBQUFBLEVBQ3RDLDRCQUE0QjtBQUFBLEVBQzVCLDRCQUE0QjtBQUFBLEVBQzVCLGdDQUFnQztBQUFBLEVBQ2hDLDZCQUE2QjtBQUFBLEVBQzdCLHFCQUFxQjtBQUFBLEVBQ3JCLDBDQUEwQztBQUFBLEVBQzFDLDJCQUEyQjtBQUFBLEVBQzNCLHNCQUFzQjtBQUN4QjtBQUtPLE1BQU0sc0JBQXFDO0FBQUEsRUFDaEQsT0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,13 @@
1
+ /// <reference path="../../library-references.d.mts" />
2
+ export * as 'in-house-plugin' from './in-house-plugin.mjs';
3
+ export * as 'no-async-callback-to-unsafe-return' from './no-async-callback-to-unsafe-return.mjs';
4
+ export * as 'no-unresolved-jsdoc-link' from './no-unresolved-jsdoc-link.mjs';
5
+ export * as 'no-unused-params-members' from './no-unused-params-members.mjs';
6
+ export * as 'no-used-underscore-variables' from './no-used-underscore-variables.mjs';
7
+ export * as 'params-options-name-match' from './params-options-name-match.mjs';
8
+ export * as 'prefer-noop-async' from './prefer-noop-async.mjs';
9
+ export * as 'readonly-params-options-result-members' from './readonly-params-options-result-members.mjs';
10
+ export * as 'require-method-template' from './require-method-template.mjs';
11
+ export * as 'require-super-call' from './require-super-call.mjs';
12
+ export * as 'rule-tester-helper' from './rule-tester-helper.mjs';
13
+ export * as 'ts-estree-node' from './ts-estree-node.mjs';
@@ -0,0 +1,74 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ (function initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import * as in_house_plugin from "./in-house-plugin.mjs";
49
+ import * as no_async_callback_to_unsafe_return from "./no-async-callback-to-unsafe-return.mjs";
50
+ import * as no_unresolved_jsdoc_link from "./no-unresolved-jsdoc-link.mjs";
51
+ import * as no_unused_params_members from "./no-unused-params-members.mjs";
52
+ import * as no_used_underscore_variables from "./no-used-underscore-variables.mjs";
53
+ import * as params_options_name_match from "./params-options-name-match.mjs";
54
+ import * as prefer_noop_async from "./prefer-noop-async.mjs";
55
+ import * as readonly_params_options_result_members from "./readonly-params-options-result-members.mjs";
56
+ import * as require_method_template from "./require-method-template.mjs";
57
+ import * as require_super_call from "./require-super-call.mjs";
58
+ import * as rule_tester_helper from "./rule-tester-helper.mjs";
59
+ import * as ts_estree_node from "./ts-estree-node.mjs";
60
+ export {
61
+ in_house_plugin as "in-house-plugin",
62
+ no_async_callback_to_unsafe_return as "no-async-callback-to-unsafe-return",
63
+ no_unresolved_jsdoc_link as "no-unresolved-jsdoc-link",
64
+ no_unused_params_members as "no-unused-params-members",
65
+ no_used_underscore_variables as "no-used-underscore-variables",
66
+ params_options_name_match as "params-options-name-match",
67
+ prefer_noop_async as "prefer-noop-async",
68
+ readonly_params_options_result_members as "readonly-params-options-result-members",
69
+ require_method_template as "require-method-template",
70
+ require_super_call as "require-super-call",
71
+ rule_tester_helper as "rule-tester-helper",
72
+ ts_estree_node as "ts-estree-node"
73
+ };
74
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2luLWhvdXNlLXBsdWdpbicgZnJvbSAnLi9pbi1ob3VzZS1wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nIGZyb20gJy4vbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybi50cyc7XG5leHBvcnQgKiBhcyAnbm8tdW5yZXNvbHZlZC1qc2RvYy1saW5rJyBmcm9tICcuL25vLXVucmVzb2x2ZWQtanNkb2MtbGluay50cyc7XG5leHBvcnQgKiBhcyAnbm8tdW51c2VkLXBhcmFtcy1tZW1iZXJzJyBmcm9tICcuL25vLXVudXNlZC1wYXJhbXMtbWVtYmVycy50cyc7XG5leHBvcnQgKiBhcyAnbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcycgZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzJztcbmV4cG9ydCAqIGFzICdwYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJyBmcm9tICcuL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gudHMnO1xuZXhwb3J0ICogYXMgJ3ByZWZlci1ub29wLWFzeW5jJyBmcm9tICcuL3ByZWZlci1ub29wLWFzeW5jLnRzJztcbmV4cG9ydCAqIGFzICdyZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycycgZnJvbSAnLi9yZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycy50cyc7XG5leHBvcnQgKiBhcyAncmVxdWlyZS1tZXRob2QtdGVtcGxhdGUnIGZyb20gJy4vcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtc3VwZXItY2FsbCcgZnJvbSAnLi9yZXF1aXJlLXN1cGVyLWNhbGwudHMnO1xuZXhwb3J0ICogYXMgJ3J1bGUtdGVzdGVyLWhlbHBlcicgZnJvbSAnLi9ydWxlLXRlc3Rlci1oZWxwZXIudHMnO1xuZXhwb3J0ICogYXMgJ3RzLWVzdHJlZS1ub2RlJyBmcm9tICcuL3RzLWVzdHJlZS1ub2RlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsWUFBWUEscUJBQXVCO0FBQ25DLFlBQVlDLHdDQUEwQztBQUN0RCxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLDRDQUE4QztBQUMxRCxZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyxvQkFBc0I7IiwKICAibmFtZXMiOiBbImluLWhvdXNlLXBsdWdpbiIsICJuby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuIiwgIm5vLXVucmVzb2x2ZWQtanNkb2MtbGluayIsICJuby11bnVzZWQtcGFyYW1zLW1lbWJlcnMiLCAibm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyIsICJwYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIiwgInByZWZlci1ub29wLWFzeW5jIiwgInJlYWRvbmx5LXBhcmFtcy1vcHRpb25zLXJlc3VsdC1tZW1iZXJzIiwgInJlcXVpcmUtbWV0aG9kLXRlbXBsYXRlIiwgInJlcXVpcmUtc3VwZXItY2FsbCIsICJydWxlLXRlc3Rlci1oZWxwZXIiLCAidHMtZXN0cmVlLW5vZGUiXQp9Cg==
@@ -0,0 +1,10 @@
1
+ /// <reference path="../../library-references.d.mts" />
2
+ import type { Rule } from 'eslint';
3
+ /**
4
+ Message ID reported when an async function is passed as a callback to a parameter whose return type is `any`/`unknown`, risking an unhandled promise rejection.
5
+ */
6
+ export declare const MESSAGE_ID = "noAsyncCallbackToUnsafeReturn";
7
+ /**
8
+ * ESLint rule disallowing async functions passed as callbacks to parameters with an `any` or `unknown` return type, where the returned promise is silently dropped.
9
+ */
10
+ export declare const noAsyncCallbackToUnsafeReturn: Rule.RuleModule;
@@ -0,0 +1,144 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ (function initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import { assertNonNullable } from "@mnaoumov/typescript-lib/type-guards";
49
+ import {
50
+ isIdentifier,
51
+ isTypeAliasDeclaration,
52
+ isTypeReferenceNode,
53
+ isUnionTypeNode,
54
+ SymbolFlags,
55
+ TypeFlags
56
+ } from "typescript";
57
+ import { toTSESTreeNode } from "./ts-estree-node.mjs";
58
+ const MESSAGE_ID = "noAsyncCallbackToUnsafeReturn";
59
+ function hasUnsafeReturnCallSignature(checker, type) {
60
+ return type.getCallSignatures().some((sig) => isUnsafeReturnSignature(checker, sig));
61
+ }
62
+ function isAsyncFunctionNode(node) {
63
+ return (node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression") && node.async;
64
+ }
65
+ const UNSAFE_RETURN_FLAGS = TypeFlags.Any | TypeFlags.Unknown;
66
+ const PROMISE_TYPE_NAMES = /* @__PURE__ */ new Set(["Promise", "PromiseLike"]);
67
+ function containsPromiseReference(checker, node) {
68
+ if (isUnionTypeNode(node)) {
69
+ return node.types.some((member) => containsPromiseReference(checker, member));
70
+ }
71
+ if (isTypeReferenceNode(node)) {
72
+ const name = isIdentifier(node.typeName) ? node.typeName.text : "";
73
+ if (PROMISE_TYPE_NAMES.has(name)) {
74
+ return true;
75
+ }
76
+ let $symbol = checker.getSymbolAtLocation(node.typeName);
77
+ if ($symbol && $symbol.flags & SymbolFlags.Alias) {
78
+ $symbol = checker.getAliasedSymbol($symbol);
79
+ }
80
+ const declaration = $symbol?.declarations?.[0];
81
+ if (declaration && isTypeAliasDeclaration(declaration)) {
82
+ return containsPromiseReference(checker, declaration.type);
83
+ }
84
+ }
85
+ return false;
86
+ }
87
+ function isUnsafeReturnSignature(checker, sig) {
88
+ const returnType = checker.getReturnTypeOfSignature(sig);
89
+ if (!(returnType.flags & UNSAFE_RETURN_FLAGS)) {
90
+ return false;
91
+ }
92
+ const declaration = sig.getDeclaration();
93
+ const returnTypeNode = declaration.type;
94
+ assertNonNullable(returnTypeNode, "Signature declarations with any/unknown return always have a return type annotation");
95
+ return !containsPromiseReference(checker, returnTypeNode);
96
+ }
97
+ const noAsyncCallbackToUnsafeReturn = {
98
+ create(context) {
99
+ const services = context.sourceCode.parserServices;
100
+ const checker = services.program.getTypeChecker();
101
+ return {
102
+ CallExpression(node) {
103
+ const callNode = toTSESTreeNode(node);
104
+ for (let index = 0; index < callNode.arguments.length; index++) {
105
+ const argument = callNode.arguments[index];
106
+ if (!argument || !isAsyncFunctionNode(argument)) {
107
+ continue;
108
+ }
109
+ const tsCalleeNode = services.esTreeNodeToTSNodeMap.get(callNode.callee);
110
+ const calleeType = checker.getTypeAtLocation(tsCalleeNode);
111
+ for (const sig of calleeType.getCallSignatures()) {
112
+ const parameter = sig.getParameters()[index];
113
+ if (!parameter) {
114
+ continue;
115
+ }
116
+ const parameterType = checker.getTypeOfSymbol(parameter);
117
+ if (hasUnsafeReturnCallSignature(checker, parameterType)) {
118
+ context.report({
119
+ messageId: MESSAGE_ID,
120
+ node: argument
121
+ });
122
+ break;
123
+ }
124
+ }
125
+ }
126
+ }
127
+ };
128
+ },
129
+ meta: {
130
+ docs: {
131
+ description: "Disallow passing async functions as callbacks to parameters with `any` or `unknown` return type"
132
+ },
133
+ messages: {
134
+ [MESSAGE_ID]: "Async function passed as callback to a parameter with `any`/`unknown` return type. This may cause unhandled promise rejections. Wrap the call: `(...args) => { yourAsyncFn(...args); }`."
135
+ },
136
+ schema: [],
137
+ type: "problem"
138
+ }
139
+ };
140
+ export {
141
+ MESSAGE_ID,
142
+ noAsyncCallbackToUnsafeReturn
143
+ };
144
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVyblxuICpcbiAqIFJlcG9ydHMgYW4gZXJyb3Igd2hlbiBhbiBhc3luYyBmdW5jdGlvbiBpcyBwYXNzZWQgYXMgYSBjYWxsYmFjayBhcmd1bWVudFxuICogdG8gYSBmdW5jdGlvbiBwYXJhbWV0ZXIgd2hvc2UgcmV0dXJuIHR5cGUgaXMgYGFueWAgb3IgYHVua25vd25gLiBCZWNhdXNlXG4gKiB0aGVzZSB0eXBlcyBzaWxlbnRseSBhY2NlcHQgYFByb21pc2U8VD5gLCB0aGUgY2FsbGVyIHdvbid0IGF3YWl0IHRoZVxuICogcmVzdWx0LCBsZWFkaW5nIHRvIHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbnMgYXQgcnVudGltZS5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gb25DbGljayhmbjogKGV2dDogTW91c2VFdmVudCkgPT4gYW55KVxuICogYnV0dG9uLm9uQ2xpY2soYXN5bmMgKCkgPT4ge1xuICogICBhd2FpdCBzb21lRm4oKTsgLy8gVW5oYW5kbGVkIHJlamVjdGlvbiBpZiBzb21lRm4gdGhyb3dzXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIGBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlc2Agb25seSBjYXRjaGVzIGA9PiB2b2lkYCBjYWxsYmFja3MuXG4gKiBUaGlzIHJ1bGUgY2xvc2VzIHRoZSBnYXAgZm9yIGA9PiBhbnlgIGFuZCBgPT4gdW5rbm93bmAgY2FsbGJhY2tzLlxuICovXG5pbXBvcnQgdHlwZSB7XG4gIFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbixcbiAgVFNFU1RyZWVcbn0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7XG4gIFNpZ25hdHVyZSxcbiAgVHlwZSxcbiAgVHlwZUNoZWNrZXIsXG4gIFR5cGVOb2RlXG59IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQge1xuICBpc0lkZW50aWZpZXIsXG4gIGlzVHlwZUFsaWFzRGVjbGFyYXRpb24sXG4gIGlzVHlwZVJlZmVyZW5jZU5vZGUsXG4gIGlzVW5pb25UeXBlTm9kZSxcbiAgU3ltYm9sRmxhZ3MsXG4gIFR5cGVGbGFnc1xufSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgdG9UU0VTVHJlZU5vZGUgfSBmcm9tICcuL3RzLWVzdHJlZS1ub2RlLnRzJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYW4gYXN5bmMgZnVuY3Rpb24gaXMgcGFzc2VkIGFzIGEgY2FsbGJhY2sgdG8gYSBwYXJhbWV0ZXIgd2hvc2UgcmV0dXJuIHR5cGUgaXMgYGFueWAvYHVua25vd25gLCByaXNraW5nIGFuIHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAnbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4nO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBUeXBlU2NyaXB0IHR5cGUgaXMgYSBmdW5jdGlvbiB0eXBlIHdpdGggYW4gdW5zYWZlXG4gKiByZXR1cm4gdHlwZSBmb3IgYXN5bmMgY2FsbGJhY2tzLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHR5cGUgaGFzIGF0IGxlYXN0IG9uZSBjYWxsIHNpZ25hdHVyZSB3aXRoIGFuIHVuc2FmZSByZXR1cm4uXG4gKi9cbmZ1bmN0aW9uIGhhc1Vuc2FmZVJldHVybkNhbGxTaWduYXR1cmUoY2hlY2tlcjogVHlwZUNoZWNrZXIsIHR5cGU6IFR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGUuZ2V0Q2FsbFNpZ25hdHVyZXMoKS5zb21lKChzaWcpID0+IGlzVW5zYWZlUmV0dXJuU2lnbmF0dXJlKGNoZWNrZXIsIHNpZykpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbm9kZSBpcyBhbiBhc3luYyBmdW5jdGlvbiBleHByZXNzaW9uIChhcnJvdyBvciByZWd1bGFyKS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIEFTVCBub2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGFuIGFzeW5jIGFycm93IG9yIGZ1bmN0aW9uIGV4cHJlc3Npb24uXG4gKi9cbmZ1bmN0aW9uIGlzQXN5bmNGdW5jdGlvbk5vZGUobm9kZTogVFNFU1RyZWUuTm9kZSk6IG5vZGUgaXMgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gfCBUU0VTVHJlZS5GdW5jdGlvbkV4cHJlc3Npb24ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLlxuICByZXR1cm4gKG5vZGUudHlwZSA9PT0gJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyB8fCBub2RlLnR5cGUgPT09ICdGdW5jdGlvbkV4cHJlc3Npb24nKSAmJiBub2RlLmFzeW5jO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgbWFzayBpcyBpZGlvbWF0aWMgZm9yIFR5cGVTY3JpcHQgY29tcGlsZXIgQVBJLlxuY29uc3QgVU5TQUZFX1JFVFVSTl9GTEFHUyA9IFR5cGVGbGFncy5BbnkgfCBUeXBlRmxhZ3MuVW5rbm93bjtcblxuY29uc3QgUFJPTUlTRV9UWVBFX05BTUVTID0gbmV3IFNldChbJ1Byb21pc2UnLCAnUHJvbWlzZUxpa2UnXSk7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB0eXBlIG5vZGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gYFByb21pc2VgIG9yIGBQcm9taXNlTGlrZWAsXG4gKiBlaXRoZXIgZGlyZWN0bHkgb3IgdGhyb3VnaCBhIHR5cGUgYWxpYXMuIFRoaXMgaW5kaWNhdGVzIHRoZSBjYWxsZXIgZXhwbGljaXRseVxuICogYWNjb3VudHMgZm9yIHByb21pc2UgcmV0dXJucy5cbiAqXG4gKiBAcGFyYW0gY2hlY2tlciAtIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG5vZGUgLSBUaGUgdHlwZSBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgcmVmZXJlbmNlcyBgUHJvbWlzZWAgb3IgYFByb21pc2VMaWtlYC5cbiAqL1xuZnVuY3Rpb24gY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXI6IFR5cGVDaGVja2VyLCBub2RlOiBUeXBlTm9kZSk6IGJvb2xlYW4ge1xuICBpZiAoaXNVbmlvblR5cGVOb2RlKG5vZGUpKSB7XG4gICAgcmV0dXJuIG5vZGUudHlwZXMuc29tZSgobWVtYmVyKSA9PiBjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlciwgbWVtYmVyKSk7XG4gIH1cblxuICBpZiAoaXNUeXBlUmVmZXJlbmNlTm9kZShub2RlKSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBRdWFsaWZpZWQgbmFtZXMgKGUuZy4sIG5zLlByb21pc2UpIGFuZCBpbXBvcnQgYWxpYXNlcyByZXF1aXJlIG11bHRpLWZpbGUgc2V0dXAgbm90IGF2YWlsYWJsZSBpbiBSdWxlVGVzdGVyLiAqL1xuICAgIGNvbnN0IG5hbWUgPSBpc0lkZW50aWZpZXIobm9kZS50eXBlTmFtZSkgPyBub2RlLnR5cGVOYW1lLnRleHQgOiAnJztcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGlmIChQUk9NSVNFX1RZUEVfTkFNRVMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIHR5cGUgYWxpYXMgKGZvbGxvd2luZyBpbXBvcnRzKSBhbmQgY2hlY2sgaXRzIGRlZmluaXRpb24gYm9keVxuICAgIGxldCAkc3ltYm9sID0gY2hlY2tlci5nZXRTeW1ib2xBdExvY2F0aW9uKG5vZGUudHlwZU5hbWUpO1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbXBvcnQgYWxpYXNlcyByZXF1aXJlIG11bHRpLWZpbGUgc2V0dXAgbm90IGF2YWlsYWJsZSBpbiBSdWxlVGVzdGVyLiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlIC0tIEJpdHdpc2UgZmxhZyBjaGVjayBpcyBpZGlvbWF0aWMgZm9yIFR5cGVTY3JpcHQgY29tcGlsZXIgQVBJLlxuICAgIGlmICgkc3ltYm9sICYmICRzeW1ib2wuZmxhZ3MgJiBTeW1ib2xGbGFncy5BbGlhcykge1xuICAgICAgJHN5bWJvbCA9IGNoZWNrZXIuZ2V0QWxpYXNlZFN5bWJvbCgkc3ltYm9sKTtcbiAgICB9XG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9ICRzeW1ib2w/LmRlY2xhcmF0aW9ucz8uWzBdO1xuICAgIGlmIChkZWNsYXJhdGlvbiAmJiBpc1R5cGVBbGlhc0RlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdXNlbGVzcy1yZWN1cnNpb24gLS0gVGhpcyBmdW5jdGlvbiByZWN1cnNlcyBpbiB0d28gcGxhY2VzOiBoZXJlLCBmb2xsb3dpbmcgYSB0eXBlIGFsaWFzLCBhbmQgYWJvdmUsIGZhbm5pbmcgb3V0IG92ZXIgdGhlIG1lbWJlcnMgb2YgYSB1bmlvbi4gT25seSB0aGlzIG9uZSBpcyBhIHRhaWwgY2FsbCwgc28gdHVybmluZyBpdCBpbnRvIGEgbG9vcCB3b3VsZCBsZWF2ZSB0aGUgZnVuY3Rpb24gaGFsZiByZWN1cnNpdmUgYW5kIGhhbGYgaXRlcmF0aXZlIG92ZXIgdGhlIHNhbWUgdHJlZS5cbiAgICAgIHJldHVybiBjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlciwgZGVjbGFyYXRpb24udHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBzaWduYXR1cmUgaGFzIGFuIHVuc2FmZSByZXR1cm4gdHlwZSAoYGFueWAgb3IgYHVua25vd25gKVxuICogd2l0aG91dCBleHBsaWNpdGx5IGFjY291bnRpbmcgZm9yIHByb21pc2VzLlxuICpcbiAqIEZsYWdzIGJhcmUgYGFueWAsIGB1bmtub3duYCwgYW5kIHVuaW9ucyBsaWtlIGBhbnkgfCBzdHJpbmdgIHRoYXQgcmVzb2x2ZSB0b1xuICogYGFueWAvYHVua25vd25gIHdpdGhvdXQgaW5jbHVkaW5nIGBQcm9taXNlYC9gUHJvbWlzZUxpa2VgLiBEb2VzIE5PVCBmbGFnIHR5cGVcbiAqIGFsaWFzZXMgbGlrZSBgQXdhaXRhYmxlPFQ+YCBvciB1bmlvbnMgbGlrZSBgYW55IHwgUHJvbWlzZTxhbnk+YCB0aGF0IGV4cGxpY2l0bHlcbiAqIGhhbmRsZSBwcm9taXNlIHJldHVybnMuXG4gKlxuICogQHBhcmFtIGNoZWNrZXIgLSBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlci5cbiAqIEBwYXJhbSBzaWcgLSBUaGUgY2FsbCBzaWduYXR1cmUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgdW5zYWZlIGZvciBhc3luYyBjYWxsYmFja3MuXG4gKi9cbmZ1bmN0aW9uIGlzVW5zYWZlUmV0dXJuU2lnbmF0dXJlKGNoZWNrZXI6IFR5cGVDaGVja2VyLCBzaWc6IFNpZ25hdHVyZSk6IGJvb2xlYW4ge1xuICBjb25zdCByZXR1cm5UeXBlID0gY2hlY2tlci5nZXRSZXR1cm5UeXBlT2ZTaWduYXR1cmUoc2lnKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgY2hlY2sgaXMgaWRpb21hdGljIGZvciBUeXBlU2NyaXB0IGNvbXBpbGVyIEFQSS5cbiAgaWYgKCEocmV0dXJuVHlwZS5mbGFncyAmIFVOU0FGRV9SRVRVUk5fRkxBR1MpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQ2hlY2sgdGhlIHN5bnRhY3RpYyByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLiBJZiBpdCBjb250YWlucyBhIHJlZmVyZW5jZSB0b1xuICAvLyBQcm9taXNlL1Byb21pc2VMaWtlIChkaXJlY3RseSBvciB2aWEgYSB0eXBlIGFsaWFzKSwgdGhlIGNhbGxlciBleHBsaWNpdGx5XG4gIC8vIGhhbmRsZXMgYXN5bmMgcmV0dXJucyBhbmQgc2hvdWxkIG5vdCBiZSBmbGFnZ2VkLlxuICBjb25zdCBkZWNsYXJhdGlvbiA9IHNpZy5nZXREZWNsYXJhdGlvbigpO1xuICBjb25zdCByZXR1cm5UeXBlTm9kZSA9IGRlY2xhcmF0aW9uLnR5cGU7XG4gIGFzc2VydE5vbk51bGxhYmxlKHJldHVyblR5cGVOb2RlLCAnU2lnbmF0dXJlIGRlY2xhcmF0aW9ucyB3aXRoIGFueS91bmtub3duIHJldHVybiBhbHdheXMgaGF2ZSBhIHJldHVybiB0eXBlIGFubm90YXRpb24nKTtcblxuICByZXR1cm4gIWNvbnRhaW5zUHJvbWlzZVJlZmVyZW5jZShjaGVja2VyLCByZXR1cm5UeXBlTm9kZSk7XG59XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgZGlzYWxsb3dpbmcgYXN5bmMgZnVuY3Rpb25zIHBhc3NlZCBhcyBjYWxsYmFja3MgdG8gcGFyYW1ldGVycyB3aXRoIGFuIGBhbnlgIG9yIGB1bmtub3duYCByZXR1cm4gdHlwZSwgd2hlcmUgdGhlIHJldHVybmVkIHByb21pc2UgaXMgc2lsZW50bHkgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBjb250ZXh0LnNvdXJjZUNvZGUucGFyc2VyU2VydmljZXMgYXMgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uO1xuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxOb2RlID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XG5cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxOb2RlLmFyZ3VtZW50cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBhcmd1bWVudCA9IGNhbGxOb2RlLmFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgICAgaWYgKCFhcmd1bWVudCB8fCAhaXNBc3luY0Z1bmN0aW9uTm9kZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRzQ2FsbGVlTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoY2FsbE5vZGUuY2FsbGVlKTtcbiAgICAgICAgICBjb25zdCBjYWxsZWVUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NhbGxlZU5vZGUpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBzaWcgb2YgY2FsbGVlVHlwZS5nZXRDYWxsU2lnbmF0dXJlcygpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbWV0ZXIgPSBzaWcuZ2V0UGFyYW1ldGVycygpW2luZGV4XTtcbiAgICAgICAgICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJhbWV0ZXJUeXBlID0gY2hlY2tlci5nZXRUeXBlT2ZTeW1ib2wocGFyYW1ldGVyKTtcblxuICAgICAgICAgICAgaWYgKGhhc1Vuc2FmZVJldHVybkNhbGxTaWduYXR1cmUoY2hlY2tlciwgcGFyYW1ldGVyVHlwZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRCxcbiAgICAgICAgICAgICAgICBub2RlOiBhcmd1bWVudFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGlzYWxsb3cgcGFzc2luZyBhc3luYyBmdW5jdGlvbnMgYXMgY2FsbGJhY2tzIHRvIHBhcmFtZXRlcnMgd2l0aCBgYW55YCBvciBgdW5rbm93bmAgcmV0dXJuIHR5cGUnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnQXN5bmMgZnVuY3Rpb24gcGFzc2VkIGFzIGNhbGxiYWNrIHRvIGEgcGFyYW1ldGVyIHdpdGggYGFueWAvYHVua25vd25gIHJldHVybiB0eXBlLiBUaGlzIG1heSBjYXVzZSB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zLiBXcmFwIHRoZSBjYWxsOiBgKC4uLmFyZ3MpID0+IHsgeW91ckFzeW5jRm4oLi4uYXJncyk7IH1gLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlDQSxTQUFTLHlCQUF5QjtBQUNsQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLHNCQUFzQjtBQUt4QixNQUFNLGFBQWE7QUFVMUIsU0FBUyw2QkFBNkIsU0FBc0IsTUFBcUI7QUFDL0UsU0FBTyxLQUFLLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxRQUFRLHdCQUF3QixTQUFTLEdBQUcsQ0FBQztBQUNyRjtBQVFBLFNBQVMsb0JBQW9CLE1BQTZGO0FBRXhILFVBQVEsS0FBSyxTQUFTLDZCQUE2QixLQUFLLFNBQVMseUJBQXlCLEtBQUs7QUFDakc7QUFHQSxNQUFNLHNCQUFzQixVQUFVLE1BQU0sVUFBVTtBQUV0RCxNQUFNLHFCQUFxQixvQkFBSSxJQUFJLENBQUMsV0FBVyxhQUFhLENBQUM7QUFXN0QsU0FBUyx5QkFBeUIsU0FBc0IsTUFBeUI7QUFDL0UsTUFBSSxnQkFBZ0IsSUFBSSxHQUFHO0FBQ3pCLFdBQU8sS0FBSyxNQUFNLEtBQUssQ0FBQyxXQUFXLHlCQUF5QixTQUFTLE1BQU0sQ0FBQztBQUFBLEVBQzlFO0FBRUEsTUFBSSxvQkFBb0IsSUFBSSxHQUFHO0FBRTdCLFVBQU0sT0FBTyxhQUFhLEtBQUssUUFBUSxJQUFJLEtBQUssU0FBUyxPQUFPO0FBRWhFLFFBQUksbUJBQW1CLElBQUksSUFBSSxHQUFHO0FBQ2hDLGFBQU87QUFBQSxJQUNUO0FBR0EsUUFBSSxVQUFVLFFBQVEsb0JBQW9CLEtBQUssUUFBUTtBQUd2RCxRQUFJLFdBQVcsUUFBUSxRQUFRLFlBQVksT0FBTztBQUNoRCxnQkFBVSxRQUFRLGlCQUFpQixPQUFPO0FBQUEsSUFDNUM7QUFFQSxVQUFNLGNBQWMsU0FBUyxlQUFlLENBQUM7QUFDN0MsUUFBSSxlQUFlLHVCQUF1QixXQUFXLEdBQUc7QUFFdEQsYUFBTyx5QkFBeUIsU0FBUyxZQUFZLElBQUk7QUFBQSxJQUMzRDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFlQSxTQUFTLHdCQUF3QixTQUFzQixLQUF5QjtBQUM5RSxRQUFNLGFBQWEsUUFBUSx5QkFBeUIsR0FBRztBQUd2RCxNQUFJLEVBQUUsV0FBVyxRQUFRLHNCQUFzQjtBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUtBLFFBQU0sY0FBYyxJQUFJLGVBQWU7QUFDdkMsUUFBTSxpQkFBaUIsWUFBWTtBQUNuQyxvQkFBa0IsZ0JBQWdCLHFGQUFxRjtBQUV2SCxTQUFPLENBQUMseUJBQXlCLFNBQVMsY0FBYztBQUMxRDtBQUtPLE1BQU0sZ0NBQWlEO0FBQUEsRUFDNUQsT0FBTyxTQUFTO0FBQ2QsVUFBTSxXQUFXLFFBQVEsV0FBVztBQUNwQyxVQUFNLFVBQVUsU0FBUyxRQUFRLGVBQWU7QUFFaEQsV0FBTztBQUFBLE1BQ0wsZUFBZSxNQUF1QjtBQUNwQyxjQUFNLFdBQVcsZUFBZSxJQUFJO0FBRXBDLGlCQUFTLFFBQVEsR0FBRyxRQUFRLFNBQVMsVUFBVSxRQUFRLFNBQVM7QUFDOUQsZ0JBQU0sV0FBVyxTQUFTLFVBQVUsS0FBSztBQUN6QyxjQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixRQUFRLEdBQUc7QUFDL0M7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sZUFBZSxTQUFTLHNCQUFzQixJQUFJLFNBQVMsTUFBTTtBQUN2RSxnQkFBTSxhQUFhLFFBQVEsa0JBQWtCLFlBQVk7QUFFekQscUJBQVcsT0FBTyxXQUFXLGtCQUFrQixHQUFHO0FBQ2hELGtCQUFNLFlBQVksSUFBSSxjQUFjLEVBQUUsS0FBSztBQUMzQyxnQkFBSSxDQUFDLFdBQVc7QUFDZDtBQUFBLFlBQ0Y7QUFFQSxrQkFBTSxnQkFBZ0IsUUFBUSxnQkFBZ0IsU0FBUztBQUV2RCxnQkFBSSw2QkFBNkIsU0FBUyxhQUFhLEdBQUc7QUFDeEQsc0JBQVEsT0FBTztBQUFBLGdCQUNiLFdBQVc7QUFBQSxnQkFDWCxNQUFNO0FBQUEsY0FDUixDQUFDO0FBQ0Q7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixDQUFDLFVBQVUsR0FBRztBQUFBLElBQ2hCO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxJQUNULE1BQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,10 @@
1
+ /// <reference path="../../library-references.d.mts" />
2
+ import type { Rule } from 'eslint';
3
+ /**
4
+ * Message ID reported when a JSDoc link target does not resolve to a symbol.
5
+ */
6
+ export declare const MESSAGE_ID = "noUnresolvedJsdocLink";
7
+ /**
8
+ * The ESLint rule that reports JSDoc links whose target does not resolve.
9
+ */
10
+ export declare const noUnresolvedJsdocLink: Rule.RuleModule;