shelving 1.236.0 → 1.236.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/api/cache/APICache.d.ts +69 -6
  2. package/api/cache/APICache.js +61 -5
  3. package/api/cache/EndpointCache.d.ts +75 -7
  4. package/api/cache/EndpointCache.js +75 -7
  5. package/api/endpoint/Endpoint.d.ts +141 -25
  6. package/api/endpoint/Endpoint.js +55 -9
  7. package/api/endpoint/util.d.ts +28 -6
  8. package/api/provider/APIProvider.d.ts +58 -14
  9. package/api/provider/APIProvider.js +24 -2
  10. package/api/provider/CachedAPIProvider.d.ts +58 -5
  11. package/api/provider/CachedAPIProvider.js +58 -6
  12. package/api/provider/ClientAPIProvider.d.ts +80 -4
  13. package/api/provider/ClientAPIProvider.js +75 -4
  14. package/api/provider/DebugAPIProvider.d.ts +40 -1
  15. package/api/provider/DebugAPIProvider.js +40 -1
  16. package/api/provider/JSONAPIProvider.d.ts +18 -2
  17. package/api/provider/JSONAPIProvider.js +18 -2
  18. package/api/provider/LoggingAPIProvider.d.ts +25 -2
  19. package/api/provider/LoggingAPIProvider.js +25 -2
  20. package/api/provider/MockAPIProvider.d.ts +72 -1
  21. package/api/provider/MockAPIProvider.js +60 -4
  22. package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
  23. package/api/provider/MockEndpointAPIProvider.js +9 -0
  24. package/api/provider/ThroughAPIProvider.d.ts +67 -1
  25. package/api/provider/ThroughAPIProvider.js +67 -1
  26. package/api/provider/ValidationAPIProvider.d.ts +32 -1
  27. package/api/provider/ValidationAPIProvider.js +32 -1
  28. package/api/provider/XMLAPIProvider.d.ts +18 -2
  29. package/api/provider/XMLAPIProvider.js +18 -2
  30. package/api/store/EndpointStore.d.ts +24 -1
  31. package/api/store/EndpointStore.js +24 -1
  32. package/bun/BunPostgreSQLProvider.d.ts +38 -0
  33. package/bun/BunPostgreSQLProvider.js +38 -2
  34. package/cloudflare/CloudflareD1Provider.d.ts +29 -2
  35. package/cloudflare/CloudflareD1Provider.js +29 -2
  36. package/cloudflare/CloudflareKVProvider.d.ts +115 -0
  37. package/cloudflare/CloudflareKVProvider.js +115 -0
  38. package/cloudflare/types.d.ts +41 -7
  39. package/db/cache/CollectionCache.d.ts +83 -7
  40. package/db/cache/CollectionCache.js +83 -7
  41. package/db/cache/DBCache.d.ts +93 -8
  42. package/db/cache/DBCache.js +85 -7
  43. package/db/collection/Collection.d.ts +103 -15
  44. package/db/collection/Collection.js +58 -6
  45. package/db/migrate/DBMigrator.d.ts +29 -1
  46. package/db/migrate/DBMigrator.js +20 -1
  47. package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
  48. package/db/migrate/PostgreSQLMigrator.js +8 -1
  49. package/db/migrate/SQLMigrator.d.ts +63 -4
  50. package/db/migrate/SQLMigrator.js +51 -1
  51. package/db/migrate/SQLiteMigrator.d.ts +8 -1
  52. package/db/migrate/SQLiteMigrator.js +8 -1
  53. package/db/provider/CacheDBProvider.d.ts +135 -1
  54. package/db/provider/CacheDBProvider.js +135 -1
  55. package/db/provider/ChangesDBProvider.d.ts +84 -3
  56. package/db/provider/ChangesDBProvider.js +77 -2
  57. package/db/provider/DBProvider.d.ts +148 -1
  58. package/db/provider/DBProvider.js +51 -1
  59. package/db/provider/DebugDBProvider.d.ts +118 -1
  60. package/db/provider/DebugDBProvider.js +118 -1
  61. package/db/provider/MemoryDBProvider.d.ts +262 -7
  62. package/db/provider/MemoryDBProvider.js +262 -7
  63. package/db/provider/MockDBProvider.d.ts +113 -2
  64. package/db/provider/MockDBProvider.js +106 -1
  65. package/db/provider/PostgreSQLProvider.d.ts +34 -2
  66. package/db/provider/PostgreSQLProvider.js +34 -4
  67. package/db/provider/SQLProvider.d.ts +250 -14
  68. package/db/provider/SQLProvider.js +237 -13
  69. package/db/provider/SQLiteProvider.d.ts +41 -1
  70. package/db/provider/SQLiteProvider.js +41 -4
  71. package/db/provider/ThroughDBProvider.d.ts +156 -1
  72. package/db/provider/ThroughDBProvider.js +156 -1
  73. package/db/provider/ValidationDBProvider.d.ts +120 -1
  74. package/db/provider/ValidationDBProvider.js +120 -1
  75. package/db/store/ItemStore.d.ts +38 -2
  76. package/db/store/ItemStore.js +38 -2
  77. package/db/store/QueryStore.d.ts +64 -6
  78. package/db/store/QueryStore.js +64 -6
  79. package/error/BaseError.d.ts +27 -2
  80. package/error/BaseError.js +14 -0
  81. package/error/Errors.d.ts +12 -1
  82. package/error/Errors.js +12 -1
  83. package/error/NetworkError.d.ts +13 -1
  84. package/error/NetworkError.js +13 -1
  85. package/error/RequestError.d.ts +90 -7
  86. package/error/RequestError.js +90 -7
  87. package/error/RequiredError.d.ts +11 -1
  88. package/error/RequiredError.js +11 -1
  89. package/error/ResponseError.d.ts +19 -2
  90. package/error/ResponseError.js +19 -2
  91. package/error/UnexpectedError.d.ts +14 -1
  92. package/error/UnexpectedError.js +14 -1
  93. package/error/UnimplementedError.d.ts +13 -1
  94. package/error/UnimplementedError.js +13 -1
  95. package/error/ValueError.d.ts +14 -1
  96. package/error/ValueError.js +14 -1
  97. package/extract/DirectoryExtractor.d.ts +35 -1
  98. package/extract/DirectoryExtractor.js +30 -0
  99. package/extract/Extractor.d.ts +21 -2
  100. package/extract/Extractor.js +7 -1
  101. package/extract/FileExtractor.d.ts +18 -0
  102. package/extract/FileExtractor.js +18 -0
  103. package/extract/IndexExtractor.d.ts +36 -1
  104. package/extract/IndexExtractor.js +31 -0
  105. package/extract/MarkupExtractor.d.ts +15 -0
  106. package/extract/MarkupExtractor.js +15 -0
  107. package/extract/MergingExtractor.d.ts +36 -1
  108. package/extract/MergingExtractor.js +31 -0
  109. package/extract/ModuleExtractor.d.ts +25 -1
  110. package/extract/ModuleExtractor.js +20 -0
  111. package/extract/PackageExtractor.d.ts +36 -1
  112. package/extract/PackageExtractor.js +31 -0
  113. package/extract/ThroughExtractor.d.ts +22 -1
  114. package/extract/ThroughExtractor.js +22 -1
  115. package/extract/TypescriptExtractor.d.ts +21 -0
  116. package/extract/TypescriptExtractor.js +28 -3
  117. package/firestore/client/FirestoreClientProvider.d.ts +129 -4
  118. package/firestore/client/FirestoreClientProvider.js +129 -4
  119. package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
  120. package/firestore/lite/FirestoreLiteProvider.js +128 -3
  121. package/firestore/server/FirestoreServerProvider.d.ts +129 -2
  122. package/firestore/server/FirestoreServerProvider.js +129 -2
  123. package/markup/MarkupParser.d.ts +57 -10
  124. package/markup/MarkupParser.js +50 -9
  125. package/markup/MarkupRule.d.ts +34 -1
  126. package/markup/Parser.d.ts +18 -0
  127. package/markup/Parser.js +11 -0
  128. package/markup/rule/blockquote.d.ts +3 -0
  129. package/markup/rule/blockquote.js +3 -0
  130. package/markup/rule/code.d.ts +3 -0
  131. package/markup/rule/code.js +3 -0
  132. package/markup/rule/fenced.d.ts +3 -0
  133. package/markup/rule/fenced.js +3 -0
  134. package/markup/rule/heading.d.ts +3 -0
  135. package/markup/rule/heading.js +3 -0
  136. package/markup/rule/index.d.ts +16 -3
  137. package/markup/rule/index.js +16 -3
  138. package/markup/rule/inline.d.ts +4 -1
  139. package/markup/rule/inline.js +5 -2
  140. package/markup/rule/linebreak.d.ts +3 -0
  141. package/markup/rule/linebreak.js +3 -0
  142. package/markup/rule/link.d.ts +6 -0
  143. package/markup/rule/link.js +6 -0
  144. package/markup/rule/ordered.d.ts +3 -0
  145. package/markup/rule/ordered.js +3 -0
  146. package/markup/rule/paragraph.d.ts +3 -0
  147. package/markup/rule/paragraph.js +3 -0
  148. package/markup/rule/separator.d.ts +3 -0
  149. package/markup/rule/separator.js +3 -0
  150. package/markup/rule/table.d.ts +3 -0
  151. package/markup/rule/table.js +3 -0
  152. package/markup/rule/unordered.d.ts +3 -0
  153. package/markup/rule/unordered.js +3 -0
  154. package/markup/util/regexp.d.ts +80 -3
  155. package/markup/util/regexp.js +44 -0
  156. package/package.json +1 -1
  157. package/react/createAPIContext.d.ts +15 -0
  158. package/react/createAPIContext.js +10 -0
  159. package/react/createDBContext.d.ts +15 -0
  160. package/react/createDBContext.js +10 -0
  161. package/react/useInstance.d.ts +11 -0
  162. package/react/useInstance.js +11 -0
  163. package/react/useLazy.d.ts +11 -0
  164. package/react/useMap.d.ts +14 -1
  165. package/react/useMap.js +14 -1
  166. package/react/useReduce.d.ts +12 -0
  167. package/react/useSequence.d.ts +10 -0
  168. package/react/useSequence.js +10 -0
  169. package/react/useStore.d.ts +16 -1
  170. package/schema/AddressSchema.d.ts +41 -4
  171. package/schema/AddressSchema.js +36 -3
  172. package/schema/ArraySchema.d.ts +48 -6
  173. package/schema/ArraySchema.js +40 -5
  174. package/schema/BooleanSchema.d.ts +59 -3
  175. package/schema/BooleanSchema.js +51 -2
  176. package/schema/ChoiceSchema.d.ts +61 -7
  177. package/schema/ChoiceSchema.js +44 -2
  178. package/schema/ColorSchema.d.ts +41 -8
  179. package/schema/ColorSchema.js +36 -7
  180. package/schema/CountrySchema.d.ts +44 -4
  181. package/schema/CountrySchema.js +39 -3
  182. package/schema/CurrencyAmountSchema.d.ts +104 -8
  183. package/schema/CurrencyAmountSchema.js +91 -4
  184. package/schema/CurrencyCodeSchema.d.ts +56 -4
  185. package/schema/CurrencyCodeSchema.js +49 -3
  186. package/schema/DataSchema.d.ts +101 -10
  187. package/schema/DataSchema.js +87 -8
  188. package/schema/DateSchema.d.ts +73 -4
  189. package/schema/DateSchema.js +57 -2
  190. package/schema/DateTimeSchema.d.ts +40 -3
  191. package/schema/DateTimeSchema.js +40 -3
  192. package/schema/DictionarySchema.d.ts +54 -4
  193. package/schema/DictionarySchema.js +47 -3
  194. package/schema/EmailSchema.d.ts +34 -3
  195. package/schema/EmailSchema.js +34 -3
  196. package/schema/EntitySchema.d.ts +45 -4
  197. package/schema/EntitySchema.js +38 -3
  198. package/schema/FileSchema.d.ts +45 -4
  199. package/schema/FileSchema.js +39 -3
  200. package/schema/KeySchema.d.ts +32 -3
  201. package/schema/KeySchema.js +32 -3
  202. package/schema/NullableSchema.d.ts +64 -4
  203. package/schema/NullableSchema.js +59 -3
  204. package/schema/NumberSchema.d.ts +137 -12
  205. package/schema/NumberSchema.js +127 -11
  206. package/schema/OptionalSchema.d.ts +61 -4
  207. package/schema/OptionalSchema.js +56 -4
  208. package/schema/PasswordSchema.d.ts +37 -1
  209. package/schema/PasswordSchema.js +32 -1
  210. package/schema/PhoneSchema.d.ts +40 -4
  211. package/schema/PhoneSchema.js +35 -3
  212. package/schema/RequiredSchema.d.ts +39 -3
  213. package/schema/RequiredSchema.js +41 -3
  214. package/schema/Schema.d.ts +67 -7
  215. package/schema/Schema.js +42 -6
  216. package/schema/SlugSchema.d.ts +37 -5
  217. package/schema/SlugSchema.js +37 -5
  218. package/schema/StringSchema.d.ts +124 -19
  219. package/schema/StringSchema.js +107 -17
  220. package/schema/ThroughSchema.d.ts +35 -2
  221. package/schema/ThroughSchema.js +30 -1
  222. package/schema/TimeSchema.d.ts +43 -3
  223. package/schema/TimeSchema.js +43 -3
  224. package/schema/URISchema.d.ts +67 -6
  225. package/schema/URISchema.js +60 -6
  226. package/schema/URLSchema.d.ts +69 -6
  227. package/schema/URLSchema.js +61 -6
  228. package/schema/UUIDSchema.d.ts +37 -4
  229. package/schema/UUIDSchema.js +37 -4
  230. package/sequence/DeferredSequence.d.ts +49 -3
  231. package/sequence/DeferredSequence.js +39 -3
  232. package/sequence/InspectSequence.d.ts +59 -5
  233. package/sequence/InspectSequence.js +59 -5
  234. package/sequence/LazySequence.d.ts +30 -2
  235. package/sequence/LazySequence.js +30 -2
  236. package/sequence/Sequence.d.ts +11 -0
  237. package/sequence/Sequence.js +10 -0
  238. package/sequence/ThroughSequence.d.ts +15 -0
  239. package/sequence/ThroughSequence.js +15 -0
  240. package/store/ArrayStore.d.ts +74 -11
  241. package/store/ArrayStore.js +74 -11
  242. package/store/BooleanStore.d.ts +19 -2
  243. package/store/BooleanStore.js +19 -2
  244. package/store/BusyStore.d.ts +13 -1
  245. package/store/BusyStore.js +13 -1
  246. package/store/DataStore.d.ts +118 -15
  247. package/store/DataStore.js +118 -15
  248. package/store/DictionaryStore.d.ts +66 -8
  249. package/store/DictionaryStore.js +66 -8
  250. package/store/FetchStore.d.ts +43 -6
  251. package/store/FetchStore.js +36 -5
  252. package/store/PathStore.d.ts +44 -5
  253. package/store/PathStore.js +44 -5
  254. package/store/PayloadFetchStore.d.ts +16 -1
  255. package/store/PayloadFetchStore.js +9 -1
  256. package/store/Store.d.ts +85 -16
  257. package/store/Store.js +52 -10
  258. package/store/URLStore.d.ts +173 -15
  259. package/store/URLStore.js +173 -15
  260. package/test/basics.d.ts +70 -0
  261. package/test/basics.js +60 -0
  262. package/test/people.d.ts +45 -0
  263. package/test/people.js +35 -0
  264. package/test/util.d.ts +30 -3
  265. package/test/util.js +30 -3
  266. package/ui/app/App.d.ts +14 -2
  267. package/ui/app/App.js +9 -2
  268. package/ui/app/App.tsx +14 -2
  269. package/ui/block/Address.d.ts +45 -3
  270. package/ui/block/Address.js +30 -3
  271. package/ui/block/Address.tsx +46 -3
  272. package/ui/block/Block.d.ts +23 -1
  273. package/ui/block/Block.js +13 -1
  274. package/ui/block/Block.tsx +23 -1
  275. package/ui/block/Blockquote.d.ts +21 -0
  276. package/ui/block/Blockquote.js +16 -0
  277. package/ui/block/Blockquote.tsx +22 -0
  278. package/ui/block/Caption.d.ts +21 -1
  279. package/ui/block/Caption.js +16 -1
  280. package/ui/block/Caption.tsx +22 -1
  281. package/ui/block/Card.d.ts +6 -0
  282. package/ui/block/Card.js +1 -0
  283. package/ui/block/Card.tsx +6 -0
  284. package/ui/block/Definitions.d.ts +18 -0
  285. package/ui/block/Definitions.js +13 -0
  286. package/ui/block/Definitions.tsx +19 -0
  287. package/ui/block/Divider.d.ts +21 -0
  288. package/ui/block/Divider.js +16 -0
  289. package/ui/block/Divider.tsx +22 -0
  290. package/ui/block/Heading.d.ts +20 -1
  291. package/ui/block/Heading.js +15 -0
  292. package/ui/block/Heading.tsx +21 -1
  293. package/ui/block/Image.d.ts +23 -0
  294. package/ui/block/Image.js +18 -0
  295. package/ui/block/Image.tsx +24 -0
  296. package/ui/block/Label.d.ts +18 -3
  297. package/ui/block/Label.js +13 -3
  298. package/ui/block/Label.tsx +18 -3
  299. package/ui/block/List.d.ts +30 -0
  300. package/ui/block/List.js +25 -0
  301. package/ui/block/List.tsx +32 -0
  302. package/ui/block/Panel.d.ts +13 -1
  303. package/ui/block/Panel.js +3 -0
  304. package/ui/block/Panel.tsx +13 -1
  305. package/ui/block/Paragraph.d.ts +23 -0
  306. package/ui/block/Paragraph.js +18 -0
  307. package/ui/block/Paragraph.tsx +24 -0
  308. package/ui/block/Preformatted.d.ts +20 -0
  309. package/ui/block/Preformatted.js +15 -0
  310. package/ui/block/Preformatted.tsx +21 -0
  311. package/ui/block/Prose.d.ts +14 -1
  312. package/ui/block/Prose.js +9 -1
  313. package/ui/block/Prose.tsx +14 -1
  314. package/ui/block/Section.d.ts +69 -6
  315. package/ui/block/Section.js +59 -6
  316. package/ui/block/Section.tsx +70 -6
  317. package/ui/block/Subheading.d.ts +20 -1
  318. package/ui/block/Subheading.js +15 -0
  319. package/ui/block/Subheading.tsx +21 -1
  320. package/ui/block/Table.d.ts +20 -0
  321. package/ui/block/Table.js +15 -0
  322. package/ui/block/Table.tsx +21 -0
  323. package/ui/block/Title.d.ts +20 -1
  324. package/ui/block/Title.js +15 -0
  325. package/ui/block/Title.tsx +21 -1
  326. package/ui/block/Video.d.ts +50 -3
  327. package/ui/block/Video.js +30 -3
  328. package/ui/block/Video.tsx +50 -3
  329. package/ui/dialog/Dialog.d.ts +28 -1
  330. package/ui/dialog/Dialog.js +18 -1
  331. package/ui/dialog/Dialog.tsx +28 -1
  332. package/ui/dialog/Dialogs.d.ts +53 -6
  333. package/ui/dialog/Dialogs.js +43 -6
  334. package/ui/dialog/Dialogs.tsx +53 -6
  335. package/ui/dialog/Modal.d.ts +13 -0
  336. package/ui/dialog/Modal.js +8 -0
  337. package/ui/dialog/Modal.tsx +13 -0
  338. package/ui/docs/DocumentationButtons.d.ts +5 -1
  339. package/ui/docs/DocumentationButtons.tsx +5 -1
  340. package/ui/docs/DocumentationCard.d.ts +6 -1
  341. package/ui/docs/DocumentationCard.js +6 -1
  342. package/ui/docs/DocumentationCard.tsx +6 -1
  343. package/ui/docs/DocumentationKind.d.ts +13 -1
  344. package/ui/docs/DocumentationKind.js +8 -0
  345. package/ui/docs/DocumentationKind.tsx +13 -1
  346. package/ui/docs/DocumentationPage.d.ts +6 -1
  347. package/ui/docs/DocumentationPage.js +6 -1
  348. package/ui/docs/DocumentationPage.tsx +6 -1
  349. package/ui/docs/DocumentationSignatures.d.ts +10 -1
  350. package/ui/docs/DocumentationSignatures.js +5 -0
  351. package/ui/docs/DocumentationSignatures.tsx +10 -1
  352. package/ui/form/ArrayInput.d.ts +15 -0
  353. package/ui/form/ArrayInput.tsx +15 -0
  354. package/ui/form/ArrayRadioInputs.d.ts +10 -0
  355. package/ui/form/ArrayRadioInputs.js +5 -0
  356. package/ui/form/ArrayRadioInputs.tsx +10 -0
  357. package/ui/form/Button.d.ts +19 -3
  358. package/ui/form/Button.js +14 -2
  359. package/ui/form/Button.tsx +19 -3
  360. package/ui/form/ButtonInput.d.ts +14 -1
  361. package/ui/form/ButtonInput.js +9 -1
  362. package/ui/form/ButtonInput.tsx +14 -1
  363. package/ui/form/ButtonInputPopover.d.ts +10 -0
  364. package/ui/form/ButtonInputPopover.js +5 -0
  365. package/ui/form/ButtonInputPopover.tsx +10 -0
  366. package/ui/form/ButtonPopover.d.ts +11 -1
  367. package/ui/form/ButtonPopover.js +6 -1
  368. package/ui/form/ButtonPopover.tsx +11 -1
  369. package/ui/form/CheckboxInput.d.ts +14 -1
  370. package/ui/form/CheckboxInput.js +9 -1
  371. package/ui/form/CheckboxInput.tsx +14 -1
  372. package/ui/form/ChoiceRadioInputs.d.ts +10 -0
  373. package/ui/form/ChoiceRadioInputs.tsx +10 -0
  374. package/ui/form/Clickable.d.ts +45 -5
  375. package/ui/form/Clickable.js +30 -3
  376. package/ui/form/Clickable.tsx +45 -5
  377. package/ui/form/DataInput.d.ts +14 -0
  378. package/ui/form/DataInput.tsx +14 -0
  379. package/ui/form/DateInput.d.ts +14 -0
  380. package/ui/form/DateInput.js +9 -0
  381. package/ui/form/DateInput.tsx +14 -0
  382. package/ui/form/DictionaryInput.d.ts +15 -0
  383. package/ui/form/DictionaryInput.tsx +15 -0
  384. package/ui/form/Field.d.ts +5 -0
  385. package/ui/form/Field.tsx +5 -0
  386. package/ui/form/FileInput.d.ts +14 -0
  387. package/ui/form/FileInput.js +9 -0
  388. package/ui/form/FileInput.tsx +14 -0
  389. package/ui/form/Form.d.ts +55 -6
  390. package/ui/form/Form.js +35 -3
  391. package/ui/form/Form.tsx +55 -6
  392. package/ui/form/FormContext.d.ts +24 -3
  393. package/ui/form/FormContext.js +5 -1
  394. package/ui/form/FormContext.tsx +24 -3
  395. package/ui/form/FormFields.d.ts +15 -2
  396. package/ui/form/FormFields.js +15 -2
  397. package/ui/form/FormFields.tsx +15 -2
  398. package/ui/form/FormFooter.d.ts +13 -3
  399. package/ui/form/FormFooter.js +8 -3
  400. package/ui/form/FormFooter.tsx +13 -3
  401. package/ui/form/FormInput.d.ts +21 -2
  402. package/ui/form/FormInput.js +16 -2
  403. package/ui/form/FormInput.tsx +21 -2
  404. package/ui/form/FormMessage.d.ts +8 -1
  405. package/ui/form/FormMessage.js +8 -1
  406. package/ui/form/FormMessage.tsx +8 -2
  407. package/ui/form/FormNotice.d.ts +8 -1
  408. package/ui/form/FormNotice.js +8 -1
  409. package/ui/form/FormNotice.tsx +8 -2
  410. package/ui/form/FormNotify.d.ts +8 -1
  411. package/ui/form/FormNotify.js +8 -1
  412. package/ui/form/FormNotify.tsx +8 -2
  413. package/ui/form/FormStore.d.ts +50 -6
  414. package/ui/form/FormStore.js +50 -6
  415. package/ui/form/FormStore.tsx +50 -6
  416. package/ui/form/Input.d.ts +65 -1
  417. package/ui/form/Input.js +60 -0
  418. package/ui/form/Input.tsx +77 -1
  419. package/ui/form/NumberInput.d.ts +14 -0
  420. package/ui/form/NumberInput.js +9 -0
  421. package/ui/form/NumberInput.tsx +14 -0
  422. package/ui/form/OutputInput.d.ts +13 -1
  423. package/ui/form/OutputInput.js +8 -1
  424. package/ui/form/OutputInput.tsx +13 -1
  425. package/ui/form/Popover.d.ts +18 -2
  426. package/ui/form/Popover.js +8 -2
  427. package/ui/form/Popover.tsx +18 -2
  428. package/ui/form/Progress.d.ts +26 -2
  429. package/ui/form/Progress.js +16 -2
  430. package/ui/form/Progress.tsx +26 -2
  431. package/ui/form/QueryInput.d.ts +14 -5
  432. package/ui/form/QueryInput.js +9 -5
  433. package/ui/form/QueryInput.tsx +14 -5
  434. package/ui/form/RadioInput.d.ts +14 -1
  435. package/ui/form/RadioInput.js +9 -1
  436. package/ui/form/RadioInput.tsx +14 -1
  437. package/ui/form/SchemaInput.d.ts +138 -7
  438. package/ui/form/SchemaInput.js +79 -4
  439. package/ui/form/SchemaInput.tsx +138 -7
  440. package/ui/form/SelectInput.d.ts +14 -0
  441. package/ui/form/SelectInput.tsx +14 -0
  442. package/ui/form/SubmitButton.d.ts +14 -1
  443. package/ui/form/SubmitButton.js +9 -1
  444. package/ui/form/SubmitButton.tsx +14 -1
  445. package/ui/form/TextInput.d.ts +15 -0
  446. package/ui/form/TextInput.js +10 -0
  447. package/ui/form/TextInput.tsx +15 -0
  448. package/ui/inline/Code.d.ts +29 -0
  449. package/ui/inline/Code.js +24 -0
  450. package/ui/inline/Code.tsx +31 -0
  451. package/ui/inline/Deleted.d.ts +23 -0
  452. package/ui/inline/Deleted.js +18 -0
  453. package/ui/inline/Deleted.tsx +24 -0
  454. package/ui/inline/Emphasis.d.ts +23 -0
  455. package/ui/inline/Emphasis.js +18 -0
  456. package/ui/inline/Emphasis.tsx +24 -0
  457. package/ui/inline/Inserted.d.ts +23 -0
  458. package/ui/inline/Inserted.js +18 -0
  459. package/ui/inline/Inserted.tsx +24 -0
  460. package/ui/inline/Link.d.ts +23 -0
  461. package/ui/inline/Link.js +18 -0
  462. package/ui/inline/Link.tsx +24 -0
  463. package/ui/inline/Mark.d.ts +23 -0
  464. package/ui/inline/Mark.js +18 -0
  465. package/ui/inline/Mark.tsx +24 -0
  466. package/ui/inline/Small.d.ts +23 -0
  467. package/ui/inline/Small.js +18 -0
  468. package/ui/inline/Small.tsx +24 -0
  469. package/ui/inline/Strong.d.ts +23 -0
  470. package/ui/inline/Strong.js +18 -0
  471. package/ui/inline/Strong.tsx +24 -0
  472. package/ui/inline/Subscript.d.ts +23 -0
  473. package/ui/inline/Subscript.js +18 -0
  474. package/ui/inline/Subscript.tsx +24 -0
  475. package/ui/inline/Superscript.d.ts +23 -0
  476. package/ui/inline/Superscript.js +18 -0
  477. package/ui/inline/Superscript.tsx +24 -0
  478. package/ui/inline/When.d.ts +42 -3
  479. package/ui/inline/When.js +27 -3
  480. package/ui/inline/When.tsx +42 -3
  481. package/ui/layout/CenteredLayout.d.ts +12 -1
  482. package/ui/layout/CenteredLayout.js +7 -1
  483. package/ui/layout/CenteredLayout.tsx +12 -1
  484. package/ui/layout/Layout.d.ts +12 -3
  485. package/ui/layout/Layout.js +12 -3
  486. package/ui/layout/Layout.ts +12 -3
  487. package/ui/layout/SidebarLayout.d.ts +12 -0
  488. package/ui/layout/SidebarLayout.js +7 -0
  489. package/ui/layout/SidebarLayout.tsx +12 -0
  490. package/ui/menu/Menu.d.ts +22 -0
  491. package/ui/menu/Menu.js +12 -0
  492. package/ui/menu/Menu.tsx +22 -0
  493. package/ui/misc/Catcher.d.ts +77 -5
  494. package/ui/misc/Catcher.js +47 -5
  495. package/ui/misc/Catcher.tsx +77 -5
  496. package/ui/misc/Loading.d.ts +20 -0
  497. package/ui/misc/Loading.js +15 -0
  498. package/ui/misc/Loading.tsx +20 -0
  499. package/ui/misc/Mapper.d.ts +13 -1
  500. package/ui/misc/Mapper.js +4 -0
  501. package/ui/misc/Mapper.tsx +13 -1
  502. package/ui/misc/Markup.d.ts +9 -1
  503. package/ui/misc/Markup.js +4 -0
  504. package/ui/misc/Markup.tsx +9 -1
  505. package/ui/misc/MetaContext.d.ts +24 -7
  506. package/ui/misc/MetaContext.js +19 -6
  507. package/ui/misc/MetaContext.tsx +24 -7
  508. package/ui/misc/StatusIcon.d.ts +16 -1
  509. package/ui/misc/StatusIcon.js +11 -1
  510. package/ui/misc/StatusIcon.tsx +16 -1
  511. package/ui/misc/Tag.d.ts +21 -0
  512. package/ui/misc/Tag.js +11 -0
  513. package/ui/misc/Tag.tsx +21 -0
  514. package/ui/notice/Message.d.ts +27 -1
  515. package/ui/notice/Message.js +22 -1
  516. package/ui/notice/Message.tsx +27 -1
  517. package/ui/notice/Notice.d.ts +24 -0
  518. package/ui/notice/Notice.js +19 -0
  519. package/ui/notice/Notice.tsx +24 -0
  520. package/ui/notice/NoticeStore.d.ts +30 -2
  521. package/ui/notice/NoticeStore.js +30 -2
  522. package/ui/notice/NoticeStore.ts +30 -2
  523. package/ui/notice/Notices.d.ts +11 -1
  524. package/ui/notice/Notices.js +6 -1
  525. package/ui/notice/Notices.tsx +11 -1
  526. package/ui/notice/NoticesStore.d.ts +23 -3
  527. package/ui/notice/NoticesStore.js +23 -3
  528. package/ui/notice/NoticesStore.ts +23 -3
  529. package/ui/page/HTML.d.ts +13 -2
  530. package/ui/page/HTML.js +8 -2
  531. package/ui/page/HTML.tsx +13 -2
  532. package/ui/page/Head.d.ts +5 -1
  533. package/ui/page/Head.js +5 -1
  534. package/ui/page/Head.tsx +5 -1
  535. package/ui/page/Page.d.ts +12 -1
  536. package/ui/page/Page.js +7 -1
  537. package/ui/page/Page.tsx +12 -1
  538. package/ui/router/Navigation.d.ts +11 -0
  539. package/ui/router/Navigation.js +6 -0
  540. package/ui/router/Navigation.tsx +11 -0
  541. package/ui/router/NavigationContext.d.ts +14 -2
  542. package/ui/router/NavigationContext.js +14 -2
  543. package/ui/router/NavigationContext.tsx +14 -2
  544. package/ui/router/NavigationStore.d.ts +29 -1
  545. package/ui/router/NavigationStore.js +29 -1
  546. package/ui/router/NavigationStore.tsx +29 -1
  547. package/ui/router/Router.d.ts +12 -1
  548. package/ui/router/Router.js +7 -1
  549. package/ui/router/Router.tsx +12 -1
  550. package/ui/router/Routes.d.ts +14 -4
  551. package/ui/router/Routes.tsx +14 -4
  552. package/ui/style/Color.d.ts +15 -2
  553. package/ui/style/Color.js +5 -0
  554. package/ui/style/Color.tsx +15 -2
  555. package/ui/style/Flex.d.ts +41 -4
  556. package/ui/style/Flex.js +26 -3
  557. package/ui/style/Flex.tsx +41 -4
  558. package/ui/style/Gap.d.ts +18 -3
  559. package/ui/style/Gap.js +8 -1
  560. package/ui/style/Gap.tsx +18 -3
  561. package/ui/style/Padding.d.ts +18 -3
  562. package/ui/style/Padding.js +8 -1
  563. package/ui/style/Padding.tsx +18 -3
  564. package/ui/style/Scroll.d.ts +36 -1
  565. package/ui/style/Scroll.js +26 -1
  566. package/ui/style/Scroll.tsx +37 -1
  567. package/ui/style/Space.d.ts +18 -3
  568. package/ui/style/Space.js +8 -1
  569. package/ui/style/Space.tsx +18 -3
  570. package/ui/style/Status.d.ts +23 -7
  571. package/ui/style/Status.js +13 -5
  572. package/ui/style/Status.tsx +23 -7
  573. package/ui/style/Tint.d.ts +7 -1
  574. package/ui/style/Tint.js +7 -1
  575. package/ui/style/Tint.tsx +7 -1
  576. package/ui/style/Typography.d.ts +38 -6
  577. package/ui/style/Typography.js +8 -0
  578. package/ui/style/Typography.tsx +38 -6
  579. package/ui/style/Width.d.ts +18 -1
  580. package/ui/style/Width.js +8 -0
  581. package/ui/style/Width.tsx +18 -1
  582. package/ui/transition/CollapseTransition.d.ts +13 -0
  583. package/ui/transition/CollapseTransition.js +8 -0
  584. package/ui/transition/CollapseTransition.tsx +13 -0
  585. package/ui/transition/FadeTransition.d.ts +13 -0
  586. package/ui/transition/FadeTransition.js +8 -0
  587. package/ui/transition/FadeTransition.tsx +13 -0
  588. package/ui/transition/HorizontalTransition.d.ts +13 -0
  589. package/ui/transition/HorizontalTransition.js +8 -0
  590. package/ui/transition/HorizontalTransition.tsx +13 -0
  591. package/ui/transition/Transition.d.ts +12 -4
  592. package/ui/transition/Transition.js +7 -3
  593. package/ui/transition/Transition.tsx +12 -4
  594. package/ui/transition/VerticalTransition.d.ts +13 -0
  595. package/ui/transition/VerticalTransition.js +8 -0
  596. package/ui/transition/VerticalTransition.tsx +13 -0
  597. package/ui/transition/util.d.ts +16 -6
  598. package/ui/transition/util.js +7 -1
  599. package/ui/transition/util.tsx +16 -6
  600. package/ui/tree/TreeApp.d.ts +11 -0
  601. package/ui/tree/TreeApp.js +6 -0
  602. package/ui/tree/TreeApp.tsx +11 -0
  603. package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
  604. package/ui/tree/TreeBreadcrumbs.js +6 -0
  605. package/ui/tree/TreeBreadcrumbs.tsx +11 -0
  606. package/ui/tree/TreeButton.d.ts +9 -1
  607. package/ui/tree/TreeButton.js +4 -0
  608. package/ui/tree/TreeButton.tsx +9 -1
  609. package/ui/tree/TreeCard.d.ts +8 -1
  610. package/ui/tree/TreeCard.js +8 -1
  611. package/ui/tree/TreeCard.tsx +8 -1
  612. package/ui/tree/TreeCards.d.ts +16 -1
  613. package/ui/tree/TreeCards.js +11 -1
  614. package/ui/tree/TreeCards.tsx +16 -1
  615. package/ui/tree/TreeContext.d.ts +18 -1
  616. package/ui/tree/TreeContext.js +18 -1
  617. package/ui/tree/TreeContext.tsx +18 -1
  618. package/ui/tree/TreeMenu.d.ts +28 -1
  619. package/ui/tree/TreeMenu.js +23 -1
  620. package/ui/tree/TreeMenu.tsx +28 -1
  621. package/ui/tree/TreePage.d.ts +6 -0
  622. package/ui/tree/TreePage.js +6 -0
  623. package/ui/tree/TreePage.tsx +6 -0
  624. package/ui/tree/TreeRouter.d.ts +17 -2
  625. package/ui/tree/TreeRouter.js +12 -2
  626. package/ui/tree/TreeRouter.tsx +17 -2
  627. package/ui/tree/TreeSidebar.d.ts +11 -0
  628. package/ui/tree/TreeSidebar.js +6 -0
  629. package/ui/tree/TreeSidebar.tsx +11 -0
  630. package/ui/util/context.d.ts +13 -1
  631. package/ui/util/context.ts +13 -1
  632. package/ui/util/css.d.ts +17 -4
  633. package/ui/util/css.js +5 -1
  634. package/ui/util/css.ts +17 -4
  635. package/ui/util/event.d.ts +9 -1
  636. package/ui/util/event.js +9 -1
  637. package/ui/util/event.ts +9 -1
  638. package/ui/util/focus.d.ts +24 -5
  639. package/ui/util/focus.js +24 -5
  640. package/ui/util/focus.ts +24 -5
  641. package/ui/util/meta.d.ts +113 -21
  642. package/ui/util/meta.js +73 -13
  643. package/ui/util/meta.ts +113 -21
  644. package/ui/util/notice.d.ts +98 -10
  645. package/ui/util/notice.js +93 -9
  646. package/ui/util/notice.ts +98 -10
  647. package/ui/util/props.d.ts +10 -2
  648. package/ui/util/props.ts +10 -2
  649. package/ui/util/refresh.d.ts +10 -1
  650. package/ui/util/refresh.js +10 -1
  651. package/ui/util/refresh.ts +10 -1
  652. package/ui/util/scroll.d.ts +20 -4
  653. package/ui/util/scroll.js +20 -4
  654. package/ui/util/scroll.ts +20 -4
  655. package/ui/util/state.d.ts +19 -5
  656. package/ui/util/state.js +19 -5
  657. package/ui/util/state.ts +19 -5
  658. package/util/ansi.d.ts +118 -0
  659. package/util/ansi.js +116 -0
  660. package/util/array.d.ts +349 -33
  661. package/util/array.js +284 -27
  662. package/util/async.d.ts +87 -9
  663. package/util/async.js +80 -8
  664. package/util/base64.d.ts +56 -6
  665. package/util/base64.js +56 -6
  666. package/util/boolean.d.ts +75 -10
  667. package/util/boolean.js +75 -10
  668. package/util/buffer.d.ts +26 -3
  669. package/util/buffer.js +21 -3
  670. package/util/bytes.d.ts +42 -4
  671. package/util/bytes.js +32 -2
  672. package/util/class.d.ts +59 -8
  673. package/util/class.js +44 -5
  674. package/util/color.d.ts +131 -13
  675. package/util/color.js +126 -12
  676. package/util/constants.d.ts +132 -19
  677. package/util/constants.js +132 -19
  678. package/util/crypto.d.ts +17 -1
  679. package/util/crypto.js +17 -1
  680. package/util/currency.d.ts +38 -4
  681. package/util/currency.js +33 -3
  682. package/util/data.d.ts +139 -24
  683. package/util/data.js +39 -5
  684. package/util/date.d.ts +152 -18
  685. package/util/date.js +147 -17
  686. package/util/debug.d.ts +112 -11
  687. package/util/debug.js +114 -11
  688. package/util/dictionary.d.ts +205 -24
  689. package/util/dictionary.js +162 -17
  690. package/util/diff.d.ts +22 -3
  691. package/util/diff.js +11 -1
  692. package/util/dispose.d.ts +74 -2
  693. package/util/dispose.js +74 -2
  694. package/util/duration.d.ts +278 -16
  695. package/util/duration.js +267 -15
  696. package/util/element.d.ts +59 -6
  697. package/util/element.js +32 -3
  698. package/util/entity.d.ts +39 -6
  699. package/util/entity.js +5 -1
  700. package/util/entry.d.ts +56 -9
  701. package/util/entry.js +32 -4
  702. package/util/env.d.ts +26 -4
  703. package/util/env.js +26 -4
  704. package/util/equal.d.ts +181 -17
  705. package/util/equal.js +181 -17
  706. package/util/error.d.ts +57 -5
  707. package/util/error.js +52 -4
  708. package/util/file.d.ts +30 -7
  709. package/util/file.js +25 -6
  710. package/util/filter.d.ts +36 -4
  711. package/util/filter.js +31 -3
  712. package/util/focus.d.ts +9 -1
  713. package/util/focus.js +9 -1
  714. package/util/format.d.ts +186 -22
  715. package/util/format.js +135 -14
  716. package/util/function.d.ts +66 -11
  717. package/util/function.js +31 -4
  718. package/util/geo.d.ts +60 -8
  719. package/util/geo.js +45 -5
  720. package/util/hash.d.ts +21 -2
  721. package/util/hash.js +21 -2
  722. package/util/http.d.ts +134 -19
  723. package/util/http.js +94 -11
  724. package/util/hydrate.d.ts +19 -2
  725. package/util/hydrate.js +12 -1
  726. package/util/item.d.ts +70 -11
  727. package/util/item.js +35 -4
  728. package/util/iterate.d.ts +109 -13
  729. package/util/iterate.js +86 -10
  730. package/util/jwt.d.ts +47 -13
  731. package/util/jwt.js +36 -12
  732. package/util/lazy.d.ts +9 -6
  733. package/util/link.d.ts +10 -3
  734. package/util/link.js +5 -2
  735. package/util/log.d.ts +26 -3
  736. package/util/log.js +26 -3
  737. package/util/map.d.ts +144 -19
  738. package/util/map.js +101 -11
  739. package/util/merge.d.ts +23 -1
  740. package/util/merge.js +6 -0
  741. package/util/null.d.ts +102 -13
  742. package/util/null.js +92 -11
  743. package/util/number.d.ts +125 -8
  744. package/util/number.js +120 -7
  745. package/util/object.d.ts +263 -31
  746. package/util/object.js +154 -17
  747. package/util/path.d.ts +91 -15
  748. package/util/path.js +60 -9
  749. package/util/query.d.ts +78 -9
  750. package/util/query.js +58 -6
  751. package/util/random.d.ts +67 -4
  752. package/util/random.js +67 -4
  753. package/util/regexp.d.ts +201 -24
  754. package/util/regexp.js +106 -11
  755. package/util/sequence.d.ts +66 -8
  756. package/util/sequence.js +52 -7
  757. package/util/serialise.d.ts +7 -1
  758. package/util/serialise.js +7 -1
  759. package/util/set.d.ts +103 -13
  760. package/util/set.js +83 -9
  761. package/util/sort.d.ts +32 -7
  762. package/util/sort.js +26 -6
  763. package/util/source.d.ts +28 -3
  764. package/util/source.js +22 -2
  765. package/util/start.d.ts +62 -5
  766. package/util/start.js +47 -2
  767. package/util/string.d.ts +209 -25
  768. package/util/string.js +188 -21
  769. package/util/template.d.ts +58 -9
  770. package/util/template.js +45 -6
  771. package/util/timeout.d.ts +35 -11
  772. package/util/timeout.js +35 -11
  773. package/util/transform.d.ts +87 -8
  774. package/util/transform.js +75 -7
  775. package/util/tree.d.ts +39 -6
  776. package/util/tree.js +3 -0
  777. package/util/types.d.ts +8 -2
  778. package/util/undefined.d.ts +47 -6
  779. package/util/undefined.js +47 -6
  780. package/util/units.d.ts +107 -12
  781. package/util/units.js +97 -12
  782. package/util/update.d.ts +36 -4
  783. package/util/update.js +24 -2
  784. package/util/uri.d.ts +138 -6
  785. package/util/uri.js +44 -3
  786. package/util/url.d.ts +152 -7
  787. package/util/url.js +136 -5
  788. package/util/uuid.d.ts +28 -3
  789. package/util/uuid.js +28 -3
  790. package/util/validate.d.ts +85 -20
  791. package/util/validate.js +61 -12
  792. package/util/xml.d.ts +9 -10
  793. package/util/xml.js +9 -10
