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
@@ -1,23 +1,78 @@
1
1
  import type { AnyConstructor } from "./class.js";
2
- /** Readonly unknown array that is being used as a set of arguments to a function. */
2
+ /**
3
+ * Readonly unknown array that is being used as a set of arguments to a function.
4
+ *
5
+ * @see https://dhoulb.github.io/shelving/util/function/Arguments
6
+ */
3
7
  export type Arguments = readonly unknown[];
4
- /** Unknown function. */
8
+ /**
9
+ * Unknown function.
10
+ *
11
+ * @see https://dhoulb.github.io/shelving/util/function/UnknownFunction
12
+ */
5
13
  export type UnknownFunction = (...args: unknown[]) => unknown;
6
- /** Any function (purposefully as wide as possible for use with `extends X` or `is X` statements). */
14
+ /**
15
+ * Any function (purposefully as wide as possible for use with `extends X` or `is X` statements).
16
+ *
17
+ * @see https://dhoulb.github.io/shelving/util/function/AnyFunction
18
+ */
7
19
  export type AnyFunction = (...args: any) => any;
8
- /** Any calling function or constructor, usually referring to something that can call in the current scope that can appear in a stack trace. */
20
+ /**
21
+ * Any calling function or constructor, usually referring to something that can call in the current scope that can appear in a stack trace.
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/util/function/AnyCaller
24
+ */
9
25
  export type AnyCaller = AnyFunction | AnyConstructor;
10
- /** A callback is a function that is called when something happens, optionally with multiple values. */
26
+ /**
27
+ * A callback is a function that is called when something happens, optionally with multiple values.
28
+ *
29
+ * @see https://dhoulb.github.io/shelving/util/function/Callback
30
+ */
11
31
  export type Callback<A extends Arguments = []> = (...args: A) => void;
12
- /** A callback is a function that is called when something happens with a value. */
32
+ /**
33
+ * A callback is a function that is called when something happens with a value.
34
+ *
35
+ * @see https://dhoulb.github.io/shelving/util/function/ValueCallback
36
+ */
13
37
  export type ValueCallback<T> = (value: T) => void;
14
- /** Function that is called when something errors. */
38
+ /**
39
+ * Function that is called when something errors.
40
+ *
41
+ * @see https://dhoulb.github.io/shelving/util/function/ErrorCallback
42
+ */
15
43
  export type ErrorCallback = (reason: unknown) => void;
16
- /** Is a value a function? */
44
+ /**
45
+ * Is a value a function?
46
+ *
47
+ * @param value The value to test.
48
+ * @returns `true` if `value` is a function, narrowing its type to `AnyFunction`.
49
+ * @example isFunction(() => {}) // true
50
+ * @see https://dhoulb.github.io/shelving/util/function/isFunction
51
+ */
17
52
  export declare function isFunction(value: unknown): value is AnyFunction;
18
- /** Assert that a value is a function. */
53
+ /**
54
+ * Assert that a value is a function.
55
+ *
56
+ * @param value The value to assert.
57
+ * @throws {RequiredError} If `value` is not a function.
58
+ * @see https://dhoulb.github.io/shelving/util/function/assertFunction
59
+ */
19
60
  export declare function assertFunction(value: unknown): asserts value is AnyFunction;
20
- /** Function that just passes through the first argument. */
61
+ /**
62
+ * Function that just passes through the first argument.
63
+ *
64
+ * @param value The value to return.
65
+ * @returns The exact `value` it was given, unchanged.
66
+ * @example PASSTHROUGH(123) // 123
67
+ * @see https://dhoulb.github.io/shelving/util/function/PASSTHROUGH
68
+ */
21
69
  export declare function PASSTHROUGH<T>(value: T): T;
22
- /** Function that does nothing with its arguments and always returns void. */
70
+ /**
71
+ * Function that does nothing with its arguments and always returns void.
72
+ *
73
+ * @param _unused Zero or more arguments, all ignored.
74
+ * @returns Always `undefined`.
75
+ * @example BLACKHOLE(1, 2, 3) // undefined
76
+ * @see https://dhoulb.github.io/shelving/util/function/BLACKHOLE
77
+ */
23
78
  export declare function BLACKHOLE(..._unused: Arguments): void | undefined;
package/util/function.js CHANGED
@@ -1,18 +1,45 @@
1
1
  import { RequiredError } from "../error/RequiredError.js";
