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/object.d.ts CHANGED
@@ -1,38 +1,113 @@
1
1
  import type { ImmutableArray } from "./array.js";
2
- /** Any readonly object. */
2
+ /**
3
+ * Any readonly object.
4
+ *
5
+ * @see https://dhoulb.github.io/shelving/util/object/ImmutableObject
6
+ */
3
7
  export type ImmutableObject<K extends PropertyKey = PropertyKey, T = unknown> = {
4
8
  readonly [KK in K]: T;
5
9
  };
6
- /** Any writable object. */
10
+ /**
11
+ * Any writable object.
12
+ *
13
+ * @see https://dhoulb.github.io/shelving/util/object/MutableObject
14
+ */
7
15
  export type MutableObject<K extends PropertyKey = PropertyKey, T = unknown> = {
8
16
  [KK in K]: T;
9
17
  };
10
- /** Prop for an object. */
18
+ /**
19
+ * Prop for an object, as a readonly key/value entry tuple.
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/util/object/Prop
22
+ */
11
23
  export type Prop<T> = readonly [keyof T, T[keyof T]];
12
- /** Key for an object prop. */
24
+ /**
25
+ * Key for an object prop.
26
+ *
27
+ * @see https://dhoulb.github.io/shelving/util/object/Key
28
+ */
13
29
  export type Key<T> = keyof T;
14
- /** Value for an object prop. */
30
+ /**
31
+ * Value for an object prop.
32
+ *
33
+ * @see https://dhoulb.github.io/shelving/util/object/Value
34
+ */
15
35
  export type Value<T> = T[keyof T];
16
- /** Something that can be converted to an object. */
36
+ /**
37
+ * Something that can be converted to an object.
38
+ * - Either the object itself, or an iterable set of key/value entry tuples.
39
+ *
40
+ * @see https://dhoulb.github.io/shelving/util/object/PossibleObject
41
+ */
17
42
  export type PossibleObject<T> = T | Iterable<Prop<T>>;
18
- /** Is an unknown value an unknown object? */
43
+ /**
44
+ * Is an unknown value an unknown object?
45
+ *
46
+ * @param value The value to test.
47
+ * @returns `true` if `value` is a non-null `object`, narrowing its type.
48
+ * @see https://dhoulb.github.io/shelving/util/object/isObject
49
+ */
19
50
  export declare function isObject(value: unknown): value is ImmutableObject;
20
- /** Assert that a value is an object */
51
+ /**
52
+ * Assert that a value is an object.
53
+ *
54
+ * @param value The value to assert.
55
+ * @throws {RequiredError} If `value` is not an `object`.
56
+ * @see https://dhoulb.github.io/shelving/util/object/assertObject
57
+ */
21
58
  export declare function assertObject(value: unknown): asserts value is ImmutableObject;
22
- /** Is an unknown value a plain object? */
59
+ /**
60
+ * Is an unknown value a plain object?
61
+ * - A plain object is one whose prototype is `Object.prototype` or `null` (i.e. not a class instance).
62
+ *
63
+ * @param value The value to test.
64
+ * @returns `true` if `value` is a plain object, narrowing its type.
65
+ * @see https://dhoulb.github.io/shelving/util/object/isPlainObject
66
+ */
23
67
  export declare function isPlainObject(value: unknown): value is ImmutableObject;
24
- /** Assert that an unknown value is a plain object */
68
+ /**
69
+ * Assert that an unknown value is a plain object.
70
+ *
71
+ * @param value The value to assert.
72
+ * @throws {RequiredError} If `value` is not a plain object.
73
+ * @see https://dhoulb.github.io/shelving/util/object/assertPlainObject
74
+ */
25
75
  export declare function assertPlainObject(value: unknown): asserts value is ImmutableObject;