@@ -1,56 +1,237 @@
1
1
  import type { AnyCaller } from "./function.js";
2
- /** Readonly dictionary object. */
2
+ /**
3
+ * Readonly dictionary object.
4
+ * - A dictionary is a plain object whose keys are arbitrary strings, all sharing the same value type.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/util/dictionary/ImmutableDictionary
7
+ */
3
8
  export type ImmutableDictionary<T = unknown> = {
4
9
  readonly [K in string]: T;
5
10
  };
6
- /** Writable dictionary object. */
11
+ /**
12
+ * Writable dictionary object.
13
+ * - A dictionary is a plain object whose keys are arbitrary strings, all sharing the same value type.
14
+ *
15
+ * @see https://dhoulb.github.io/shelving/util/dictionary/MutableDictionary
16
+ */
7
17
  export type MutableDictionary<T = unknown> = {
8
18
  [K in string]: T;
9
19
  };
10
- /** Single item for a dictionary object in entry format. */
20
+ /**
21
+ * Single item for a dictionary object in entry format.
22
+ * - A readonly key/value entry tuple.
23
+ *
24
+ * @see https://dhoulb.github.io/shelving/util/dictionary/DictionaryItem
25
+ */
11
26
  export type DictionaryItem<T> = readonly [string, T];
12
- /** Get the type of the _values_ of the items of a dictionary object. */
27
+ /**
28
+ * Get the type of the _values_ of the items of a dictionary object.
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/util/dictionary/DictionaryValue
31
+ */
13
32
  export type DictionaryValue<T extends ImmutableDictionary> = T[string];