2
- /** Is a value a function? */
2
+ /**
3
+ * Is a value a function?
4
+ *
5
+ * @param value The value to test.
6
+ * @returns `true` if `value` is a function, narrowing its type to `AnyFunction`.
7
+ * @example isFunction(() => {}) // true
8
+ * @see https://dhoulb.github.io/shelving/util/function/isFunction
9
+ */
3
10
  export function isFunction(value) {
4
11
  return typeof value === "function";
5
12
  }
6
- /** Assert that a value is a function. */
13
+ /**
14
+ * Assert that a value is a function.
15
+ *
16
+ * @param value The value to assert.
17
+ * @throws {RequiredError} If `value` is not a function.
18
+ * @see https://dhoulb.github.io/shelving/util/function/assertFunction
19
+ */
7
20
  export function assertFunction(value) {
8
21
  if (typeof value !== "function")
9
22
  throw new RequiredError("Must be function", { received: value, caller: assertFunction });
10
23
  }
11
- /** Function that just passes through the first argument. */
24
+ /**
25
+ * Function that just passes through the first argument.
26
+ *
27
+ * @param value The value to return.
28
+ * @returns The exact `value` it was given, unchanged.
29
+ * @example PASSTHROUGH(123) // 123
30
+ * @see https://dhoulb.github.io/shelving/util/function/PASSTHROUGH
31
+ */
12
32
  export function PASSTHROUGH(value) {
13
33
  return value;
14
34
  }
15
- /** Function that does nothing with its arguments and always returns void. */
35
+ /**
36
+ * Function that does nothing with its arguments and always returns void.
37
+ *
38
+ * @param _unused Zero or more arguments, all ignored.
39
+ * @returns Always `undefined`.
40
+ * @example BLACKHOLE(1, 2, 3) // undefined
41
+ * @see https://dhoulb.github.io/shelving/util/function/BLACKHOLE
42
+ */
16
43
  export function BLACKHOLE(..._unused) {
17
44
  return undefined;
18
45
  }
