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/map.d.ts CHANGED
@@ -1,45 +1,170 @@
1
1
  import type { Entry } from "./entry.js";
2
2
  import type { AnyCaller } from "./function.js";
3
- /** `Map` that cannot be changed. */
3
+ /**
4
+ * `Map` that cannot be changed.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/util/map/ImmutableMap
7
+ */
4
8
  export type ImmutableMap<K = unknown, T = unknown> = ReadonlyMap<K, T>;
5
- /** Class for a `Map` that cannot be changed (so you can extend `Map` while implementing `ImmutableMap`). */
9
+ /**
10
+ * Class for a `Map` that cannot be changed (so you can extend `Map` while implementing `ImmutableMap`).
11
+ *
12
+ * @see https://dhoulb.github.io/shelving/util/map/ImmutableMap
13
+ */
6
14
  export declare const ImmutableMap: {
7
15
  new <K, T>(...params: ConstructorParameters<typeof Map<K, T>>): ImmutableMap<K, T>;
8
16
  };
9
- /** `Map` that can be changed. */
17
+ /**
18
+ * `Map` that can be changed.
19
+ *
20
+ * @see https://dhoulb.github.io/shelving/util/map/MutableMap
21
+ */
10
22
  export type MutableMap<K = unknown, T = unknown> = Map<K, T>;
11
- /** Extract the type for the value of a map. */
23
+ /**
24
+ * Extract the type for the key of a map.
25
+ *
26
+ * @see https://dhoulb.github.io/shelving/util/map/MapKey
27
+ */
12
28
  export type MapKey<X> = X extends ReadonlyMap<infer Y, unknown> ? Y : never;
13
- /** Extract the type for the value of a map. */
29
+ /**
30
+ * Extract the type for the value of a map.
31
+ *
32
+ * @see https://dhoulb.github.io/shelving/util/map/MapValue
33
+ */
14
34
  export type MapValue<X> = X extends ReadonlyMap<unknown, infer Y> ? Y : never;
15
- /** Get the type for an item of a map in entry format. */
35
+ /**
36
+ * Get the type for an item of a map in entry format.
37
+ *
38
+ * @see https://dhoulb.github.io/shelving/util/map/MapItem
39
+ */
16
40
  export type MapItem<T extends ImmutableMap> = readonly [MapKey<T>, MapValue<T>];
17
- /** Things that can be converted to maps. */
41
+ /**
42
+ * Things that can be converted to maps.
43
+ *
44
+ * @see https://dhoulb.github.io/shelving/util/map/PossibleMap
45
+ */
18
46
  export type PossibleMap<K, T> = ImmutableMap<K, T> | Iterable<Entry<K, T>>;
19
- /** Things that can be converted to maps with string keys. */
47
+ /**
48
+ * Things that can be converted to maps with string keys.
49
+ *
50
+ * @see https://dhoulb.github.io/shelving/util/map/PossibleStringMap
51
+ */
20
52
  export type PossibleStringMap<K extends string, T> = PossibleMap<K, T> | {
21
53
  readonly [KK in K]: T;
22
54
  };
23
- /** Is an unknown value a map? */
55
+ /**
56
+ * Is an unknown value a map?
57
+ *
58
+ * @param value The value to test.
59
+ * @returns `true` if `value` is a `Map` instance, otherwise `false`.
60
+ * @example isMap(new Map()) // true
61
+ * @see https://dhoulb.github.io/shelving/util/map/isMap
62
+ */
24
63
  export declare function isMap(value: unknown): value is ImmutableMap;
25
- /** Assert that a value is a `Map` instance. */
64
+ /**
65
+ * Assert that a value is a `Map` instance.
66
+ *
67
+ * @param value The value to assert.
68
+ * @param caller Function used to attribute a thrown error to the calling site.
69
+ * @returns Nothing; narrows `value` to `ImmutableMap`.
70
+ * @throws {RequiredError} If `value` is not a `Map` instance.
71
+ * @example assertMap(new Map()); // passes
72
+ * @see https://dhoulb.github.io/shelving/util/map/assertMap
73
+ */
26
74
  export declare function assertMap(value: unknown, caller?: AnyCaller): asserts value is ImmutableMap;