14
- /** Value that can be converted to a dictionary object. */
33
+ /**
34
+ * Value that can be converted to a dictionary object.
35
+ * - Either the dictionary itself, or an iterable set of key/value entry tuples.
36
+ *
37
+ * @see https://dhoulb.github.io/shelving/util/dictionary/PossibleDictionary
38
+ */
15
39
  export type PossibleDictionary<T> = ImmutableDictionary<T> | Iterable<DictionaryItem<T>>;
16
- /** Is an unknown value a dictionary object? */
40
+ /**
41
+ * Is an unknown value a dictionary object?
42
+ *
43
+ * @param value The value to test.
44
+ * @returns `true` if `value` is a dictionary (plain) object, narrowing its type.
45
+ * @see https://dhoulb.github.io/shelving/util/dictionary/isDictionary
46
+ */
17
47
  export declare function isDictionary(value: unknown): value is ImmutableDictionary;
18
- /** Assert that an unknown value is a dictionary object */
48
+ /**
49
+ * Assert that an unknown value is a dictionary object.
50
+ *
51
+ * @param value The value to assert.
52
+ * @param caller Function to attribute a thrown error to (defaults to `assertDictionary` itself).
53
+ * @throws {ValueError} If `value` is not a dictionary object.
54
+ * @see https://dhoulb.github.io/shelving/util/dictionary/assertDictionary
55
+ */
19
56
  export declare function assertDictionary(value: unknown, caller?: AnyCaller): asserts value is ImmutableDictionary;