package/util/geo.d.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import type { AnyCaller } from "./function.js";
2
- /** List of countries by two-letter ISO code. */
2
+ /**
3
+ * List of countries by two-letter ISO 3166-1 alpha-2 code.
4
+ * - Keys are uppercase two-letter codes; values are the full English country name.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/util/geo/COUNTRIES
7
+ */
3
8
  export declare const COUNTRIES: {
4
9
  readonly AF: "Afghanistan";
5
10
  readonly AX: "Aland Islands";
@@ -248,17 +253,55 @@ export declare const COUNTRIES: {
248
253
  readonly ZM: "Zambia";
249
254
  readonly ZW: "Zimbabwe";
250
255
  };
251
- /** Country code string. */
256
+ /**
257
+ * Two-letter ISO 3166-1 alpha-2 country code string (a key of `COUNTRIES`).
258
+ *
259
+ * @see https://dhoulb.github.io/shelving/util/geo/Country
260
+ */
252
261
  export type Country = keyof typeof COUNTRIES;
253
- /** Things that can possibly be a country. */
262
+ /**
263
+ * A value that can possibly be resolved to a `Country` — either a country code or the literal `"detect"`.
264
+ *
265
+ * @see https://dhoulb.github.io/shelving/util/geo/PossibleCountry
266
+ */
254
267
  export type PossibleCountry = Country | "detect";
255
- /** Parse a country string, or detect a browser country from `navigator.language`. */
268
+ /**
269
+ * Parse a country string, or detect a browser country from `navigator.language`.
270
+ * - When `value` is `"detect"`, reads the last two characters of `navigator.language` (if available).
271
+ * - Matching is case-insensitive; the value is uppercased before lookup.
272
+ *
273
+ * @param value The country code to parse, or `"detect"` to read it from the browser. Defaults to `"detect"`.
274
+ * @returns The matching `Country` code, or `undefined` if it could not be resolved.
275
+ * @example getCountry("gb") // "GB"
276
+ * @see https://dhoulb.github.io/shelving/util/geo/getCountry
277
+ */
256
278
  export declare function getCountry(value?: unknown): Country | undefined;
257
- /** Parse a country string, or detect a browser country from `navigator.language`, or throw `RequiredError` */
279
+ /**
280
+ * Parse a country string, or detect a browser country from `navigator.language`, or throw `RequiredError`.
281
+ *
282
+ * @param value The country code to parse, or `"detect"` to read it from the browser.
283
+ * @param caller Identity of the calling function for error attribution.
284
+ * @returns The matching `Country` code.
285
+ * @throws RequiredError If a country could not be resolved.
286
+ * @example requireCountry("gb") // "GB"
287
+ * @see https://dhoulb.github.io/shelving/util/geo/requireCountry
288
+ */
258
289
  export declare function requireCountry(value?: unknown, caller?: AnyCaller): Country;
259
- /** Format a country code into its full country name. */
290
+ /**
291
+ * Format a country code into its full country name.
292
+ * - Matching is case-insensitive; unknown codes are returned unchanged.
293
+ *
294
+ * @param country The country code to format.
295
+ * @returns The full English country name, or the input unchanged if it is not a known code.
296
+ * @example formatCountry("GB") // "United Kingdom"
297
+ * @see https://dhoulb.github.io/shelving/util/geo/formatCountry
298
+ */
260
299
  export declare function formatCountry(country: string): string;
261
- /** Valid shape for physical address data. */
300
+ /**
301
+ * Valid shape for physical address data.
302
+ *
303
+ * @see https://dhoulb.github.io/shelving/util/geo/AddressData
304
+ */
262
305
  export type AddressData = {
263
306
  readonly address1: string;
264
307
  readonly address2: string;
@@ -267,5 +310,14 @@ export type AddressData = {
267
310
  readonly postcode: string;
268
311
  readonly country: Country;
269
312
  };
270
- /** Format address data into a single multiline string. */
313
+ /**
314
+ * Format address data into a single multiline string.
315
+ * - Each field is placed on its own line; an empty `address2` is omitted.
316
+ * - The country code is expanded to its full name via `formatCountry`.
317
+ *
318
+ * @param address The address data to format.
319
+ * @returns A newline-separated address string.
320
+ * @example formatAddress({ address1: "1 High St", address2: "", city: "London", state: "", postcode: "SW1", country: "GB" })
321
+ * @see https://dhoulb.github.io/shelving/util/geo/formatAddress
322
+ */
271
323
  export declare function formatAddress({ address1, address2, city, state, postcode, country }: AddressData): string;
package/util/geo.js CHANGED
@@ -1,6 +1,11 @@
1
1
  import { RequiredError } from "../error/RequiredError.js";
2
2
  import { isProp } from "./object.js";
3
- /** List of countries by two-letter ISO code. */
3
+ /**
4
+ * List of countries by two-letter ISO 3166-1 alpha-2 code.
5
+ * - Keys are uppercase two-letter codes; values are the full English country name.
6
+ *
7
+ * @see https://dhoulb.github.io/shelving/util/geo/COUNTRIES
8
+ */
4
9
  export const COUNTRIES = {
5
10
  AF: "Afghanistan",
6
11
  AX: "Aland Islands",
@@ -249,7 +254,16 @@ export const COUNTRIES = {
249
254
  ZM: "Zambia",
250
255
  ZW: "Zimbabwe",
251
256
  };
252
- /** Parse a country string, or detect a browser country from `navigator.language`. */
257
+ /**
258
+ * Parse a country string, or detect a browser country from `navigator.language`.
259
+ * - When `value` is `"detect"`, reads the last two characters of `navigator.language` (if available).
260
+ * - Matching is case-insensitive; the value is uppercased before lookup.
261
+ *
262
+ * @param value The country code to parse, or `"detect"` to read it from the browser. Defaults to `"detect"`.
263
+ * @returns The matching `Country` code, or `undefined` if it could not be resolved.
264
+ * @example getCountry("gb") // "GB"
265
+ * @see https://dhoulb.github.io/shelving/util/geo/getCountry
266
+ */
253
267
  export function getCountry(value = "detect") {
254
268
  if (value === "detect") {
255
269
  if (typeof navigator === "object") {
@@ -264,19 +278,45 @@ export function getCountry(value = "detect") {
264
278
  return code;
265
279
  }
266
280
  }
267
- /** Parse a country string, or detect a browser country from `navigator.language`, or throw `RequiredError` */
281
+ /**
282
+ * Parse a country string, or detect a browser country from `navigator.language`, or throw `RequiredError`.
283
+ *
284
+ * @param value The country code to parse, or `"detect"` to read it from the browser.
285
+ * @param caller Identity of the calling function for error attribution.
286
+ * @returns The matching `Country` code.
287
+ * @throws RequiredError If a country could not be resolved.
288
+ * @example requireCountry("gb") // "GB"
289
+ * @see https://dhoulb.github.io/shelving/util/geo/requireCountry
290
+ */
268
291
  export function requireCountry(value, caller = requireCountry) {
269
292
  const country = getCountry(value);
270
293
  if (!country)
271
294
  throw new RequiredError("Must be country", { received: value, caller });
272
295
  return country;
273
296
  }
274
- /** Format a country code into its full country name. */
297
+ /**
298
+ * Format a country code into its full country name.
299
+ * - Matching is case-insensitive; unknown codes are returned unchanged.
300
+ *
301
+ * @param country The country code to format.
302
+ * @returns The full English country name, or the input unchanged if it is not a known code.
303
+ * @example formatCountry("GB") // "United Kingdom"
304
+ * @see https://dhoulb.github.io/shelving/util/geo/formatCountry
305
+ */
275
306
  export function formatCountry(country) {
276
307
  const code = country.toUpperCase();
277
308
  return isProp(COUNTRIES, code) ? COUNTRIES[code] : country;
278
309
  }
279
- /** Format address data into a single multiline string. */
310
+ /**
311
+ * Format address data into a single multiline string.
312
+ * - Each field is placed on its own line; an empty `address2` is omitted.
313
+ * - The country code is expanded to its full name via `formatCountry`.
314
+ *
315
+ * @param address The address data to format.
316
+ * @returns A newline-separated address string.
317
+ * @example formatAddress({ address1: "1 High St", address2: "", city: "London", state: "", postcode: "SW1", country: "GB" })
318
+ * @see https://dhoulb.github.io/shelving/util/geo/formatAddress
319
+ */
280
320
  export function formatAddress({ address1, address2, city, state, postcode, country }) {
281
321
  return `${address1}\n${address2 ? `${address2}\n` : ""}${city}\n${state}\n${postcode}\n${formatCountry(country)}`;
282
322
  }
package/util/hash.d.ts CHANGED
@@ -1,4 +1,23 @@
1
- /** Hash a string into an idempotent number. */
1
+ /**
2
+ * Hash a string into an idempotent number.
3
+ * - Sums the char codes of every character, so the same string always produces the same number.
4
+ * - Not cryptographically secure — intended for cheap, stable bucketing.
5
+ *
6
+ * @param str The string to hash.
7
+ * @returns A non-negative number derived from the string's characters.
8
+ * @example hashString("abc") // 294
9
+ * @see https://dhoulb.github.io/shelving/util/hash/hashString
10
+ */
2
11
  export declare function hashString(str: string): number;
3
- /** Hash a string into an idempotent number between two values. */
12
+ /**
13
+ * Hash a string into an idempotent number wrapped between two values.
14
+ * - Useful for deterministically mapping a string into a fixed range, e.g. a colour or bucket index.
15
+ *
16
+ * @param str The string to hash.
17
+ * @param min The inclusive lower bound of the output range. Defaults to `0`.
18
+ * @param max The exclusive upper bound of the output range. Defaults to `256`.
19
+ * @returns A number in the range `min` to `max` derived from the string.
20
+ * @example hashStringBetween("abc", 0, 10) // 4
21
+ * @see https://dhoulb.github.io/shelving/util/hash/hashStringBetween
22
+ */
4
23
  export declare function hashStringBetween(str: string, min?: number, max?: number): number;
package/util/hash.js CHANGED
@@ -1,12 +1,31 @@
1
1
  import { wrapNumber } from "./number.js";
2
- /** Hash a string into an idempotent number. */
2
+ /**
3
+ * Hash a string into an idempotent number.
4
+ * - Sums the char codes of every character, so the same string always produces the same number.
5
+ * - Not cryptographically secure — intended for cheap, stable bucketing.
6
+ *
7
+ * @param str The string to hash.
8
+ * @returns A non-negative number derived from the string's characters.
9
+ * @example hashString("abc") // 294
10
+ * @see https://dhoulb.github.io/shelving/util/hash/hashString
11
+ */
3
12
  export function hashString(str) {
4
13
  let hash = 0;
5
14
  for (let i = 0; i < str.length; i++)
6
15
  hash += str.charCodeAt(i);
7
16
  return hash;
8
17
  }
9
- /** Hash a string into an idempotent number between two values. */
18
+ /**
19
+ * Hash a string into an idempotent number wrapped between two values.
20
+ * - Useful for deterministically mapping a string into a fixed range, e.g. a colour or bucket index.
21
+ *
22
+ * @param str The string to hash.
23
+ * @param min The inclusive lower bound of the output range. Defaults to `0`.
24
+ * @param max The exclusive upper bound of the output range. Defaults to `256`.
25
+ * @returns A number in the range `min` to `max` derived from the string.
26
+ * @example hashStringBetween("abc", 0, 10) // 4
27
+ * @see https://dhoulb.github.io/shelving/util/hash/hashStringBetween
28
+ */
10
29
  export function hashStringBetween(str, min = 0, max = 256) {
11
30
  return wrapNumber(hashString(str), min, max);
12
31
  }
package/util/http.d.ts CHANGED
@@ -4,62 +4,107 @@ import type { AnyCaller, Arguments } from "./function.js";
4
4
  import { type Nullish } from "./null.js";
5
5
  import { type PossibleURIParams } from "./uri.js";
6
6
  import { type PossibleURL } from "./url.js";
7
- /** A handler function takes a `Request` and optional extra arguments and returns a `Response` (possibly asynchronously). */
7
+ /**
8
+ * A handler function takes a `Request` and optional extra arguments and returns a `Response` (possibly asynchronously).
9
+ *
10
+ * @see https://dhoulb.github.io/shelving/util/http/RequestHandler
11
+ */
8
12
  export type RequestHandler<A extends Arguments = []> = (request: Request, ...args: A) => Response | Promise<Response>;
9
- /** An optional request handler that may return `undefined` to indicate no match. */
13
+ /**
14
+ * An optional request handler that may return `undefined` to indicate no match.
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/util/http/OptionalRequestHandler
17
+ */
10
18
  export type OptionalRequestHandler<A extends Arguments = []> = (request: Request, ...args: A) => Response | Promise<Response> | undefined;
11
- /** A list of optional request handlers. */
19
+ /**
20
+ * A list of optional request handlers.
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/util/http/OptionalRequestHandlers
23
+ */
12
24
  export type OptionalRequestHandlers<A extends Arguments = []> = Iterable<OptionalRequestHandler<A>>;
13
25
  /**
14
26
  * Parse the body content of an HTTP `Request` based on its content type, or throw `RequestError` if the content could not be parsed.
15
27
  *
28
+ * @param request The `Request` whose body to parse.
29
+ * @param caller Identity of the calling function for error attribution.
16
30
  * @returns undefined If the request method is `GET` or `HEAD` (these request methods have no body).
17
31
  * @returns unknown If content type is `application/json` and has valid JSON (including `undefined` if the content is empty).
18
32
  * @returns unknown If content type is `multipart/form-data` then convert it to a simple `Data` object.
19
33
  * @returns string If content type is `text/plain` or anything else (including `""` empty string if it's empty).
20
34
  *
21
- * @throws RequestError if the content is not `text/plain`, or `application/json` with valid JSON.
35
+ * @throws {RequestError} If the content is not `text/plain`, or `application/json` with valid JSON.
36
+ * @example const body = await parseRequestBody(request);
37
+ * @see https://dhoulb.github.io/shelving/util/http/parseRequestBody
22
38
  */
23
39
  export declare function parseRequestBody(request: Request, caller?: AnyCaller): Promise<unknown>;
24
40
  /**
25
41
  * Parse JSON from an HTTP `Request`, or return `undefined` when the request has no body.
26
42
  *
27
- * @throws RequestError If the request body is not valid JSON.
43
+ * @param request The `Request` whose JSON body to parse.
44
+ * @param caller Identity of the calling function for error attribution.
45
+ * @returns The parsed JSON value, or `undefined` if the body is empty.
46
+ * @throws {RequestError} If the request body is not valid JSON.
47
+ * @example const data = await parseRequestJSON(request);
48
+ * @see https://dhoulb.github.io/shelving/util/http/parseRequestJSON
28
49
  */
29
50
  export declare function parseRequestJSON(request: Request, caller?: AnyCaller): Promise<unknown>;
30
51
  /**
31
52
  * Parse `FormData` from an HTTP `Request`, or return `undefined` when the request has no body.
32
53
  *
33
- * @throws RequestError If the request body is not valid multipart form-data.
54
+ * @param request The `Request` whose form-data body to parse.
55
+ * @param caller Identity of the calling function for error attribution.
56
+ * @returns The parsed `FormData`.
57
+ * @throws {RequestError} If the request body is not valid multipart form-data.
58
+ * @example const form = await parseRequestFormData(request);
59
+ * @see https://dhoulb.github.io/shelving/util/http/parseRequestFormData
34
60
  */
35
61
  export declare function parseRequestFormData(request: Request, caller?: AnyCaller): Promise<FormData | undefined>;
36
62
  /**
37
63
  * Parse the body content of an HTTP `Response` based on its content type, or throw `ResponseError` if the content could not be parsed.
38
64
  *
65
+ * @param response The `Response` whose body to parse.
66
+ * @param caller Identity of the calling function for error attribution.
39
67
  * @returns unknown If content type is `application/json` and has valid JSON (including `undefined` if the content is empty).
40
68
  * @returns unknown If content type is `multipart/form-data` then convert it to a simple `Data` object.
41
69
  * @returns string If content type is `text/plain` or anything else (including `""` empty string if it's empty).
42
70
  *
43
- * @throws ResponseError if the content is not `text/plain` or `application/json` with valid JSON.
71
+ * @throws {ResponseError} If the content is not `text/plain` or `application/json` with valid JSON.
72
+ * @example const body = await parseResponseBody(response);
73
+ * @see https://dhoulb.github.io/shelving/util/http/parseResponseBody
44
74
  */
45
75
  export declare function parseResponseBody(response: Response, caller?: AnyCaller): Promise<unknown>;
46
76
  /**
47
77
  * Parse JSON from an HTTP `Response`, or return `undefined` when the response has no body.
48
78
  *
49
- * @throws ResponseError If the response body is not valid JSON.
79
+ * @param response The `Response` whose JSON body to parse.
80
+ * @param caller Identity of the calling function for error attribution.
81
+ * @returns The parsed JSON value, or `undefined` if the body is empty.
82
+ * @throws {ResponseError} If the response body is not valid JSON.
83
+ * @example const data = await parseResponseJSON(response);
84
+ * @see https://dhoulb.github.io/shelving/util/http/parseResponseJSON
50
85
  */
51
86
  export declare function parseResponseJSON(response: Response, caller?: AnyCaller): Promise<unknown>;
52
87
  /**
53
88
  * Parse `FormData` from an HTTP `Response`, or return `undefined` when the response has no body.
54
89
  *
55
- * @throws ResponseError If the response body is not valid multipart form-data.
90
+ * @param response The `Response` whose form-data body to parse.
91
+ * @param caller Identity of the calling function for error attribution.
92
+ * @returns The parsed `FormData`.
93
+ * @throws {ResponseError} If the response body is not valid multipart form-data.
94
+ * @example const form = await parseResponseFormData(response);
95
+ * @see https://dhoulb.github.io/shelving/util/http/parseResponseFormData
56
96
  */
57
97
  export declare function parseResponseFormData(response: Response, caller?: AnyCaller): Promise<FormData>;
58
98
  /**
59
99
  * Get an HTTP `Response` for an unknown value.
100
+ * - A `Response` value is returned unchanged.
101
+ * - `undefined` becomes a `204 No Content` response.
102
+ * - Anything else becomes a `200` JSON response.
60
103
  *
61
104
  * @param value The value to convert to a `Response`.
62
105
  * @returns A `Response` with a 2xx status, and response body as JSON (if it was set), or no body if `value` is `undefined`
106
+ * @example getResponse({ name: "abc" }) // 200 JSON Response
107
+ * @see https://dhoulb.github.io/shelving/util/http/getResponse
63
108
  */
64
109
  export declare function getResponse(value: unknown): Response;
65
110
  /**
@@ -73,28 +118,71 @@ export declare function getResponse(value: unknown): Response;
73
118
  * - Anything else returns a 500 response.
74
119
  *
75
120
  * @param reason The error value to convert to a `Response`.
76
- * @param debug If `true` include the error message in the response (for debugging), or `false` to return generic error codes (for security).
121
+ * @param debug If `true` include the error message in the response (for debugging), or `false` to return generic error codes (for security). Defaults to `false`.
122
+ * @returns A `Response` with a status code and (optionally) body derived from the error.
123
+ * @example getErrorResponse("Invalid input") // 422 Response
124
+ * @see https://dhoulb.github.io/shelving/util/http/getErrorResponse
77
125
  */
78
126
  export declare function getErrorResponse(reason: unknown, debug?: boolean): Response;
79
- /** HTTP request methods that have no body. */
127
+ /**
128
+ * HTTP request methods that have no body.
129
+ *
130
+ * @see https://dhoulb.github.io/shelving/util/http/RequestHeadMethod
131
+ */
80
132
  export type RequestHeadMethod = "HEAD" | "GET";
81
- /** HTTP request methods that have a body. */
133
+ /**
134
+ * HTTP request methods that have a body.
135
+ *
136
+ * @see https://dhoulb.github.io/shelving/util/http/RequestBodyMethod
137
+ */
82
138
  export type RequestBodyMethod = "POST" | "PUT" | "PATCH" | "DELETE";
83
- /** HTTP request methods. */
139
+ /**
140
+ * HTTP request methods.
141
+ *
142
+ * @see https://dhoulb.github.io/shelving/util/http/RequestMethod
143
+ */
84
144
  export type RequestMethod = RequestHeadMethod | RequestBodyMethod;
85
- /** Check whether an HTTP Request method string is a supported request methods. */
145
+ /**
146
+ * Is a string a supported HTTP request method?
147
+ *
148
+ * @param method The method string to test.
149
+ * @returns `true` if `method` is a supported `RequestMethod`, narrowing its type.
150
+ * @example isRequestMethod("GET") // true
151
+ * @see https://dhoulb.github.io/shelving/util/http/isRequestMethod
152
+ */
86
153
  export declare function isRequestMethod(method: string): method is RequestMethod;
87
- /** Check whether an HTTP Request method string is a supported request method that never sends a body. */
154
+ /**
155
+ * Is a string a supported HTTP request method that never sends a body?
156
+ *
157
+ * @param method The method string to test.
158
+ * @returns `true` if `method` is a supported `RequestHeadMethod`, narrowing its type.
159
+ * @example isRequestHeadMethod("GET") // true
160
+ * @see https://dhoulb.github.io/shelving/util/http/isRequestHeadMethod
161
+ */
88
162
  export declare function isRequestHeadMethod(method: string): method is RequestHeadMethod;
89
- /** Params in requests are a dictionary of strings. */
163
+ /**
164
+ * Params in requests are a dictionary of strings.
165
+ *
166
+ * @see https://dhoulb.github.io/shelving/util/http/RequestParams
167
+ */
90
168
  export type RequestParams = ImmutableDictionary<string>;
91
- /** Configurable options for endpoint requests. */
169
+ /**
170
+ * Configurable options for endpoint requests.
171
+ *
172
+ * @see https://dhoulb.github.io/shelving/util/http/RequestOptions
173
+ */
92
174
  export type RequestOptions = Pick<RequestInit, "cache" | "credentials" | "headers" | "integrity" | "keepalive" | "mode" | "redirect" | "referrer" | "referrerPolicy" | "signal">;
93
175
  /**
94
176
  * Merge provider-level and call-level request options.
95
177
  * - Scalar options from `b` override `a`.
96
178
  * - Header dictionaries are merged so call-level headers override default headers by key.
97
179
  * - Abort signals are merged, so either abort signal will cancel the request.
180
+ *
181
+ * @param a The provider-level (default) request options.
182
+ * @param b The call-level request options whose values override `a`.
183
+ * @returns A merged `RequestOptions` with combined headers and abort signals.
184
+ * @example mergeRequestOptions({ cache: "no-store" }, { mode: "cors" }) // { cache: "no-store", mode: "cors", ... }
185
+ * @see https://dhoulb.github.io/shelving/util/http/mergeRequestOptions
98
186
  */
99
187
  export declare function mergeRequestOptions({ headers: aHeaders, signal: aSignal, ...a }?: RequestOptions, { headers: bHeaders, signal: bSignal, ...b }?: RequestOptions): RequestOptions;
100
188
  /**
@@ -105,9 +193,11 @@ export declare function mergeRequestOptions({ headers: aHeaders, signal: aSignal
105
193
  * @param url The target URL.
106
194
  * @param params `?query` params to encode into the URL.
107
195
  * @param options Additional request options.
196
+ * @param caller Function to attribute a thrown error to (defaults to `createHeadRequest`).
108
197
  * @returns A `Request` with no body content.
109
198
  *
110
199
  * @example createHeadRequest("POST", "https://api.example.com/items", { name: "abc" })
200
+ * @see https://dhoulb.github.io/shelving/util/http/createHeadRequest
111
201
  */
112
202
  export declare function createHeadRequest(method: RequestHeadMethod, url: PossibleURL, params: Nullish<PossibleURIParams>, options?: RequestOptions, caller?: AnyCaller): Request;
113
203
  /**
@@ -119,9 +209,11 @@ export declare function createHeadRequest(method: RequestHeadMethod, url: Possib
119
209
  * @param url The target URL.
120
210
  * @param body The plain-text request body.
121
211
  * @param options Additional request options.
212
+ * @param caller Function to attribute a thrown error to (defaults to `createTextRequest`).
122
213
  * @returns A `Request` with `text/plain` content type.
123
214
  *
124
215
  * @example createTextRequest("POST", "https://api.example.com/items", "hello")
216
+ * @see https://dhoulb.github.io/shelving/util/http/createTextRequest
125
217
  */
126
218
  export declare function createTextRequest(method: RequestMethod, url: PossibleURL, body: string, options?: RequestOptions, caller?: AnyCaller): Request;
127
219
  /**
@@ -133,9 +225,11 @@ export declare function createTextRequest(method: RequestMethod, url: PossibleUR
133
225
  * @param url The target URL.
134
226
  * @param body The value to JSON-encode.
135
227
  * @param options Additional request options.
228
+ * @param caller Function to attribute a thrown error to (defaults to `createJSONRequest`).
136
229
  * @returns A `Request` with `application/json` content type.
137
230
  *
138
231
  * @example createJSONRequest("POST", "https://api.example.com/items", { name: "abc" })
232
+ * @see https://dhoulb.github.io/shelving/util/http/createJSONRequest
139
233
  */
140
234
  export declare function createJSONRequest(method: RequestBodyMethod, url: PossibleURL, body: unknown, options?: RequestOptions, caller?: AnyCaller): Request;
141
235
  /**
@@ -146,9 +240,11 @@ export declare function createJSONRequest(method: RequestBodyMethod, url: Possib
146
240
  * @param url The target URL.
147
241
  * @param body The `FormData` payload.
148
242
  * @param options Additional request options.
243
+ * @param caller Function to attribute a thrown error to (defaults to `createFormDataRequest`).
149
244
  * @returns A `Request` with a multipart body.
150
245
  *
151
246
  * @example createFormDataRequest("POST", "https://api.example.com/upload", new FormData())
247
+ * @see https://dhoulb.github.io/shelving/util/http/createFormDataRequest
152
248
  */
153
249
  export declare function createFormDataRequest(method: RequestBodyMethod, url: PossibleURL, body: FormData, options?: RequestOptions, caller?: AnyCaller): Request;
154
250
  /**
@@ -160,11 +256,13 @@ export declare function createFormDataRequest(method: RequestBodyMethod, url: Po
160
256
  * @param url The target URL.
161
257
  * @param data The data object to serialize as XML.
162
258
  * @param options Additional request options.
259
+ * @param caller Function to attribute a thrown error to (defaults to `createXMLRequest`).
163
260
  * @returns A `Request` with `application/xml` content type.
164
261
  *
165
262
  * @throws {RequiredError} If the XML data contains invalid element names or values.
166
263
  *
167
264
  * @example createXMLRequest("POST", "https://api.example.com/items", { item: { name: "abc" } })
265
+ * @see https://dhoulb.github.io/shelving/util/http/createXMLRequest
168
266
  */
169
267
  export declare function createXMLRequest(method: RequestBodyMethod, url: PossibleURL, data: Data, options?: RequestOptions, caller?: AnyCaller): Request;
170
268
  /**
@@ -176,10 +274,27 @@ export declare function createXMLRequest(method: RequestBodyMethod, url: Possibl
176
274
  * - Expects a fully valid URL (any `{placeholders}` in the URL are not considered).
177
275
  * - As per the HTTP spec, `GET` and `HEAD` requests cannot contain a body
178
276
  *
179
- * @returns Request object.
277
+ * @param method The HTTP method.
278
+ * @param url The target URL.
279
+ * @param payload The body payload, whose type selects the content type.
280
+ * @param options Additional request options.
281
+ * @param caller Function to attribute a thrown error to (defaults to `createRequest`).
282
+ * @returns A `Request` with a content type chosen to match `payload`.
180
283
  *
181
284
  * @throws {RequiredError} if this is a `HEAD` or `GET` request but `body` is not a data object.
285
+ *
286
+ * @example createRequest("POST", "https://api.example.com/items", { name: "abc" }) // JSON Request
287
+ * @see https://dhoulb.github.io/shelving/util/http/createRequest
182
288
  */
183
289
  export declare function createRequest(method: RequestMethod, url: PossibleURL, payload: unknown, options?: RequestOptions, caller?: AnyCaller): Request;
184
- /** Assert that the payload for a HEAD or GET method is a data object, null, or undefined. */
290
+ /**
291
+ * Assert that the payload for a `HEAD` or `GET` method is a data object, `null`, or `undefined`.
292
+ *
293
+ * @param payload The payload to assert.
294
+ * @param method The HTTP method the payload is for (used in the error message).
295
+ * @param caller Function to attribute a thrown error to (defaults to `assertRequestHeadPayload`).
296
+ * @throws {RequiredError} If `payload` is not a data object, `null`, or `undefined`.
297
+ * @example assertRequestHeadPayload({ q: "abc" }, "GET"); // passes
298
+ * @see https://dhoulb.github.io/shelving/util/http/assertRequestHeadPayload
299
+ */
185
300
  export declare function assertRequestHeadPayload(payload: unknown, method: RequestHeadMethod, caller?: AnyCaller): asserts payload is Nullish<Data>;