shelving 1.236.0 → 1.236.2

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 (793) hide show
  1. package/api/cache/APICache.d.ts +69 -6
  2. package/api/cache/APICache.js +61 -5
  3. package/api/cache/EndpointCache.d.ts +75 -7
  4. package/api/cache/EndpointCache.js +75 -7
  5. package/api/endpoint/Endpoint.d.ts +141 -25
  6. package/api/endpoint/Endpoint.js +55 -9
  7. package/api/endpoint/util.d.ts +28 -6
  8. package/api/provider/APIProvider.d.ts +58 -14
  9. package/api/provider/APIProvider.js +24 -2
  10. package/api/provider/CachedAPIProvider.d.ts +58 -5
  11. package/api/provider/CachedAPIProvider.js +58 -6
  12. package/api/provider/ClientAPIProvider.d.ts +80 -4
  13. package/api/provider/ClientAPIProvider.js +75 -4
  14. package/api/provider/DebugAPIProvider.d.ts +40 -1
  15. package/api/provider/DebugAPIProvider.js +40 -1
  16. package/api/provider/JSONAPIProvider.d.ts +18 -2
  17. package/api/provider/JSONAPIProvider.js +18 -2
  18. package/api/provider/LoggingAPIProvider.d.ts +25 -2
  19. package/api/provider/LoggingAPIProvider.js +25 -2
  20. package/api/provider/MockAPIProvider.d.ts +72 -1
  21. package/api/provider/MockAPIProvider.js +60 -4
  22. package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
  23. package/api/provider/MockEndpointAPIProvider.js +9 -0
  24. package/api/provider/ThroughAPIProvider.d.ts +67 -1
  25. package/api/provider/ThroughAPIProvider.js +67 -1
  26. package/api/provider/ValidationAPIProvider.d.ts +32 -1
  27. package/api/provider/ValidationAPIProvider.js +32 -1
  28. package/api/provider/XMLAPIProvider.d.ts +18 -2
  29. package/api/provider/XMLAPIProvider.js +18 -2
  30. package/api/store/EndpointStore.d.ts +24 -1
  31. package/api/store/EndpointStore.js +24 -1
  32. package/bun/BunPostgreSQLProvider.d.ts +38 -0
  33. package/bun/BunPostgreSQLProvider.js +38 -2
  34. package/cloudflare/CloudflareD1Provider.d.ts +29 -2
  35. package/cloudflare/CloudflareD1Provider.js +29 -2
  36. package/cloudflare/CloudflareKVProvider.d.ts +115 -0
  37. package/cloudflare/CloudflareKVProvider.js +115 -0
  38. package/cloudflare/types.d.ts +41 -7
  39. package/db/cache/CollectionCache.d.ts +83 -7
  40. package/db/cache/CollectionCache.js +83 -7
  41. package/db/cache/DBCache.d.ts +93 -8
  42. package/db/cache/DBCache.js +85 -7
  43. package/db/collection/Collection.d.ts +103 -15
  44. package/db/collection/Collection.js +58 -6
  45. package/db/migrate/DBMigrator.d.ts +29 -1
  46. package/db/migrate/DBMigrator.js +20 -1
  47. package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
  48. package/db/migrate/PostgreSQLMigrator.js +8 -1
  49. package/db/migrate/SQLMigrator.d.ts +63 -4
  50. package/db/migrate/SQLMigrator.js +51 -1
  51. package/db/migrate/SQLiteMigrator.d.ts +8 -1
  52. package/db/migrate/SQLiteMigrator.js +8 -1
  53. package/db/provider/CacheDBProvider.d.ts +135 -1
  54. package/db/provider/CacheDBProvider.js +135 -1
  55. package/db/provider/ChangesDBProvider.d.ts +84 -3
  56. package/db/provider/ChangesDBProvider.js +77 -2
  57. package/db/provider/DBProvider.d.ts +148 -1
  58. package/db/provider/DBProvider.js +51 -1
  59. package/db/provider/DebugDBProvider.d.ts +118 -1
  60. package/db/provider/DebugDBProvider.js +118 -1
  61. package/db/provider/MemoryDBProvider.d.ts +262 -7
  62. package/db/provider/MemoryDBProvider.js +262 -7
  63. package/db/provider/MockDBProvider.d.ts +113 -2
  64. package/db/provider/MockDBProvider.js +106 -1
  65. package/db/provider/PostgreSQLProvider.d.ts +34 -2
  66. package/db/provider/PostgreSQLProvider.js +34 -4
  67. package/db/provider/SQLProvider.d.ts +250 -14
  68. package/db/provider/SQLProvider.js +237 -13
  69. package/db/provider/SQLiteProvider.d.ts +41 -1
  70. package/db/provider/SQLiteProvider.js +41 -4
  71. package/db/provider/ThroughDBProvider.d.ts +156 -1
  72. package/db/provider/ThroughDBProvider.js +156 -1
  73. package/db/provider/ValidationDBProvider.d.ts +120 -1
  74. package/db/provider/ValidationDBProvider.js +120 -1
  75. package/db/store/ItemStore.d.ts +38 -2
  76. package/db/store/ItemStore.js +38 -2
  77. package/db/store/QueryStore.d.ts +64 -6
  78. package/db/store/QueryStore.js +64 -6
  79. package/error/BaseError.d.ts +27 -2
  80. package/error/BaseError.js +14 -0
  81. package/error/Errors.d.ts +12 -1
  82. package/error/Errors.js +12 -1
  83. package/error/NetworkError.d.ts +13 -1
  84. package/error/NetworkError.js +13 -1
  85. package/error/RequestError.d.ts +90 -7
  86. package/error/RequestError.js +90 -7
  87. package/error/RequiredError.d.ts +11 -1
  88. package/error/RequiredError.js +11 -1
  89. package/error/ResponseError.d.ts +19 -2
  90. package/error/ResponseError.js +19 -2
  91. package/error/UnexpectedError.d.ts +14 -1
  92. package/error/UnexpectedError.js +14 -1
  93. package/error/UnimplementedError.d.ts +13 -1
  94. package/error/UnimplementedError.js +13 -1
  95. package/error/ValueError.d.ts +14 -1
  96. package/error/ValueError.js +14 -1
  97. package/extract/DirectoryExtractor.d.ts +35 -1
  98. package/extract/DirectoryExtractor.js +30 -0
  99. package/extract/Extractor.d.ts +21 -2
  100. package/extract/Extractor.js +7 -1
  101. package/extract/FileExtractor.d.ts +18 -0
  102. package/extract/FileExtractor.js +18 -0
  103. package/extract/IndexExtractor.d.ts +36 -1
  104. package/extract/IndexExtractor.js +31 -0
  105. package/extract/MarkupExtractor.d.ts +15 -0
  106. package/extract/MarkupExtractor.js +15 -0
  107. package/extract/MergingExtractor.d.ts +36 -1
  108. package/extract/MergingExtractor.js +31 -0
  109. package/extract/ModuleExtractor.d.ts +25 -1
  110. package/extract/ModuleExtractor.js +20 -0
  111. package/extract/PackageExtractor.d.ts +36 -1
  112. package/extract/PackageExtractor.js +31 -0
  113. package/extract/ThroughExtractor.d.ts +22 -1
  114. package/extract/ThroughExtractor.js +22 -1
  115. package/extract/TypescriptExtractor.d.ts +21 -0
  116. package/extract/TypescriptExtractor.js +28 -3
  117. package/firestore/client/FirestoreClientProvider.d.ts +129 -4
  118. package/firestore/client/FirestoreClientProvider.js +129 -4
  119. package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
  120. package/firestore/lite/FirestoreLiteProvider.js +128 -3
  121. package/firestore/server/FirestoreServerProvider.d.ts +129 -2
  122. package/firestore/server/FirestoreServerProvider.js +129 -2
  123. package/markup/MarkupParser.d.ts +57 -10
  124. package/markup/MarkupParser.js +50 -9
  125. package/markup/MarkupRule.d.ts +34 -1
  126. package/markup/Parser.d.ts +18 -0
  127. package/markup/Parser.js +11 -0
  128. package/markup/rule/blockquote.d.ts +3 -0
  129. package/markup/rule/blockquote.js +3 -0
  130. package/markup/rule/code.d.ts +3 -0
  131. package/markup/rule/code.js +3 -0
  132. package/markup/rule/fenced.d.ts +3 -0
  133. package/markup/rule/fenced.js +3 -0
  134. package/markup/rule/heading.d.ts +3 -0
  135. package/markup/rule/heading.js +3 -0
  136. package/markup/rule/index.d.ts +16 -3
  137. package/markup/rule/index.js +16 -3
  138. package/markup/rule/inline.d.ts +4 -1
  139. package/markup/rule/inline.js +5 -2
  140. package/markup/rule/linebreak.d.ts +3 -0
  141. package/markup/rule/linebreak.js +3 -0
  142. package/markup/rule/link.d.ts +6 -0
  143. package/markup/rule/link.js +6 -0
  144. package/markup/rule/ordered.d.ts +3 -0
  145. package/markup/rule/ordered.js +3 -0
  146. package/markup/rule/paragraph.d.ts +3 -0
  147. package/markup/rule/paragraph.js +3 -0
  148. package/markup/rule/separator.d.ts +3 -0
  149. package/markup/rule/separator.js +3 -0
  150. package/markup/rule/table.d.ts +3 -0
  151. package/markup/rule/table.js +3 -0
  152. package/markup/rule/unordered.d.ts +3 -0
  153. package/markup/rule/unordered.js +3 -0
  154. package/markup/util/regexp.d.ts +80 -3
  155. package/markup/util/regexp.js +44 -0
  156. package/package.json +1 -1
  157. package/react/createAPIContext.d.ts +15 -0
  158. package/react/createAPIContext.js +10 -0
  159. package/react/createDBContext.d.ts +15 -0
  160. package/react/createDBContext.js +10 -0
  161. package/react/useInstance.d.ts +11 -0
  162. package/react/useInstance.js +11 -0
  163. package/react/useLazy.d.ts +11 -0
  164. package/react/useMap.d.ts +14 -1
  165. package/react/useMap.js +14 -1
  166. package/react/useReduce.d.ts +12 -0
  167. package/react/useSequence.d.ts +10 -0
  168. package/react/useSequence.js +10 -0
  169. package/react/useStore.d.ts +16 -1
  170. package/schema/AddressSchema.d.ts +41 -4
  171. package/schema/AddressSchema.js +36 -3
  172. package/schema/ArraySchema.d.ts +48 -6
  173. package/schema/ArraySchema.js +40 -5
  174. package/schema/BooleanSchema.d.ts +59 -3
  175. package/schema/BooleanSchema.js +51 -2
  176. package/schema/ChoiceSchema.d.ts +61 -7
  177. package/schema/ChoiceSchema.js +44 -2
  178. package/schema/ColorSchema.d.ts +41 -8
  179. package/schema/ColorSchema.js +36 -7
  180. package/schema/CountrySchema.d.ts +44 -4
  181. package/schema/CountrySchema.js +39 -3
  182. package/schema/CurrencyAmountSchema.d.ts +104 -8
  183. package/schema/CurrencyAmountSchema.js +91 -4
  184. package/schema/CurrencyCodeSchema.d.ts +56 -4
  185. package/schema/CurrencyCodeSchema.js +49 -3
  186. package/schema/DataSchema.d.ts +101 -10
  187. package/schema/DataSchema.js +87 -8
  188. package/schema/DateSchema.d.ts +73 -4
  189. package/schema/DateSchema.js +57 -2
  190. package/schema/DateTimeSchema.d.ts +40 -3
  191. package/schema/DateTimeSchema.js +40 -3
  192. package/schema/DictionarySchema.d.ts +54 -4
  193. package/schema/DictionarySchema.js +47 -3
  194. package/schema/EmailSchema.d.ts +34 -3
  195. package/schema/EmailSchema.js +34 -3
  196. package/schema/EntitySchema.d.ts +45 -4
  197. package/schema/EntitySchema.js +38 -3
  198. package/schema/FileSchema.d.ts +45 -4
  199. package/schema/FileSchema.js +39 -3
  200. package/schema/KeySchema.d.ts +32 -3
  201. package/schema/KeySchema.js +32 -3
  202. package/schema/NullableSchema.d.ts +64 -4
  203. package/schema/NullableSchema.js +59 -3
  204. package/schema/NumberSchema.d.ts +137 -12
  205. package/schema/NumberSchema.js +127 -11
  206. package/schema/OptionalSchema.d.ts +61 -4
  207. package/schema/OptionalSchema.js +56 -4
  208. package/schema/PasswordSchema.d.ts +37 -1
  209. package/schema/PasswordSchema.js +32 -1
  210. package/schema/PhoneSchema.d.ts +40 -4
  211. package/schema/PhoneSchema.js +35 -3
  212. package/schema/RequiredSchema.d.ts +39 -3
  213. package/schema/RequiredSchema.js +41 -3
  214. package/schema/Schema.d.ts +67 -7
  215. package/schema/Schema.js +42 -6
  216. package/schema/SlugSchema.d.ts +37 -5
  217. package/schema/SlugSchema.js +37 -5
  218. package/schema/StringSchema.d.ts +124 -19
  219. package/schema/StringSchema.js +107 -17
  220. package/schema/ThroughSchema.d.ts +35 -2
  221. package/schema/ThroughSchema.js +30 -1
  222. package/schema/TimeSchema.d.ts +43 -3
  223. package/schema/TimeSchema.js +43 -3
  224. package/schema/URISchema.d.ts +67 -6
  225. package/schema/URISchema.js +60 -6
  226. package/schema/URLSchema.d.ts +69 -6
  227. package/schema/URLSchema.js +61 -6
  228. package/schema/UUIDSchema.d.ts +37 -4
  229. package/schema/UUIDSchema.js +37 -4
  230. package/sequence/DeferredSequence.d.ts +49 -3
  231. package/sequence/DeferredSequence.js +39 -3
  232. package/sequence/InspectSequence.d.ts +59 -5
  233. package/sequence/InspectSequence.js +59 -5
  234. package/sequence/LazySequence.d.ts +30 -2
  235. package/sequence/LazySequence.js +30 -2
  236. package/sequence/Sequence.d.ts +11 -0
  237. package/sequence/Sequence.js +10 -0
  238. package/sequence/ThroughSequence.d.ts +15 -0
  239. package/sequence/ThroughSequence.js +15 -0
  240. package/store/ArrayStore.d.ts +74 -11
  241. package/store/ArrayStore.js +74 -11
  242. package/store/BooleanStore.d.ts +19 -2
  243. package/store/BooleanStore.js +19 -2
  244. package/store/BusyStore.d.ts +13 -1
  245. package/store/BusyStore.js +13 -1
  246. package/store/DataStore.d.ts +118 -15
  247. package/store/DataStore.js +118 -15
  248. package/store/DictionaryStore.d.ts +66 -8
  249. package/store/DictionaryStore.js +66 -8
  250. package/store/FetchStore.d.ts +43 -6
  251. package/store/FetchStore.js +36 -5
  252. package/store/PathStore.d.ts +44 -5
  253. package/store/PathStore.js +44 -5
  254. package/store/PayloadFetchStore.d.ts +16 -1
  255. package/store/PayloadFetchStore.js +9 -1
  256. package/store/Store.d.ts +85 -16
  257. package/store/Store.js +52 -10
  258. package/store/URLStore.d.ts +173 -15
  259. package/store/URLStore.js +173 -15
  260. package/test/basics.d.ts +70 -0
  261. package/test/basics.js +60 -0
  262. package/test/people.d.ts +45 -0
  263. package/test/people.js +35 -0
  264. package/test/util.d.ts +30 -3
  265. package/test/util.js +30 -3
  266. package/ui/app/App.d.ts +14 -2
  267. package/ui/app/App.js +9 -2
  268. package/ui/app/App.tsx +14 -2
  269. package/ui/block/Address.d.ts +45 -3
  270. package/ui/block/Address.js +30 -3
  271. package/ui/block/Address.tsx +46 -3
  272. package/ui/block/Block.d.ts +23 -1
  273. package/ui/block/Block.js +13 -1
  274. package/ui/block/Block.tsx +23 -1
  275. package/ui/block/Blockquote.d.ts +21 -0
  276. package/ui/block/Blockquote.js +16 -0
  277. package/ui/block/Blockquote.tsx +22 -0
  278. package/ui/block/Caption.d.ts +21 -1
  279. package/ui/block/Caption.js +16 -1
  280. package/ui/block/Caption.tsx +22 -1
  281. package/ui/block/Card.d.ts +6 -0
  282. package/ui/block/Card.js +1 -0
  283. package/ui/block/Card.tsx +6 -0
  284. package/ui/block/Definitions.d.ts +18 -0
  285. package/ui/block/Definitions.js +13 -0
  286. package/ui/block/Definitions.tsx +19 -0
  287. package/ui/block/Divider.d.ts +21 -0
  288. package/ui/block/Divider.js +16 -0
  289. package/ui/block/Divider.tsx +22 -0
  290. package/ui/block/Heading.d.ts +20 -1
  291. package/ui/block/Heading.js +15 -0
  292. package/ui/block/Heading.tsx +21 -1
  293. package/ui/block/Image.d.ts +23 -0
  294. package/ui/block/Image.js +18 -0
  295. package/ui/block/Image.tsx +24 -0
  296. package/ui/block/Label.d.ts +18 -3
  297. package/ui/block/Label.js +13 -3
  298. package/ui/block/Label.tsx +18 -3
  299. package/ui/block/List.d.ts +30 -0
  300. package/ui/block/List.js +25 -0
  301. package/ui/block/List.tsx +32 -0
  302. package/ui/block/Panel.d.ts +13 -1
  303. package/ui/block/Panel.js +3 -0
  304. package/ui/block/Panel.tsx +13 -1
  305. package/ui/block/Paragraph.d.ts +23 -0
  306. package/ui/block/Paragraph.js +18 -0
  307. package/ui/block/Paragraph.tsx +24 -0
  308. package/ui/block/Preformatted.d.ts +20 -0
  309. package/ui/block/Preformatted.js +15 -0
  310. package/ui/block/Preformatted.tsx +21 -0
  311. package/ui/block/Prose.d.ts +14 -1
  312. package/ui/block/Prose.js +9 -1
  313. package/ui/block/Prose.tsx +14 -1
  314. package/ui/block/Section.d.ts +69 -6
  315. package/ui/block/Section.js +59 -6
  316. package/ui/block/Section.tsx +70 -6
  317. package/ui/block/Subheading.d.ts +20 -1
  318. package/ui/block/Subheading.js +15 -0
  319. package/ui/block/Subheading.tsx +21 -1
  320. package/ui/block/Table.d.ts +20 -0
  321. package/ui/block/Table.js +15 -0
  322. package/ui/block/Table.tsx +21 -0
  323. package/ui/block/Title.d.ts +20 -1
  324. package/ui/block/Title.js +15 -0
  325. package/ui/block/Title.tsx +21 -1
  326. package/ui/block/Video.d.ts +50 -3
  327. package/ui/block/Video.js +30 -3
  328. package/ui/block/Video.tsx +50 -3
  329. package/ui/dialog/Dialog.d.ts +28 -1
  330. package/ui/dialog/Dialog.js +18 -1
  331. package/ui/dialog/Dialog.tsx +28 -1
  332. package/ui/dialog/Dialogs.d.ts +53 -6
  333. package/ui/dialog/Dialogs.js +43 -6
  334. package/ui/dialog/Dialogs.tsx +53 -6
  335. package/ui/dialog/Modal.d.ts +13 -0
  336. package/ui/dialog/Modal.js +8 -0
  337. package/ui/dialog/Modal.tsx +13 -0
  338. package/ui/docs/DocumentationButtons.d.ts +5 -1
  339. package/ui/docs/DocumentationButtons.tsx +5 -1
  340. package/ui/docs/DocumentationCard.d.ts +6 -1
  341. package/ui/docs/DocumentationCard.js +6 -1
  342. package/ui/docs/DocumentationCard.tsx +6 -1
  343. package/ui/docs/DocumentationKind.d.ts +13 -1
  344. package/ui/docs/DocumentationKind.js +8 -0
  345. package/ui/docs/DocumentationKind.tsx +13 -1
  346. package/ui/docs/DocumentationPage.d.ts +6 -1
  347. package/ui/docs/DocumentationPage.js +6 -1
  348. package/ui/docs/DocumentationPage.tsx +6 -1
  349. package/ui/docs/DocumentationSignatures.d.ts +10 -1
  350. package/ui/docs/DocumentationSignatures.js +5 -0
  351. package/ui/docs/DocumentationSignatures.tsx +10 -1
  352. package/ui/form/ArrayInput.d.ts +15 -0
  353. package/ui/form/ArrayInput.tsx +15 -0
  354. package/ui/form/ArrayRadioInputs.d.ts +10 -0
  355. package/ui/form/ArrayRadioInputs.js +5 -0
  356. package/ui/form/ArrayRadioInputs.tsx +10 -0
  357. package/ui/form/Button.d.ts +19 -3
  358. package/ui/form/Button.js +14 -2
  359. package/ui/form/Button.tsx +19 -3
  360. package/ui/form/ButtonInput.d.ts +14 -1
  361. package/ui/form/ButtonInput.js +9 -1
  362. package/ui/form/ButtonInput.tsx +14 -1
  363. package/ui/form/ButtonInputPopover.d.ts +10 -0
  364. package/ui/form/ButtonInputPopover.js +5 -0
  365. package/ui/form/ButtonInputPopover.tsx +10 -0
  366. package/ui/form/ButtonPopover.d.ts +11 -1
  367. package/ui/form/ButtonPopover.js +6 -1
  368. package/ui/form/ButtonPopover.tsx +11 -1
  369. package/ui/form/CheckboxInput.d.ts +14 -1
  370. package/ui/form/CheckboxInput.js +9 -1
  371. package/ui/form/CheckboxInput.tsx +14 -1
  372. package/ui/form/ChoiceRadioInputs.d.ts +10 -0
  373. package/ui/form/ChoiceRadioInputs.tsx +10 -0
  374. package/ui/form/Clickable.d.ts +45 -5
  375. package/ui/form/Clickable.js +30 -3
  376. package/ui/form/Clickable.tsx +45 -5
  377. package/ui/form/DataInput.d.ts +14 -0
  378. package/ui/form/DataInput.tsx +14 -0
  379. package/ui/form/DateInput.d.ts +14 -0
  380. package/ui/form/DateInput.js +9 -0
  381. package/ui/form/DateInput.tsx +14 -0
  382. package/ui/form/DictionaryInput.d.ts +15 -0
  383. package/ui/form/DictionaryInput.tsx +15 -0
  384. package/ui/form/Field.d.ts +5 -0
  385. package/ui/form/Field.tsx +5 -0
  386. package/ui/form/FileInput.d.ts +14 -0
  387. package/ui/form/FileInput.js +9 -0
  388. package/ui/form/FileInput.tsx +14 -0
  389. package/ui/form/Form.d.ts +55 -6
  390. package/ui/form/Form.js +35 -3
  391. package/ui/form/Form.tsx +55 -6
  392. package/ui/form/FormContext.d.ts +24 -3
  393. package/ui/form/FormContext.js +5 -1
  394. package/ui/form/FormContext.tsx +24 -3
  395. package/ui/form/FormFields.d.ts +15 -2
  396. package/ui/form/FormFields.js +15 -2
  397. package/ui/form/FormFields.tsx +15 -2
  398. package/ui/form/FormFooter.d.ts +13 -3
  399. package/ui/form/FormFooter.js +8 -3
  400. package/ui/form/FormFooter.tsx +13 -3
  401. package/ui/form/FormInput.d.ts +21 -2
  402. package/ui/form/FormInput.js +16 -2
  403. package/ui/form/FormInput.tsx +21 -2
  404. package/ui/form/FormMessage.d.ts +8 -1
  405. package/ui/form/FormMessage.js +8 -1
  406. package/ui/form/FormMessage.tsx +8 -2
  407. package/ui/form/FormNotice.d.ts +8 -1
  408. package/ui/form/FormNotice.js +8 -1
  409. package/ui/form/FormNotice.tsx +8 -2
  410. package/ui/form/FormNotify.d.ts +8 -1
  411. package/ui/form/FormNotify.js +8 -1
  412. package/ui/form/FormNotify.tsx +8 -2
  413. package/ui/form/FormStore.d.ts +50 -6
  414. package/ui/form/FormStore.js +50 -6
  415. package/ui/form/FormStore.tsx +50 -6
  416. package/ui/form/Input.d.ts +65 -1
  417. package/ui/form/Input.js +60 -0
  418. package/ui/form/Input.tsx +77 -1
  419. package/ui/form/NumberInput.d.ts +14 -0
  420. package/ui/form/NumberInput.js +9 -0
  421. package/ui/form/NumberInput.tsx +14 -0
  422. package/ui/form/OutputInput.d.ts +13 -1
  423. package/ui/form/OutputInput.js +8 -1
  424. package/ui/form/OutputInput.tsx +13 -1
  425. package/ui/form/Popover.d.ts +18 -2
  426. package/ui/form/Popover.js +8 -2
  427. package/ui/form/Popover.tsx +18 -2
  428. package/ui/form/Progress.d.ts +26 -2
  429. package/ui/form/Progress.js +16 -2
  430. package/ui/form/Progress.tsx +26 -2
  431. package/ui/form/QueryInput.d.ts +14 -5
  432. package/ui/form/QueryInput.js +9 -5
  433. package/ui/form/QueryInput.tsx +14 -5
  434. package/ui/form/RadioInput.d.ts +14 -1
  435. package/ui/form/RadioInput.js +9 -1
  436. package/ui/form/RadioInput.tsx +14 -1
  437. package/ui/form/SchemaInput.d.ts +138 -7
  438. package/ui/form/SchemaInput.js +79 -4
  439. package/ui/form/SchemaInput.tsx +138 -7
  440. package/ui/form/SelectInput.d.ts +14 -0
  441. package/ui/form/SelectInput.tsx +14 -0
  442. package/ui/form/SubmitButton.d.ts +14 -1
  443. package/ui/form/SubmitButton.js +9 -1
  444. package/ui/form/SubmitButton.tsx +14 -1
  445. package/ui/form/TextInput.d.ts +15 -0
  446. package/ui/form/TextInput.js +10 -0
  447. package/ui/form/TextInput.tsx +15 -0
  448. package/ui/inline/Code.d.ts +29 -0
  449. package/ui/inline/Code.js +24 -0
  450. package/ui/inline/Code.tsx +31 -0
  451. package/ui/inline/Deleted.d.ts +23 -0
  452. package/ui/inline/Deleted.js +18 -0
  453. package/ui/inline/Deleted.tsx +24 -0
  454. package/ui/inline/Emphasis.d.ts +23 -0
  455. package/ui/inline/Emphasis.js +18 -0
  456. package/ui/inline/Emphasis.tsx +24 -0
  457. package/ui/inline/Inserted.d.ts +23 -0
  458. package/ui/inline/Inserted.js +18 -0
  459. package/ui/inline/Inserted.tsx +24 -0
  460. package/ui/inline/Link.d.ts +23 -0
  461. package/ui/inline/Link.js +18 -0
  462. package/ui/inline/Link.tsx +24 -0
  463. package/ui/inline/Mark.d.ts +23 -0
  464. package/ui/inline/Mark.js +18 -0
  465. package/ui/inline/Mark.tsx +24 -0
  466. package/ui/inline/Small.d.ts +23 -0
  467. package/ui/inline/Small.js +18 -0
  468. package/ui/inline/Small.tsx +24 -0
  469. package/ui/inline/Strong.d.ts +23 -0
  470. package/ui/inline/Strong.js +18 -0
  471. package/ui/inline/Strong.tsx +24 -0
  472. package/ui/inline/Subscript.d.ts +23 -0
  473. package/ui/inline/Subscript.js +18 -0
  474. package/ui/inline/Subscript.tsx +24 -0
  475. package/ui/inline/Superscript.d.ts +23 -0
  476. package/ui/inline/Superscript.js +18 -0
  477. package/ui/inline/Superscript.tsx +24 -0
  478. package/ui/inline/When.d.ts +42 -3
  479. package/ui/inline/When.js +27 -3
  480. package/ui/inline/When.tsx +42 -3
  481. package/ui/layout/CenteredLayout.d.ts +12 -1
  482. package/ui/layout/CenteredLayout.js +7 -1
  483. package/ui/layout/CenteredLayout.tsx +12 -1
  484. package/ui/layout/Layout.d.ts +12 -3
  485. package/ui/layout/Layout.js +12 -3
  486. package/ui/layout/Layout.ts +12 -3
  487. package/ui/layout/SidebarLayout.d.ts +12 -0
  488. package/ui/layout/SidebarLayout.js +7 -0
  489. package/ui/layout/SidebarLayout.tsx +12 -0
  490. package/ui/menu/Menu.d.ts +22 -0
  491. package/ui/menu/Menu.js +12 -0
  492. package/ui/menu/Menu.tsx +22 -0
  493. package/ui/misc/Catcher.d.ts +77 -5
  494. package/ui/misc/Catcher.js +47 -5
  495. package/ui/misc/Catcher.tsx +77 -5
  496. package/ui/misc/Loading.d.ts +20 -0
  497. package/ui/misc/Loading.js +15 -0
  498. package/ui/misc/Loading.tsx +20 -0
  499. package/ui/misc/Mapper.d.ts +13 -1
  500. package/ui/misc/Mapper.js +4 -0
  501. package/ui/misc/Mapper.tsx +13 -1
  502. package/ui/misc/Markup.d.ts +9 -1
  503. package/ui/misc/Markup.js +4 -0
  504. package/ui/misc/Markup.tsx +9 -1
  505. package/ui/misc/MetaContext.d.ts +24 -7
  506. package/ui/misc/MetaContext.js +19 -6
  507. package/ui/misc/MetaContext.tsx +24 -7
  508. package/ui/misc/StatusIcon.d.ts +16 -1
  509. package/ui/misc/StatusIcon.js +11 -1
  510. package/ui/misc/StatusIcon.tsx +16 -1
  511. package/ui/misc/Tag.d.ts +21 -0
  512. package/ui/misc/Tag.js +11 -0
  513. package/ui/misc/Tag.tsx +21 -0
  514. package/ui/notice/Message.d.ts +27 -1
  515. package/ui/notice/Message.js +22 -1
  516. package/ui/notice/Message.tsx +27 -1
  517. package/ui/notice/Notice.d.ts +24 -0
  518. package/ui/notice/Notice.js +19 -0
  519. package/ui/notice/Notice.tsx +24 -0
  520. package/ui/notice/NoticeStore.d.ts +30 -2
  521. package/ui/notice/NoticeStore.js +30 -2
  522. package/ui/notice/NoticeStore.ts +30 -2
  523. package/ui/notice/Notices.d.ts +11 -1
  524. package/ui/notice/Notices.js +6 -1
  525. package/ui/notice/Notices.tsx +11 -1
  526. package/ui/notice/NoticesStore.d.ts +23 -3
  527. package/ui/notice/NoticesStore.js +23 -3
  528. package/ui/notice/NoticesStore.ts +23 -3
  529. package/ui/page/HTML.d.ts +13 -2
  530. package/ui/page/HTML.js +8 -2
  531. package/ui/page/HTML.tsx +13 -2
  532. package/ui/page/Head.d.ts +5 -1
  533. package/ui/page/Head.js +5 -1
  534. package/ui/page/Head.tsx +5 -1
  535. package/ui/page/Page.d.ts +12 -1
  536. package/ui/page/Page.js +7 -1
  537. package/ui/page/Page.tsx +12 -1
  538. package/ui/router/Navigation.d.ts +11 -0
  539. package/ui/router/Navigation.js +6 -0
  540. package/ui/router/Navigation.tsx +11 -0
  541. package/ui/router/NavigationContext.d.ts +14 -2
  542. package/ui/router/NavigationContext.js +14 -2
  543. package/ui/router/NavigationContext.tsx +14 -2
  544. package/ui/router/NavigationStore.d.ts +29 -1
  545. package/ui/router/NavigationStore.js +29 -1
  546. package/ui/router/NavigationStore.tsx +29 -1
  547. package/ui/router/Router.d.ts +12 -1
  548. package/ui/router/Router.js +7 -1
  549. package/ui/router/Router.tsx +12 -1
  550. package/ui/router/Routes.d.ts +14 -4
  551. package/ui/router/Routes.tsx +14 -4
  552. package/ui/style/Color.d.ts +15 -2
  553. package/ui/style/Color.js +5 -0
  554. package/ui/style/Color.tsx +15 -2
  555. package/ui/style/Flex.d.ts +41 -4
  556. package/ui/style/Flex.js +26 -3
  557. package/ui/style/Flex.tsx +41 -4
  558. package/ui/style/Gap.d.ts +18 -3
  559. package/ui/style/Gap.js +8 -1
  560. package/ui/style/Gap.tsx +18 -3
  561. package/ui/style/Padding.d.ts +18 -3
  562. package/ui/style/Padding.js +8 -1
  563. package/ui/style/Padding.tsx +18 -3
  564. package/ui/style/Scroll.d.ts +36 -1
  565. package/ui/style/Scroll.js +26 -1
  566. package/ui/style/Scroll.tsx +37 -1
  567. package/ui/style/Space.d.ts +18 -3
  568. package/ui/style/Space.js +8 -1
  569. package/ui/style/Space.tsx +18 -3
  570. package/ui/style/Status.d.ts +23 -7
  571. package/ui/style/Status.js +13 -5
  572. package/ui/style/Status.tsx +23 -7
  573. package/ui/style/Tint.d.ts +7 -1
  574. package/ui/style/Tint.js +7 -1
  575. package/ui/style/Tint.tsx +7 -1
  576. package/ui/style/Typography.d.ts +38 -6
  577. package/ui/style/Typography.js +8 -0
  578. package/ui/style/Typography.tsx +38 -6
  579. package/ui/style/Width.d.ts +18 -1
  580. package/ui/style/Width.js +8 -0
  581. package/ui/style/Width.tsx +18 -1
  582. package/ui/transition/CollapseTransition.d.ts +13 -0
  583. package/ui/transition/CollapseTransition.js +8 -0
  584. package/ui/transition/CollapseTransition.tsx +13 -0
  585. package/ui/transition/FadeTransition.d.ts +13 -0
  586. package/ui/transition/FadeTransition.js +8 -0
  587. package/ui/transition/FadeTransition.tsx +13 -0
  588. package/ui/transition/HorizontalTransition.d.ts +13 -0
  589. package/ui/transition/HorizontalTransition.js +8 -0
  590. package/ui/transition/HorizontalTransition.tsx +13 -0
  591. package/ui/transition/Transition.d.ts +12 -4
  592. package/ui/transition/Transition.js +7 -3
  593. package/ui/transition/Transition.tsx +12 -4
  594. package/ui/transition/VerticalTransition.d.ts +13 -0
  595. package/ui/transition/VerticalTransition.js +8 -0
  596. package/ui/transition/VerticalTransition.tsx +13 -0
  597. package/ui/transition/util.d.ts +16 -6
  598. package/ui/transition/util.js +7 -1
  599. package/ui/transition/util.tsx +16 -6
  600. package/ui/tree/TreeApp.d.ts +11 -0
  601. package/ui/tree/TreeApp.js +6 -0
  602. package/ui/tree/TreeApp.tsx +11 -0
  603. package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
  604. package/ui/tree/TreeBreadcrumbs.js +6 -0
  605. package/ui/tree/TreeBreadcrumbs.tsx +11 -0
  606. package/ui/tree/TreeButton.d.ts +9 -1
  607. package/ui/tree/TreeButton.js +4 -0
  608. package/ui/tree/TreeButton.tsx +9 -1
  609. package/ui/tree/TreeCard.d.ts +8 -1
  610. package/ui/tree/TreeCard.js +8 -1
  611. package/ui/tree/TreeCard.tsx +8 -1
  612. package/ui/tree/TreeCards.d.ts +16 -1
  613. package/ui/tree/TreeCards.js +11 -1
  614. package/ui/tree/TreeCards.tsx +16 -1
  615. package/ui/tree/TreeContext.d.ts +18 -1
  616. package/ui/tree/TreeContext.js +18 -1
  617. package/ui/tree/TreeContext.tsx +18 -1
  618. package/ui/tree/TreeMenu.d.ts +28 -1
  619. package/ui/tree/TreeMenu.js +23 -1
  620. package/ui/tree/TreeMenu.tsx +28 -1
  621. package/ui/tree/TreePage.d.ts +6 -0
  622. package/ui/tree/TreePage.js +6 -0
  623. package/ui/tree/TreePage.tsx +6 -0
  624. package/ui/tree/TreeRouter.d.ts +17 -2
  625. package/ui/tree/TreeRouter.js +12 -2
  626. package/ui/tree/TreeRouter.tsx +17 -2
  627. package/ui/tree/TreeSidebar.d.ts +11 -0
  628. package/ui/tree/TreeSidebar.js +6 -0
  629. package/ui/tree/TreeSidebar.tsx +11 -0
  630. package/ui/util/context.d.ts +13 -1
  631. package/ui/util/context.ts +13 -1
  632. package/ui/util/css.d.ts +17 -4
  633. package/ui/util/css.js +5 -1
  634. package/ui/util/css.ts +17 -4
  635. package/ui/util/event.d.ts +9 -1
  636. package/ui/util/event.js +9 -1
  637. package/ui/util/event.ts +9 -1
  638. package/ui/util/focus.d.ts +24 -5
  639. package/ui/util/focus.js +24 -5
  640. package/ui/util/focus.ts +24 -5
  641. package/ui/util/meta.d.ts +113 -21
  642. package/ui/util/meta.js +73 -13
  643. package/ui/util/meta.ts +113 -21
  644. package/ui/util/notice.d.ts +98 -10
  645. package/ui/util/notice.js +93 -9
  646. package/ui/util/notice.ts +98 -10
  647. package/ui/util/props.d.ts +10 -2
  648. package/ui/util/props.ts +10 -2
  649. package/ui/util/refresh.d.ts +10 -1
  650. package/ui/util/refresh.js +10 -1
  651. package/ui/util/refresh.ts +10 -1
  652. package/ui/util/scroll.d.ts +20 -4
  653. package/ui/util/scroll.js +20 -4
  654. package/ui/util/scroll.ts +20 -4
  655. package/ui/util/state.d.ts +19 -5
  656. package/ui/util/state.js +19 -5
  657. package/ui/util/state.ts +19 -5
  658. package/util/ansi.d.ts +118 -0
  659. package/util/ansi.js +116 -0
  660. package/util/array.d.ts +349 -33
  661. package/util/array.js +284 -27
  662. package/util/async.d.ts +87 -9
  663. package/util/async.js +80 -8
  664. package/util/base64.d.ts +56 -6
  665. package/util/base64.js +56 -6
  666. package/util/boolean.d.ts +75 -10
  667. package/util/boolean.js +75 -10
  668. package/util/buffer.d.ts +26 -3
  669. package/util/buffer.js +21 -3
  670. package/util/bytes.d.ts +42 -4
  671. package/util/bytes.js +32 -2
  672. package/util/class.d.ts +59 -8
  673. package/util/class.js +44 -5
  674. package/util/color.d.ts +131 -13
  675. package/util/color.js +126 -12
  676. package/util/constants.d.ts +132 -19
  677. package/util/constants.js +132 -19
  678. package/util/crypto.d.ts +17 -1
  679. package/util/crypto.js +17 -1
  680. package/util/currency.d.ts +38 -4
  681. package/util/currency.js +33 -3
  682. package/util/data.d.ts +139 -24
  683. package/util/data.js +39 -5
  684. package/util/date.d.ts +152 -18
  685. package/util/date.js +147 -17
  686. package/util/debug.d.ts +112 -11
  687. package/util/debug.js +114 -11
  688. package/util/dictionary.d.ts +205 -24
  689. package/util/dictionary.js +162 -17
  690. package/util/diff.d.ts +22 -3
  691. package/util/diff.js +11 -1
  692. package/util/dispose.d.ts +74 -2
  693. package/util/dispose.js +74 -2
  694. package/util/duration.d.ts +278 -16
  695. package/util/duration.js +267 -15
  696. package/util/element.d.ts +59 -6
  697. package/util/element.js +32 -3
  698. package/util/entity.d.ts +39 -6
  699. package/util/entity.js +5 -1
  700. package/util/entry.d.ts +56 -9
  701. package/util/entry.js +32 -4
  702. package/util/env.d.ts +26 -4
  703. package/util/env.js +26 -4
  704. package/util/equal.d.ts +181 -17
  705. package/util/equal.js +181 -17
  706. package/util/error.d.ts +57 -5
  707. package/util/error.js +52 -4
  708. package/util/file.d.ts +30 -7
  709. package/util/file.js +25 -6
  710. package/util/filter.d.ts +36 -4
  711. package/util/filter.js +31 -3
  712. package/util/focus.d.ts +9 -1
  713. package/util/focus.js +9 -1
  714. package/util/format.d.ts +186 -22
  715. package/util/format.js +135 -14
  716. package/util/function.d.ts +66 -11
  717. package/util/function.js +31 -4
  718. package/util/geo.d.ts +60 -8
  719. package/util/geo.js +45 -5
  720. package/util/hash.d.ts +21 -2
  721. package/util/hash.js +21 -2
  722. package/util/http.d.ts +134 -19
  723. package/util/http.js +94 -11
  724. package/util/hydrate.d.ts +19 -2
  725. package/util/hydrate.js +12 -1
  726. package/util/item.d.ts +70 -11
  727. package/util/item.js +35 -4
  728. package/util/iterate.d.ts +109 -13
  729. package/util/iterate.js +86 -10
  730. package/util/jwt.d.ts +47 -13
  731. package/util/jwt.js +36 -12
  732. package/util/lazy.d.ts +9 -6
  733. package/util/link.d.ts +10 -3
  734. package/util/link.js +5 -2
  735. package/util/log.d.ts +26 -3
  736. package/util/log.js +26 -3
  737. package/util/map.d.ts +144 -19
  738. package/util/map.js +101 -11
  739. package/util/merge.d.ts +23 -1
  740. package/util/merge.js +6 -0
  741. package/util/null.d.ts +102 -13
  742. package/util/null.js +92 -11
  743. package/util/number.d.ts +125 -8
  744. package/util/number.js +120 -7
  745. package/util/object.d.ts +263 -31
  746. package/util/object.js +154 -17
  747. package/util/path.d.ts +91 -15
  748. package/util/path.js +60 -9
  749. package/util/query.d.ts +78 -9
  750. package/util/query.js +58 -6
  751. package/util/random.d.ts +67 -4
  752. package/util/random.js +67 -4
  753. package/util/regexp.d.ts +201 -24
  754. package/util/regexp.js +106 -11
  755. package/util/sequence.d.ts +66 -8
  756. package/util/sequence.js +52 -7
  757. package/util/serialise.d.ts +7 -1
  758. package/util/serialise.js +7 -1
  759. package/util/set.d.ts +103 -13
  760. package/util/set.js +83 -9
  761. package/util/sort.d.ts +32 -7
  762. package/util/sort.js +26 -6
  763. package/util/source.d.ts +28 -3
  764. package/util/source.js +22 -2
  765. package/util/start.d.ts +62 -5
  766. package/util/start.js +47 -2
  767. package/util/string.d.ts +209 -25
  768. package/util/string.js +188 -21
  769. package/util/template.d.ts +58 -9
  770. package/util/template.js +45 -6
  771. package/util/timeout.d.ts +35 -11
  772. package/util/timeout.js +35 -11
  773. package/util/transform.d.ts +87 -8
  774. package/util/transform.js +75 -7
  775. package/util/tree.d.ts +39 -6
  776. package/util/tree.js +3 -0
  777. package/util/types.d.ts +8 -2
  778. package/util/undefined.d.ts +47 -6
  779. package/util/undefined.js +47 -6
  780. package/util/units.d.ts +107 -12
  781. package/util/units.js +97 -12
  782. package/util/update.d.ts +36 -4
  783. package/util/update.js +24 -2
  784. package/util/uri.d.ts +138 -6
  785. package/util/uri.js +44 -3
  786. package/util/url.d.ts +152 -7
  787. package/util/url.js +136 -5
  788. package/util/uuid.d.ts +28 -3
  789. package/util/uuid.js +28 -3
  790. package/util/validate.d.ts +85 -20
  791. package/util/validate.js +61 -12
  792. package/util/xml.d.ts +9 -10
  793. package/util/xml.js +9 -10