20
- /** Convert a possible dictionary into a dictionary. */
57
+ /**
58
+ * Convert a possible dictionary into a dictionary.
59
+ * - If the value is iterable it is converted to a dictionary using `Object.fromEntries()`, otherwise it is returned as-is.
60
+ *
61
+ * @param dict The dictionary or iterable set of key/value entry tuples to convert.
62
+ * @returns The corresponding dictionary object.
63
+ * @example
64
+ * requireDictionary([["a", 1], ["b", 2]]); // { a: 1, b: 2 }
65
+ * @see https://dhoulb.github.io/shelving/util/dictionary/requireDictionary
66
+ */
21
67
  export declare function requireDictionary<T>(dict: PossibleDictionary<T>): ImmutableDictionary<T>;
22
- /** Turn a dictionary object into a set of props. */
68
+ /**
69
+ * Turn a dictionary object into a set of props.
70
+ *
71
+ * @param input The dictionary or iterable set of key/value entry tuples to read.
72
+ * @returns Iterable set of key/value entry tuples for the dictionary.
73
+ * @example
74
+ * getDictionaryItems({ a: 1, b: 2 }); // [["a", 1], ["b", 2]]
75
+ * @see https://dhoulb.github.io/shelving/util/dictionary/getDictionaryItems
76
+ */
23
77
  export declare function getDictionaryItems<T>(input: ImmutableDictionary<T>): readonly DictionaryItem<T>[];