27
- /** Convert an iterable to a `Map` (if it's already a `Map` it passes through unchanged). */
75
+ /**
76
+ * Convert an iterable to a `Map` (if it's already a `Map` it passes through unchanged).
77
+ *
78
+ * @param input The map, object, or iterable of entries to convert.
79
+ * @returns An `ImmutableMap` — the input unchanged if it's already a `Map`, otherwise a new `Map`.
80
+ * @example getMap({ a: 1, b: 2 }) // Map { "a" => 1, "b" => 2 }
81
+ * @see https://dhoulb.github.io/shelving/util/map/getMap
82
+ */
28
83
  export declare function getMap<K extends string, T>(input: PossibleStringMap<K, T>): ImmutableMap<K, T>;
29
84
  export declare function getMap<K, T>(input: PossibleMap<K, T>): ImmutableMap<K, T>;
30
- /** Apply a limit to a map. */
85
+ /**
86
+ * Apply a limit to a map.
87
+ * - Returns the input map unchanged if the limit is not smaller than its size.
88
+ *
89
+ * @param map The map to limit.
90
+ * @param limit The maximum number of items to keep.
91
+ * @returns An `ImmutableMap` with at most `limit` items (the input map unchanged if it already fits).
92
+ * @example limitMap(new Map([["a", 1], ["b", 2]]), 1) // Map { "a" => 1 }
93
+ * @see https://dhoulb.github.io/shelving/util/map/limitMap
94
+ */
31
95
  export declare function limitMap<T>(map: ImmutableMap<T>, limit: number): ImmutableMap<T>;
32
- /** Is an unknown value a key for an item in a map? */
96
+ /**
97
+ * Is an unknown value a key for an item in a map?
98
+ *
99
+ * @param map The map to look in.
100
+ * @param key The candidate key to test.
101
+ * @returns `true` if `key` exists in `map`, otherwise `false`.
102
+ * @example isMapItem(new Map([["a", 1]]), "a") // true
103
+ * @see https://dhoulb.github.io/shelving/util/map/isMapItem
104
+ */
33
105
  export declare function isMapItem<K, V>(map: ImmutableMap<K, V>, key: unknown): key is K;
34
- /** Assert that an unknown value is a key for an item in a map. */
106
+ /**
107
+ * Assert that an unknown value is a key for an item in a map.
108
+ *
109
+ * @param map The map to look in.
110
+ * @param key The candidate key to assert.
111
+ * @param caller Function used to attribute a thrown error to the calling site.
112
+ * @returns Nothing; narrows `key` to the map's key type.
113
+ * @throws {RequiredError} If `key` does not exist in `map`.
114
+ * @example assertMapItem(new Map([["a", 1]]), "a"); // passes
115
+ * @see https://dhoulb.github.io/shelving/util/map/assertMapItem
116
+ */
35
117
  export declare function assertMapItem<K, V>(map: ImmutableMap<K, V>, key: unknown, caller?: AnyCaller): asserts key is K;
36
- /** Function that lets new items in a map be created and updated by calling a `reduce()` callback that receives the existing value. */
118
+ /**
119
+ * Set an item in a map (by reference) and return the value that was set.
120
+ *
121
+ * @param map The mutable map to set the item on.
122
+ * @param key The key to set.
123
+ * @param value The value to set.
124
+ * @returns The `value` that was set.
125
+ * @example setMapItem(map, "a", 1) // 1
126
+ * @see https://dhoulb.github.io/shelving/util/map/setMapItem
127
+ */
37
128
  export declare function setMapItem<K, T>(map: MutableMap<K, T>, key: K, value: T): T;
38
- /** Add multiple items to a set (by reference). */
129
+ /**
130
+ * Add multiple items to a map (by reference).
131
+ *
132
+ * @param map The mutable map to set the items on.
133
+ * @param items Iterable of key/value entries to set.
134
+ * @returns Nothing; mutates `map` in place.
135
+ * @example setMapItems(map, [["a", 1], ["b", 2]]);
136
+ * @see https://dhoulb.github.io/shelving/util/map/setMapItems
137
+ */
39
138
  export declare function setMapItems<K, T>(map: MutableMap<K, T>, items: Iterable<MapItem<ImmutableMap<K, T>>>): void;