26
- /** Is an unknown value the key for an own prop of an object. */
27
- export declare const isProp: <T extends ImmutableObject>(obj: T, key: PropertyKey) => key is keyof T;
28
- /** Assert that an unknown value is the key for an own prop of an object. */
76
+ /**
77
+ * Is an unknown value the key for an own prop of an object.
78
+ *
79
+ * @param obj The object to test against.
80
+ * @param key The key to test for.
81
+ * @returns `true` if `key` is an own prop of `obj`, narrowing its type.
82
+ * @see https://dhoulb.github.io/shelving/util/object/isProp
83
+ */
84
+ export declare function isProp<T extends ImmutableObject>(obj: T, key: PropertyKey): key is keyof T;
85
+ /**
86
+ * Assert that an unknown value is the key for an own prop of an object.
87
+ *
88
+ * @param obj The object to assert against.
89
+ * @param key The key to assert is an own prop.
90
+ * @throws {RequiredError} If `key` is not an own prop of `obj`.
91
+ * @see https://dhoulb.github.io/shelving/util/object/assertProp
92
+ */
29
93
  export declare function assertProp<T extends ImmutableObject>(obj: T, key: PropertyKey): asserts key is keyof T;
30
- /** Turn a possible object into an object. */
94
+ /**
95
+ * Turn a possible object into an object.
96
+ * - If the value is iterable it is converted to an object using `Object.fromEntries()`, otherwise it is returned as-is.
97
+ *
98
+ * @param obj The object or iterable set of key/value entry tuples to convert.
99
+ * @returns The corresponding object.
100
+ * @example
101
+ * getObject([["a", 1], ["b", 2]]); // { a: 1, b: 2 }
102
+ * @see https://dhoulb.github.io/shelving/util/object/getObject
103
+ */
31
104
  export declare function getObject<T extends ImmutableObject>(obj: PossibleObject<T>): T;
32
105
  /**
33
106
  * Mutable type is the opposite of `Readonly<T>` helper type.
34
107
  * - See https://github.com/microsoft/TypeScript/issues/24509
35
108
  * - Consistency with `Readonly<T>`
109
+ *
110
+ * @see https://dhoulb.github.io/shelving/util/object/Mutable
36
111
  */