24
78
  export declare function getDictionaryItems<T>(input: PossibleDictionary<T>): Iterable<DictionaryItem<T>>;
25
- /** Is an unknown value the key for an own prop of a dictionary. */
79
+ /**
80
+ * Is an unknown value the key for an own prop of a dictionary.
81
+ *
82
+ * @param dict The dictionary to test against.
83
+ * @param key The key to test for.
84
+ * @returns `true` if `key` is a string and an own prop of `dict`, narrowing its type.
85
+ * @see https://dhoulb.github.io/shelving/util/dictionary/isDictionaryItem
86
+ */
26
87
  export declare function isDictionaryItem<T>(dict: ImmutableDictionary<T>, key: unknown): key is string;
27
- /** Assert that an unknown value is the key for an own prop of a dictionary. */
88
+ /**
89
+ * Assert that an unknown value is the key for an own prop of a dictionary.
90
+ *
91
+ * @param dict The dictionary to assert against.
92
+ * @param key The key to assert is an own prop.
93
+ * @param caller Function to attribute a thrown error to (defaults to `assertDictionaryItem` itself).
94
+ * @throws {RequiredError} If `key` is not an own prop of `dict`.
95
+ * @see https://dhoulb.github.io/shelving/util/dictionary/assertDictionaryItem
96
+ */
28
97
  export declare function assertDictionaryItem<T>(dict: ImmutableDictionary<T>, key: string, caller?: AnyCaller): asserts key is string;