40
- /** Remove multiple items from a set (by reference). */
139
+ /**
140
+ * Remove multiple items from a map (by reference).
141
+ *
142
+ * @param map The mutable map to remove the items from.
143
+ * @param keys The keys to delete.
144
+ * @returns Nothing; mutates `map` in place.
145
+ * @example removeMapItems(map, "a", "b");
146
+ * @see https://dhoulb.github.io/shelving/util/map/removeMapItems
147
+ */
41
148
  export declare function removeMapItems<K, T>(map: MutableMap<K, T>, ...keys: K[]): void;
42
- /** Get an item in a map, or `undefined` if it doesn't exist. */
149
+ /**
150
+ * Get an item in a map, or `undefined` if it doesn't exist.
151
+ *
152
+ * @param map The map to read from.
153
+ * @param key The key to look up.
154
+ * @returns The value for `key`, or `undefined` if it doesn't exist.
155
+ * @example getMapItem(new Map([["a", 1]]), "a") // 1
156
+ * @see https://dhoulb.github.io/shelving/util/map/getMapItem
157
+ */
43
158
  export declare function getMapItem<K, T>(map: ImmutableMap<K, T>, key: K): T | undefined;
44
- /** Get an item in a map, or throw `RequiredError` if it doesn't exist. */
159
+ /**
160
+ * Get an item in a map, or throw `RequiredError` if it doesn't exist.
161
+ *
162
+ * @param map The map to read from.
163
+ * @param key The key to look up.
164
+ * @param caller Function used to attribute a thrown error to the calling site.
165
+ * @returns The value for `key`.
166
+ * @throws {RequiredError} If `key` does not exist in `map`.
167
+ * @example requireMapItem(new Map([["a", 1]]), "a") // 1
168
+ * @see https://dhoulb.github.io/shelving/util/map/requireMapItem
169
+ */
45
170
  export declare function requireMapItem<K, T>(map: ImmutableMap<K, T>, key: K, caller?: AnyCaller): T;
package/util/map.js CHANGED
@@ -1,12 +1,32 @@
1
1
  import { RequiredError } from "../error/RequiredError.js";
2
2
  import { isIterable, limitItems } from "./iterate.js";
3
- /** Class for a `Map` that cannot be changed (so you can extend `Map` while implementing `ImmutableMap`). */
3
+ /**
4
+ * Class for a `Map` that cannot be changed (so you can extend `Map` while implementing `ImmutableMap`).
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/util/map/ImmutableMap
7
+ */
4
8
  export const ImmutableMap = Map;
5
- /** Is an unknown value a map? */
9
+ /**
10
+ * Is an unknown value a map?
11
+ *
12
+ * @param value The value to test.
13
+ * @returns `true` if `value` is a `Map` instance, otherwise `false`.
14
+ * @example isMap(new Map()) // true
15
+ * @see https://dhoulb.github.io/shelving/util/map/isMap
16
+ */
6
17
  export function isMap(value) {
7
18
  return value instanceof Map;
8
19
  }