37
112
  export type Mutable<T> = {
38
113
  -readonly [K in keyof T]: T[K];
@@ -41,6 +116,8 @@ export type Mutable<T> = {
41
116
  * Deep partial object: deeply convert an object to its partial version.
42
117
  * - Any value that extends `UnknownObject` has its props made partial.
43
118
  * - Works deeply on nested objects too.
119
+ *
120
+ * @see https://dhoulb.github.io/shelving/util/object/DeepPartial
44
121
  */
45
122
  export type DeepPartial<T> = {
46
123
  [K in keyof T]?: DeepPartial<T[K]>;
@@ -49,6 +126,8 @@ export type DeepPartial<T> = {
49
126
  * Deep mutable object: deeply convert an object to its mutable version.
50
127
  * - Any value that extends `UnknownObject` has its props made mutable.
51
128
  * - Works deeply on nested objects too.
129
+ *
130
+ * @see https://dhoulb.github.io/shelving/util/object/DeepMutable
52
131
  */
53
132
  export type DeepMutable<T> = {
54
133
  -readonly [K in keyof T]: DeepMutable<T[K]>;
@@ -57,59 +136,212 @@ export type DeepMutable<T> = {
57
136
  * Deep readonly object: deeply convert an object to its readonly version.
58
137
  * - Any value that extends `UnknownObject` has its props made readonly.
59
138
  * - Works deeply on nested objects too.
139
+ *
140
+ * @see https://dhoulb.github.io/shelving/util/object/DeepReadonly
60
141
  */
61
142
  export type DeepReadonly<T> = {
62
143
  +readonly [K in keyof T]: DeepReadonly<T[K]>;
63
144
  };
64
- /** Pick only the properties of an object that match a type. */
145
+ /**
146
+ * Pick only the properties of an object that match a type.
147
+ *
148
+ * @see https://dhoulb.github.io/shelving/util/object/PickProps
149
+ */
65
150
  export type PickProps<T, TT> = Pick<T, {
66
151
  [K in keyof T]: T[K] extends TT ? K : never;
67
152
  }[keyof T]>;
68
- /** Omit the properties of an object that match a type. */
153
+ /**
154
+ * Omit the properties of an object that match a type.
155
+ *
156
+ * @see https://dhoulb.github.io/shelving/util/object/OmitProps
157
+ */
69
158
  export type OmitProps<T, TT> = Omit<T, {
70
159
  [K in keyof T]: T[K] extends TT ? K : never;
71
160
  }[keyof T]>;
72
- /** Get the props of an object as a set of entries. */
161
+ /**
162
+ * Get the props of an object as a set of entries.
163
+ *
164
+ * @param obj The object to read the props from.
165
+ * @returns Iterable set of key/value entry tuples for the object.
166
+ * @example
167
+ * getProps({ a: 1, b: 2 }); // [["a", 1], ["b", 2]]
168
+ * @see https://dhoulb.github.io/shelving/util/object/getProps
169
+ */
73
170
  export declare function getProps<T>(obj: T): ImmutableArray<Prop<T>>;
74
171
  export declare function getProps<T>(obj: T | Partial<T>): ImmutableArray<Prop<T>>;
75
172
  export declare function getProps<T>(obj: T | Partial<T> | Iterable<Prop<T>>): Iterable<Prop<T>>;
76
- /** Get the keys of an object as an array. */
173
+ /**
174
+ * Get the keys of an object as an array.
175
+ *
176
+ * @param obj The object to read the keys from.
177
+ * @returns Iterable set of keys for the object.
178
+ * @example
179
+ * getKeys({ a: 1, b: 2 }); // ["a", "b"]
180
+ * @see https://dhoulb.github.io/shelving/util/object/getKeys
181
+ */
77
182
  export declare function getKeys<T>(obj: T): ImmutableArray<Key<T>>;
78
183
  export declare function getKeys<T>(obj: T | Partial<T>): ImmutableArray<Key<T>>;
79
184
  export declare function getKeys<T>(obj: T | Partial<T> | Iterable<Key<T>>): Iterable<Key<T>>;
80
- /** Extract the value of a named prop from an object. */
185
+ /**
186
+ * Extract the value of a named prop from an object.
187
+ *
188
+ * @param obj The object to read the prop from.
189
+ * @param key The key of the prop to read.
190
+ * @returns The value of the named prop.
191
+ * @example
192
+ * getProp({ a: 1, b: 2 }, "a"); // 1
193
+ * @see https://dhoulb.github.io/shelving/util/object/getProp
194
+ */
81
195
  export declare function getProp<T, K extends Key<T>>(obj: T, key: K): T[K];
82
- /** Create an object from a single prop. */
196
+ /**
197
+ * Create an object from a single prop.
198
+ *
199
+ * @param key The key of the prop to set.
200
+ * @param value The value of the prop to set.
201
+ * @returns A new object containing only the single prop.
202
+ * @example
203
+ * fromProp("a", 1); // { a: 1 }
204
+ * @see https://dhoulb.github.io/shelving/util/object/fromProp
205
+ */
83
206
  export declare function fromProp<K extends PropertyKey, V>(key: K, value: V): {
84
207
  readonly [KK in K]: V;
85
208
  };
86
- /** Set a prop on an object (immutably) and return a new object including that prop. */
209
+ /**
210
+ * Set a prop on an object (immutably) and return a new object including that prop.
211
+ * - If the value is unchanged the original object is returned unchanged.
212
+ *
213
+ * @param input The object to set the prop on.
214
+ * @param key The key of the prop to set.
215
+ * @param value The value of the prop to set.
216
+ * @returns A new object including the set prop, or the original object if the value was unchanged.
217
+ * @example
218
+ * withProp({ a: 1 }, "b", 2); // { a: 1, b: 2 }
219
+ * @see https://dhoulb.github.io/shelving/util/object/withProp
220
+ */
87
221
  export declare function withProp<T extends ImmutableObject, K extends Key<T>>(input: T, key: K, value: T[K]): T;
88
- /** Set several props on an object (immutably) and return a new object including those props. */
222
+ /**
223
+ * Set several props on an object (immutably) and return a new object including those props.
224
+ * - If all values are unchanged the original object is returned unchanged.
225
+ *
226
+ * @param input The object to set the props on.
227
+ * @param props The props to set, as an object or iterable set of key/value entry tuples.
228
+ * @returns A new object including the set props, or the original object if all values were unchanged.
229
+ * @example
230
+ * withProps({ a: 1 }, { b: 2, c: 3 }); // { a: 1, b: 2, c: 3 }
231
+ * @see https://dhoulb.github.io/shelving/util/object/withProps
232
+ */
89
233
  export declare function withProps<T>(input: T, props: Partial<T>): T;
90
234
  export declare function withProps<T>(input: T, props: T | Partial<T> | Iterable<Prop<T>>): T;
91
- /** Remove several props from an object (immutably) and return a new object without those props. */
235
+ /**
236
+ * Remove several props from an object (immutably) and return a new object without those props.
237
+ * - If none of the keys exist the original object is returned unchanged.
238
+ *
239
+ * @param input The object to remove the props from.
240
+ * @param keys The keys of the props to remove.
241
+ * @returns A new object without the removed props, or the original object if no keys were present.
242
+ * @example
243
+ * omitProps({ a: 1, b: 2, c: 3 }, "b", "c"); // { a: 1 }
244
+ * @see https://dhoulb.github.io/shelving/util/object/omitProps
245
+ */
92
246
  export declare function omitProps<T, K extends Key<T>>(input: T, ...keys: K[]): Omit<T, K>;
93
- /** Remove a prop from an object (immutably) and return a new object without that prop. */
247
+ /**
248
+ * Remove a prop from an object (immutably) and return a new object without that prop.
249
+ * - If the key doesn't exist the original object is returned unchanged.
250
+ *
251
+ * @param input The object to remove the prop from.
252
+ * @param key The key of the prop to remove.
253
+ * @returns A new object without the removed prop, or the original object if the key was not present.
254
+ * @example
255
+ * omitProp({ a: 1, b: 2 }, "b"); // { a: 1 }
256
+ * @see https://dhoulb.github.io/shelving/util/object/omitProp
257
+ */
94
258
  export declare const omitProp: <T, K extends Key<T>>(input: T, key: K) => Omit<T, K>;
95
- /** Pick several props from an object and return a new object with only thos props. */
259
+ /**
260
+ * Pick several props from an object and return a new object with only those props.
261
+ *
262
+ * @param obj The object to pick the props from.
263
+ * @param keys The keys of the props to pick.
264
+ * @returns A new object containing only the picked props.
265
+ * @example
266
+ * pickProps({ a: 1, b: 2, c: 3 }, "a", "b"); // { a: 1, b: 2 }
267
+ * @see https://dhoulb.github.io/shelving/util/object/pickProps
268
+ */
96
269
  export declare function pickProps<T, K extends Key<T>>(obj: T, ...keys: K[]): Pick<T, K>;
97
- /** Set a single named prop on an object (by reference) and return its value. */
270
+ /**
271
+ * Set a single named prop on an object (by reference) and return its value.
272
+ *
273
+ * @param obj The object to set the prop on (modified by reference).
274
+ * @param key The key of the prop to set.
275
+ * @param value The value of the prop to set.
276
+ * @returns The value that was set.
277
+ * @example
278
+ * setProp(obj, "a", 1); // 1
279
+ * @see https://dhoulb.github.io/shelving/util/object/setProp
280
+ */
98
281
  export declare function setProp<T extends MutableObject, K extends Key<T>>(obj: T, key: K, value: T[K]): T[K];
99
- /** Set several named props on an object (by reference). */
282
+ /**
283
+ * Set several named props on an object (by reference).
284
+ *
285
+ * @param obj The object to set the props on (modified by reference).
286
+ * @param entries The props to set, as an object or iterable set of key/value entry tuples.
287
+ * @example
288
+ * setProps(obj, { a: 1, b: 2 });
289
+ * @see https://dhoulb.github.io/shelving/util/object/setProps
290
+ */
100
291
  export declare function setProps<T extends MutableObject>(obj: T, entries: T | Partial<T> | Iterable<Prop<T>>): void;
101
- /** Remove several key/value entries from an object (by reference). */
292
+ /**
293
+ * Remove several key/value entries from an object (by reference).
294
+ *
295
+ * @param obj The object to remove the props from (modified by reference).
296
+ * @param keys The keys of the props to remove.
297
+ * @example
298
+ * deleteProps(obj, "a", "b");
299
+ * @see https://dhoulb.github.io/shelving/util/object/deleteProps
300
+ */
102
301
  export declare function deleteProps<T extends MutableObject>(obj: T, ...keys: Key<T>[]): void;
103
- /** Remove a key/value entry from an object (by reference). */
302
+ /**
303
+ * Remove a key/value entry from an object (by reference).
304
+ *
305
+ * @param input The object to remove the prop from (modified by reference).
306
+ * @param key The key of the prop to remove.
307
+ * @example
308
+ * deleteProp(obj, "a");
309
+ * @see https://dhoulb.github.io/shelving/util/object/deleteProp
310
+ */
104
311
  export declare const deleteProp: <T extends MutableObject>(input: T, key: Key<T>) => void;
105
312
  /**
106
313
  * Get the prototype of an object instance.
107
314
  * - Recommend to use this because Typescript's default lib specifies `Object.getPrototypeOf()` returning `any`.
315
+ *
316
+ * @param obj The object to read the prototype from.
317
+ * @returns The prototype of the object, or `null` if it has none.
318
+ * @example
319
+ * getPrototype({ a: 1 }); // Object.prototype
320
+ * @see https://dhoulb.github.io/shelving/util/object/getPrototype
108
321
  */
109
322
  export declare function getPrototype<T>(obj: T): Partial<T> | null;
110
- /** Shallow clone an object with the same prototype. */
323
+ /**
324
+ * Shallow clone an object with the same prototype.
325
+ *
326
+ * @param input The object to clone.
327
+ * @returns A new object with the same prototype and props as `input`.
328
+ * @example
329
+ * cloneObject({ a: 1 }); // { a: 1 }
330
+ * @see https://dhoulb.github.io/shelving/util/object/cloneObject
331
+ */
111
332
  export declare function cloneObject<T>(input: T): T;
112
- /** Shallow clone an object with a single changed value. */
333
+ /**
334
+ * Shallow clone an object with a single changed value.
335
+ * - If the value is unchanged the original object is returned unchanged.
336
+ *
337
+ * @param input The object to clone.
338
+ * @param key The key of the prop to change.
339
+ * @param value The value of the prop to change.
340
+ * @returns A new object with the changed prop, or the original object if the value was unchanged.
341
+ * @example
342
+ * cloneObjectWith({ a: 1 }, "a", 2); // { a: 2 }
343
+ * @see https://dhoulb.github.io/shelving/util/object/cloneObjectWith
344
+ */
113
345
  export declare function cloneObjectWith<T, K extends Key<T>>(input: T, key: K, value: T[K]): T;
114
346
  export declare function cloneObjectWith<T, K extends string, V>(input: T, key: K, value: V): T & {
115
347
  [KK in K]: V;
package/util/object.js CHANGED
@@ -1,15 +1,34 @@
1
1
  import { RequiredError } from "../error/RequiredError.js";
2
2
  import { isIterable } from "./iterate.js";
3
- /** Is an unknown value an unknown object? */
3
+ /**
4
+ * Is an unknown value an unknown object?
5
+ *
6
+ * @param value The value to test.
7
+ * @returns `true` if `value` is a non-null `object`, narrowing its type.
8
+ * @see https://dhoulb.github.io/shelving/util/object/isObject
9
+ */
4
10
  export function isObject(value) {
5
11
  return typeof value === "object" && value !== null;
6
12
  }
7
- /** Assert that a value is an object */
13
+ /**
14
+ * Assert that a value is an object.
15
+ *
16
+ * @param value The value to assert.
17
+ * @throws {RequiredError} If `value` is not an `object`.
18
+ * @see https://dhoulb.github.io/shelving/util/object/assertObject
19
+ */
8
20
  export function assertObject(value) {
9
21
  if (!isObject(value))
10
22
  throw new RequiredError("Must be object", { received: value, caller: assertObject });
11
23
  }
12
- /** Is an unknown value a plain object? */
24
+ /**
25
+ * Is an unknown value a plain object?
26
+ * - A plain object is one whose prototype is `Object.prototype` or `null` (i.e. not a class instance).
27
+ *
28
+ * @param value The value to test.
29
+ * @returns `true` if `value` is a plain object, narrowing its type.
30
+ * @see https://dhoulb.github.io/shelving/util/object/isPlainObject
31
+ */
13
32
  export function isPlainObject(value) {
14
33
  if (isObject(value)) {
15
34
  const proto = getPrototype(value);
@@ -17,19 +36,50 @@ export function isPlainObject(value) {
17
36
  }
18
37
  return false;
19
38
  }
20
- /** Assert that an unknown value is a plain object */
39
+ /**
40
+ * Assert that an unknown value is a plain object.
41
+ *
42
+ * @param value The value to assert.
43
+ * @throws {RequiredError} If `value` is not a plain object.
44
+ * @see https://dhoulb.github.io/shelving/util/object/assertPlainObject
45
+ */
21
46
  export function assertPlainObject(value) {
22
47
  if (!isPlainObject(value))
23
48
  throw new RequiredError("Must be plain object", { received: value, caller: assertPlainObject });
24
49
  }
25
- /** Is an unknown value the key for an own prop of an object. */
26
- export const isProp = (obj, key) => Object.hasOwn(obj, key);
27
- /** Assert that an unknown value is the key for an own prop of an object. */
50
+ /**
51
+ * Is an unknown value the key for an own prop of an object.
52
+ *
53
+ * @param obj The object to test against.
54
+ * @param key The key to test for.
55
+ * @returns `true` if `key` is an own prop of `obj`, narrowing its type.
56
+ * @see https://dhoulb.github.io/shelving/util/object/isProp
57
+ */
58
+ export function isProp(obj, key) {
59
+ return Object.hasOwn(obj, key);
60
+ }
61
+ /**
62
+ * Assert that an unknown value is the key for an own prop of an object.
63
+ *
64
+ * @param obj The object to assert against.
65
+ * @param key The key to assert is an own prop.
66
+ * @throws {RequiredError} If `key` is not an own prop of `obj`.
67
+ * @see https://dhoulb.github.io/shelving/util/object/assertProp
68
+ */
28
69
  export function assertProp(obj, key) {
29
70
  if (!isProp(obj, key))
30
71
  throw new RequiredError("Key must exist in object", { key, obj, caller: assertProp });
31
72
  }
32
- /** Turn a possible object into an object. */
73
+ /**
74
+ * Turn a possible object into an object.
75
+ * - If the value is iterable it is converted to an object using `Object.fromEntries()`, otherwise it is returned as-is.
76
+ *
77
+ * @param obj The object or iterable set of key/value entry tuples to convert.
78
+ * @returns The corresponding object.
79
+ * @example
80
+ * getObject([["a", 1], ["b", 2]]); // { a: 1, b: 2 }
81
+ * @see https://dhoulb.github.io/shelving/util/object/getObject
82
+ */
33
83
  export function getObject(obj) {
34
84
  return isIterable(obj) ? Object.fromEntries(obj) : obj;
35
85
  }
@@ -39,15 +89,44 @@ export function getProps(obj) {
39
89
  export function getKeys(obj) {
40
90
  return isIterable(obj) ? obj : Object.keys(obj);
41
91
  }
42
- /** Extract the value of a named prop from an object. */
92
+ /**
93
+ * Extract the value of a named prop from an object.
94
+ *
95
+ * @param obj The object to read the prop from.
96
+ * @param key The key of the prop to read.
97
+ * @returns The value of the named prop.
98
+ * @example
99
+ * getProp({ a: 1, b: 2 }, "a"); // 1
100
+ * @see https://dhoulb.github.io/shelving/util/object/getProp
101
+ */
43
102
  export function getProp(obj, key) {
44
103
  return obj[key];
45
104
  }
46
- /** Create an object from a single prop. */
105
+ /**
106
+ * Create an object from a single prop.
107
+ *
108
+ * @param key The key of the prop to set.
109
+ * @param value The value of the prop to set.
110
+ * @returns A new object containing only the single prop.
111
+ * @example
112
+ * fromProp("a", 1); // { a: 1 }
113
+ * @see https://dhoulb.github.io/shelving/util/object/fromProp
114
+ */
47
115
  export function fromProp(key, value) {
48
116
  return { [key]: value };
49
117
  }
50
- /** Set a prop on an object (immutably) and return a new object including that prop. */
118
+ /**
119
+ * Set a prop on an object (immutably) and return a new object including that prop.
120
+ * - If the value is unchanged the original object is returned unchanged.
121
+ *
122
+ * @param input The object to set the prop on.
123
+ * @param key The key of the prop to set.
124
+ * @param value The value of the prop to set.
125
+ * @returns A new object including the set prop, or the original object if the value was unchanged.
126
+ * @example
127
+ * withProp({ a: 1 }, "b", 2); // { a: 1, b: 2 }
128
+ * @see https://dhoulb.github.io/shelving/util/object/withProp
129
+ */
51
130
  export function withProp(input, key, value) {
52
131
  return input[key] === value ? input : { __proto__: getPrototype(input), ...input, [key]: value };
53
132
  }
@@ -68,7 +147,17 @@ export function omitProps(input, ...keys) {
68
147
  function _hasntKey([key]) {
69
148
  return !this.includes(key);
70
149
  }
71
- /** Remove a prop from an object (immutably) and return a new object without that prop. */
150
+ /**
151
+ * Remove a prop from an object (immutably) and return a new object without that prop.
152
+ * - If the key doesn't exist the original object is returned unchanged.
153
+ *
154
+ * @param input The object to remove the prop from.
155
+ * @param key The key of the prop to remove.
156
+ * @returns A new object without the removed prop, or the original object if the key was not present.
157
+ * @example
158
+ * omitProp({ a: 1, b: 2 }, "b"); // { a: 1 }
159
+ * @see https://dhoulb.github.io/shelving/util/object/omitProp
160
+ */
72
161
  export const omitProp = omitProps;
73
162
  export function pickProps(input, ...keys) {
74
163
  return Object.fromEntries(Object.entries(input).filter(_hasKey, keys));
@@ -76,31 +165,79 @@ export function pickProps(input, ...keys) {
76
165
  function _hasKey([key]) {
77
166
  return this.includes(key);
78
167
  }
79
- /** Set a single named prop on an object (by reference) and return its value. */
168
+ /**
169
+ * Set a single named prop on an object (by reference) and return its value.
170
+ *
171
+ * @param obj The object to set the prop on (modified by reference).
172
+ * @param key The key of the prop to set.
173
+ * @param value The value of the prop to set.
174
+ * @returns The value that was set.
175
+ * @example
176
+ * setProp(obj, "a", 1); // 1
177
+ * @see https://dhoulb.github.io/shelving/util/object/setProp
178
+ */
80
179
  export function setProp(obj, key, value) {
81
180
  obj[key] = value;
82
181
  return value;
83
182
  }
84
- /** Set several named props on an object (by reference). */
183
+ /**
184
+ * Set several named props on an object (by reference).
185
+ *
186
+ * @param obj The object to set the props on (modified by reference).
187
+ * @param entries The props to set, as an object or iterable set of key/value entry tuples.
188
+ * @example
189
+ * setProps(obj, { a: 1, b: 2 });
190
+ * @see https://dhoulb.github.io/shelving/util/object/setProps
191
+ */
85
192
  export function setProps(obj, entries) {
86
193
  for (const [k, v] of getProps(entries))
87
194
  obj[k] = v;
88
195
  }
89
- /** Remove several key/value entries from an object (by reference). */
196
+ /**
197
+ * Remove several key/value entries from an object (by reference).
198
+ *
199
+ * @param obj The object to remove the props from (modified by reference).
200
+ * @param keys The keys of the props to remove.
201
+ * @example
202
+ * deleteProps(obj, "a", "b");
203
+ * @see https://dhoulb.github.io/shelving/util/object/deleteProps
204
+ */
90
205
  export function deleteProps(obj, ...keys) {
91
206
  for (const key of keys)
92
207
  delete obj[key];
93
208
  }
94
- /** Remove a key/value entry from an object (by reference). */
209
+ /**
210
+ * Remove a key/value entry from an object (by reference).
211
+ *
212
+ * @param input The object to remove the prop from (modified by reference).
213
+ * @param key The key of the prop to remove.
214
+ * @example
215
+ * deleteProp(obj, "a");
216
+ * @see https://dhoulb.github.io/shelving/util/object/deleteProp
217
+ */
95
218
  export const deleteProp = deleteProps;
96
219
  /**
97
220
  * Get the prototype of an object instance.
98
221
  * - Recommend to use this because Typescript's default lib specifies `Object.getPrototypeOf()` returning `any`.
222
+ *
223
+ * @param obj The object to read the prototype from.
224
+ * @returns The prototype of the object, or `null` if it has none.
225
+ * @example
226
+ * getPrototype({ a: 1 }); // Object.prototype
227
+ * @see https://dhoulb.github.io/shelving/util/object/getPrototype
99
228
  */
100
229
  export function getPrototype(obj) {
101
230
  return Object.getPrototypeOf(obj);
102
231
  }
103
- /** Shallow clone an object with the same prototype. */
232
+ /**
233
+ * Shallow clone an object with the same prototype.
234
+ *
235
+ * @param input The object to clone.
236
+ * @returns A new object with the same prototype and props as `input`.
237
+ * @example
238
+ * cloneObject({ a: 1 }); // { a: 1 }
239
+ * @see https://dhoulb.github.io/shelving/util/object/cloneObject
240
+ */
104
241
  export function cloneObject(input) {
105
242
  return { __proto__: getPrototype(input), ...input };
106
243
  }