package/util/array.js CHANGED
@@ -10,7 +10,17 @@ export function assertArray(value, min, max, caller = assertArray) {
10
10
  caller,
11
11
  });
12
12
  }
13
- /** Convert a possible array to an array. */
13
+ /**
14
+ * Convert a possible array to an array.
15
+ *
16
+ * @param list The value to convert (an array is returned as-is, an iterable is collected into a new array).
17
+ * @returns An array of the items, or `undefined` if `list` could not be converted.
18
+ *
19
+ * @example getArray(new Set([1, 2])); // [1, 2]
20
+ * @example getArray(123); // undefined
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/util/array/getArray
23
+ */
14
24
  export function getArray(list) {
15
25
  return Array.isArray(list) ? list : isIterable(list) ? Array.from(list) : undefined;
16
26
  }
@@ -19,7 +29,18 @@ export function requireArray(list, min, max, caller = requireArray) {
19
29
  assertArray(arr, min, max, caller);
20
30
  return arr;
21
31
  }
22
- /** Is an unknown value an item in a specified array or iterable? */
32
+ /**
33
+ * Is an unknown value an item in a specified array or iterable?
34
+ *
35
+ * @param list The array or iterable to search.
36
+ * @param item The value to look for.
37
+ * @returns `true` if `item` exists in `list`, narrowing its type.
38
+ *
39
+ * @example isArrayItem([1, 2, 3], 2); // true
40
+ * @example isArrayItem([1, 2, 3], 9); // false
41
+ *
42
+ * @see https://dhoulb.github.io/shelving/util/array/isArrayItem
43
+ */
23
44
  export function isArrayItem(list, item) {
24
45
  if (isArray(list))
25
46
  list.includes(item);
@@ -28,12 +49,34 @@ export function isArrayItem(list, item) {
28
49
  return true;
29
50
  return false;
30
51
  }
31
- /** Assert that an unknown value is an item in a specified array. */
52
+ /**
53
+ * Assert that an unknown value is an item in a specified array.
54
+ *
55
+ * @param arr The array or iterable to search.
56
+ * @param item The value to look for.
57
+ * @param caller Function to attribute a thrown error to (defaults to `assertArrayItem` itself).
58
+ * @throws {RequiredError} If `item` does not exist in `arr`.
59
+ *
60
+ * @example assertArrayItem([1, 2, 3], 2); // (passes)
61
+ * @example assertArrayItem([1, 2, 3], 9); // throws RequiredError
62
+ *
63
+ * @see https://dhoulb.github.io/shelving/util/array/assertArrayItem
64
+ */
32
65
  export function assertArrayItem(arr, item, caller = assertArrayItem) {
33
66
  if (!isArrayItem(arr, item))
34
67
  throw new RequiredError("Item must exist in array", { item, array: arr, caller });
35
68
  }
36
- /** Add multiple items to an array (immutably) and return a new array with those items (or the same array if no changes were made). */
69
+ /**
70
+ * Add multiple items to an array (immutably) and return a new array with those items (or the same array if no changes were made).
71
+ *
72
+ * @param list The array or iterable to add to.
73
+ * @param add The items to add (items already present are skipped).
74
+ * @returns A new array including the added items, or the same array if nothing changed.
75
+ *
76
+ * @example withArrayItems([1, 2], 2, 3); // [1, 2, 3]
77
+ *
78
+ * @see https://dhoulb.github.io/shelving/util/array/withArrayItems
79
+ */
37
80
  export function withArrayItems(list, ...add) {
38
81
  const arr = Array.from(list);
39
82
  const extras = add.filter(_doesNotInclude, arr);
@@ -42,32 +85,111 @@ export function withArrayItems(list, ...add) {
42
85
  function _doesNotInclude(value) {
43
86
  return !this.includes(value);
44
87
  }
45
- /** Add an item to an array (immutably) and return a new array with that item (or the same array if no changes were made). */
88
+ /**
89
+ * Add an item to an array (immutably) and return a new array with that item (or the same array if no changes were made).
90
+ *
91
+ * @param items The array or iterable to add to.
92
+ * @param add The item to add (skipped if already present).
93
+ * @returns A new array including the added item, or the same array if nothing changed.
94
+ *
95
+ * @example withArrayItem([1, 2], 3); // [1, 2, 3]
96
+ *
97
+ * @see https://dhoulb.github.io/shelving/util/array/withArrayItem
98
+ */
46
99
  export const withArrayItem = withArrayItems;
47
- /** Pick multiple items from an array (immutably) and return a new array with those items (or the same array if no changes were made). */
100
+ /**
101
+ * Pick multiple items from an array (immutably) and return a new array with those items (or the same array if no changes were made).
102
+ *
103
+ * @param items The array or iterable to pick from.
104
+ * @param pick The items to keep.
105
+ * @returns A new array containing only the picked items, or the same array if nothing changed.
106
+ *
107
+ * @example pickArrayItems([1, 2, 3], 1, 3); // [1, 3]
108
+ *
109
+ * @see https://dhoulb.github.io/shelving/util/array/pickArrayItems
110
+ */
48
111
  export function pickArrayItems(items, ...pick) {
49
112
  const arr = Array.from(pickItems(items, ...pick));
50
113
  return isArray(items) && arr.length === items.length ? items : arr;
51
114
  }
52
- /** Pick an item from an array (immutably) and return a new array with that item (or the same array if no changes were made). */
115
+ /**
116
+ * Pick an item from an array (immutably) and return a new array with that item (or the same array if no changes were made).
117
+ *
118
+ * @param items The array or iterable to pick from.
119
+ * @param pick The item to keep.
120
+ * @returns A new array containing only the picked item, or the same array if nothing changed.
121
+ *
122
+ * @example pickArrayItem([1, 2, 3], 2); // [2]
123
+ *
124
+ * @see https://dhoulb.github.io/shelving/util/array/pickArrayItem
125
+ */
53
126
  export const pickArrayItem = pickArrayItems;
54
- /** Remove multiple items from an array (immutably) and return a new array without those items (or the same array if no changes were made). */
127
+ /**
128
+ * Remove multiple items from an array (immutably) and return a new array without those items (or the same array if no changes were made).
129
+ *
130
+ * @param items The array or iterable to remove from.
131
+ * @param omit The items to remove.
132
+ * @returns A new array without the omitted items, or the same array if nothing changed.
133
+ *
134
+ * @example omitArrayItems([1, 2, 3], 2); // [1, 3]
135
+ *
136
+ * @see https://dhoulb.github.io/shelving/util/array/omitArrayItems
137
+ */
55
138
  export function omitArrayItems(items, ...omit) {
56
139
  const filtered = Array.from(omitItems(items, ...omit));
57
140
  return isArray(items) && filtered.length === items.length ? items : filtered;
58
141
  }
59
- /** Remove an item from an array (immutably) and return a new array without those items (or the same array if no changes were made). */
142
+ /**
143
+ * Remove an item from an array (immutably) and return a new array without that item (or the same array if no changes were made).
144
+ *
145
+ * @param items The array or iterable to remove from.
146
+ * @param omit The item to remove.
147
+ * @returns A new array without the omitted item, or the same array if nothing changed.
148
+ *
149
+ * @example omitArrayItem([1, 2, 3], 2); // [1, 3]
150
+ *
151
+ * @see https://dhoulb.github.io/shelving/util/array/omitArrayItem
152
+ */
60
153
  export const omitArrayItem = omitArrayItems;
61
- /** Toggle an item in and out of an array (immutably) and return a new array with or without the specified items (or the same array if no changes were made). */
154
+ /**
155
+ * Toggle an item in and out of an array (immutably) and return a new array with or without the specified items (or the same array if no changes were made).
156
+ *
157
+ * @param items The array or iterable to toggle within.
158
+ * @param toggle The items to toggle (added if absent, removed if present).
159
+ * @returns A new array with the items toggled, or the same array if nothing changed.
160
+ *
161
+ * @example toggleArrayItems([1, 2], 2, 3); // [1, 3]
162
+ *
163
+ * @see https://dhoulb.github.io/shelving/util/array/toggleArrayItems
164
+ */
62
165
  export function toggleArrayItems(items, ...toggle) {
63
166
  const arr = Array.from(items);
64
167
  const extras = toggle.filter(_doesNotInclude, arr);
65
168
  const filtered = arr.filter(_doesNotInclude, toggle);
66
169
  return extras.length ? [...filtered, ...extras] : filtered.length !== arr.length ? filtered : isArray(items) ? items : arr;
67
170
  }
68
- /** Toggle an item in and out of an array (immutably) and return a new array with or without the specified item (or the same array if no changes were made). */
171
+ /**
172
+ * Toggle an item in and out of an array (immutably) and return a new array with or without the specified item (or the same array if no changes were made).
173
+ *
174
+ * @param items The array or iterable to toggle within.
175
+ * @param toggle The item to toggle (added if absent, removed if present).
176
+ * @returns A new array with the item toggled, or the same array if nothing changed.
177
+ *
178
+ * @example toggleArrayItem([1, 2], 2); // [1]
179
+ *
180
+ * @see https://dhoulb.github.io/shelving/util/array/toggleArrayItem
181
+ */
69
182
  export const toggleArrayItem = toggleArrayItems;
70
- /** Return a shuffled version of an array or iterable. */
183
+ /**
184
+ * Return a shuffled version of an array or iterable.
185
+ *
186
+ * @param items The array or iterable to shuffle.
187
+ * @returns A new array containing the same items in random order.
188
+ *
189
+ * @example shuffleArray([1, 2, 3]); // e.g. [2, 3, 1]
190
+ *
191
+ * @see https://dhoulb.github.io/shelving/util/array/shuffleArray
192
+ */
71
193
  export function shuffleArray(items) {
72
194
  const arr = Array.from(items);
73
195
  for (let i = arr.length - 1; i > 0; i--) {
@@ -79,6 +201,14 @@ export function shuffleArray(items) {
79
201
  /**
80
202
  * Add an item to an array (by reference) and return the item.
81
203
  * - Skip items that already exist.
204
+ *
205
+ * @param arr The array to add to (modified in place).
206
+ * @param item The item to add.
207
+ * @returns The added `item`.
208
+ *
209
+ * @example addArrayItem(arr, 3); // 3 (and `arr` now contains `3`)
210
+ *
211
+ * @see https://dhoulb.github.io/shelving/util/array/addArrayItem
82
212
  */
83
213
  export function addArrayItem(arr, item) {
84
214
  if (arr.indexOf(item) < 0)
@@ -88,21 +218,47 @@ export function addArrayItem(arr, item) {
88
218
  /**
89
219
  * Add multiple items to an array (by reference).
90
220
  * - Skip items that already exist.
221
+ *
222
+ * @param arr The array to add to (modified in place).
223
+ * @param items The items to add.
224
+ * @example addArrayItems(arr, 3, 4); // (`arr` now contains `3` and `4`)
225
+ * @see https://dhoulb.github.io/shelving/util/array/addArrayItems
91
226
  */
92
227
  export function addArrayItems(arr, ...items) {
93
228
  for (const item of items)
94
229
  if (arr.indexOf(item) < 0)
95
230
  arr.push(item);
96
231
  }
97
- /** Remove multiple items from an array (by reference). */
232
+ /**
233
+ * Remove multiple items from an array (by reference).
234
+ *
235
+ * @param arr The array to remove from (modified in place).
236
+ * @param items The items to remove.
237
+ * @example deleteArrayItems(arr, 2, 3); // (`arr` no longer contains `2` or `3`)
238
+ * @see https://dhoulb.github.io/shelving/util/array/deleteArrayItems
239
+ */
98
240
  export function deleteArrayItems(arr, ...items) {
99
241
  for (let i = arr.length - 1; i >= 0; i--)
100
242
  if (i in arr && items.includes(arr[i]))
101
243
  arr.splice(i, 1);
102
244
  }
103
- /** Remove an item from an array (by reference). */
245
+ /**
246
+ * Remove an item from an array (by reference).
247
+ *
248
+ * @param arr The array to remove from (modified in place).
249
+ * @param item The item to remove.
250
+ * @example deleteArrayItem(arr, 2); // (`arr` no longer contains `2`)
251
+ * @see https://dhoulb.github.io/shelving/util/array/deleteArrayItem
252
+ */
104
253
  export const deleteArrayItem = deleteArrayItems;
105
- /** Return an array of the unique items in an array. */
254
+ /**
255
+ * Return an array of the unique items in an array.
256
+ *
257
+ * @param list The array or iterable to deduplicate.
258
+ * @returns A new array with duplicate items removed, or the same array if all items were already unique.
259
+ * @example getUniqueArray([1, 2, 2, 3]) // [1, 2, 3]
260
+ * @see https://dhoulb.github.io/shelving/util/array/getUniqueArray
261
+ */
106
262
  export function getUniqueArray(list) {
107
263
  const output = [];
108
264
  for (const item of list)
@@ -110,12 +266,28 @@ export function getUniqueArray(list) {
110
266
  output.push(item);
111
267
  return isArray(list) && list.length === output.length ? list : output;
112
268
  }
113
- /** Apply a limit to an array. */
269
+ /**
270
+ * Apply a limit to an array.
271
+ *
272
+ * @param list The array or iterable to limit.
273
+ * @param limit The maximum number of items to keep.
274
+ * @returns An array of at most `limit` items, or the same array if it was already within the limit.
275
+ * @throws {RequiredError} If `list` cannot be converted to an array.
276
+ * @example limitArray([1, 2, 3, 4], 2) // [1, 2]
277
+ * @see https://dhoulb.github.io/shelving/util/array/limitArray
278
+ */
114
279
  export function limitArray(list, limit) {
115
280
  const arr = requireArray(list, undefined, undefined, limitArray);
116
281
  return limit > arr.length ? arr : arr.slice(0, limit);
117
282
  }
118
- /** Count the items in an array. */
283
+ /**
284
+ * Count the items in an array.
285
+ *
286
+ * @param arr The array to count.
287
+ * @returns The number of items in `arr`.
288
+ * @example countArray([1, 2, 3]) // 3
289
+ * @see https://dhoulb.github.io/shelving/util/array/countArray
290
+ */
119
291
  export function countArray(arr) {
120
292
  return arr.length;
121
293
  }
@@ -124,32 +296,72 @@ export function interleaveArray(items, separator) {
124
296
  return items; // Return same empty array if empty or only one item.
125
297
  return Array.from(interleaveItems(items, separator));
126
298
  }
127
- /** Return a new array with a new value replacing a specific index in the array (or the same array if the value was unchanged). */
299
+ /**
300
+ * Return a new array with a new value replacing a specific index in the array (or the same array if the value was unchanged).
301
+ *
302
+ * @param arr The array to update.
303
+ * @param index The index to replace.
304
+ * @param value The new value to set at `index`.
305
+ * @returns A new array with `value` at `index`, or the same array if the value was unchanged.
306
+ * @example withArrayIndex([1, 2, 3], 1, 9) // [1, 9, 3]
307
+ * @see https://dhoulb.github.io/shelving/util/array/withArrayIndex
308
+ */
128
309
  export function withArrayIndex(arr, index, value) {
129
310
  if (arr[index] === value)
130
311
  return arr;
131
312
  return [...arr.slice(0, index), value, ...arr.slice(index + 1)];
132
313
  }
133
- /** Return a new array without a specific index in the array (or the same array if the value was unchanged). */
314
+ /**
315
+ * Return a new array without a specific index in the array (or the same array if the value was unchanged).
316
+ *
317
+ * @param arr The array to update.
318
+ * @param index The index to remove.
319
+ * @returns A new array without `index`, or the same array if nothing changed.
320
+ * @example omitArrayIndex([1, 2, 3], 1) // [1, 3]
321
+ * @see https://dhoulb.github.io/shelving/util/array/omitArrayIndex
322
+ */
134
323
  export function omitArrayIndex(arr, index) {
135
324
  const output = [...arr.slice(0, index), ...arr.slice(index + 1)];
136
325
  return arr.length !== output.length ? output : arr;
137
326
  }
138
- /** Get the first item from an array or iterable, or `undefined` if it didn't exist. */
327
+ /**
328
+ * Get the first item from an array or iterable, or `undefined` if it didn't exist.
329
+ *
330
+ * @param items The array or iterable to read from.
331
+ * @returns The first item, or `undefined` if `items` is empty.
332
+ * @example getFirst([1, 2, 3]) // 1
333
+ * @see https://dhoulb.github.io/shelving/util/array/getFirst
334
+ */
139
335
  export function getFirst(items) {
140
336
  if (isArray(items))
141
337
  return items[0];
142
338
  for (const i of items)
143
339
  return i;
144
340
  }
145
- /** Get the first item from an array or iterable. */
341
+ /**
342
+ * Get the first item from an array or iterable.
343
+ *
344
+ * @param items The array or iterable to read from.
345
+ * @param caller Function to attribute a thrown error to (defaults to `requireFirst` itself).
346
+ * @returns The first item.
347
+ * @throws {RequiredError} If `items` is empty.
348
+ * @example requireFirst([1, 2, 3]) // 1
349
+ * @see https://dhoulb.github.io/shelving/util/array/requireFirst
350
+ */
146
351
  export function requireFirst(items, caller = requireFirst) {
147
352
  const item = getFirst(items);
148
353
  if (item === undefined)
149
354
  throw new RequiredError("First item is required", { items: items, caller });
150
355
  return item;
151
356
  }
152
- /** Get the last item from an array or iterable, or `undefined` if it didn't exist. */
357
+ /**
358
+ * Get the last item from an array or iterable, or `undefined` if it didn't exist.
359
+ *
360
+ * @param items The array or iterable to read from.
361
+ * @returns The last item, or `undefined` if `items` is empty.
362
+ * @example getLast([1, 2, 3]) // 3
363
+ * @see https://dhoulb.github.io/shelving/util/array/getLast
364
+ */
153
365
  export function getLast(items) {
154
366
  if (isArray(items))
155
367
  return items[items.length - 1];
@@ -159,14 +371,31 @@ export function getLast(items) {
159
371
  }
160
372
  return last;
161
373
  }
162
- /** Get the last item from an array or iterable. */
374
+ /**
375
+ * Get the last item from an array or iterable.
376
+ *
377
+ * @param items The array or iterable to read from.
378
+ * @param caller Function to attribute a thrown error to (defaults to `requireLast` itself).
379
+ * @returns The last item.
380
+ * @throws {RequiredError} If `items` is empty.
381
+ * @example requireLast([1, 2, 3]) // 3
382
+ * @see https://dhoulb.github.io/shelving/util/array/requireLast
383
+ */
163
384
  export function requireLast(items, caller = requireLast) {
164
385
  const item = getLast(items);
165
386
  if (item === undefined)
166
387
  throw new RequiredError("Last item is required", { items, caller });
167
388
  return item;
168
389
  }
169
- /** Get the next item in an array or iterable. */
390
+ /**
391
+ * Get the next item in an array or iterable.
392
+ *
393
+ * @param items The array or iterable to search.
394
+ * @param item The item to find the successor of.
395
+ * @returns The item following `item`, or `undefined` if `item` is missing or last.
396
+ * @example getNext([1, 2, 3], 2) // 3
397
+ * @see https://dhoulb.github.io/shelving/util/array/getNext
398
+ */
170
399
  export function getNext(items, item) {
171
400
  let found = false;
172
401
  for (const i of items) {
@@ -176,14 +405,32 @@ export function getNext(items, item) {
176
405
  found = true;
177
406
  }
178
407
  }
179
- /** Get the next item from an array or iterable. */
408
+ /**
409
+ * Get the next item from an array or iterable.
410
+ *
411
+ * @param items The array or iterable to search.
412
+ * @param item The item to find the successor of.
413
+ * @param caller Function to attribute a thrown error to (defaults to `requireNext` itself).
414
+ * @returns The item following `item`.
415
+ * @throws {RequiredError} If `item` is missing or has no successor.
416
+ * @example requireNext([1, 2, 3], 2) // 3
417
+ * @see https://dhoulb.github.io/shelving/util/array/requireNext
418
+ */
180
419
  export function requireNext(items, item, caller = requireNext) {
181
420
  const next = getNext(items, item);
182
421
  if (next === undefined)
183
422
  throw new RequiredError("Next item is required", { item, items, caller });
184
423
  return next;
185
424
  }
186
- /** Get the previous item in an array or iterable. */
425
+ /**
426
+ * Get the previous item in an array or iterable.
427
+ *
428
+ * @param items The array or iterable to search.
429
+ * @param value The item to find the predecessor of.
430
+ * @returns The item preceding `value`, or `undefined` if `value` is missing or first.
431
+ * @example getPrev([1, 2, 3], 2) // 1
432
+ * @see https://dhoulb.github.io/shelving/util/array/getPrev
433
+ */
187
434
  export function getPrev(items, value) {
188
435
  let last;
189
436
  for (const i of items) {
@@ -192,7 +439,17 @@ export function getPrev(items, value) {
192
439
  last = i;
193
440
  }
194
441
  }
195
- /** Get the previous item from an array or iterable. */
442
+ /**
443
+ * Get the previous item from an array or iterable.
444
+ *
445
+ * @param items The array or iterable to search.
446
+ * @param item The item to find the predecessor of.
447
+ * @param caller Function to attribute a thrown error to (defaults to `requirePrev` itself).
448
+ * @returns The item preceding `item`.
449
+ * @throws {RequiredError} If `item` is missing or has no predecessor.
450
+ * @example requirePrev([1, 2, 3], 2) // 1
451
+ * @see https://dhoulb.github.io/shelving/util/array/requirePrev
452
+ */
196
453
  export function requirePrev(items, item, caller = requirePrev) {
197
454
  const prev = getPrev(items, item);
198
455
  if (prev === undefined)
package/util/async.d.ts CHANGED
@@ -1,22 +1,65 @@
1
1
  import type { ImmutableArray } from "./array.js";
2
2
  import { type ErrorCallback, type ValueCallback } from "./function.js";
3
- /** Is a value an asynchronous value implementing a `then()` function. */
3
+ /**
4
+ * Is a value an asynchronous value implementing a `then()` function.
5
+ *
6
+ * @param value The value to test.
7
+ * @returns `true` if `value` is a `PromiseLike`, narrowing its type.
8
+ * @see https://dhoulb.github.io/shelving/util/async/isAsync
9
+ */
4
10
  export declare function isAsync<T>(value: PromiseLike<T> | T): value is PromiseLike<T>;
5
- /** Is a value a synchronous value. */
11
+ /**
12
+ * Is a value a synchronous value.
13
+ *
14
+ * @param value The value to test.
15
+ * @returns `true` if `value` is not a `PromiseLike`, narrowing its type.
16
+ * @see https://dhoulb.github.io/shelving/util/async/notAsync
17
+ */
6
18
  export declare function notAsync<T>(value: PromiseLike<T> | T): value is T;
7
19
  /**
8
20
  * Throw the value if it's an async (promised) value.
21
+ *
22
+ * @param value The value to unwrap.
9
23
  * @returns Synchronous (not promised) value.
10
24
  * @throws Promise if value is an asynchronous (promised) value.
25
+ * @example throwAsync(123) // 123
26
+ * @see https://dhoulb.github.io/shelving/util/async/throwAsync
11
27
  */
12
28
  export declare function throwAsync<T>(value: PromiseLike<T> | T): T;
13
- /** Assert an unknown value is synchronous (i.e. does not have a `.then()` method). */
29
+ /**
30
+ * Assert an unknown value is synchronous (i.e. does not have a `.then()` method).
31
+ *
32
+ * @param value The value to assert.
33
+ * @throws {RequiredError} If `value` is a `PromiseLike`.
34
+ * @example assertNotAsync(123); // passes
35
+ * @see https://dhoulb.github.io/shelving/util/async/assertNotAsync
36
+ */
14
37
  export declare function assertNotAsync<T>(value: PromiseLike<T> | T): asserts value is T;
15
- /** Assert an unknown value is asynchronous (i.e. has a `.then()` method). */
38
+ /**
39
+ * Assert an unknown value is asynchronous (i.e. has a `.then()` method).
40
+ *
41
+ * @param value The value to assert.
42
+ * @throws {RequiredError} If `value` is not a `PromiseLike`.
43
+ * @example assertAsync(Promise.resolve(1)); // passes
44
+ * @see https://dhoulb.github.io/shelving/util/async/assertAsync
45
+ */
16
46
  export declare function assertAsync<T>(value: PromiseLike<T> | T): asserts value is PromiseLike<T>;
17
- /** Assert that an unknown value is a `Promise` */
47
+ /**
48
+ * Assert that an unknown value is a `Promise`.
49
+ *
50
+ * @param value The value to assert.
51
+ * @throws {RequiredError} If `value` is not a `Promise` instance.
52
+ * @example assertPromise(Promise.resolve(1)); // passes
53
+ * @see https://dhoulb.github.io/shelving/util/async/assertPromise
54
+ */
18
55
  export declare function assertPromise<T>(value: Promise<T> | T): asserts value is Promise<T>;
19
- /** Run any queued microtasks now. */
56
+ /**
57
+ * Run any queued microtasks now.
58
+ *
59
+ * @returns A promise that resolves after all currently-queued microtasks have run.
60
+ * @example await runMicrotasks();
61
+ * @see https://dhoulb.github.io/shelving/util/async/runMicrotasks
62
+ */
20
63
  export declare function runMicrotasks(): Promise<void>;
21
64
  /**
22
65
  * Get the result of multiple promises concurrently.
@@ -29,6 +72,8 @@ export declare function runMicrotasks(): Promise<void>;
29
72
  * @param promises Values (usually async, but not necessarily) that we need to wait for.
30
73
  * @returns Array of values of all promises (in the same order/positions as input).
31
74
  * @throws {Errors} If one or more promises throws all rejection reasons after resolving all of the promises.
75
+ * @example const [a, b] = await awaitValues(getA(), getB());
76
+ * @see https://dhoulb.github.io/shelving/util/async/awaitValues
32
77
  */
33
78
  export declare function awaitValues<T extends ImmutableArray<unknown>>(...promises: T): Promise<{
34
79
  readonly [P in keyof T]: Awaited<T[P]>;
@@ -38,9 +83,19 @@ export declare function awaitValues<T extends ImmutableArray<unknown>>(...promis
38
83
  *
39
84
  * @param promises Values (usually async, but not necessarily) that we need to wait for.
40
85
  * @returns Array of rejection reasons of all promises (or empty array if no promises threw).
86
+ * @example const errors = await awaitErrors(getA(), getB());
87
+ * @see https://dhoulb.github.io/shelving/util/async/awaitErrors
41
88
  */
42
89
  export declare function awaitErrors(...promises: PromiseLike<unknown>[]): Promise<ImmutableArray<unknown>>;
43
- /** `Promise` designed for extending with `._resolve()` and `._reject()` methods that can be accessed by subclasses. */
90
+ /**
91
+ * `Promise` designed for extending with `._resolve()` and `._reject()` methods that can be accessed by subclasses.
92
+ *
93
+ * @example
94
+ * class MyPromise extends BasePromise<number> {
95
+ * done() { this._resolve(123); }
96
+ * }
97
+ * @see https://dhoulb.github.io/shelving/util/async/BasePromise
98
+ */
44
99
  export declare abstract class BasePromise<T> extends Promise<T> {
45
100
  static get [Symbol.species](): PromiseConstructor;
46
101
  /** Resolve this promise with a value. */
@@ -49,7 +104,11 @@ export declare abstract class BasePromise<T> extends Promise<T> {
49
104
  protected readonly _reject: ErrorCallback;
50
105
  constructor();
51
106
  }
52
- /** Deferred allows you to access the internal resolve/reject callbacks of a `Promise` */
107
+ /**
108
+ * Deferred allows you to access the internal resolve/reject callbacks of a `Promise`.
109
+ *
110
+ * @see https://dhoulb.github.io/shelving/util/async/Deferred
111
+ */
53
112
  export type Deferred<T = unknown> = {
54
113
  promise: Promise<T>;
55
114
  resolve: ValueCallback<T>;
@@ -58,16 +117,31 @@ export type Deferred<T = unknown> = {
58
117
  /**
59
118
  * Create a deferred to access the `resolve()` and `reject()` functions of a promise.
60
119
  * - See https://github.com/tc39/proposal-promise-with-resolvers/
120
+ *
121
+ * @returns A `Deferred` exposing the promise and its `resolve()`/`reject()` functions.
122
+ * @example const { promise, resolve } = createDeferred<number>();
123
+ * @see https://dhoulb.github.io/shelving/util/async/createDeferred
61
124
  */
62
125
  export declare function createDeferred<T = void>(): Deferred<T>;
63
- /** Get a promise that automatically resolves after a delay. */
126
+ /**
127
+ * Get a promise that automatically resolves after a delay.
128
+ *
129
+ * @param ms The delay in milliseconds before the promise resolves.
130
+ * @returns A promise that resolves with `undefined` after `ms` milliseconds.
131
+ * @example await getDelay(300); // resolves after 300ms
132
+ * @see https://dhoulb.github.io/shelving/util/async/getDelay
133
+ */
64
134
  export declare function getDelay(ms: number): Promise<void>;
65
135
  /**
66
136
  * Get a promise that rejects with the signal's reason when an `AbortSignal` fires.
67
137
  * - Rejects immediately if the signal is already aborted.
68
138
  * - Use with `awaitRace()` to cancel a concurrent operation when a signal fires.
69
139
  *
140
+ * @param signal The `AbortSignal` to watch.
141
+ * @returns A promise that never resolves and rejects with the signal's reason when it fires.
142
+ * @throws The signal's `reason` when the signal aborts.
70
143
  * @example await awaitRace(getDelay(300), awaitAbort(signal));
144
+ * @see https://dhoulb.github.io/shelving/util/async/awaitAbort
71
145
  */
72
146
  export declare function awaitAbort(signal: AbortSignal): Promise<never>;
73
147
  /**
@@ -76,6 +150,10 @@ export declare function awaitAbort(signal: AbortSignal): Promise<never>;
76
150
  * - The losing inputs keep running (Promises cannot be cancelled), but their eventual rejection — if any — is silently absorbed instead of bubbling up as an unhandled rejection.
77
151
  * - Built for cancellation/timeout patterns, where the loser's eventual fate is genuinely uninteresting once another arm has settled. Do not use when both arms might surface meaningful errors that the caller should see.
78
152
  *
153
+ * @param promises The promises to race against each other.
154
+ * @returns A promise that settles with the first input to settle.
155
+ * @throws The rejection reason of the first input to settle, if it rejects.
79
156
  * @example await awaitRace(getDelay(300), awaitAbort(signal)); // delay or abort, no leaked ABORT rejection if delay wins
157
+ * @see https://dhoulb.github.io/shelving/util/async/awaitRace
80
158
  */
81
159
  export declare function awaitRace<T>(...promises: Promise<T>[]): Promise<T>;