29
- /** Get an item in a map or throw `RequiredError` if it doesn't exist. */
98
+ /**
99
+ * Get an item in a dictionary object, or throw `RequiredError` if it doesn't exist.
100
+ *
101
+ * @param dict The dictionary to read the item from.
102
+ * @param key The key of the item to read.
103
+ * @param caller Function to attribute a thrown error to (defaults to `requireDictionaryItem` itself).
104
+ * @returns The value of the item.
105
+ * @throws {RequiredError} If `key` is not an own prop of `dict`.
106
+ * @example
107
+ * requireDictionaryItem({ a: 1 }, "a"); // 1
108
+ * @see https://dhoulb.github.io/shelving/util/dictionary/requireDictionaryItem
109
+ */
30
110
  export declare function requireDictionaryItem<T>(dict: ImmutableDictionary<T>, key: string, caller?: AnyCaller): T;
31
- /** Get an item in a map or `undefined` if it doesn't exist. */
111
+ /**
112
+ * Get an item in a dictionary object, or `undefined` if it doesn't exist.
113
+ *
114
+ * @param dict The dictionary to read the item from.
115
+ * @param key The key of the item to read.
116
+ * @returns The value of the item, or `undefined` if `key` is not an own prop of `dict`.
117
+ * @example
118
+ * getDictionaryItem({ a: 1 }, "a"); // 1
119
+ * @see https://dhoulb.github.io/shelving/util/dictionary/getDictionaryItem
120
+ */
32
121
  export declare function getDictionaryItem<T>(dict: ImmutableDictionary<T>, key: string): T | undefined;
33
- /** Set a prop on a dictionary object (immutably) and return a new object including that prop. */
122
+ /**
123
+ * Set an item on a dictionary object (immutably) and return a new object including that item.
124
+ * - If the value is unchanged the original dictionary is returned unchanged.
125
+ *
126
+ * @param dict The dictionary to set the item on.
127
+ * @param key The key of the item to set.
128
+ * @param value The value of the item to set.
129
+ * @returns A new dictionary including the set item, or the original dictionary if the value was unchanged.
130
+ * @example
131
+ * withDictionaryItem({ a: 1 }, "b", 2); // { a: 1, b: 2 }
132
+ * @see https://dhoulb.github.io/shelving/util/dictionary/withDictionaryItem
133
+ */
34
134
  export declare const withDictionaryItem: <T>(dict: ImmutableDictionary<T>, key: string, value: T) => ImmutableDictionary<T>;
35
- /** Set several props on a dictionary object (immutably) and return a new object including those props. */
135
+ /**
136
+ * Set several items on a dictionary object (immutably) and return a new object including those items.
137
+ * - If all values are unchanged the original dictionary is returned unchanged.
138
+ *
139
+ * @param dict The dictionary to set the items on.
140
+ * @param props The items to set, as a dictionary or iterable set of key/value entry tuples.
141
+ * @returns A new dictionary including the set items, or the original dictionary if all values were unchanged.
142
+ * @example
143
+ * withDictionaryItems({ a: 1 }, { b: 2, c: 3 }); // { a: 1, b: 2, c: 3 }
144
+ * @see https://dhoulb.github.io/shelving/util/dictionary/withDictionaryItems
145
+ */
36
146
  export declare const withDictionaryItems: <T>(dict: ImmutableDictionary<T>, props: PossibleDictionary<T>) => ImmutableDictionary<T>;
37
- /** Remove several key/value entries from a dictionary object (immutably) and return a new object without those props. */
147
+ /**
148
+ * Remove several items from a dictionary object (immutably) and return a new object without those items.
149
+ * - If none of the keys exist the original dictionary is returned unchanged.
150
+ *
151
+ * @param dict The dictionary to remove the items from.
152
+ * @param keys The keys of the items to remove.
153
+ * @returns A new dictionary without the removed items, or the original dictionary if no keys were present.
154
+ * @example
155
+ * omitDictionaryItems({ a: 1, b: 2, c: 3 }, "b", "c"); // { a: 1 }
156
+ * @see https://dhoulb.github.io/shelving/util/dictionary/omitDictionaryItems
157
+ */
38
158
  export declare const omitDictionaryItems: <T>(dict: ImmutableDictionary<T>, ...keys: string[]) => ImmutableDictionary<T>;
39
- /** Remove a key/value entry from a dictionary object (immutably) and return a new object without that prop. */
159
+ /**
160
+ * Remove an item from a dictionary object (immutably) and return a new object without that item.
161
+ * - If the key doesn't exist the original dictionary is returned unchanged.
162
+ *
163
+ * @param dict The dictionary to remove the item from.
164
+ * @param key The key of the item to remove.
165
+ * @returns A new dictionary without the removed item, or the original dictionary if the key was not present.
166
+ * @example
167
+ * omitDictionaryItem({ a: 1, b: 2 }, "b"); // { a: 1 }
168
+ * @see https://dhoulb.github.io/shelving/util/dictionary/omitDictionaryItem
169
+ */
40
170
  export declare const omitDictionaryItem: <T>(dict: ImmutableDictionary<T>, key: string) => ImmutableDictionary<T>;
41
- /** Pick several props from a dictionary object and return a new object with only thos props. */
171
+ /**
172
+ * Pick several items from a dictionary object and return a new object with only those items.
173
+ *
174
+ * @param dict The dictionary to pick the items from.
175
+ * @param keys The keys of the items to pick.
176
+ * @returns A new dictionary containing only the picked items.
177
+ * @example
178
+ * pickDictionaryItems({ a: 1, b: 2, c: 3 }, "a", "b"); // { a: 1, b: 2 }
179
+ * @see https://dhoulb.github.io/shelving/util/dictionary/pickDictionaryItems
180
+ */
42
181
  export declare const pickDictionaryItems: <T>(dict: ImmutableDictionary<T>, ...keys: string[]) => ImmutableDictionary<T>;
43
- /** Set a single named prop on a dictionary object (by reference) and return its value. */
182
+ /**
183
+ * Set a single named item on a dictionary object (by reference) and return its value.
184
+ *
185
+ * @param dict The dictionary to set the item on (modified by reference).
186
+ * @param key The key of the item to set.
187
+ * @param value The value of the item to set.
188
+ * @returns The value that was set.
189
+ * @example
190
+ * setDictionaryItem(dict, "a", 1); // 1
191
+ * @see https://dhoulb.github.io/shelving/util/dictionary/setDictionaryItem
192
+ */
44
193
  export declare const setDictionaryItem: <T>(dict: MutableDictionary<T>, key: string, value: T) => T;
45
- /** Set several named props on a dictionary object (by reference). */
194
+ /**
195
+ * Set several named items on a dictionary object (by reference).
196
+ *
197
+ * @param dict The dictionary to set the items on (modified by reference).
198
+ * @param entries The items to set, as a dictionary or iterable set of key/value entry tuples.
199
+ * @example
200
+ * setDictionaryItems(dict, { a: 1, b: 2 });
201
+ * @see https://dhoulb.github.io/shelving/util/dictionary/setDictionaryItems
202
+ */
46
203
  export declare const setDictionaryItems: <T>(dict: MutableDictionary<T>, entries: PossibleDictionary<T>) => void;
