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/entity.d.ts CHANGED
@@ -1,17 +1,50 @@
1
1
  import type { AnyCaller } from "./function.js";
2
2
  import type { Nullish } from "./null.js";
3
- /** Entity strings combine a type and ID, e.g. `challenge:a1b2c3` */
3
+ /**
4
+ * Entity string combining a type and ID, e.g. `challenge:a1b2c3`
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/util/entity/Entity
7
+ */
4
8
  export type Entity<T extends string = string> = `${T}:${string}`;
5
- /** Extract the type from an `Entity` string. */
9
+ /**
10
+ * Extract the type portion from an `Entity` string.
11
+ *
12
+ * @see https://dhoulb.github.io/shelving/util/entity/EntityType
13
+ */
6
14
  export type EntityType<E extends Entity> = E extends Entity<infer T> ? T : never;
7
- /** Empty entity has undefined type and ID. */
15
+ /**
16
+ * Tuple representing an empty (invalid) entity, with `undefined` type and ID.
17
+ *
18
+ * @see https://dhoulb.github.io/shelving/util/entity/EmptyEntity
19
+ */
8
20
  export type EmptyEntity = [type: undefined, id: undefined];
9
- /** Empty entity. */
21
+ /**
22
+ * Shared `EmptyEntity` constant returned when an entity string is invalid.
23
+ *
24
+ * @see https://dhoulb.github.io/shelving/util/entity/EMPTY_ENTITY
25
+ */
10
26
  export declare const EMPTY_ENTITY: EmptyEntity;
11
- /** Split an optional entity tag like `challenge:a1b2c3` into `["challenge", "a1b2c3"]`, or return `EmptyEntity` if the entity was invalid. */
27
+ /**
28
+ * Split an optional entity tag like `challenge:a1b2c3` into its `type` and `id`, or return `EmptyEntity` if the entity was invalid.
29
+ *
30
+ * @param entity The entity string to split, or a nullish value.
31
+ * @returns A `[type, id]` tuple, or `EMPTY_ENTITY` if the entity was missing or invalid.
32
+ * @example getEntity("challenge:a1b2c3") // ["challenge", "a1b2c3"]
33
+ * @example getEntity(undefined) // [undefined, undefined]
34
+ * @see https://dhoulb.github.io/shelving/util/entity/getEntity
35
+ */
12
36
  export declare function getEntity<T extends string>(entity: Entity<T>): [type: T, id: string];
13
37
  export declare function getEntity<T extends string>(entity: Nullish<Entity<T>>): [type: T, id: string] | EmptyEntity;
14
38
  export declare function getEntity(entity: Nullish<string>): [type: string, id: string] | EmptyEntity;
15
- /** Split an entity tag like `challenge:a1b2c3` into `type` and `id`, or throw `RequiredError` if the entity tag was invalid. */
39
+ /**
40
+ * Split an entity tag like `challenge:a1b2c3` into its `type` and `id`, or throw `RequiredError` if the entity tag was invalid.
41
+ *
42
+ * @param entity The entity string to split.
43
+ * @param caller Function to attribute a thrown error to (defaults to `requireEntity`).
44
+ * @returns A `[type, id]` tuple.
45
+ * @throws {RequiredError} If the entity string is missing or invalid.
46
+ * @example requireEntity("challenge:a1b2c3") // ["challenge", "a1b2c3"]
47
+ * @see https://dhoulb.github.io/shelving/util/entity/requireEntity
48
+ */
16
49
  export declare function requireEntity<T extends string>(entity: Entity<T>, caller?: AnyCaller): [type: T, id: string];
17
50
  export declare function requireEntity(entity: string, caller?: AnyCaller): [type: string, id: string];
package/util/entity.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { RequiredError } from "../error/RequiredError.js";
2
- /** Empty entity. */
2
+ /**
3
+ * Shared `EmptyEntity` constant returned when an entity string is invalid.
4
+ *
5
+ * @see https://dhoulb.github.io/shelving/util/entity/EMPTY_ENTITY
6
+ */
3
7
  export const EMPTY_ENTITY = [undefined, undefined];
