index.d.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. /**
  2. * Message.
  3. */
  4. export class VFileMessage extends Error {
  5. /**
  6. * Create a message for `reason`.
  7. *
  8. * > 🪦 **Note**: also has obsolete signatures.
  9. *
  10. * @overload
  11. * @param {string} reason
  12. * @param {Options | null | undefined} [options]
  13. * @returns
  14. *
  15. * @overload
  16. * @param {string} reason
  17. * @param {Node | NodeLike | null | undefined} parent
  18. * @param {string | null | undefined} [origin]
  19. * @returns
  20. *
  21. * @overload
  22. * @param {string} reason
  23. * @param {Point | Position | null | undefined} place
  24. * @param {string | null | undefined} [origin]
  25. * @returns
  26. *
  27. * @overload
  28. * @param {string} reason
  29. * @param {string | null | undefined} [origin]
  30. * @returns
  31. *
  32. * @overload
  33. * @param {Error | VFileMessage} cause
  34. * @param {Node | NodeLike | null | undefined} parent
  35. * @param {string | null | undefined} [origin]
  36. * @returns
  37. *
  38. * @overload
  39. * @param {Error | VFileMessage} cause
  40. * @param {Point | Position | null | undefined} place
  41. * @param {string | null | undefined} [origin]
  42. * @returns
  43. *
  44. * @overload
  45. * @param {Error | VFileMessage} cause
  46. * @param {string | null | undefined} [origin]
  47. * @returns
  48. *
  49. * @param {Error | VFileMessage | string} causeOrReason
  50. * Reason for message, should use markdown.
  51. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  52. * Configuration (optional).
  53. * @param {string | null | undefined} [origin]
  54. * Place in code where the message originates (example:
  55. * `'my-package:my-rule'` or `'my-rule'`).
  56. * @returns
  57. * Instance of `VFileMessage`.
  58. */
  59. constructor(reason: string, options?: Options | null | undefined);
  60. /**
  61. * Create a message for `reason`.
  62. *
  63. * > 🪦 **Note**: also has obsolete signatures.
  64. *
  65. * @overload
  66. * @param {string} reason
  67. * @param {Options | null | undefined} [options]
  68. * @returns
  69. *
  70. * @overload
  71. * @param {string} reason
  72. * @param {Node | NodeLike | null | undefined} parent
  73. * @param {string | null | undefined} [origin]
  74. * @returns
  75. *
  76. * @overload
  77. * @param {string} reason
  78. * @param {Point | Position | null | undefined} place
  79. * @param {string | null | undefined} [origin]
  80. * @returns
  81. *
  82. * @overload
  83. * @param {string} reason
  84. * @param {string | null | undefined} [origin]
  85. * @returns
  86. *
  87. * @overload
  88. * @param {Error | VFileMessage} cause
  89. * @param {Node | NodeLike | null | undefined} parent
  90. * @param {string | null | undefined} [origin]
  91. * @returns
  92. *
  93. * @overload
  94. * @param {Error | VFileMessage} cause
  95. * @param {Point | Position | null | undefined} place
  96. * @param {string | null | undefined} [origin]
  97. * @returns
  98. *
  99. * @overload
  100. * @param {Error | VFileMessage} cause
  101. * @param {string | null | undefined} [origin]
  102. * @returns
  103. *
  104. * @param {Error | VFileMessage | string} causeOrReason
  105. * Reason for message, should use markdown.
  106. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  107. * Configuration (optional).
  108. * @param {string | null | undefined} [origin]
  109. * Place in code where the message originates (example:
  110. * `'my-package:my-rule'` or `'my-rule'`).
  111. * @returns
  112. * Instance of `VFileMessage`.
  113. */
  114. constructor(reason: string, parent: Node | NodeLike | null | undefined, origin?: string | null | undefined);
  115. /**
  116. * Create a message for `reason`.
  117. *
  118. * > 🪦 **Note**: also has obsolete signatures.
  119. *
  120. * @overload
  121. * @param {string} reason
  122. * @param {Options | null | undefined} [options]
  123. * @returns
  124. *
  125. * @overload
  126. * @param {string} reason
  127. * @param {Node | NodeLike | null | undefined} parent
  128. * @param {string | null | undefined} [origin]
  129. * @returns
  130. *
  131. * @overload
  132. * @param {string} reason
  133. * @param {Point | Position | null | undefined} place
  134. * @param {string | null | undefined} [origin]
  135. * @returns
  136. *
  137. * @overload
  138. * @param {string} reason
  139. * @param {string | null | undefined} [origin]
  140. * @returns
  141. *
  142. * @overload
  143. * @param {Error | VFileMessage} cause
  144. * @param {Node | NodeLike | null | undefined} parent
  145. * @param {string | null | undefined} [origin]
  146. * @returns
  147. *
  148. * @overload
  149. * @param {Error | VFileMessage} cause
  150. * @param {Point | Position | null | undefined} place
  151. * @param {string | null | undefined} [origin]
  152. * @returns
  153. *
  154. * @overload
  155. * @param {Error | VFileMessage} cause
  156. * @param {string | null | undefined} [origin]
  157. * @returns
  158. *
  159. * @param {Error | VFileMessage | string} causeOrReason
  160. * Reason for message, should use markdown.
  161. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  162. * Configuration (optional).
  163. * @param {string | null | undefined} [origin]
  164. * Place in code where the message originates (example:
  165. * `'my-package:my-rule'` or `'my-rule'`).
  166. * @returns
  167. * Instance of `VFileMessage`.
  168. */
  169. constructor(reason: string, place: Point | Position | null | undefined, origin?: string | null | undefined);
  170. /**
  171. * Create a message for `reason`.
  172. *
  173. * > 🪦 **Note**: also has obsolete signatures.
  174. *
  175. * @overload
  176. * @param {string} reason
  177. * @param {Options | null | undefined} [options]
  178. * @returns
  179. *
  180. * @overload
  181. * @param {string} reason
  182. * @param {Node | NodeLike | null | undefined} parent
  183. * @param {string | null | undefined} [origin]
  184. * @returns
  185. *
  186. * @overload
  187. * @param {string} reason
  188. * @param {Point | Position | null | undefined} place
  189. * @param {string | null | undefined} [origin]
  190. * @returns
  191. *
  192. * @overload
  193. * @param {string} reason
  194. * @param {string | null | undefined} [origin]
  195. * @returns
  196. *
  197. * @overload
  198. * @param {Error | VFileMessage} cause
  199. * @param {Node | NodeLike | null | undefined} parent
  200. * @param {string | null | undefined} [origin]
  201. * @returns
  202. *
  203. * @overload
  204. * @param {Error | VFileMessage} cause
  205. * @param {Point | Position | null | undefined} place
  206. * @param {string | null | undefined} [origin]
  207. * @returns
  208. *
  209. * @overload
  210. * @param {Error | VFileMessage} cause
  211. * @param {string | null | undefined} [origin]
  212. * @returns
  213. *
  214. * @param {Error | VFileMessage | string} causeOrReason
  215. * Reason for message, should use markdown.
  216. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  217. * Configuration (optional).
  218. * @param {string | null | undefined} [origin]
  219. * Place in code where the message originates (example:
  220. * `'my-package:my-rule'` or `'my-rule'`).
  221. * @returns
  222. * Instance of `VFileMessage`.
  223. */
  224. constructor(reason: string, origin?: string | null | undefined);
  225. /**
  226. * Create a message for `reason`.
  227. *
  228. * > 🪦 **Note**: also has obsolete signatures.
  229. *
  230. * @overload
  231. * @param {string} reason
  232. * @param {Options | null | undefined} [options]
  233. * @returns
  234. *
  235. * @overload
  236. * @param {string} reason
  237. * @param {Node | NodeLike | null | undefined} parent
  238. * @param {string | null | undefined} [origin]
  239. * @returns
  240. *
  241. * @overload
  242. * @param {string} reason
  243. * @param {Point | Position | null | undefined} place
  244. * @param {string | null | undefined} [origin]
  245. * @returns
  246. *
  247. * @overload
  248. * @param {string} reason
  249. * @param {string | null | undefined} [origin]
  250. * @returns
  251. *
  252. * @overload
  253. * @param {Error | VFileMessage} cause
  254. * @param {Node | NodeLike | null | undefined} parent
  255. * @param {string | null | undefined} [origin]
  256. * @returns
  257. *
  258. * @overload
  259. * @param {Error | VFileMessage} cause
  260. * @param {Point | Position | null | undefined} place
  261. * @param {string | null | undefined} [origin]
  262. * @returns
  263. *
  264. * @overload
  265. * @param {Error | VFileMessage} cause
  266. * @param {string | null | undefined} [origin]
  267. * @returns
  268. *
  269. * @param {Error | VFileMessage | string} causeOrReason
  270. * Reason for message, should use markdown.
  271. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  272. * Configuration (optional).
  273. * @param {string | null | undefined} [origin]
  274. * Place in code where the message originates (example:
  275. * `'my-package:my-rule'` or `'my-rule'`).
  276. * @returns
  277. * Instance of `VFileMessage`.
  278. */
  279. constructor(cause: Error | VFileMessage, parent: Node | NodeLike | null | undefined, origin?: string | null | undefined);
  280. /**
  281. * Create a message for `reason`.
  282. *
  283. * > 🪦 **Note**: also has obsolete signatures.
  284. *
  285. * @overload
  286. * @param {string} reason
  287. * @param {Options | null | undefined} [options]
  288. * @returns
  289. *
  290. * @overload
  291. * @param {string} reason
  292. * @param {Node | NodeLike | null | undefined} parent
  293. * @param {string | null | undefined} [origin]
  294. * @returns
  295. *
  296. * @overload
  297. * @param {string} reason
  298. * @param {Point | Position | null | undefined} place
  299. * @param {string | null | undefined} [origin]
  300. * @returns
  301. *
  302. * @overload
  303. * @param {string} reason
  304. * @param {string | null | undefined} [origin]
  305. * @returns
  306. *
  307. * @overload
  308. * @param {Error | VFileMessage} cause
  309. * @param {Node | NodeLike | null | undefined} parent
  310. * @param {string | null | undefined} [origin]
  311. * @returns
  312. *
  313. * @overload
  314. * @param {Error | VFileMessage} cause
  315. * @param {Point | Position | null | undefined} place
  316. * @param {string | null | undefined} [origin]
  317. * @returns
  318. *
  319. * @overload
  320. * @param {Error | VFileMessage} cause
  321. * @param {string | null | undefined} [origin]
  322. * @returns
  323. *
  324. * @param {Error | VFileMessage | string} causeOrReason
  325. * Reason for message, should use markdown.
  326. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  327. * Configuration (optional).
  328. * @param {string | null | undefined} [origin]
  329. * Place in code where the message originates (example:
  330. * `'my-package:my-rule'` or `'my-rule'`).
  331. * @returns
  332. * Instance of `VFileMessage`.
  333. */
  334. constructor(cause: Error | VFileMessage, place: Point | Position | null | undefined, origin?: string | null | undefined);
  335. /**
  336. * Create a message for `reason`.
  337. *
  338. * > 🪦 **Note**: also has obsolete signatures.
  339. *
  340. * @overload
  341. * @param {string} reason
  342. * @param {Options | null | undefined} [options]
  343. * @returns
  344. *
  345. * @overload
  346. * @param {string} reason
  347. * @param {Node | NodeLike | null | undefined} parent
  348. * @param {string | null | undefined} [origin]
  349. * @returns
  350. *
  351. * @overload
  352. * @param {string} reason
  353. * @param {Point | Position | null | undefined} place
  354. * @param {string | null | undefined} [origin]
  355. * @returns
  356. *
  357. * @overload
  358. * @param {string} reason
  359. * @param {string | null | undefined} [origin]
  360. * @returns
  361. *
  362. * @overload
  363. * @param {Error | VFileMessage} cause
  364. * @param {Node | NodeLike | null | undefined} parent
  365. * @param {string | null | undefined} [origin]
  366. * @returns
  367. *
  368. * @overload
  369. * @param {Error | VFileMessage} cause
  370. * @param {Point | Position | null | undefined} place
  371. * @param {string | null | undefined} [origin]
  372. * @returns
  373. *
  374. * @overload
  375. * @param {Error | VFileMessage} cause
  376. * @param {string | null | undefined} [origin]
  377. * @returns
  378. *
  379. * @param {Error | VFileMessage | string} causeOrReason
  380. * Reason for message, should use markdown.
  381. * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
  382. * Configuration (optional).
  383. * @param {string | null | undefined} [origin]
  384. * Place in code where the message originates (example:
  385. * `'my-package:my-rule'` or `'my-rule'`).
  386. * @returns
  387. * Instance of `VFileMessage`.
  388. */
  389. constructor(cause: Error | VFileMessage, origin?: string | null | undefined);
  390. /**
  391. * Stack of ancestor nodes surrounding the message.
  392. *
  393. * @type {Array<Node> | undefined}
  394. */
  395. ancestors: Array<Node> | undefined;
  396. /**
  397. * Starting column of message.
  398. *
  399. * @type {number | undefined}
  400. */
  401. column: number | undefined;
  402. /**
  403. * State of problem.
  404. *
  405. * * `true` — error, file not usable
  406. * * `false` — warning, change may be needed
  407. * * `undefined` — change likely not needed
  408. *
  409. * @type {boolean | null | undefined}
  410. */
  411. fatal: boolean | null | undefined;
  412. /**
  413. * Path of a file (used throughout the `VFile` ecosystem).
  414. *
  415. * @type {string | undefined}
  416. */
  417. file: string | undefined;
  418. /**
  419. * Starting line of error.
  420. *
  421. * @type {number | undefined}
  422. */
  423. line: number | undefined;
  424. /**
  425. * Place of message.
  426. *
  427. * @type {Point | Position | undefined}
  428. */
  429. place: Point | Position | undefined;
  430. /**
  431. * Reason for message, should use markdown.
  432. *
  433. * @type {string}
  434. */
  435. reason: string;
  436. /**
  437. * Category of message (example: `'my-rule'`).
  438. *
  439. * @type {string | undefined}
  440. */
  441. ruleId: string | undefined;
  442. /**
  443. * Namespace of message (example: `'my-package'`).
  444. *
  445. * @type {string | undefined}
  446. */
  447. source: string | undefined;
  448. /**
  449. * Specify the source value that’s being reported, which is deemed
  450. * incorrect.
  451. *
  452. * @type {string | undefined}
  453. */
  454. actual: string | undefined;
  455. /**
  456. * Suggest acceptable values that can be used instead of `actual`.
  457. *
  458. * @type {Array<string> | undefined}
  459. */
  460. expected: Array<string> | undefined;
  461. /**
  462. * Long form description of the message (you should use markdown).
  463. *
  464. * @type {string | undefined}
  465. */
  466. note: string | undefined;
  467. /**
  468. * Link to docs for the message.
  469. *
  470. * > 👉 **Note**: this must be an absolute URL that can be passed as `x`
  471. * > to `new URL(x)`.
  472. *
  473. * @type {string | undefined}
  474. */
  475. url: string | undefined;
  476. }
  477. export type NodeLike = object & {
  478. type: string;
  479. position?: Position | undefined;
  480. };
  481. /**
  482. * Configuration.
  483. */
  484. export type Options = {
  485. /**
  486. * Stack of (inclusive) ancestor nodes surrounding the message (optional).
  487. */
  488. ancestors?: Array<Node> | null | undefined;
  489. /**
  490. * Original error cause of the message (optional).
  491. */
  492. cause?: Error | null | undefined;
  493. /**
  494. * Place of message (optional).
  495. */
  496. place?: Point | Position | null | undefined;
  497. /**
  498. * Category of message (optional, example: `'my-rule'`).
  499. */
  500. ruleId?: string | null | undefined;
  501. /**
  502. * Namespace of who sent the message (optional, example: `'my-package'`).
  503. */
  504. source?: string | null | undefined;
  505. };
  506. import type { Node } from 'unist';
  507. import type { Point } from 'unist';
  508. import type { Position } from 'unist';