47
- /** Remove several key/value entries from a dictionary object (by reference). */
204
+ /**
205
+ * Remove several key/value entries from a dictionary object (by reference).
206
+ *
207
+ * @param dict The dictionary to remove the items from (modified by reference).
208
+ * @param keys The keys of the items to remove.
209
+ * @example
210
+ * deleteDictionaryItems(dict, "a", "b");
211
+ * @see https://dhoulb.github.io/shelving/util/dictionary/deleteDictionaryItems
212
+ */
48
213
  export declare const deleteDictionaryItems: <T extends MutableDictionary>(dict: T, ...keys: string[]) => void;
49
- /** Remove a key/value entry from a dictionary object (by reference). */
214
+ /**
215
+ * Remove a key/value entry from a dictionary object (by reference).
216
+ *
217
+ * @param dict The dictionary to remove the item from (modified by reference).
218
+ * @param key The key of the item to remove.
219
+ * @example
220
+ * deleteDictionaryItem(dict, "a");
221
+ * @see https://dhoulb.github.io/shelving/util/dictionary/deleteDictionaryItem
222
+ */
50
223
  export declare const deleteDictionaryItem: <T extends MutableDictionary>(dict: T, key: string) => void;
51
- /** Type that represents an empty dictionary object. */
224
+ /**
225
+ * Type that represents an empty dictionary object.
226
+ *
227
+ * @see https://dhoulb.github.io/shelving/util/dictionary/EmptyDictionary
228
+ */
52
229
  export type EmptyDictionary = {
53
230
  readonly [K in never]: never;
54
231
  };
55
- /** An empty dictionary object. */
232
+ /**
233
+ * An empty dictionary object.
234
+ *
235
+ * @see https://dhoulb.github.io/shelving/util/dictionary/EMPTY_DICTIONARY
236
+ */
56
237
  export declare const EMPTY_DICTIONARY: EmptyDictionary;
@@ -2,57 +2,202 @@ import { RequiredError } from "../error/RequiredError.js";
2
2
  import { ValueError } from "../error/ValueError.js";
3
3
  import { isIterable } from "./iterate.js";
4
4
  import { deleteProps, isPlainObject, omitProps, pickProps, setProp, setProps, withProp, withProps } from "./object.js";
5
- /** Is an unknown value a dictionary object? */
5
+ /**
6
+ * Is an unknown value a dictionary object?
7
+ *
8
+ * @param value The value to test.
9
+ * @returns `true` if `value` is a dictionary (plain) object, narrowing its type.
10
+ * @see https://dhoulb.github.io/shelving/util/dictionary/isDictionary
11
+ */
6
12
  export function isDictionary(value) {
7
13
  return isPlainObject(value);
8
14
  }
9
- /** Assert that an unknown value is a dictionary object */
15
+ /**
16
+ * Assert that an unknown value is a dictionary object.
17
+ *
18
+ * @param value The value to assert.
19
+ * @param caller Function to attribute a thrown error to (defaults to `assertDictionary` itself).
20
+ * @throws {ValueError} If `value` is not a dictionary object.
21
+ * @see https://dhoulb.github.io/shelving/util/dictionary/assertDictionary
22
+ */
10
23
  export function assertDictionary(value, caller = assertDictionary) {
11
24
  if (!isDictionary(value))
12
25
  throw new ValueError("Must be dictionary object", { received: value, caller });
13
26
  }
14
- /** Convert a possible dictionary into a dictionary. */
27
+ /**
28
+ * Convert a possible dictionary into a dictionary.
29
+ * - If the value is iterable it is converted to a dictionary using `Object.fromEntries()`, otherwise it is returned as-is.
30
+ *
31
+ * @param dict The dictionary or iterable set of key/value entry tuples to convert.
32
+ * @returns The corresponding dictionary object.
33
+ * @example
34
+ * requireDictionary([["a", 1], ["b", 2]]); // { a: 1, b: 2 }
35
+ * @see https://dhoulb.github.io/shelving/util/dictionary/requireDictionary
36
+ */
15
37
  export function requireDictionary(dict) {
16
38
  return isDictionary(dict) ? dict : Object.fromEntries(dict);
17
39
  }
18
40
  export function getDictionaryItems(input) {
19
41
  return isIterable(input) ? input : Object.entries(input);
20
42
  }
21
- /** Is an unknown value the key for an own prop of a dictionary. */
43
+ /**
44
+ * Is an unknown value the key for an own prop of a dictionary.
45
+ *
46
+ * @param dict The dictionary to test against.
47
+ * @param key The key to test for.
48
+ * @returns `true` if `key` is a string and an own prop of `dict`, narrowing its type.
49
+ * @see https://dhoulb.github.io/shelving/util/dictionary/isDictionaryItem
50
+ */
22
51
  export function isDictionaryItem(dict, key) {
23
52
  return typeof key === "string" && Object.hasOwn(dict, key);
24
53
  }
25
- /** Assert that an unknown value is the key for an own prop of a dictionary. */
54
+ /**
55
+ * Assert that an unknown value is the key for an own prop of a dictionary.
56
+ *
57
+ * @param dict The dictionary to assert against.
58
+ * @param key The key to assert is an own prop.
59
+ * @param caller Function to attribute a thrown error to (defaults to `assertDictionaryItem` itself).
60
+ * @throws {RequiredError} If `key` is not an own prop of `dict`.
61
+ * @see https://dhoulb.github.io/shelving/util/dictionary/assertDictionaryItem
62
+ */
26
63
  export function assertDictionaryItem(dict, key, caller = assertDictionaryItem) {
27
64
  if (!isDictionaryItem(dict, key))
28
65
  throw new RequiredError("Key must exist in dictionary object", { key, dict, caller });
29
66
  }
30
- /** Get an item in a map or throw `RequiredError` if it doesn't exist. */
67
+ /**
68
+ * Get an item in a dictionary object, or throw `RequiredError` if it doesn't exist.
69
+ *
70
+ * @param dict The dictionary to read the item from.
71
+ * @param key The key of the item to read.
72
+ * @param caller Function to attribute a thrown error to (defaults to `requireDictionaryItem` itself).
73
+ * @returns The value of the item.
74
+ * @throws {RequiredError} If `key` is not an own prop of `dict`.
75
+ * @example
76
+ * requireDictionaryItem({ a: 1 }, "a"); // 1
77
+ * @see https://dhoulb.github.io/shelving/util/dictionary/requireDictionaryItem
78
+ */
31
79
  export function requireDictionaryItem(dict, key, caller = requireDictionaryItem) {
32
80
  assertDictionaryItem(dict, key, caller);
33
81
  return dict[key];
34
82
  }
35
- /** Get an item in a map or `undefined` if it doesn't exist. */
83
+ /**
84
+ * Get an item in a dictionary object, or `undefined` if it doesn't exist.
85
+ *
86
+ * @param dict The dictionary to read the item from.
87
+ * @param key The key of the item to read.
88
+ * @returns The value of the item, or `undefined` if `key` is not an own prop of `dict`.
89
+ * @example
90
+ * getDictionaryItem({ a: 1 }, "a"); // 1
91
+ * @see https://dhoulb.github.io/shelving/util/dictionary/getDictionaryItem
92
+ */
36
93
  export function getDictionaryItem(dict, key) {
37
94
  return dict[key];
38
95
  }
39
- /** Set a prop on a dictionary object (immutably) and return a new object including that prop. */
96
+ /**
97
+ * Set an item on a dictionary object (immutably) and return a new object including that item.
98
+ * - If the value is unchanged the original dictionary is returned unchanged.
99
+ *
100
+ * @param dict The dictionary to set the item on.
101
+ * @param key The key of the item to set.
102
+ * @param value The value of the item to set.
103
+ * @returns A new dictionary including the set item, or the original dictionary if the value was unchanged.
104
+ * @example
105
+ * withDictionaryItem({ a: 1 }, "b", 2); // { a: 1, b: 2 }
106
+ * @see https://dhoulb.github.io/shelving/util/dictionary/withDictionaryItem
107
+ */
40
108
  export const withDictionaryItem = withProp;
41
- /** Set several props on a dictionary object (immutably) and return a new object including those props. */
109
+ /**
110
+ * Set several items on a dictionary object (immutably) and return a new object including those items.
111
+ * - If all values are unchanged the original dictionary is returned unchanged.
112
+ *
113
+ * @param dict The dictionary to set the items on.
114
+ * @param props The items to set, as a dictionary or iterable set of key/value entry tuples.
115
+ * @returns A new dictionary including the set items, or the original dictionary if all values were unchanged.
116
+ * @example
117
+ * withDictionaryItems({ a: 1 }, { b: 2, c: 3 }); // { a: 1, b: 2, c: 3 }
118
+ * @see https://dhoulb.github.io/shelving/util/dictionary/withDictionaryItems
119
+ */
42
120
  export const withDictionaryItems = withProps;
43
- /** Remove several key/value entries from a dictionary object (immutably) and return a new object without those props. */
121
+ /**
122
+ * Remove several items from a dictionary object (immutably) and return a new object without those items.
123
+ * - If none of the keys exist the original dictionary is returned unchanged.
124
+ *
125
+ * @param dict The dictionary to remove the items from.
126
+ * @param keys The keys of the items to remove.
127
+ * @returns A new dictionary without the removed items, or the original dictionary if no keys were present.
128
+ * @example
129
+ * omitDictionaryItems({ a: 1, b: 2, c: 3 }, "b", "c"); // { a: 1 }
130
+ * @see https://dhoulb.github.io/shelving/util/dictionary/omitDictionaryItems
131
+ */
44
132
  export const omitDictionaryItems = omitProps;