4
8
  export function getEntity(entity) {
5
9
  if (entity) {
package/util/entry.d.ts CHANGED
@@ -2,31 +2,78 @@ import type { ImmutableArray } from "./array.js";
2
2
  import type { ImmutableObject } from "./object.js";
3
3
  import type { ImmutableSet } from "./set.js";
4
4
  /**
5
- * Single entry from a map-like object.
5
+ * Single key/value entry from a map-like object.
6
6
  * - Consistency with `UnknownObject`
7
7
  * - Always readonly.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/util/entry/Entry
8
10
  */
9
11
  export type Entry<K = unknown, T = unknown> = readonly [K, T];
10
- /** Helper type to extract the type for the value of an entry. */
12
+ /**
13
+ * Extract the key type from an `Entry`.
14
+ *
15
+ * @see https://dhoulb.github.io/shelving/util/entry/EntryKey
16
+ */
11
17
  export type EntryKey<X> = X extends Entry<infer Y, unknown> ? Y : never;
12
- /** Helper type to extract the type for the value of an entry. */
18
+ /**
19
+ * Extract the value type from an `Entry`.
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/util/entry/EntryValue
22
+ */
13
23
  export type EntryValue<X> = X extends Entry<unknown, infer Y> ? Y : never;
14
24
  /**
15
- * Helper type to turn an entry back into an object with one property.
25
+ * Turn an `Entry` type back into an object with a single property.
16
26
  * i.e. `EntryObject<Entry<"a", string>>` produces `{ a: string }`
27
+ *
28
+ * @see https://dhoulb.github.io/shelving/util/entry/EntryObject
17
29
  */
18
30
  export type EntryObject<T extends Entry<PropertyKey, unknown>> = {
19
31
  readonly [E in T as E[0]]: E[1];
20
32
  };
21
- /** Extract the key from an object entry. */
33
+ /**
34
+ * Extract the key from an object entry.
35
+ *
36
+ * @param entry The `[key, value]` entry to read from.
37
+ * @returns The key (first element) of the entry.
38
+ * @example getEntryKey(["a", 1]) // "a"
39
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryKey
40
+ */
22
41
  export declare function getEntryKey<K, T>([k]: Entry<K, T>): K;
23
- /** Extract the value from an object entry. */
42
+ /**
43
+ * Extract the value from an object entry.
44
+ *
45
+ * @param entry The `[key, value]` entry to read from.
46
+ * @returns The value (second element) of the entry.
47
+ * @example getEntryValue(["a", 1]) // 1
48
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryValue
49
+ */
24
50
  export declare function getEntryValue<K, T>([, v]: Entry<K, T>): T;
25
- /** Yield the keys of an iterable set of entries. */
51
+ /**
52
+ * Yield the keys of an iterable set of entries.
53
+ *
54
+ * @param input Iterable of `[key, value]` entries.
55
+ * @returns Iterable yielding each entry's key.
56
+ * @example Array.from(getEntryKeys([["a", 1], ["b", 2]])) // ["a", "b"]
57
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryKeys
58
+ */
26
59
  export declare function getEntryKeys<K, T>(input: Iterable<Entry<K, T>>): Iterable<K>;
27
- /** Yield the values of an iterable set of entries. */
60
+ /**
61
+ * Yield the values of an iterable set of entries.
62
+ *
63
+ * @param input Iterable of `[key, value]` entries.
64
+ * @returns Iterable yielding each entry's value.
65
+ * @example Array.from(getEntryValues([["a", 1], ["b", 2]])) // [1, 2]
66
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryValues
67
+ */
28
68
  export declare function getEntryValues<K, T>(input: Iterable<Entry<K, T>>): Iterable<T>;
29
- /** Yield the entries in something that can yield entries. */
69
+ /**
70
+ * Yield the entries from one or more entry-yielding sources (sets, objects, maps, arrays, or iterables of entries).
71
+ *
72
+ * @param input One or more sources that can yield `[key, value]` entries.
73
+ * @returns Iterable yielding the combined entries from every input.
74
+ * @example Array.from(getEntries({ a: 1, b: 2 })) // [["a", 1], ["b", 2]]
75
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntries
76
+ */
30
77
  export declare function getEntries<K extends string, T = K>(...input: (ImmutableSet<K & T> | Partial<ImmutableObject<K, T>> | Iterable<Entry<K, T>>)[]): Iterable<Entry<K, T>>;
31
78
  export declare function getEntries<K extends number, T = K>(...input: (ImmutableArray<T> | ImmutableSet<K & T> | Iterable<Entry<K, T>>)[]): Iterable<Entry<K, T>>;
32
79
  export declare function getEntries<K, T = K>(...input: (ImmutableSet<K & T> | Iterable<Entry<K, T>>)[]): Iterable<Entry<K, T>>;
package/util/entry.js CHANGED
@@ -1,20 +1,48 @@
1
1
  import { isArray } from "./array.js";
2
2
  import { isIterable } from "./iterate.js";
3
3
  import { isSet } from "./set.js";
4
- /** Extract the key from an object entry. */
4
+ /**
5
+ * Extract the key from an object entry.
6
+ *
7
+ * @param entry The `[key, value]` entry to read from.
8
+ * @returns The key (first element) of the entry.
9
+ * @example getEntryKey(["a", 1]) // "a"
10
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryKey
11
+ */
5
12
  export function getEntryKey([k]) {
6
13
  return k;
7
14
  }
8
- /** Extract the value from an object entry. */
15
+ /**
16
+ * Extract the value from an object entry.
17
+ *
18
+ * @param entry The `[key, value]` entry to read from.
19
+ * @returns The value (second element) of the entry.
20
+ * @example getEntryValue(["a", 1]) // 1
21
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryValue
22
+ */
9
23
  export function getEntryValue([, v]) {
10
24
  return v;
11
25
  }
12
- /** Yield the keys of an iterable set of entries. */
26
+ /**
27
+ * Yield the keys of an iterable set of entries.
28
+ *
29
+ * @param input Iterable of `[key, value]` entries.
30
+ * @returns Iterable yielding each entry's key.
31
+ * @example Array.from(getEntryKeys([["a", 1], ["b", 2]])) // ["a", "b"]
32
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryKeys
33
+ */
13
34
  export function* getEntryKeys(input) {
14
35
  for (const [k] of input)
15
36
  yield k;
16
37
  }
17
- /** Yield the values of an iterable set of entries. */
38
+ /**
39
+ * Yield the values of an iterable set of entries.
40
+ *
41
+ * @param input Iterable of `[key, value]` entries.
42
+ * @returns Iterable yielding each entry's value.
43
+ * @example Array.from(getEntryValues([["a", 1], ["b", 2]])) // [1, 2]
44
+ * @see https://dhoulb.github.io/shelving/util/entry/getEntryValues
45
+ */
18
46
  export function* getEntryValues(input) {
19
47
  for (const [, v] of input)
20
48
  yield v;
package/util/env.d.ts CHANGED
@@ -1,21 +1,43 @@
1
1
  import type { AnyCaller } from "./function.js";
2
2
  /**
3
3
  * Get a `process.env` variable safely in all environments, or `undefined` if it doesn't exist or this environment does not support `process.env` (i.e. web environments).
4
+ *
5
+ * @param name Name of the environment variable to read.
6
+ * @returns The variable's string value, or `undefined` if missing or unsupported.
7
+ * @example getEnv("NODE_ENV") // "production"
8
+ * @see https://dhoulb.github.io/shelving/util/env/getEnv
4
9
  */
5
10
  export declare function getEnv(name: string): string | undefined;
6
11
  /**
7
12
  * Get a `process.env` variable safely in all environments, or throw `RequiredError` if it doesn't exist or this environment does not support `process.env` (i.e. web environments).
13
+ *
14
+ * @param name Name of the environment variable to read.
15
+ * @param caller Function to attribute a thrown error to (defaults to `requireEnv`).
16
+ * @returns The variable's string value.
17
+ * @throws `RequiredError` if the variable is missing or `process.env` is unsupported.
18
+ * @example requireEnv("DATABASE_URL") // "postgres://..."
19
+ * @see https://dhoulb.github.io/shelving/util/env/requireEnv
8
20
  */
9
21
  export declare function requireEnv(name: string, caller?: AnyCaller): string;
10
22
  /**
11
- * Get a `process.env` variable and resolve it to to `true` or `false`, or `undefined` if it isn't a true/false value.
23
+ * Get a `process.env` variable and resolve it to `true` or `false`, or `undefined` if it isn't a true/false value.
24
+ * - Truthy values: `1`, `on`, `yes`, `true` (case-insensitive).
25
+ * - Falsy values: `0`, `off`, `no`, `false` (case-insensitive).
26
+ *
27
+ * @param name Name of the environment variable to read.
28
+ * @returns `true` or `false` if the value is recognised, otherwise `undefined`.
29
+ * @example getEnvBoolean("FEATURE_FLAG") // true
30
+ * @see https://dhoulb.github.io/shelving/util/env/getEnvBoolean
12
31
  */
13
32
  export declare function getEnvBoolean(name: string): boolean | undefined;
14
33
  /**
15
- * Get a `process.env` variable and resolve it to to `true` or `false`
34
+ * Get a `process.env` variable and resolve it to `true` or `false`, or throw `RequiredError` if it isn't a true/false value.
16
35
  *
17
- * @returns `false` if the environment variable is `0`, `off`, `no`, `false`
18
- * @returns `true` if the environment variable is `1`, `on`, `yes`, `true`
36
+ * @param name Name of the environment variable to read.
37
+ * @param caller Function to attribute a thrown error to (defaults to `requireEnvBoolean`).
38
+ * @returns `false` if the environment variable is `0`, `off`, `no`, `false`; `true` if it is `1`, `on`, `yes`, `true`.
19
39
  * @throws `RequiredError` if the env variable is any other value.
40
+ * @example requireEnvBoolean("FEATURE_FLAG") // true
41
+ * @see https://dhoulb.github.io/shelving/util/env/requireEnvBoolean
20
42
  */
21
43
  export declare function requireEnvBoolean(name: string, caller?: AnyCaller): boolean;
package/util/env.js CHANGED
@@ -1,6 +1,11 @@
1
1
  import { RequiredError } from "../error/RequiredError.js";
2
2
  /**
3
3
  * Get a `process.env` variable safely in all environments, or `undefined` if it doesn't exist or this environment does not support `process.env` (i.e. web environments).
4
+ *
5
+ * @param name Name of the environment variable to read.
6
+ * @returns The variable's string value, or `undefined` if missing or unsupported.
7
+ * @example getEnv("NODE_ENV") // "production"
8
+ * @see https://dhoulb.github.io/shelving/util/env/getEnv
4
9
  */
5
10
  export function getEnv(name) {
6
11
  if (typeof process === "object" && typeof process.env === "object")
@@ -8,6 +13,13 @@ export function getEnv(name) {
8
13
  }
9
14
  /**
10
15
  * Get a `process.env` variable safely in all environments, or throw `RequiredError` if it doesn't exist or this environment does not support `process.env` (i.e. web environments).
16
+ *
17
+ * @param name Name of the environment variable to read.
18
+ * @param caller Function to attribute a thrown error to (defaults to `requireEnv`).
19
+ * @returns The variable's string value.
20
+ * @throws `RequiredError` if the variable is missing or `process.env` is unsupported.
21
+ * @example requireEnv("DATABASE_URL") // "postgres://..."
22
+ * @see https://dhoulb.github.io/shelving/util/env/requireEnv
11
23
  */
12
24
  export function requireEnv(name, caller = requireEnv) {
13
25
  const env = getEnv(name);
@@ -16,7 +28,14 @@ export function requireEnv(name, caller = requireEnv) {
16
28
  return env;
17
29
  }
18
30
  /**
19
- * Get a `process.env` variable and resolve it to to `true` or `false`, or `undefined` if it isn't a true/false value.
31
+ * Get a `process.env` variable and resolve it to `true` or `false`, or `undefined` if it isn't a true/false value.
32
+ * - Truthy values: `1`, `on`, `yes`, `true` (case-insensitive).
33
+ * - Falsy values: `0`, `off`, `no`, `false` (case-insensitive).
34
+ *
35
+ * @param name Name of the environment variable to read.
36
+ * @returns `true` or `false` if the value is recognised, otherwise `undefined`.
37
+ * @example getEnvBoolean("FEATURE_FLAG") // true
38
+ * @see https://dhoulb.github.io/shelving/util/env/getEnvBoolean
20
39
  */
21
40
  export function getEnvBoolean(name) {
22
41
  const env = getEnv(name)?.toLowerCase();
@@ -28,11 +47,14 @@ export function getEnvBoolean(name) {
28
47
  const _TRUES = [`1`, `on`, `yes`, `true`];
29
48
  const _FALSES = [`0`, `off`, `no`, `false`];
30
49
  /**
31
- * Get a `process.env` variable and resolve it to to `true` or `false`
50
+ * Get a `process.env` variable and resolve it to `true` or `false`, or throw `RequiredError` if it isn't a true/false value.
32
51
  *
33
- * @returns `false` if the environment variable is `0`, `off`, `no`, `false`
34
- * @returns `true` if the environment variable is `1`, `on`, `yes`, `true`
52
+ * @param name Name of the environment variable to read.
53
+ * @param caller Function to attribute a thrown error to (defaults to `requireEnvBoolean`).
54
+ * @returns `false` if the environment variable is `0`, `off`, `no`, `false`; `true` if it is `1`, `on`, `yes`, `true`.
35
55
  * @throws `RequiredError` if the env variable is any other value.
56
+ * @example requireEnvBoolean("FEATURE_FLAG") // true
57
+ * @see https://dhoulb.github.io/shelving/util/env/requireEnvBoolean
36
58
  */
37
59
  export function requireEnvBoolean(name, caller = requireEnvBoolean) {
38
60
  const env = getEnv(name);
package/util/equal.d.ts CHANGED
@@ -3,64 +3,207 @@ import type { Match } from "./filter.js";
3
3
  import type { AnyCaller } from "./function.js";
4
4
  import type { ImmutableMap } from "./map.js";
5
5
  import type { ImmutableObject } from "./object.js";
6
- /** Assert two values are equal. */
6
+ /**
7
+ * Assert that two values are exactly (referentially) equal, narrowing `left` to the type of `right`.
8
+ *
9
+ * @param left The value to check and narrow.
10
+ * @param right The value `left` must equal.
11
+ * @param caller Function to attribute a thrown error to (defaults to `assertEqual`).
12
+ * @throws {RequiredError} If the values are not equal.
13
+ * @example assertEqual(1, 1); // passes
14
+ * @see https://dhoulb.github.io/shelving/util/equal/assertEqual
15
+ */
7
16
  export declare function assertEqual<T>(left: unknown, right: T, caller?: AnyCaller): asserts left is T;
8
- /** Assert two values are equal. */
17
+ /**
18
+ * Assert that two values are not equal, narrowing `left` to exclude the type of `right`.
19
+ *
20
+ * @param left The value to check and narrow.
21
+ * @param right The value `left` must not equal.
22
+ * @param caller Function to attribute a thrown error to (defaults to `assertNot`).
23
+ * @throws {RequiredError} If the values are equal.
24
+ * @example assertNot(1, 2); // passes
25
+ * @see https://dhoulb.github.io/shelving/util/equal/assertNot
26
+ */
9
27
  export declare function assertNot<T, N>(left: T | N, right: N, caller?: AnyCaller): asserts left is T;
10
- /** Is unknown value `left` exactly equal to `right`? */
28
+ /**
29
+ * Is unknown value `left` exactly (referentially) equal to `right`?
30
+ *
31
+ * @param left The value to check and narrow.
32
+ * @param right The value to compare against.
33
+ * @returns `true` if the values are strictly equal.
34
+ * @example isEqual(1, 1) // true
35
+ * @see https://dhoulb.github.io/shelving/util/equal/isEqual
36
+ */
11
37
  export declare function isEqual<T>(left: unknown, right: T): left is T;
12
- /** Is unknown value `left` not exactly equal to `right`? */
38
+ /**
39
+ * Is unknown value `left` not exactly (referentially) equal to `right`?
40
+ *
41
+ * @param left The value to check and narrow.
42
+ * @param right The value to compare against.
43
+ * @returns `true` if the values are not strictly equal.
44
+ * @example notEqual(1, 2) // true
45
+ * @see https://dhoulb.github.io/shelving/util/equal/notEqual
46
+ */
13
47
  export declare function notEqual<T, N>(left: T | N, right: N): left is T;
14
- /** Is unknown value `left` less than `right`? */
48
+ /**
49
+ * Is unknown value `left` less than `right` (using `compareAscending`)?
50
+ *
51
+ * @param left The value to compare.
52
+ * @param right The value to compare against.
53
+ * @returns `true` if `left` sorts before `right`.
54
+ * @example isLess(1, 2) // true
55
+ * @see https://dhoulb.github.io/shelving/util/equal/isLess
56
+ */
15
57
  export declare function isLess(left: unknown, right: unknown): boolean;
16
- /** Is unknown value `left` less than or equal to `right`? */
58
+ /**
59
+ * Is unknown value `left` less than or equal to `right` (using `compareAscending`)?
60
+ *
61
+ * @param left The value to compare.
62
+ * @param right The value to compare against.
63
+ * @returns `true` if `left` sorts before or equal to `right`.
64
+ * @example isEqualLess(2, 2) // true
65
+ * @see https://dhoulb.github.io/shelving/util/equal/isEqualLess
66
+ */
17
67
  export declare function isEqualLess(left: unknown, right: unknown): boolean;
18
- /** Is unknown value `left` greater than `right`? */
68
+ /**
69
+ * Is unknown value `left` greater than `right` (using `compareAscending`)?
70
+ *
71
+ * @param left The value to compare.
72
+ * @param right The value to compare against.
73
+ * @returns `true` if `left` sorts after `right`.
74
+ * @example isGreater(2, 1) // true
75
+ * @see https://dhoulb.github.io/shelving/util/equal/isGreater
76
+ */
19
77
  export declare function isGreater(left: unknown, right: unknown): boolean;
20
- /** Is unknown value `left` greater than or equal to `right`? */
78
+ /**
79
+ * Is unknown value `left` greater than or equal to `right` (using `compareAscending`)?
80
+ *
81
+ * @param left The value to compare.
82
+ * @param right The value to compare against.
83
+ * @returns `true` if `left` sorts after or equal to `right`.
84
+ * @example isEqualGreater(2, 2) // true
85
+ * @see https://dhoulb.github.io/shelving/util/equal/isEqualGreater
86
+ */
21
87
  export declare function isEqualGreater(left: unknown, right: unknown): boolean;
22
88
  /**
23
89
  * Are two unknown values shallowly equal?
24
90
  * - If the values are both arrays/objects, see if the items/properties are **shallowly** equal with each other.
91
+ *
92
+ * @param left The value to check and narrow.
93
+ * @param right The value to compare against.
94
+ * @returns `true` if the values are shallowly equal.
95
+ * @example isShallowEqual({ a: 1 }, { a: 1 }) // true
96
+ * @see https://dhoulb.github.io/shelving/util/equal/isShallowEqual
25
97
  */
26
98
  export declare function isShallowEqual<T>(left: unknown, right: T): left is T;
27
- /** Are two unknown values not shallowly equal? */
99
+ /**
100
+ * Are two unknown values not shallowly equal?
101
+ *
102
+ * @param left The value to check and narrow.
103
+ * @param right The value to compare against.
104
+ * @returns `true` if the values are not shallowly equal.
105
+ * @example notShallowEqual({ a: 1 }, { a: 2 }) // true
106
+ * @see https://dhoulb.github.io/shelving/util/equal/notShallowEqual
107
+ */
28
108
  export declare function notShallowEqual<T>(left: unknown, right: T): left is T;
29
109
  /**
30
110
  * Are two unknown values deeply equal?
31
111
  * - If the values are both arrays/objects, see if the items/properties are **deeply** equal with each other.
112
+ *
113
+ * @param left The value to check and narrow.
114
+ * @param right The value to compare against.
115
+ * @returns `true` if the values are deeply equal.
116
+ * @example isDeepEqual({ a: { b: 1 } }, { a: { b: 1 } }) // true
117
+ * @see https://dhoulb.github.io/shelving/util/equal/isDeepEqual
32
118
  */
33
119
  export declare function isDeepEqual<T>(left: unknown, right: T): left is T;
34
- /** Are two unknown values not deeply equal? */
120
+ /**
121
+ * Are two unknown values not deeply equal?
122
+ *
123
+ * @param left The value to check and narrow.
124
+ * @param right The value to compare against.
125
+ * @returns `true` if the values are not deeply equal.
126
+ * @example notDeepEqual({ a: { b: 1 } }, { a: { b: 2 } }) // true
127
+ * @see https://dhoulb.github.io/shelving/util/equal/notDeepEqual
128
+ */
35
129
  export declare function notDeepEqual<T>(left: unknown, right: T): left is T;
36
130
  /**
37
- * Are two maps equal (based on their items).
131
+ * Are two maps equal based on their items?
132
+ *
133
+ * @param left The map to check and narrow.
134
+ * @param right The map to compare against.
135
+ * @param recursor Function that checks each value of the map (defaults to `isEqual` for strict equality; pass `isDeepEqual` for deep equality).
136
+ * @returns `true` if both maps have the same keys and matching values.
137
+ * @example isMapEqual(new Map([["a", 1]]), new Map([["a", 1]])) // true
138
+ * @see https://dhoulb.github.io/shelving/util/equal/isMapEqual
38
139
  */
39
140
  export declare function isMapEqual<T extends ImmutableMap>(left: ImmutableMap, right: T, recursor?: Match): left is T;
40
141
  /**
41
142
  * Are two arrays equal based on their items?
42
143
  *
144
+ * @param left The array to check and narrow.
145
+ * @param right The array to compare against.
43
146
  * @param recursor Function that checks each item of the array.
44
147
  * - Defaults to `isEqual()` to check strict equality of the items.
45
148
  * - Use `isDeepEqual()` as the recursor to check to check deep equality of the items.
149
+ * @returns `true` if both arrays have the same length and matching items.
150
+ * @example isArrayEqual([1, 2], [1, 2]) // true
151
+ * @see https://dhoulb.github.io/shelving/util/equal/isArrayEqual
46
152
  */
47
153
  export declare function isArrayEqual<T extends ImmutableArray>(left: ImmutableArray, right: T, recursor?: Match): left is T;
48
- /** Is unknown value `left` in array `right`? */
154
+ /**
155
+ * Is unknown value `left` in array `right`?
156
+ *
157
+ * @param left The value to look for and narrow.
158
+ * @param right The array to search within.
159
+ * @returns `true` if `left` is an item of `right`.
160
+ * @example isInArray(2, [1, 2, 3]) // true
161
+ * @see https://dhoulb.github.io/shelving/util/equal/isInArray
162
+ */
49
163
  export declare function isInArray<R>(left: unknown, right: ImmutableArray<R>): left is R;
50
- /** Is unknown value `left` not in array `right`? */
164
+ /**
165
+ * Is unknown value `left` not in array `right`?
166
+ *
167
+ * @param left The value to look for.
168
+ * @param right The array to search within.
169
+ * @returns `true` if `left` is not an item of `right`.
170
+ * @example notInArray(9, [1, 2, 3]) // true
171
+ * @see https://dhoulb.github.io/shelving/util/equal/notInArray
172
+ */
51
173
  export declare function notInArray(left: unknown, right: ImmutableArray): boolean;
52
- /** Is unknown value `left` an array including `right`? */
174
+ /**
175
+ * Is unknown value `left` an array that includes `right`?
176
+ *
177
+ * @param left The value to check and narrow.
178
+ * @param right The item the array must include.
179
+ * @returns `true` if `left` is an array containing `right`.
180
+ * @example isArrayWith([1, 2, 3], 2) // true
181
+ * @see https://dhoulb.github.io/shelving/util/equal/isArrayWith
182
+ */
53
183
  export declare function isArrayWith<T>(left: unknown, right: T): left is ImmutableArray<T>;
54
- /** Is unknown value `left` not an array or does not include `right`? */
184
+ /**
185
+ * Is unknown value `left` not an array, or an array that does not include `right`?
186
+ *
187
+ * @param left The value to check.
188
+ * @param right The item the array must include.
189
+ * @returns `true` if `left` is not an array or does not include `right`.
190
+ * @example notArrayWith([1, 2, 3], 9) // true
191
+ * @see https://dhoulb.github.io/shelving/util/equal/notArrayWith
192
+ */
55
193
  export declare function notArrayWith(left: unknown, right: unknown): boolean;
56
194
  /**
57
195
  * Are two objects equal based on their own props?
58
196
  * - `left` must have every property present in `right`
59
197
  * - `left` must not have excess properties not present in `right`
60
198
  *
199
+ * @param left The object to check and narrow.
200
+ * @param right The object to compare against.
61
201
  * @param recursor Function that checks each prop of the object.
62
202
  * - Defaults to `isEqual()` to check strict equality of the properties.
63
203
  * - Use `isDeepEqual()` as the recursor to check to check deep equality of the properties.
204
+ * @returns `true` if both objects have exactly the same own props and matching values.
205
+ * @example isObjectEqual({ a: 1 }, { a: 1 }) // true
206
+ * @see https://dhoulb.github.io/shelving/util/equal/isObjectEqual
64
207
  */
65
208
  export declare function isObjectEqual<T extends ImmutableObject>(left: ImmutableObject, right: T, recursor?: Match): left is T;
66
209
  /**
@@ -68,12 +211,33 @@ export declare function isObjectEqual<T extends ImmutableObject>(left: Immutable
68
211
  * - `left` must have every property present in `right`
69
212
  * - `left` may have have excess properties not present in `right`
70
213
  *
214
+ * @param left The object to check and narrow.
215
+ * @param right The object whose props `left` must contain.
71
216
  * @param recursor Function that checks each prop of the object.
72
217
  * - Defaults to `isEqual()` to check strict equality of the properties.
73
218
  * - Use `isDeepEqual()` as the recursor to check to check deep equality of the properties.
219
+ * @returns `true` if `left` contains every prop of `right` with matching values.
220
+ * @example isObjectMatch({ a: 1, b: 2 }, { a: 1 }) // true
221
+ * @see https://dhoulb.github.io/shelving/util/equal/isObjectMatch
74
222
  */
75
223
  export declare function isObjectMatch<L extends ImmutableObject, R extends ImmutableObject>(left: L | R, right: R, recursor?: Match): left is L & R;
76
- /** Is unknown value `left` an object with every prop from `right`? */
224
+ /**
225
+ * Is unknown value `left` an object with every prop from `right`?
226
+ *
227
+ * @param left The value to check.
228
+ * @param right The object whose props `left` must contain.
229
+ * @returns `true` if `left` is an object containing every prop of `right`.
230
+ * @example isObjectWith({ a: 1, b: 2 }, { a: 1 }) // true
231
+ * @see https://dhoulb.github.io/shelving/util/equal/isObjectWith
232
+ */
77
233
  export declare function isObjectWith(left: unknown, right: ImmutableObject): boolean;
78
- /** Is unknown value `left` not an object or missing one or more props from `right`? */
234
+ /**
235
+ * Is unknown value `left` not an object or missing one or more props from `right`?
236
+ *
237
+ * @param left The value to check.
238
+ * @param right The object whose props `left` must contain.
239
+ * @returns `true` if `left` is not an object or is missing one or more props of `right`.
240
+ * @example notObjectWith({ a: 1 }, { b: 2 }) // true
241
+ * @see https://dhoulb.github.io/shelving/util/equal/notObjectWith
242
+ */
79
243
  export declare function notObjectWith(left: unknown, right: ImmutableObject): boolean;