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/units.d.ts CHANGED
@@ -11,14 +11,36 @@ interface UnitProps<T extends string> extends UnitFormatOptions {
11
11
  /** Conversions to other units (typically needs at least the base conversion, unless it's already the base unit). */
12
12
  readonly to?: Conversions<T>;
13
13
  }
14
- /** Represent a unit. */
14
+ /**
15
+ * Represent a single unit of measure within a `UnitList`, e.g. `kilometer`.
16
+ *
17
+ * - Knows how to convert amounts to/from other units in its list and to format them for display.
18
+ *
19
+ * @param list `UnitList` this unit belongs to.
20
+ * @param key String key for this unit, e.g. `kilometer`.
21
+ * @param props Props to configure this unit (conversions and formatting options).
22
+ * @example LENGTH_UNITS.require("kilometer").to(5, "meter") // 5000
23
+ * @see https://dhoulb.github.io/shelving/util/units/Unit
24
+ */
15
25
  export declare class Unit<K extends string> {
16
26
  private readonly _to;
17
- /** `UnitList` this unit belongs to. */
27
+ /**
28
+ * `UnitList` this unit belongs to.
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/list
31
+ */
18
32
  readonly list: UnitList<K>;
19
- /** String key for this unit, e.g. `kilometer` */
33
+ /**
34
+ * String key for this unit, e.g. `kilometer`
35
+ *
36
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/key
37
+ */
20
38
  readonly key: K;
21
- /** Possible options for formatting these units. */
39
+ /**
40
+ * Possible options for formatting these units.
41
+ *
42
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/options
43
+ */
22
44
  readonly options: Readonly<UnitFormatOptions> | undefined;
23
45
  constructor(
24
46
  /** `UnitList` this unit belongs to. */
@@ -27,9 +49,29 @@ export declare class Unit<K extends string> {
27
49
  key: K,
28
50
  /** Props to configure this unit. */
29
51
  { to, ...options }: UnitProps<K>);
30
- /** Convert an amount from this unit to another unit. */
52
+ /**
53
+ * Convert an amount from this unit to another unit.
54
+ *
55
+ * @param amount The amount in this unit.
56
+ * @param targetKey Key of the unit to convert to (defaults to the list's base unit).
57
+ * @returns The amount expressed in the target unit.
58
+ * @throws `RequiredError` if `targetKey` is not a unit in this list.
59
+ * @throws `ValueError` if no conversion path exists to the target unit.
60
+ * @example LENGTH_UNITS.require("kilometer").to(1, "meter") // 1000
61
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/to
62
+ */
31
63
  to(amount: number, targetKey?: K): number;
32
- /** Convert an amount from another unit to this unit. */
64
+ /**
65
+ * Convert an amount from another unit to this unit.
66
+ *
67
+ * @param amount The amount in the source unit.
68
+ * @param sourceKey Key of the unit to convert from (defaults to the list's base unit).
69
+ * @returns The amount expressed in this unit.
70
+ * @throws `RequiredError` if `sourceKey` is not a unit in this list.
71
+ * @throws `ValueError` if no conversion path exists from the source unit.
72
+ * @example LENGTH_UNITS.require("kilometer").from(1000, "meter") // 1
73
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/from
74
+ */
33
75
  from(amount: number, sourceKey?: K): number;
34
76
  /** Convert an amount from this unit to another unit (must specify another `Unit` instance). */
35
77
  private _convertTo;
@@ -37,33 +79,86 @@ export declare class Unit<K extends string> {
37
79
  * Format an amount with a given unit of measure, e.g. `12 kg` or `29.5 l`
38
80
  * - Uses `Intl.NumberFormat` if this is a supported unit (so e.g. `ounce` is translated to e.g. `Unze` in German).
39
81
  * - Polyfills unsupported units to use long/short form based on `options.unitDisplay`.
82
+ *
83
+ * @param amount The amount to format.
84
+ * @param options Formatting options merged over this unit's own `options`.
85
+ * @returns The formatted unit string.
86
+ * @example MASS_UNITS.require("kilogram").format(12) // "12 kg"
87
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/format
40
88
  */
41
89
  format(amount: number, options?: UnitFormatOptions): string;
42
90
  }
43
91
  /**
44
- * Represent a list of units.
92
+ * Represent a list of related units of measure (e.g. all length units).
45
93
  * - Has a known base unit at `.base`
46
94
  * - Can get required units from `.unit()`
47
95
  * - Cannot have additional units added after it is created.
96
+ *
97
+ * @param units Set of units keyed by their string key — the first entry becomes the base unit.
98
+ * @example new UnitList({ meter: {}, kilometer: { to: { meter: 1000 } } }).convert(1, "kilometer", "meter") // 1000
99
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList
48
100
  */
49
101
  export declare class UnitList<K extends string> extends ImmutableMap<K, Unit<K>> {
102
+ /**
103
+ * Base unit for this list (the first unit added).
104
+ *
105
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList/base
106
+ */
50
107
  readonly base: Unit<K>;
51
108
  constructor(units: ImmutableObject<K, UnitProps<K>>);
52
- /** Convert an amount from a unit to another unit. */
109
+ /**
110
+ * Convert an amount from a unit in this list to another unit in this list.
111
+ *
112
+ * @param amount The amount in the source unit.
113
+ * @param sourceKey Key of the unit to convert from.
114
+ * @param targetKey Key of the unit to convert to.
115
+ * @returns The amount expressed in the target unit.
116
+ * @throws `RequiredError` if `sourceKey` or `targetKey` is not a unit in this list.
117
+ * @throws `ValueError` if no conversion path exists between the units.
118
+ * @example LENGTH_UNITS.convert(1, "kilometer", "meter") // 1000
119
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList/convert
120
+ */
53
121
  convert(amount: number, sourceKey: K, targetKey: K): number;
54
122
  /**
55
123
  * Require a unit from this list.
56
- * @throws RequiredError if the unit key is not found.
124
+ *
125
+ * @param key Key of the unit to retrieve.
126
+ * @returns The matching `Unit` instance.
127
+ * @throws `RequiredError` if the unit key is not found.
128
+ * @example LENGTH_UNITS.require("kilometer") // Unit instance
129
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList/require
57
130
  */
58
131
  require(key: K): Unit<K>;
59
132
  }
60
- /** Percentage units. */
133
+ /**
134
+ * Percentage units.
135
+ *
136
+ * @see https://dhoulb.github.io/shelving/util/units/PERCENT_UNITS
137
+ */
61
138
  export declare const PERCENT_UNITS: UnitList<"percent">;
139
+ /**
140
+ * String key for a percentage unit.
141
+ *
142
+ * @see https://dhoulb.github.io/shelving/util/units/PercentUnitKey
143
+ */
62
144
  export type PercentUnitKey = MapKey<typeof PERCENT_UNITS>;
63
- /** Point units. */
145
+ /**
146
+ * Point units.
147
+ *
148
+ * @see https://dhoulb.github.io/shelving/util/units/POINT_UNITS
149
+ */
64
150
  export declare const POINT_UNITS: UnitList<"basis-point" | "percentage-point">;
151
+ /**
152
+ * String key for a point unit.
153
+ *
154
+ * @see https://dhoulb.github.io/shelving/util/units/PointUnitKey
155
+ */
65
156
  export type PointUnitKey = MapKey<typeof POINT_UNITS>;
66
- /** Angle units. */
157
+ /**
158
+ * Angle units.
159
+ *
160
+ * @see https://dhoulb.github.io/shelving/util/units/ANGLE_UNITS
161
+ */
67
162
  export declare const ANGLE_UNITS: UnitList<"degree" | "gradian" | "radian">;
68
163
  export type AngleUnitKey = MapKey<typeof ANGLE_UNITS>;
69
164
  /** Mass units. */
package/util/units.js CHANGED
@@ -8,14 +8,36 @@ import { getProps } from "./object.js";
8
8
  function _convert(amount, conversion) {
9
9
  return typeof conversion === "function" ? conversion(amount) : conversion === 1 ? amount : amount * conversion;
10
10
  }
11
- /** Represent a unit. */
11
+ /**
12
+ * Represent a single unit of measure within a `UnitList`, e.g. `kilometer`.
13
+ *
14
+ * - Knows how to convert amounts to/from other units in its list and to format them for display.
15
+ *
16
+ * @param list `UnitList` this unit belongs to.
17
+ * @param key String key for this unit, e.g. `kilometer`.
18
+ * @param props Props to configure this unit (conversions and formatting options).
19
+ * @example LENGTH_UNITS.require("kilometer").to(5, "meter") // 5000
20
+ * @see https://dhoulb.github.io/shelving/util/units/Unit
21
+ */
12
22
  export class Unit {
13
23
  _to;
14
- /** `UnitList` this unit belongs to. */
24
+ /**
25
+ * `UnitList` this unit belongs to.
26
+ *
27
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/list
28
+ */
15
29
  list;
16
- /** String key for this unit, e.g. `kilometer` */
30
+ /**
31
+ * String key for this unit, e.g. `kilometer`
32
+ *
33
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/key
34
+ */
17
35
  key;
18
- /** Possible options for formatting these units. */
36
+ /**
37
+ * Possible options for formatting these units.
38
+ *
39
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/options
40
+ */
19
41
  options;
20
42
  constructor(
21
43
  /** `UnitList` this unit belongs to. */
@@ -29,12 +51,32 @@ export class Unit {
29
51
  this.options = options;
30
52
  this._to = to;
31
53
  }
32
- /** Convert an amount from this unit to another unit. */
54
+ /**
55
+ * Convert an amount from this unit to another unit.
56
+ *
57
+ * @param amount The amount in this unit.
58
+ * @param targetKey Key of the unit to convert to (defaults to the list's base unit).
59
+ * @returns The amount expressed in the target unit.
60
+ * @throws `RequiredError` if `targetKey` is not a unit in this list.
61
+ * @throws `ValueError` if no conversion path exists to the target unit.
62
+ * @example LENGTH_UNITS.require("kilometer").to(1, "meter") // 1000
63
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/to
64
+ */
33
65
  to(amount, targetKey) {
34
66
  const target = targetKey ? _requireUnit(this.to, this.list, targetKey) : this.list.base;
35
67
  return this._convertTo(amount, target, this.to);
36
68
  }
37
- /** Convert an amount from another unit to this unit. */
69
+ /**
70
+ * Convert an amount from another unit to this unit.
71
+ *
72
+ * @param amount The amount in the source unit.
73
+ * @param sourceKey Key of the unit to convert from (defaults to the list's base unit).
74
+ * @returns The amount expressed in this unit.
75
+ * @throws `RequiredError` if `sourceKey` is not a unit in this list.
76
+ * @throws `ValueError` if no conversion path exists from the source unit.
77
+ * @example LENGTH_UNITS.require("kilometer").from(1000, "meter") // 1
78
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/from
79
+ */
38
80
  from(amount, sourceKey) {
39
81
  const source = sourceKey ? _requireUnit(this.from, this.list, sourceKey) : this.list.base;
40
82
  return source._convertTo(amount, this, this.from);
@@ -68,18 +110,33 @@ export class Unit {
68
110
  * Format an amount with a given unit of measure, e.g. `12 kg` or `29.5 l`
69
111
  * - Uses `Intl.NumberFormat` if this is a supported unit (so e.g. `ounce` is translated to e.g. `Unze` in German).
70
112
  * - Polyfills unsupported units to use long/short form based on `options.unitDisplay`.
113
+ *
114
+ * @param amount The amount to format.
115
+ * @param options Formatting options merged over this unit's own `options`.
116
+ * @returns The formatted unit string.
117
+ * @example MASS_UNITS.require("kilogram").format(12) // "12 kg"
118
+ * @see https://dhoulb.github.io/shelving/util/units/Unit/format
71
119
  */
72
120
  format(amount, options) {
73
121
  return formatUnit(amount, this.key, { ...this.options, ...options });
74
122
  }
75
123
  }
76
124
  /**
77
- * Represent a list of units.
125
+ * Represent a list of related units of measure (e.g. all length units).
78
126
  * - Has a known base unit at `.base`
79
127
  * - Can get required units from `.unit()`
80
128
  * - Cannot have additional units added after it is created.
129
+ *
130
+ * @param units Set of units keyed by their string key — the first entry becomes the base unit.
131
+ * @example new UnitList({ meter: {}, kilometer: { to: { meter: 1000 } } }).convert(1, "kilometer", "meter") // 1000
132
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList
81
133
  */
82
134
  export class UnitList extends ImmutableMap {
135
+ /**
136
+ * Base unit for this list (the first unit added).
137
+ *
138
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList/base
139
+ */
83
140
  base;
84
141
  constructor(units) {
85
142
  super();
@@ -90,13 +147,29 @@ export class UnitList extends ImmutableMap {
90
147
  Map.prototype.set.call(this, id, unit);
91
148
  }
92
149
  }
93
- /** Convert an amount from a unit to another unit. */
150
+ /**
151
+ * Convert an amount from a unit in this list to another unit in this list.
152
+ *
153
+ * @param amount The amount in the source unit.
154
+ * @param sourceKey Key of the unit to convert from.
155
+ * @param targetKey Key of the unit to convert to.
156
+ * @returns The amount expressed in the target unit.
157
+ * @throws `RequiredError` if `sourceKey` or `targetKey` is not a unit in this list.
158
+ * @throws `ValueError` if no conversion path exists between the units.
159
+ * @example LENGTH_UNITS.convert(1, "kilometer", "meter") // 1000
160
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList/convert
161
+ */
94
162
  convert(amount, sourceKey, targetKey) {
95
163
  return _requireUnit(this.convert, this, sourceKey).to(amount, targetKey);
96
164
  }
97
165
  /**
98
166
  * Require a unit from this list.
99
- * @throws RequiredError if the unit key is not found.
167
+ *
168
+ * @param key Key of the unit to retrieve.
169
+ * @returns The matching `Unit` instance.
170
+ * @throws `RequiredError` if the unit key is not found.
171
+ * @example LENGTH_UNITS.require("kilometer") // Unit instance
172
+ * @see https://dhoulb.github.io/shelving/util/units/UnitList/require
100
173
  */
101
174
  require(key) {
102
175
  return _requireUnit(this.require, this, key);
@@ -134,16 +207,28 @@ const MM3_PER_IN3 = MM_PER_IN ** 3;
134
207
  const ML_PER_IN3 = MM3_PER_IN3 / 1000;
135
208
  const US_IN3_PER_GAL = 231;
136
209
  const IMP_ML_PER_GAL = 4546090 / 1000;
137
- /** Percentage units. */
210
+ /**
211
+ * Percentage units.
212
+ *
213
+ * @see https://dhoulb.github.io/shelving/util/units/PERCENT_UNITS
214
+ */
138
215
  export const PERCENT_UNITS = new UnitList({
139
216
  percent: { abbr: "%", many: "percent" },
140
217
  });
141
- /** Point units. */
218
+ /**
219
+ * Point units.
220
+ *
221
+ * @see https://dhoulb.github.io/shelving/util/units/POINT_UNITS
222
+ */
142
223
  export const POINT_UNITS = new UnitList({
143
224
  "basis-point": { abbr: "bp" },
144
225
  "percentage-point": { abbr: "pp", to: { "basis-point": 100 } },
145
226
  });
146
- /** Angle units. */
227
+ /**
228
+ * Angle units.
229
+ *
230
+ * @see https://dhoulb.github.io/shelving/util/units/ANGLE_UNITS
231
+ */
147
232
  export const ANGLE_UNITS = new UnitList({
148
233
  degree: { abbr: "deg" },
149
234
  radian: { abbr: "rad", to: { degree: 180 / Math.PI } },
package/util/update.d.ts CHANGED
@@ -2,10 +2,14 @@ import { type ImmutableArray } from "./array.js";
2
2
  import type { BranchData, BranchDataPath, Data, LeafData, LeafDataPath } from "./data.js";
3
3
  import type { Segments } from "./string.js";
4
4
  /**
5
- * Set of named updates for a data object.
5
+ * Set of named updates for a data object, keyed by encoded update syntax.
6
+ *
7
+ * - Plain key `a.b` sets a value, `=a.b` sets a leaf value, `+=`/`-=` sum numbers, and `+[]`/`-[]` add/remove array items.
6
8
  *
7
9
  * Note: string templates infer best when you have fixed character(s) at the start,
8
10
  * so our `Update` syntax always
11
+ *
12
+ * @see https://dhoulb.github.io/shelving/util/update/Updates
9
13
  */
10
14
  export type Updates<T extends Data = Data> = {
11
15
  /**
@@ -35,7 +39,13 @@ export type Updates<T extends Data = Data> = {
35
39
  */
36
40
  readonly [K in LeafDataPath<T> as `+[]${K}` | `-[]${K}`]?: LeafData<T>[K] extends ImmutableArray<unknown> ? LeafData<T>[K] | LeafData<T>[K][number] | undefined : never;
37
41
  };
38
- /** A single update to a keyed property in an object. */
42
+ /**
43
+ * A single decoded update to a keyed property in an object.
44
+ *
45
+ * - Discriminated by `action`: `"set"`, `"with"` (add array items), `"omit"` (remove array items), or `"sum"` (add to a number).
46
+ *
47
+ * @see https://dhoulb.github.io/shelving/util/update/Update
48
+ */
39
49
  export type Update = {
40
50
  action: "set";
41
51
  key: Segments;
@@ -53,7 +63,29 @@ export type Update = {
53
63
  key: Segments;
54
64
  value: number;
55
65
  };
56
- /** Yield the prop updates in an `Updates` object as a set of `Update` objects. */
66
+ /**
67
+ * Decode the prop updates in an `Updates` object into a set of `Update` objects.
68
+ *
69
+ * - Props with `undefined` value are skipped.
70
+ *
71
+ * @param data The `Updates` object to decode.
72
+ * @returns Array of decoded `Update` objects.
73
+ * @throws `RequiredError` if a `+=`/`-=` sum update has a non-number value.
74
+ * @example getUpdates({ "+=count": 1 }) // [{ action: "sum", key: ["count"], value: 1 }]
75
+ * @see https://dhoulb.github.io/shelving/util/update/getUpdates
76
+ */
57
77
  export declare function getUpdates<T extends Data>(data: Updates<T>): ImmutableArray<Update>;
58
- /** Update a data object with a set of updates. */
78
+ /**
79
+ * Return a copy of a data object with a set of updates applied.
80
+ *
81
+ * - Returns the original reference unchanged when no update changed a value.
82
+ * - Supports nested paths, sum/increment, and array add/remove updates via the encoded `Updates` syntax.
83
+ *
84
+ * @param data The data object to update.
85
+ * @param updates The set of updates to apply.
86
+ * @returns The updated data object (or the original reference if nothing changed).
87
+ * @throws `RequiredError` if a `+=`/`-=` sum update has a non-number value.
88
+ * @example updateData({ count: 1 }, { "+=count": 2 }) // { count: 3 }
89
+ * @see https://dhoulb.github.io/shelving/util/update/updateData
90
+ */
59
91
  export declare function updateData<T extends Data>(data: T, updates: Updates<T>): T;
package/util/update.js CHANGED
@@ -4,7 +4,17 @@ import { reduceItems } from "./iterate.js";
4
4
  import { requireNumber } from "./number.js";
5
5
  import { getProps, isObject } from "./object.js";
6
6
  import { isDefined } from "./undefined.js";
7
- /** Yield the prop updates in an `Updates` object as a set of `Update` objects. */
7
+ /**
8
+ * Decode the prop updates in an `Updates` object into a set of `Update` objects.
9
+ *
10
+ * - Props with `undefined` value are skipped.
11
+ *
12
+ * @param data The `Updates` object to decode.
13
+ * @returns Array of decoded `Update` objects.
14
+ * @throws `RequiredError` if a `+=`/`-=` sum update has a non-number value.
15
+ * @example getUpdates({ "+=count": 1 }) // [{ action: "sum", key: ["count"], value: 1 }]
16
+ * @see https://dhoulb.github.io/shelving/util/update/getUpdates
17
+ */
8
18
  export function getUpdates(data) {
9
19
  return getProps(data).map(_getUpdate).filter(isDefined);
10
20
  }
@@ -27,7 +37,19 @@ function _getUpdate([key, value]) {
27
37
  return { action: "set", key: splitDataPath(key), value };
28
38
  }
29
39
  }
30
- /** Update a data object with a set of updates. */
40
+ /**
41
+ * Return a copy of a data object with a set of updates applied.
42
+ *
43
+ * - Returns the original reference unchanged when no update changed a value.
44
+ * - Supports nested paths, sum/increment, and array add/remove updates via the encoded `Updates` syntax.
45
+ *
46
+ * @param data The data object to update.
47
+ * @param updates The set of updates to apply.
48
+ * @returns The updated data object (or the original reference if nothing changed).
49
+ * @throws `RequiredError` if a `+=`/`-=` sum update has a non-number value.
50
+ * @example updateData({ count: 1 }, { "+=count": 2 }) // { count: 3 }
51
+ * @see https://dhoulb.github.io/shelving/util/update/updateData
52
+ */
31
53
  export function updateData(data, updates) {
32
54
  return reduceItems(getUpdates(updates), _updateProp, data);
33
55
  }
package/util/uri.d.ts CHANGED
@@ -12,17 +12,39 @@ import type { ImmutableURL, URLString } from "./url.js";
12
12
  * - The absence of `//` indicates a non-hierarchical URI.
13
13
  * - URLs can be considered as "hierarchical URIs".
14
14
  * - All URLs are also URIs, but not all URIs are URLs.
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/util/uri/URIString
15
17
  */
16
18
  export type URIString = `${string}:${string}`;
19
+ /**
20
+ * String for the search component of a URI, including the leading `?`
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/util/uri/URISearch
23
+ */
17
24
  export type URISearch = `?${string}`;
25
+ /**
26
+ * String for the hash component of a URI, including the leading `#`
27
+ *
28
+ * @see https://dhoulb.github.io/shelving/util/uri/URIHash
29
+ */
18
30
  export type URIHash = `#${string}`;
19
31
  /**
20
32
  * Construct a correctly-typed `URI` object.
21
33
  * - This is a more correctly typed version of the builtin Javascript `URL` constructor.
22
34
  * - Takes a URI string or URI object that already encodes a complete URI — no base parameter, so relative inputs are not accepted.
23
35
  * - To resolve a relative input against a base, use `getBasedURI()` from `url.ts`.
36
+ *
37
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURIConstructor
24
38
  */
25
39
  export interface ImmutableURIConstructor {
40
+ /**
41
+ * Construct an `ImmutableURI` from a complete URI string or URI object.
42
+ *
43
+ * @param input URI string or URI object that already encodes a complete URI.
44
+ * @returns New `ImmutableURI` instance.
45
+ * @throws {TypeError} If `input` is not a valid complete URI.
46
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURIConstructor/new
47
+ */
26
48
  new (input: URIString | ImmutableURI): ImmutableURI;
27
49
  }
28
50
  /**
@@ -35,42 +57,152 @@ export interface ImmutableURIConstructor {
35
57
  * - The absence of `//` indicates a non-hierarchical URI.
36
58
  * - URLs can be considered as "hierarchical URIs".
37
59
  * - All URLs are also URIs, but not all URIs are URLs.
60
+ *
61
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI
38
62
  */
39
63
  export interface ImmutableURI extends URL {
64
+ /**
65
+ * Hash component of the URI, including the leading `#` (empty string if absent).
66
+ *
67
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/hash
68
+ */
40
69
  readonly hash: URIHash | ``;
70
+ /**
71
+ * Host component of the URI (hostname and port), or empty string for non-hierarchical URIs.
72
+ *
73
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/host
74
+ */
41
75
  readonly host: string;
76
+ /**
77
+ * Hostname component of the URI, or empty string for non-hierarchical URIs.
78
+ *
79
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/hostname
80
+ */
42
81
  readonly hostname: string;
82
+ /**
83
+ * Full URI string.
84
+ *
85
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/href
86
+ */
43
87
  readonly href: URIString;
88
+ /**
89
+ * Origin of the URI, or the string `"null"` for origins that cannot be serialised.
90
+ *
91
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/origin
92
+ */
44
93
  readonly origin: URIString | `null`;
94
+ /**
95
+ * Password component of the URI (empty string if absent).
96
+ *
97
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/password
98
+ */
45
99
  readonly password: string;
100
+ /**
101
+ * Pathname component of the URI.
102
+ *
103
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/pathname
104
+ */
46
105
  readonly pathname: string;
106
+ /**
107
+ * Port component of the URI (empty string if absent).
108
+ *
109
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/port
110
+ */
47
111
  readonly port: string;
112
+ /**
113
+ * Protocol scheme of the URI, including the trailing `:`
114
+ *
115
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/protocol
116
+ */
48
117
  readonly protocol: URIScheme;
118
+ /**
119
+ * Search component of the URI, including the leading `?` (empty string if absent).
120
+ *
121
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/search
122
+ */
49
123
  readonly search: URISearch | ``;
124
+ /**
125
+ * Username component of the URI (empty string if absent).
126
+ *
127
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI/username
128
+ */
50
129
  readonly username: string;
51
130
  }
131
+ /**
132
+ * Correctly-typed `URI` constructor (the builtin `URL` class typed as `ImmutableURIConstructor`).
133
+ *
134
+ * @see https://dhoulb.github.io/shelving/util/uri/ImmutableURI
135
+ */
52
136
  export declare const ImmutableURI: ImmutableURIConstructor;
53
- /** Values that can be converted to an ImmutableURI instance. */
137
+ /**
138
+ * Values that can be converted to an `ImmutableURI` instance.
139
+ *
140
+ * @see https://dhoulb.github.io/shelving/util/uri/PossibleURI
141
+ */
54
142
  export type PossibleURI = string | URL;
55
- /** Is an unknown value a URI object? */
143
+ /**
144
+ * Is an unknown value a URI object?
145
+ *
146
+ * @param value The value to test.
147
+ * @returns `true` if `value` is an `ImmutableURI`, narrowing its type.
148
+ * @example isURI(new URL("http://x.com")) // true
149
+ * @see https://dhoulb.github.io/shelving/util/uri/isURI
150
+ */
56
151
  export declare function isURI(value: unknown): value is ImmutableURI;
57
- /** Assert that an unknown value is a URI object. */
152
+ /**
153
+ * Assert that an unknown value is a URI object.
154
+ *
155
+ * @param value The value to assert.
156
+ * @param caller Function to attribute a thrown error to (defaults to `assertURI` itself).
157
+ * @throws {RequiredError} If `value` is not a URI object.
158
+ * @see https://dhoulb.github.io/shelving/util/uri/assertURI
159
+ */
58
160
  export declare function assertURI(value: unknown, caller?: AnyCaller): asserts value is ImmutableURI;
59
161
  /**
60
162
  * Convert a possible URI to a URI, or return `undefined` if conversion fails.
61
163
  * - Only inputs that already encode a complete URI succeed — relative inputs return `undefined`. No implicit fallback to the document or window URL.
62
164
  * - To resolve a relative ref against a base, use `getBasedURI()` from `url.ts`.
165
+ *
166
+ * @param possible Possible URI value to convert (a nullish value returns `undefined`).
167
+ * @returns Converted `ImmutableURI`, or `undefined` if conversion fails.
168
+ * @example getURI("http://shax.com") // URL { … }
169
+ * @see https://dhoulb.github.io/shelving/util/uri/getURI
63
170
  */
64
171
  export declare function getURI(possible: Nullish<PossibleURI>): ImmutableURI | undefined;
65
- /** Convert a possible URI to a URI, or throw `RequiredError` if conversion fails. */
172
+ /**
173
+ * Convert a possible URI to a URI, or throw `RequiredError` if conversion fails.
174
+ *
175
+ * @param possible Possible URI value to convert.
176
+ * @param caller Function to attribute a thrown error to (defaults to `requireURI` itself).
177
+ * @returns Converted `ImmutableURI`.
178
+ * @throws {RequiredError} If `possible` cannot be converted to a valid URI.
179
+ * @example requireURI("http://shax.com") // URL { … }
180
+ * @see https://dhoulb.github.io/shelving/util/uri/requireURI
181
+ */
66
182
  export declare function requireURI(possible: PossibleURI, caller?: AnyCaller): ImmutableURI;
67
- /** Type for a set of named URL parameters. */
183
+ /**
184
+ * Type for a set of named URI parameters.
185
+ *
186
+ * @see https://dhoulb.github.io/shelving/util/uri/URIParams
187
+ */
68
188
  export type URIParams = ImmutableDictionary<string>;
69
- /** Type for things that can be converted to named URI parameters. */
189
+ /**
190
+ * Type for things that can be converted to named URI parameters.
191
+ *
192
+ * @see https://dhoulb.github.io/shelving/util/uri/PossibleURIParams
193
+ */
70
194
  export type PossibleURIParams = PossibleURI | URLSearchParams | ImmutableDictionary<unknown>;
71
195
  /**
72
196
  * Get a set of params for a URI as a dictionary.
73
197
  * - Any params with `undefined` value will be ignored.
198
+ *
199
+ * @param params Possible URI params to convert.
200
+ * @param caller Function to attribute a thrown error to (defaults to `getURIParams` itself).
201
+ * @returns Dictionary of string params keyed by name.
202
+ * @throws {RequiredError} If `params` is a string or URL that cannot be converted to a valid URI.
203
+ * @throws {ValueError} If any param value cannot be converted to a string.
204
+ * @example getURIParams("http://x.com?a=1&b=2") // { a: "1", b: "2" }
205
+ * @see https://dhoulb.github.io/shelving/util/uri/getURIParams
74
206
  */
75
207
  export declare function getURIParams(params: PossibleURIParams, caller?: AnyCaller): URIParams;
76
208
  /** Get a single named param from a URI. */