45
- /** Remove a key/value entry from a dictionary object (immutably) and return a new object without that prop. */
133
+ /**
134
+ * Remove an item from a dictionary object (immutably) and return a new object without that item.
135
+ * - If the key doesn't exist the original dictionary is returned unchanged.
136
+ *
137
+ * @param dict The dictionary to remove the item from.
138
+ * @param key The key of the item to remove.
139
+ * @returns A new dictionary without the removed item, or the original dictionary if the key was not present.
140
+ * @example
141
+ * omitDictionaryItem({ a: 1, b: 2 }, "b"); // { a: 1 }
142
+ * @see https://dhoulb.github.io/shelving/util/dictionary/omitDictionaryItem
143
+ */
46
144
  export const omitDictionaryItem = omitProps;
47
- /** Pick several props from a dictionary object and return a new object with only thos props. */
145
+ /**
146
+ * Pick several items from a dictionary object and return a new object with only those items.
147
+ *
148
+ * @param dict The dictionary to pick the items from.
149
+ * @param keys The keys of the items to pick.
150
+ * @returns A new dictionary containing only the picked items.
151
+ * @example
152
+ * pickDictionaryItems({ a: 1, b: 2, c: 3 }, "a", "b"); // { a: 1, b: 2 }
153
+ * @see https://dhoulb.github.io/shelving/util/dictionary/pickDictionaryItems
154
+ */
48
155
  export const pickDictionaryItems = pickProps;
49
- /** Set a single named prop on a dictionary object (by reference) and return its value. */
156
+ /**
157
+ * Set a single named item on a dictionary object (by reference) and return its value.
158
+ *
159
+ * @param dict The dictionary to set the item on (modified by reference).
160
+ * @param key The key of the item to set.
161
+ * @param value The value of the item to set.
162
+ * @returns The value that was set.
163
+ * @example
164
+ * setDictionaryItem(dict, "a", 1); // 1
165
+ * @see https://dhoulb.github.io/shelving/util/dictionary/setDictionaryItem
166
+ */
50
167
  export const setDictionaryItem = setProp;
51
- /** Set several named props on a dictionary object (by reference). */
168
+ /**
169
+ * Set several named items on a dictionary object (by reference).
170
+ *
171
+ * @param dict The dictionary to set the items on (modified by reference).
172
+ * @param entries The items to set, as a dictionary or iterable set of key/value entry tuples.
173
+ * @example
174
+ * setDictionaryItems(dict, { a: 1, b: 2 });
175
+ * @see https://dhoulb.github.io/shelving/util/dictionary/setDictionaryItems
176
+ */
52
177
  export const setDictionaryItems = setProps;
53
- /** Remove several key/value entries from a dictionary object (by reference). */
178
+ /**
179
+ * Remove several key/value entries from a dictionary object (by reference).
180
+ *
181
+ * @param dict The dictionary to remove the items from (modified by reference).
182
+ * @param keys The keys of the items to remove.
183
+ * @example
184
+ * deleteDictionaryItems(dict, "a", "b");
185
+ * @see https://dhoulb.github.io/shelving/util/dictionary/deleteDictionaryItems
186
+ */
54
187
  export const deleteDictionaryItems = deleteProps;
55
- /** Remove a key/value entry from a dictionary object (by reference). */
188
+ /**
189
+ * Remove a key/value entry from a dictionary object (by reference).
190
+ *
191
+ * @param dict The dictionary to remove the item from (modified by reference).
192
+ * @param key The key of the item to remove.
193
+ * @example
194
+ * deleteDictionaryItem(dict, "a");
195
+ * @see https://dhoulb.github.io/shelving/util/dictionary/deleteDictionaryItem
196
+ */
56
197
  export const deleteDictionaryItem = deleteProps;
57
- /** An empty dictionary object. */
198
+ /**
199
+ * An empty dictionary object.
200
+ *
201
+ * @see https://dhoulb.github.io/shelving/util/dictionary/EMPTY_DICTIONARY
202
+ */
58
203
  export const EMPTY_DICTIONARY = { __proto__: null };
package/util/diff.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import type { ImmutableArray } from "./array.js";
2
2
  import type { DeepPartial, ImmutableObject } from "./object.js";
3
- /** The `SAME` symbol indicates sameness. */
3
+ /**
4
+ * The `SAME` symbol indicates sameness.
5
+ * - Returned by the diff functions when two values are deeply equal and no transformation is needed.
6
+ *
7
+ * @see https://dhoulb.github.io/shelving/util/diff/SAME
8
+ */
4
9
  export declare const SAME: unique symbol;
5
10
  /**
6
11
  * Deeply diff two unknown values to produce the transformation needed to transform `left` into `right`, or the `SAME` constant if they are deeply equal.
@@ -8,11 +13,15 @@ export declare const SAME: unique symbol;
8
13
  * @param left The old value.
9
14
  * @param right The new/target value.
10
15
  *
11
- * @return The transformation needed to transform `left` into `right`
16
+ * @returns The transformation needed to transform `left` into `right`
12
17
  * - If the two values are deeply equal the `SAME` constant is returned.
13
18
  * - Unequal scalar values can't be diffed, so `right` is always returned.
14
19
  * - If `right` is an array, returns whatever `deepDiffArray()` returns.
15
20
  * - If `right` is an object, returns whatever `deepDiffObject()` returns.
21
+ *
22
+ * @example deepDiff({ a: 1 }, { a: 1 }) // SAME
23
+ * @example deepDiff({ a: 1 }, { a: 2 }) // { a: 2 }
24
+ * @see https://dhoulb.github.io/shelving/util/diff/deepDiff
16
25
  */
17
26
  export declare function deepDiff<R extends ImmutableObject>(left: unknown, right: R): R | DeepPartial<R> | typeof SAME;
18
27
  export declare function deepDiff<R>(left: unknown, right: R): R | typeof SAME;
@@ -20,8 +29,13 @@ export declare function deepDiff<R>(left: unknown, right: R): R | typeof SAME;
20
29
  * Diff two arrays to produce the transformation needed to transform `left` into `right`
21
30
  * DH: Currently arrays don't diff at an item level, they return the entire new array if not deeply equal.
22
31
  *
32
+ * @param left The old array.
33
+ * @param right The new/target array.
23
34
  * @returns The `right` array if it is different to `left`, or the exact `SAME` constant otherwise.
24
35
  * - If the two values are deeply equal the `SAME` constant is returned.
36
+ * @example deepDiffArray([1, 2], [1, 2]) // SAME
37
+ * @example deepDiffArray([1, 2], [1, 3]) // [1, 3]
38
+ * @see https://dhoulb.github.io/shelving/util/diff/deepDiffArray
25
39
  */
26
40
  export declare function deepDiffArray<R extends ImmutableArray>(left: ImmutableArray, right: R): R | typeof SAME;
27
41
  /**
@@ -30,8 +44,13 @@ export declare function deepDiffArray<R extends ImmutableArray>(left: ImmutableA
30
44
  * - Includes a constructor check — if `left` and `right` have different constructors they will not be merged and `right` will be returned (ensures arrays aren't compared with objects).
31
45
  * - Properties that exist in `left` but not `right` (i.e. have been deleted) are represented with `undefined`
32
46
  *
33
- * @return Object containing the missing/updated properties that `left` needs to become `right`.
47
+ * @param left The old object.
48
+ * @param right The new/target object.
49
+ * @returns Object containing the missing/updated properties that `left` needs to become `right`.
34
50
  * - If the two values are deeply equal the `SAME` constant is returned.
35
51
  * - If `left` isn't an object then the result can't be diffed so entire `right` is returned.
52
+ * @example deepDiffObject({ a: 1 }, { a: 1 }) // SAME
53
+ * @example deepDiffObject({ a: 1, b: 2 }, { a: 1 }) // { b: undefined }
54
+ * @see https://dhoulb.github.io/shelving/util/diff/deepDiffObject
36
55
  */
37
56
  export declare function deepDiffObject<R extends ImmutableObject>(left: ImmutableObject, right: R): R | DeepPartial<R> | typeof SAME;
package/util/diff.js CHANGED
@@ -1,7 +1,12 @@
1
1
  import { isArray } from "./array.js";
2
2
  import { isArrayEqual, isDeepEqual } from "./equal.js";
3
3
  import { isObject } from "./object.js";
4
- /** The `SAME` symbol indicates sameness. */
4
+ /**
5
+ * The `SAME` symbol indicates sameness.
6
+ * - Returned by the diff functions when two values are deeply equal and no transformation is needed.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/util/diff/SAME
9
+ */
5
10
  export const SAME = Symbol("shelving/SAME");
6
11
  export function deepDiff(left, right) {
7
12
  if (left === right)
@@ -16,8 +21,13 @@ export function deepDiff(left, right) {
16
21
  * Diff two arrays to produce the transformation needed to transform `left` into `right`
17
22
  * DH: Currently arrays don't diff at an item level, they return the entire new array if not deeply equal.
18
23
  *
24
+ * @param left The old array.
25
+ * @param right The new/target array.
19
26
  * @returns The `right` array if it is different to `left`, or the exact `SAME` constant otherwise.
20
27
  * - If the two values are deeply equal the `SAME` constant is returned.
28
+ * @example deepDiffArray([1, 2], [1, 2]) // SAME
29
+ * @example deepDiffArray([1, 2], [1, 3]) // [1, 3]
30
+ * @see https://dhoulb.github.io/shelving/util/diff/deepDiffArray
21
31
  */
22
32
  export function deepDiffArray(left, right) {
23
33
  if (left === right)