9
- /** Assert that a value is a `Map` instance. */
20
+ /**
21
+ * Assert that a value is a `Map` instance.
22
+ *
23
+ * @param value The value to assert.
24
+ * @param caller Function used to attribute a thrown error to the calling site.
25
+ * @returns Nothing; narrows `value` to `ImmutableMap`.
26
+ * @throws {RequiredError} If `value` is not a `Map` instance.
27
+ * @example assertMap(new Map()); // passes
28
+ * @see https://dhoulb.github.io/shelving/util/map/assertMap
29
+ */
10
30
  export function assertMap(value, caller = assertMap) {
11
31
  if (!isMap(value))
12
32
  throw new RequiredError("Must be map", { received: value, caller });
@@ -14,39 +34,109 @@ export function assertMap(value, caller = assertMap) {
14
34
  export function getMap(input) {
15
35
  return isMap(input) ? input : new Map(isIterable(input) ? input : Object.entries(input));
16
36
  }
17
- /** Apply a limit to a map. */
37
+ /**
38
+ * Apply a limit to a map.
39
+ * - Returns the input map unchanged if the limit is not smaller than its size.
40
+ *
41
+ * @param map The map to limit.
42
+ * @param limit The maximum number of items to keep.
43
+ * @returns An `ImmutableMap` with at most `limit` items (the input map unchanged if it already fits).
44
+ * @example limitMap(new Map([["a", 1], ["b", 2]]), 1) // Map { "a" => 1 }
45
+ * @see https://dhoulb.github.io/shelving/util/map/limitMap
46
+ */
18
47
  export function limitMap(map, limit) {
19
48
  return limit > map.size ? map : new Map(limitItems(map, limit));
20
49
  }
21
- /** Is an unknown value a key for an item in a map? */
50
+ /**
51
+ * Is an unknown value a key for an item in a map?
52
+ *
53
+ * @param map The map to look in.
54
+ * @param key The candidate key to test.
55
+ * @returns `true` if `key` exists in `map`, otherwise `false`.
56
+ * @example isMapItem(new Map([["a", 1]]), "a") // true
57
+ * @see https://dhoulb.github.io/shelving/util/map/isMapItem
58
+ */
22
59
  export function isMapItem(map, key) {
23
60
  return map.has(key);
24
61
  }
25
- /** Assert that an unknown value is a key for an item in a map. */
62
+ /**
63
+ * Assert that an unknown value is a key for an item in a map.
64
+ *
65
+ * @param map The map to look in.
66
+ * @param key The candidate key to assert.
67
+ * @param caller Function used to attribute a thrown error to the calling site.
68
+ * @returns Nothing; narrows `key` to the map's key type.
69
+ * @throws {RequiredError} If `key` does not exist in `map`.
70
+ * @example assertMapItem(new Map([["a", 1]]), "a"); // passes
71
+ * @see https://dhoulb.github.io/shelving/util/map/assertMapItem
72
+ */
26
73
  export function assertMapItem(map, key, caller = assertMapItem) {
27
74
  if (!isMapItem(map, key))
28
75
  throw new RequiredError("Key must exist in map", { key, map, caller });
29
76
  }
30
- /** Function that lets new items in a map be created and updated by calling a `reduce()` callback that receives the existing value. */
77
+ /**
78
+ * Set an item in a map (by reference) and return the value that was set.
79
+ *
80
+ * @param map The mutable map to set the item on.
81
+ * @param key The key to set.
82
+ * @param value The value to set.
83
+ * @returns The `value` that was set.
84
+ * @example setMapItem(map, "a", 1) // 1
85
+ * @see https://dhoulb.github.io/shelving/util/map/setMapItem
86
+ */
31
87
  export function setMapItem(map, key, value) {
32
88
  map.set(key, value);
33
89
  return value;
34
90
  }
35
- /** Add multiple items to a set (by reference). */
91
+ /**
92
+ * Add multiple items to a map (by reference).
93
+ *
94
+ * @param map The mutable map to set the items on.
95
+ * @param items Iterable of key/value entries to set.
96
+ * @returns Nothing; mutates `map` in place.
97
+ * @example setMapItems(map, [["a", 1], ["b", 2]]);
98
+ * @see https://dhoulb.github.io/shelving/util/map/setMapItems
99
+ */
36
100
  export function setMapItems(map, items) {
37
101
  for (const [k, v] of items)
38
102
  map.set(k, v);
39
103
  }
40
- /** Remove multiple items from a set (by reference). */
104
+ /**
105
+ * Remove multiple items from a map (by reference).
106
+ *
107
+ * @param map The mutable map to remove the items from.
108
+ * @param keys The keys to delete.
109
+ * @returns Nothing; mutates `map` in place.
110
+ * @example removeMapItems(map, "a", "b");
111
+ * @see https://dhoulb.github.io/shelving/util/map/removeMapItems
112
+ */
41
113
  export function removeMapItems(map, ...keys) {
42
114
  for (const key of keys)
43
115
  map.delete(key);
44
116
  }
45
- /** Get an item in a map, or `undefined` if it doesn't exist. */
117
+ /**
118
+ * Get an item in a map, or `undefined` if it doesn't exist.
119
+ *
120
+ * @param map The map to read from.
121
+ * @param key The key to look up.
122
+ * @returns The value for `key`, or `undefined` if it doesn't exist.
123
+ * @example getMapItem(new Map([["a", 1]]), "a") // 1
124
+ * @see https://dhoulb.github.io/shelving/util/map/getMapItem
125
+ */
46
126
  export function getMapItem(map, key) {
47
127
  return map.get(key);
48
128
  }
49
- /** Get an item in a map, or throw `RequiredError` if it doesn't exist. */
129
+ /**
130
+ * Get an item in a map, or throw `RequiredError` if it doesn't exist.
131
+ *
132
+ * @param map The map to read from.
133
+ * @param key The key to look up.
134
+ * @param caller Function used to attribute a thrown error to the calling site.
135
+ * @returns The value for `key`.
136
+ * @throws {RequiredError} If `key` does not exist in `map`.
137
+ * @example requireMapItem(new Map([["a", 1]]), "a") // 1
138
+ * @see https://dhoulb.github.io/shelving/util/map/requireMapItem
139
+ */
50
140
  export function requireMapItem(map, key, caller = requireMapItem) {
51
141
  if (!map.has(key))
52
142
  throw new RequiredError("Key must exist in map", { key, map, caller });
package/util/merge.d.ts CHANGED
@@ -4,6 +4,12 @@ type MergeRecursor = (left: unknown, right: unknown) => unknown;
4
4
  /**
5
5
  * Exact merge two unknown values.
6
6
  * - Always returns `right`.
7
+ *
8
+ * @param _left The left value (ignored).
9
+ * @param right The right value.
10
+ * @returns The `right` value, always.
11
+ * @example exactMerge(1, 2) // 2
12
+ * @see https://dhoulb.github.io/shelving/util/merge/exactMerge
7
13
  */
8
14
  export declare function exactMerge(_left: unknown, right: unknown): unknown;
9
15
  /**
@@ -13,9 +19,13 @@ export declare function exactMerge(_left: unknown, right: unknown): unknown;
13
19
  * - Two arrays: unique items are merged together (shallowly).
14
20
  * - Any other value: right value is returned.
15
21
  *
22
+ * @param left The left value to merge into.
23
+ * @param right The right value to merge in.
16
24
  * @returns Merged value.
17
25
  * - Will be `left` instance if no properties/items changed.
18
26
  * - Will be merged instance otherwise.
27
+ * @example shallowMerge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
28
+ * @see https://dhoulb.github.io/shelving/util/merge/shallowMerge
19
29
  */
20
30
  export declare function shallowMerge<L extends ImmutableObject, R extends ImmutableObject>(left: L, right: R): L & R;
21
31
  export declare function shallowMerge<L, R>(left: ImmutableArray<L>, right: ImmutableArray<R>): ImmutableArray<L | R>;
@@ -27,9 +37,13 @@ export declare function shallowMerge<R>(left: unknown, right: R): R;
27
37
  * - Two arrays: unique items are merged together (shallowly — arrays have no way to deep merge because array keys are not stable).
28
38
  * - Any other value: right value is returned.
29
39
  *
40
+ * @param left The left value to merge into.
41
+ * @param right The right value to merge in.
30
42
  * @returns Merged value.
31
43
  * - Will be `left` instance if no properties/items changed.
32
44
  * - Will be a new merged instance otherwise.
45
+ * @example deepMerge({ a: { b: 1 } }, { a: { c: 2 } }) // { a: { b: 1, c: 2 } }
46
+ * @see https://dhoulb.github.io/shelving/util/merge/deepMerge
33
47
  */
34
48
  export declare function deepMerge<L extends ImmutableObject, R extends ImmutableObject>(left: L, right: R): L & R;
35
49
  export declare function deepMerge<L, R>(left: ImmutableArray<L>, right: ImmutableArray<R>): ImmutableArray<L | R>;
@@ -40,10 +54,14 @@ export declare function deepMerge<R>(left: unknown, right: R): R;
40
54
  * - Arrays have no concept of `deep merge` because array keys are not stable.
41
55
  * - Use an map/object data structure instead for values that need to be deeply mergeable (only use arrays for primitive values).
42
56
  *
57
+ * @param left The left array to merge into.
58
+ * @param right The right array whose unique items are merged in.
43
59
  * @returns Merged array.
44
60
  * - Values that appear in both arrays will not be added twice.
45
61
  * - Will be `left` instance if no items were added.
46
62
  * - Will be a new merged array otherwise.
63
+ * @example mergeArray([1, 2], [2, 3]) // [1, 2, 3]
64
+ * @see https://dhoulb.github.io/shelving/util/merge/mergeArray
47
65
  */
48
66
  export declare function mergeArray<L, R>(left: ImmutableArray<L>, right: ImmutableArray<R> | ImmutableArray<L>): ImmutableArray<L | R>;
49
67
  /**
@@ -54,14 +72,18 @@ export declare function mergeArray<L, R>(left: ImmutableArray<L>, right: Immutab
54
72
  * - Always returns a new object (or the `left` object if no changes were made).
55
73
  * - Resulting object is `cleaned`, i.e. properties in `left` or `right` that are `undefined` will be removed from the merged object.
56
74
  *
75
+ * @param left The left object to merge into.
76
+ * @param right The right object whose props replace or merge with `left`.
57
77
  * @param recursor Function that merges each property of the object.
58
78
  * - Defaults to `exactMerge()` to just swap the property for a newer one if it exists.
59
79
  * - Use `deepMerge()` as the recursor to merge objects deeply.
60
80
  *
61
- * @return Merged object.
81
+ * @returns Merged object.
62
82
  * - Returned instances will be the same if no changes were made.
63
83
  * - Will be `left` instance if no properties changed.
64
84
  * - Will be a new merged object otherwise.
85
+ * @example mergeObject({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
86
+ * @see https://dhoulb.github.io/shelving/util/merge/mergeObject
65
87
  */
66
88
  export declare function mergeObject<L extends ImmutableObject, R extends ImmutableObject>(left: L, right: R, recursor?: MergeRecursor): L & R;
67
89
  export {};
package/util/merge.js CHANGED
@@ -13,6 +13,12 @@ function _merge(left, right, recursor) {
13
13
  /**
14
14
  * Exact merge two unknown values.
15
15
  * - Always returns `right`.
16
+ *
17
+ * @param _left The left value (ignored).
18
+ * @param right The right value.
19
+ * @returns The `right` value, always.
20
+ * @example exactMerge(1, 2) // 2
21
+ * @see https://dhoulb.github.io/shelving/util/merge/exactMerge
16
22
  */
17
23
  export function exactMerge(_left, right) {
18
24
  return right;
package/util/null.d.ts CHANGED
@@ -1,27 +1,116 @@
1
1
  import type { AnyCaller } from "./function.js";
2
- /** Function that always returns null. */
2
+ /**
3
+ * Function that always returns `null`.
4
+ * - Useful as a default callback or placeholder.
5
+ *
6
+ * @returns `null`, always.
7
+ * @example getNull() // null
8
+ * @see https://dhoulb.github.io/shelving/util/null/getNull
9
+ */
3
10
  export declare function getNull(): null;
4
- /** Nullable is the value or `null` */
11
+ /**
12
+ * Nullable is the value or `null`.
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/util/null/Nullable
15
+ */
5
16
  export type Nullable<T> = T | null;
6
- /** Is a value null? */
17
+ /**
18
+ * Is a value `null`?
19
+ *
20
+ * @param value The value to test.
21
+ * @returns `true` if `value` is `null`, otherwise `false`.
22
+ * @see https://dhoulb.github.io/shelving/util/null/isNull
23
+ */
7
24
  export declare function isNull(value: unknown): value is null;
8
- /** Assert that a value is not null. */
25
+ /**
26
+ * Assert that a value is `null`.
27
+ *
28
+ * @param value The value to assert.
29
+ * @param caller Function used to attribute a thrown error to the calling site.
30
+ * @returns Nothing; narrows `value` to `T`.
31
+ * @throws RequiredError if `value` is not `null`.
32
+ * @see https://dhoulb.github.io/shelving/util/null/assertNull
33
+ */
9
34
  export declare function assertNull<T>(value: Nullable<T>, caller?: AnyCaller): asserts value is T;
10
- /** Is a value not null? */
35
+ /**
36
+ * Is a value not `null`?
37
+ *
38
+ * @param value The value to test.
39
+ * @returns `true` if `value` is not `null`, otherwise `false`.
40
+ * @see https://dhoulb.github.io/shelving/util/null/notNull
41
+ */
11
42
  export declare function notNull<T>(value: Nullable<T>): value is T;
12
- /** Assert that a value is not null. */
43
+ /**
44
+ * Assert that a value is not `null`.
45
+ *
46
+ * @param value The value to assert.
47
+ * @param caller Function used to attribute a thrown error to the calling site.
48
+ * @returns Nothing; narrows `value` to `T`.
49
+ * @throws RequiredError if `value` is `null`.
50
+ * @see https://dhoulb.github.io/shelving/util/null/assertNotNull
51
+ */
13
52
  export declare function assertNotNull<T>(value: Nullable<T>, caller?: AnyCaller): asserts value is T;
14
- /** Get the not-nullish version of value. */
53
+ /**
54
+ * Get the not-null version of a value, or throw `RequiredError` if it is `null`.
55
+ *
56
+ * @param value The value to require.
57
+ * @param caller Function used to attribute a thrown error to the calling site.
58
+ * @returns The value, narrowed to `T`.
59
+ * @throws RequiredError if `value` is `null`.
60
+ * @example requireNotNull("a") // "a"
61
+ * @see https://dhoulb.github.io/shelving/util/null/requireNotNull
62
+ */
15
63
  export declare function requireNotNull<T>(value: Nullable<T>, caller?: AnyCaller): T;
16
- /** Nullish is the value or `null` or `undefined` */
64
+ /**
65
+ * Nullish is the value or `null` or `undefined`.
66
+ *
67
+ * @see https://dhoulb.github.io/shelving/util/null/Nullish
68
+ */
17
69
  export type Nullish<T> = T | null | undefined;
18
- /** Is a value nullish? */
70
+ /**
71
+ * Is a value nullish (`null` or `undefined`)?
72
+ *
73
+ * @param value The value to test.
74
+ * @returns `true` if `value` is `null` or `undefined`, otherwise `false`.
75
+ * @see https://dhoulb.github.io/shelving/util/null/isNullish
76
+ */
19
77
  export declare function isNullish<T>(value: Nullish<T>): value is null | undefined;
20
- /** Assert that a value is not nullish. */
78
+ /**
79
+ * Assert that a value is nullish (`null` or `undefined`).
80
+ *
81
+ * @param value The value to assert.
82
+ * @param caller Function used to attribute a thrown error to the calling site.
83
+ * @returns Nothing; narrows `value` to `T`.
84
+ * @throws RequiredError if `value` is not `null` or `undefined`.
85
+ * @see https://dhoulb.github.io/shelving/util/null/assertNullish
86
+ */
21
87
  export declare function assertNullish<T>(value: Nullish<T>, caller?: AnyCaller): asserts value is T;
22
- /** Is a value not nullish? */
88
+ /**
89
+ * Is a value not nullish (not `null` and not `undefined`)?
90
+ *
91
+ * @param value The value to test.
92
+ * @returns `true` if `value` is not `null` and not `undefined`, otherwise `false`.
93
+ * @see https://dhoulb.github.io/shelving/util/null/notNullish
94
+ */
23
95
  export declare function notNullish<T>(value: Nullish<T>): value is T;
24
- /** Assert that a value is not nullish. */
96
+ /**
97
+ * Assert that a value is not nullish (not `null` and not `undefined`).
98
+ *
99
+ * @param value The value to assert.
100
+ * @param caller Function used to attribute a thrown error to the calling site.
101
+ * @returns Nothing; narrows `value` to `T`.
102
+ * @throws RequiredError if `value` is `null` or `undefined`.
103
+ * @see https://dhoulb.github.io/shelving/util/null/assertNotNullish
104
+ */
25
105
  export declare function assertNotNullish<T>(value: Nullish<T>, caller?: AnyCaller): asserts value is T;
26
- /** Get the not-nullish version of value. */
106
+ /**
107
+ * Get the not-nullish version of a value, or throw `RequiredError` if it is `null` or `undefined`.
108
+ *
109
+ * @param value The value to require.
110
+ * @param caller Function used to attribute a thrown error to the calling site.
111
+ * @returns The value, narrowed to `T`.
112
+ * @throws RequiredError if `value` is `null` or `undefined`.
113
+ * @example requireNotNullish("a") // "a"
114
+ * @see https://dhoulb.github.io/shelving/util/null/requireNotNullish
115
+ */
27
116
  export declare function requireNotNullish<T>(value: Nullish<T>, caller?: AnyCaller): T;