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,14 +1,34 @@
1
1
  import { awaitDispose } from "../util/dispose.js";
2
2
  import { Starter } from "../util/start.js";
3
3
  import { ThroughSequence } from "./ThroughSequence.js";
4
- /** Sequence of values that calls a `StartCallback` when it has iterators that are iterating, and calls the corresponding `StopCallback` when all iterators have finished. */
4
+ /**
5
+ * Sequence of values that calls a `StartCallback` when it has iterators that are iterating, and calls the corresponding `StopCallback` when all iterators have finished.
6
+ * - The `start` callback runs lazily on the first active iterator and the returned stop callback runs when the last iterator finishes.
7
+ *
8
+ * @example
9
+ * const seq = new LazySequence(source, () => {
10
+ * const timer = setInterval(tick, 1000);
11
+ * return () => clearInterval(timer); // Stop callback.
12
+ * });
13
+ * @see https://dhoulb.github.io/shelving/sequence/LazySequence/LazySequence
14
+ */
5
15
  export class LazySequence extends ThroughSequence {
6
16
  _iterators = new Set(); // Keep track of the iterators that are iterating.
7
17
  _starter;
8
- /** Get the number of iterators currently registered. */
18
+ /**
19
+ * Number of iterators currently registered as iterating.
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/sequence/LazySequence/LazySequence/iterators
22
+ */
9
23
  get iterators() {
10
24
  return this._iterators.size;
11
25
  }
26
+ /**
27
+ * Create a new `LazySequence`.
28
+ *
29
+ * @param source Async iterator to pull values from.
30
+ * @param start Callback run when the first iterator starts; its returned stop callback runs when the last iterator finishes.
31
+ */
12
32
  constructor(source, start) {
13
33
  super(source);
14
34
  this._starter = new Starter(start);
@@ -27,6 +47,10 @@ export class LazySequence extends ThroughSequence {
27
47
  * An iterator started iterating.
28
48
  * - Add this iterator to the register.
29
49
  * - Start the starter if this is the first iterator.
50
+ *
51
+ * @param iterator The iterator that has started iterating.
52
+ * @example sequence.start(iterator);
53
+ * @see https://dhoulb.github.io/shelving/sequence/LazySequence/LazySequence/start
30
54
  */
31
55
  start(iterator) {
32
56
  const before = this._iterators.size;
@@ -38,6 +62,10 @@ export class LazySequence extends ThroughSequence {
38
62
  * An iterator stopped iterating.
39
63
  * - Add this iterator to the register
40
64
  * - Stop the starter if this is the last iterator.
65
+ *
66
+ * @param iterator The iterator that has stopped iterating.
67
+ * @example sequence.stop(iterator);
68
+ * @see https://dhoulb.github.io/shelving/sequence/LazySequence/LazySequence/stop
41
69
  */
42
70
  stop(iterator) {
43
71
  const before = this._iterators.size;
@@ -6,6 +6,12 @@
6
6
  * - Key constraint is that a generator only runs one time through and keeps track of its status.
7
7
  * - This means when a generator throws, further requests to `next()` will always return `done: true`
8
8
  * - This class does not provide that guarantee or have that constraint.
9
+ *
10
+ * @example
11
+ * class NumberSequence extends Sequence<number, void, void> {
12
+ * async next() { return { done: false, value: Math.random() }; }
13
+ * }
14
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence
9
15
  */
10
16
  export declare abstract class Sequence<T, R, N> implements AsyncIterable<T, R | undefined, N | undefined>, AsyncIterator<T, R | undefined, N | undefined>, AsyncDisposable {
11
17
  readonly [Symbol.toStringTag] = "Sequence";
@@ -18,6 +24,7 @@ export declare abstract class Sequence<T, R, N> implements AsyncIterable<T, R |
18
24
  * - Will be the `N` next value on subsequent calls.
19
25
  *
20
26
  * @returns An incomplete iterator result with `done: false` and `value: T`.
27
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence/next
21
28
  */
22
29
  abstract next(value?: N | undefined): Promise<IteratorResult<T, R | undefined>>;
23
30
  /**
@@ -30,6 +37,7 @@ export declare abstract class Sequence<T, R, N> implements AsyncIterable<T, R |
30
37
  * - Will be `undefined` on the first call.
31
38
  *
32
39
  * @returns A completed iterator result with `done: true`.
40
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence/return
33
41
  */
34
42
  return(value?: R | undefined | PromiseLike<R | undefined>): Promise<IteratorResult<T, R | undefined>>;
35
43
  /**
@@ -38,6 +46,9 @@ export declare abstract class Sequence<T, R, N> implements AsyncIterable<T, R |
38
46
  * - Subclasses can override this to recover from errors or perform cleanup.
39
47
  *
40
48
  * @param reason Error or other thrown value to send into the iterator.
49
+ * @returns A completed iterator result with `done: true` if a subclass recovers from the error.
50
+ * @throws The `reason` value by default — subclasses may override to recover instead.
51
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence/throw
41
52
  */
42
53
  throw(reason?: unknown): Promise<IteratorResult<T, R | undefined>>;
43
54
  [Symbol.asyncIterator](): AsyncIterator<T, R | undefined, N | undefined>;
@@ -6,6 +6,12 @@
6
6
  * - Key constraint is that a generator only runs one time through and keeps track of its status.
7
7
  * - This means when a generator throws, further requests to `next()` will always return `done: true`
8
8
  * - This class does not provide that guarantee or have that constraint.
9
+ *
10
+ * @example
11
+ * class NumberSequence extends Sequence<number, void, void> {
12
+ * async next() { return { done: false, value: Math.random() }; }
13
+ * }
14
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence
9
15
  */
10
16
  export class Sequence {
11
17
  [Symbol.toStringTag] = "Sequence";
@@ -19,6 +25,7 @@ export class Sequence {
19
25
  * - Will be `undefined` on the first call.
20
26
  *
21
27
  * @returns A completed iterator result with `done: true`.
28
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence/return
22
29
  */
23
30
  async return(value) {
24
31
  // Default behaviour for a generator is to return `done: true` and repeat back input value.
@@ -30,6 +37,9 @@ export class Sequence {
30
37
  * - Subclasses can override this to recover from errors or perform cleanup.
31
38
  *
32
39
  * @param reason Error or other thrown value to send into the iterator.
40
+ * @returns A completed iterator result with `done: true` if a subclass recovers from the error.
41
+ * @throws The `reason` value by default — subclasses may override to recover instead.
42
+ * @see https://dhoulb.github.io/shelving/sequence/Sequence/Sequence/throw
33
43
  */
34
44
  async throw(reason) {
35
45
  // Default behaviour for a generator is to throw the error back out of the iterator and not continue.
@@ -3,9 +3,24 @@ import { Sequence } from "./Sequence.js";
3
3
  * Async iterable that pulls values from a source async iterable.
4
4
  * - Can be used to turn an `AsyncIterator` into an `AsyncIterableIterator`
5
5
  * - Can be used to ensure `throw()` and `return()` are always set on an `AsyncIterator`
6
+ *
7
+ * @example
8
+ * const seq = new ThroughSequence(someAsyncIterator);
9
+ * for await (const value of seq) console.log(value);
10
+ * @see https://dhoulb.github.io/shelving/sequence/ThroughSequence/ThroughSequence
6
11
  */
7
12
  export declare class ThroughSequence<T, R, N> extends Sequence<T, R | undefined, N | undefined> {
13
+ /**
14
+ * Source async iterator that this sequence pulls values from.
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/sequence/ThroughSequence/ThroughSequence/source
17
+ */
8
18
  readonly source: AsyncIterator<T, R | undefined, N | undefined>;
19
+ /**
20
+ * Create a new `ThroughSequence` wrapping a source iterator.
21
+ *
22
+ * @param source Async iterator to pull values from.
23
+ */
9
24
  constructor(source: AsyncIterator<T, R | undefined, N | undefined>);
10
25
  next(value?: N | undefined): Promise<IteratorResult<T, R | undefined>>;
11
26
  return(value?: R | undefined | PromiseLike<R | undefined>): Promise<IteratorResult<T, R | undefined>>;
@@ -4,9 +4,24 @@ import { Sequence } from "./Sequence.js";
4
4
  * Async iterable that pulls values from a source async iterable.
5
5
  * - Can be used to turn an `AsyncIterator` into an `AsyncIterableIterator`
6
6
  * - Can be used to ensure `throw()` and `return()` are always set on an `AsyncIterator`
7
+ *
8
+ * @example
9
+ * const seq = new ThroughSequence(someAsyncIterator);
10
+ * for await (const value of seq) console.log(value);
11
+ * @see https://dhoulb.github.io/shelving/sequence/ThroughSequence/ThroughSequence
7
12
  */
8
13
  export class ThroughSequence extends Sequence {
14
+ /**
15
+ * Source async iterator that this sequence pulls values from.
16
+ *
17
+ * @see https://dhoulb.github.io/shelving/sequence/ThroughSequence/ThroughSequence/source
18
+ */
9
19
  source;
20
+ /**
21
+ * Create a new `ThroughSequence` wrapping a source iterator.
22
+ *
23
+ * @param source Async iterator to pull values from.
24
+ */
10
25
  constructor(source) {
11
26
  super();
12
27
  this.source = source;
@@ -1,28 +1,91 @@
1
1
  import type { ImmutableArray, PossibleArray } from "../util/array.js";
2
2
  import type { AnyCaller } from "../util/function.js";
3
3
  import { BusyStore } from "./BusyStore.js";
4
- /** Store an array. */
4
+ /**
5
+ * Store an immutable array of items, with helpers to read and mutate its contents.
6
+ * - Accepts any `PossibleArray<T>` as input and normalises it to an `ImmutableArray<T>`.
7
+ * - Mutations (`add()`, `delete()`, `toggle()`) replace the stored array with an immutable updated copy.
8
+ * - Iterable, so you can `for (const item of store)`.
9
+ *
10
+ * @param value The initial array value (defaults to an empty array).
11
+ * @example
12
+ * const store = new ArrayStore([1, 2, 3]);
13
+ * store.add(4); // [1, 2, 3, 4]
14
+ * store.first; // 1
15
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore
16
+ */
5
17
  export declare class ArrayStore<T> extends BusyStore<ImmutableArray<T>, PossibleArray<T>> implements Iterable<T> {
6
18
  constructor(value?: PossibleArray<T>);
7
19
  protected _convert(input: PossibleArray<T>, caller: AnyCaller): ImmutableArray<T>;
8
- /** Get the first item in this store or `null` if this query has no items. */
20
+ /**
21
+ * Get the first item in this store, or `undefined` if it has no items.
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/optionalFirst
24
+ */
9
25
  get optionalFirst(): T | undefined;
10
- /** Get the last item in this store or `null` if this query has no items. */
26
+ /**
27
+ * Get the last item in this store, or `undefined` if it has no items.
28
+ *
29
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/optionalLast
30
+ */
11
31
  get optionalLast(): T | undefined;
12
- /** Get the first item in this store. */
32
+ /**
33
+ * Get the first item in this store, or throw `RequiredError` if it has no items.
34
+ *
35
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/first
36
+ */
13
37
  get first(): T;
14
- /** Get the last item in this store. */
38
+ /**
39
+ * Get the last item in this store, or throw `RequiredError` if it has no items.
40
+ *
41
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/last
42
+ */
15
43
  get last(): T;
16
- /** Does the document have at least one result. */
44
+ /**
45
+ * Whether this store has at least one item.
46
+ *
47
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/exists
48
+ */
17
49
  get exists(): boolean;
18
- /** Get the length of the current value of this store. */
50
+ /**
51
+ * Get the number of items in the current value of this store.
52
+ *
53
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/count
54
+ */
19
55
  get count(): number;
20
- /** Add items to this array. */
56
+ /**
57
+ * Add one or more items to this array.
58
+ * - Duplicate items (already present in the array) are skipped.
59
+ *
60
+ * @param items The items to add.
61
+ * @returns Nothing.
62
+ * @example store.add(4, 5);
63
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/add
64
+ */
21
65
  add(...items: T[]): void;
22
- /** Remove items from this array. */
66
+ /**
67
+ * Remove one or more items from this array.
68
+ *
69
+ * @param items The items to remove.
70
+ * @returns Nothing.
71
+ * @example store.delete(2, 3);
72
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/delete
73
+ */
23
74
  delete(...items: T[]): void;
24
- /** Toggle items in this array. */
75
+ /**
76
+ * Toggle one or more items in this array (add if absent, remove if present).
77
+ *
78
+ * @param items The items to toggle.
79
+ * @returns Nothing.
80
+ * @example store.toggle(1, 4);
81
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/toggle
82
+ */
25
83
  toggle(...items: T[]): void;
26
- /** Iterate over the items. */
84
+ /**
85
+ * Iterate over the items in this store's current array.
86
+ *
87
+ * @returns An iterator over the items.
88
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/[Symbol.iterator]
89
+ */
27
90
  [Symbol.iterator](): Iterator<T, void>;
28
91
  }
@@ -1,6 +1,18 @@
1
1
  import { getFirst, getLast, omitArrayItems, requireArray, requireFirst, requireLast, toggleArrayItems, withArrayItems, } from "../util/array.js";
2
2
  import { BusyStore } from "./BusyStore.js";
3
- /** Store an array. */
3
+ /**
4
+ * Store an immutable array of items, with helpers to read and mutate its contents.
5
+ * - Accepts any `PossibleArray<T>` as input and normalises it to an `ImmutableArray<T>`.
6
+ * - Mutations (`add()`, `delete()`, `toggle()`) replace the stored array with an immutable updated copy.
7
+ * - Iterable, so you can `for (const item of store)`.
8
+ *
9
+ * @param value The initial array value (defaults to an empty array).
10
+ * @example
11
+ * const store = new ArrayStore([1, 2, 3]);
12
+ * store.add(4); // [1, 2, 3, 4]
13
+ * store.first; // 1
14
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore
15
+ */
4
16
  export class ArrayStore extends BusyStore {
5
17
  // Override to set default value to `[]` and convert possible arrays.
6
18
  constructor(value = []) {
@@ -10,43 +22,94 @@ export class ArrayStore extends BusyStore {
10
22
  _convert(input, caller) {
11
23
  return requireArray(input, undefined, undefined, caller);
12
24
  }
13
- /** Get the first item in this store or `null` if this query has no items. */
25
+ /**
26
+ * Get the first item in this store, or `undefined` if it has no items.
27
+ *
28
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/optionalFirst
29
+ */
14
30
  get optionalFirst() {
15
31
  return getFirst(this.value);
16
32
  }
17
- /** Get the last item in this store or `null` if this query has no items. */
33
+ /**
34
+ * Get the last item in this store, or `undefined` if it has no items.
35
+ *
36
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/optionalLast
37
+ */
18
38
  get optionalLast() {
19
39
  return getLast(this.value);
20
40
  }
21
- /** Get the first item in this store. */
41
+ /**
42
+ * Get the first item in this store, or throw `RequiredError` if it has no items.
43
+ *
44
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/first
45
+ */
22
46
  get first() {
23
47
  return requireFirst(this.value);
24
48
  }
25
- /** Get the last item in this store. */
49
+ /**
50
+ * Get the last item in this store, or throw `RequiredError` if it has no items.
51
+ *
52
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/last
53
+ */
26
54
  get last() {
27
55
  return requireLast(this.value);
28
56
  }
29
- /** Does the document have at least one result. */
57
+ /**
58
+ * Whether this store has at least one item.
59
+ *
60
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/exists
61
+ */
30
62
  get exists() {
31
63
  return !!this.value.length;
32
64
  }
33
- /** Get the length of the current value of this store. */
65
+ /**
66
+ * Get the number of items in the current value of this store.
67
+ *
68
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/count
69
+ */
34
70
  get count() {
35
71
  return this.value.length;
36
72
  }
37
- /** Add items to this array. */
73
+ /**
74
+ * Add one or more items to this array.
75
+ * - Duplicate items (already present in the array) are skipped.
76
+ *
77
+ * @param items The items to add.
78
+ * @returns Nothing.
79
+ * @example store.add(4, 5);
80
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/add
81
+ */
38
82
  add(...items) {
39
83
  this.value = withArrayItems(this.value, ...items);
40
84
  }
41
- /** Remove items from this array. */
85
+ /**
86
+ * Remove one or more items from this array.
87
+ *
88
+ * @param items The items to remove.
89
+ * @returns Nothing.
90
+ * @example store.delete(2, 3);
91
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/delete
92
+ */
42
93
  delete(...items) {
43
94
  this.value = omitArrayItems(this.value, ...items);
44
95
  }
45
- /** Toggle items in this array. */
96
+ /**
97
+ * Toggle one or more items in this array (add if absent, remove if present).
98
+ *
99
+ * @param items The items to toggle.
100
+ * @returns Nothing.
101
+ * @example store.toggle(1, 4);
102
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/toggle
103
+ */
46
104
  toggle(...items) {
47
105
  this.value = toggleArrayItems(this.value, ...items);
48
106
  }
49
- /** Iterate over the items. */
107
+ /**
108
+ * Iterate over the items in this store's current array.
109
+ *
110
+ * @returns An iterator over the items.
111
+ * @see https://dhoulb.github.io/shelving/store/ArrayStore/ArrayStore/[Symbol.iterator]
112
+ */
50
113
  [Symbol.iterator]() {
51
114
  return this.value.values();
52
115
  }
@@ -1,9 +1,26 @@
1
1
  import { Store } from "./Store.js";
2
- /** Store a boolean. */
2
+ /**
3
+ * Store a boolean value.
4
+ * - Any input is coerced to a boolean via `!!input`, so truthy/falsy values are accepted.
5
+ * - Defaults to `false`.
6
+ *
7
+ * @param value The initial boolean value (defaults to `false`).
8
+ * @example
9
+ * const store = new BooleanStore();
10
+ * store.value = 1; // true (coerced)
11
+ * store.toggle(); // now false
12
+ * @see https://dhoulb.github.io/shelving/store/BooleanStore/BooleanStore
13
+ */
3
14
  export declare class BooleanStore extends Store<boolean, unknown> {
4
15
  constructor(value?: boolean);
5
16
  protected _convert(input: unknown): boolean;
6
17
  protected _equal(a: boolean, b: boolean): boolean;
7
- /** Toggle the current boolean value. */
18
+ /**
19
+ * Toggle the current boolean value.
20
+ *
21
+ * @returns Nothing.
22
+ * @example store.toggle(); // `true` becomes `false`, `false` becomes `true`
23
+ * @see https://dhoulb.github.io/shelving/store/BooleanStore/BooleanStore/toggle
24
+ */
8
25
  toggle(): void;
9
26
  }
@@ -1,5 +1,16 @@
1
1
  import { Store } from "./Store.js";
2
- /** Store a boolean. */
2
+ /**
3
+ * Store a boolean value.
4
+ * - Any input is coerced to a boolean via `!!input`, so truthy/falsy values are accepted.
5
+ * - Defaults to `false`.
6
+ *
7
+ * @param value The initial boolean value (defaults to `false`).
8
+ * @example
9
+ * const store = new BooleanStore();
10
+ * store.value = 1; // true (coerced)
11
+ * store.toggle(); // now false
12
+ * @see https://dhoulb.github.io/shelving/store/BooleanStore/BooleanStore
13
+ */
3
14
  export class BooleanStore extends Store {
4
15
  // Override to set default value to `false`
5
16
  constructor(value = false) {
@@ -13,7 +24,13 @@ export class BooleanStore extends Store {
13
24
  _equal(a, b) {
14
25
  return a === b;
15
26
  }
16
- /** Toggle the current boolean value. */
27
+ /**
28
+ * Toggle the current boolean value.
29
+ *
30
+ * @returns Nothing.
31
+ * @example store.toggle(); // `true` becomes `false`, `false` becomes `true`
32
+ * @see https://dhoulb.github.io/shelving/store/BooleanStore/BooleanStore/toggle
33
+ */
17
34
  toggle() {
18
35
  this.value = !this.value;
19
36
  }
@@ -2,9 +2,21 @@ import { BooleanStore } from "./BooleanStore.js";
2
2
  import { Store, type StoreInput } from "./Store.js";
3
3
  /**
4
4
  * Store that tracks its busy status via a separate `this.busy` store.
5
- * - "busy" means the store is awaiting a new value.
5
+ * - "busy" means the store is awaiting a new (async) value.
6
+ * - `this.busy` becomes `true` when `await()` starts and `false` when `abort()` is called (which also happens whenever a value or `reason` is set).
7
+ *
8
+ * @example
9
+ * const store = new BusyStore(123);
10
+ * store.value = fetchValue();
11
+ * store.busy.value; // true while the promise is pending
12
+ * @see https://dhoulb.github.io/shelving/store/BusyStore/BusyStore
6
13
  */
7
14
  export declare class BusyStore<T, TT = T> extends Store<T, TT> {
15
+ /**
16
+ * Boolean store that is `true` while this store is awaiting a new value.
17
+ *
18
+ * @see https://dhoulb.github.io/shelving/store/BusyStore/BusyStore/busy
19
+ */
8
20
  readonly busy: BooleanStore;
9
21
  await(pending: PromiseLike<StoreInput<TT>>): Promise<boolean>;
10
22
  abort(): void;
@@ -3,9 +3,21 @@ import { BooleanStore } from "./BooleanStore.js";
3
3
  import { Store } from "./Store.js";
4
4
  /**
5
5
  * Store that tracks its busy status via a separate `this.busy` store.
6
- * - "busy" means the store is awaiting a new value.
6
+ * - "busy" means the store is awaiting a new (async) value.
7
+ * - `this.busy` becomes `true` when `await()` starts and `false` when `abort()` is called (which also happens whenever a value or `reason` is set).
8
+ *
9
+ * @example
10
+ * const store = new BusyStore(123);
11
+ * store.value = fetchValue();
12
+ * store.busy.value; // true while the promise is pending
13
+ * @see https://dhoulb.github.io/shelving/store/BusyStore/BusyStore
7
14
  */
8
15
  export class BusyStore extends Store {
16
+ /**
17
+ * Boolean store that is `true` while this store is awaiting a new value.
18
+ *
19
+ * @see https://dhoulb.github.io/shelving/store/BusyStore/BusyStore/busy
20
+ */
9
21
  busy = new BooleanStore(false);
10
22
  // Overload to set `this.busy` to `true` when we start awaiting a value.
11
23
  // Gets set back to `false` when `abort()` is called (this also happens whenever a value or reason is set).
@@ -2,35 +2,138 @@ import type { Data, DataKey } from "../util/data.js";
2
2
  import type { AnyCaller } from "../util/function.js";
3
3
  import type { Updates } from "../util/update.js";
4
4
  import { BusyStore } from "./BusyStore.js";
5
- /** Store a data object. */
5
+ /**
6
+ * Store a data object, with helpers to read and update individual props.
7
+ * - `update()`, `set()` replace the stored object with an immutable updated copy.
8
+ *
9
+ * @example
10
+ * const store = new DataStore({ name: "Dave", age: 40 });
11
+ * store.set("age", 41);
12
+ * store.get("name"); // "Dave"
13
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore
14
+ */
6
15
  export declare class DataStore<T extends Data> extends BusyStore<T> {
7
- /** Get the data of this store. */
16
+ /**
17
+ * Get the current data of this store.
18
+ * - Supports suspense-like reads: throws a `Promise` while loading or the error `reason` on failure (inherited from `Store.value`).
19
+ *
20
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/data
21
+ */
8
22
  get data(): T;
9
- /** Set the data of this store. */
23
+ /**
24
+ * Set the data of this store.
25
+ *
26
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/data
27
+ */
10
28
  set data(data: T);
11
- /** Update several props in this data. */
29
+ /**
30
+ * Update several props in this data.
31
+ *
32
+ * @param updates The set of prop updates to apply.
33
+ * @returns Nothing.
34
+ * @example store.update({ age: 41, "name": "Dave" });
35
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/update
36
+ */
12
37
  update(updates: Updates<T>): void;
13
- /** Update a single named prop in this data. */
38
+ /**
39
+ * Get a single named prop from this data.
40
+ *
41
+ * @param name The name of the prop to read.
42
+ * @returns The current value of the named prop.
43
+ * @example store.get("name"); // "Dave"
44
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/get
45
+ */
14
46
  get<K extends DataKey<T>>(name: K): T[K];
15
- /** Update a single named prop in this data. */
47
+ /**
48
+ * Set a single named prop in this data.
49
+ *
50
+ * @param name The name of the prop to set.
51
+ * @param value The new value for the prop.
52
+ * @returns Nothing.
53
+ * @example store.set("age", 41);
54
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/set
55
+ */
16
56
  set<K extends DataKey<T>>(name: K, value: T[K]): void;
17
57
  }
18
- /** Store an optional data object. */
58
+ /**
59
+ * Store a data object that may be `undefined` (e.g. a document that may not exist).
60
+ * - Reading `data` or calling `require()` throws `RequiredError` when the value is `undefined`.
61
+ * - `delete()` sets the value back to `undefined`.
62
+ *
63
+ * @example
64
+ * const store = new OptionalDataStore<{ name: string }>(undefined);
65
+ * store.exists; // false
66
+ * store.data = { name: "Dave" };
67
+ * store.delete(); // back to undefined
68
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore
69
+ */
19
70
  export declare class OptionalDataStore<T extends Data> extends BusyStore<T | undefined> {
20
- /** Get current data value of this store (or throw `Promise` that resolves to the next required value). */
71
+ /**
72
+ * Get the current data of this store, or throw if it is not set.
73
+ * - Supports suspense-like reads: throws a `Promise` while loading or the error `reason` on failure (inherited from `Store.value`).
74
+ *
75
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/data
76
+ */
21
77
  get data(): T;
22
- /** Set the data of this store. */
78
+ /**
79
+ * Set the data of this store.
80
+ *
81
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/data
82
+ */
23
83
  set data(data: T);
24
- /** Does the data exist or not? */
84
+ /**
85
+ * Whether the data currently exists (is not `undefined`).
86
+ *
87
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/exists
88
+ */
25
89
  get exists(): boolean;
26
- /** Require the data for this data store, or throw `RequiredError` if it is not set. */
90
+ /**
91
+ * Require the data of this store, or throw `RequiredError` if it is not set.
92
+ *
93
+ * @param caller The function to attribute a thrown `RequiredError` to (defaults to `this.require`).
94
+ * @returns The current data.
95
+ * @throws {RequiredError} If the data is `undefined`.
96
+ * @example store.require(); // throws if no data is set
97
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/require
98
+ */
27
99
  require(caller?: AnyCaller): T;
28
- /** Update several props in this data. */
100
+ /**
101
+ * Update several props in this data.
102
+ *
103
+ * @param updates The set of prop updates to apply.
104
+ * @returns Nothing.
105
+ * @throws {RequiredError} If the data is `undefined`.
106
+ * @example store.update({ name: "Dave" });
107
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/update
108
+ */
29
109
  update(updates: Updates<T>): void;
30
- /** Update a single named prop in this data. */
110
+ /**
111
+ * Get a single named prop from this data.
112
+ *
113
+ * @param name The name of the prop to read.
114
+ * @returns The current value of the named prop.
115
+ * @throws {RequiredError} If the data is `undefined`.
116
+ * @example store.get("name");
117
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/get
118
+ */
31
119
  get<K extends DataKey<T>>(name: K): T[K];
32
- /** Update a single named prop in this data. */
120
+ /**
121
+ * Set a single named prop in this data.
122
+ *
123
+ * @param name The name of the prop to set.
124
+ * @param value The new value for the prop.
125
+ * @returns Nothing.
126
+ * @throws {RequiredError} If the data is `undefined`.
127
+ * @example store.set("name", "Dave");
128
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/set
129
+ */
33
130
  set<K extends DataKey<T>>(name: K, value: T[K]): void;
34
- /** Set the data to `undefined`. */
131
+ /**
132
+ * Set the data to `undefined`.
133
+ *
134
+ * @returns Nothing.
135
+ * @example store.delete();
136
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/delete
137
+ */
35
138
  delete(): void;
36
139
  }