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
@@ -3,63 +3,166 @@ import { getGetter } from "../util/class.js";
3
3
  import { withProp } from "../util/object.js";
4
4
  import { updateData } from "../util/update.js";
5
5
  import { BusyStore } from "./BusyStore.js";
6
- /** Store a data object. */
6
+ /**
7
+ * Store a data object, with helpers to read and update individual props.
8
+ * - `update()`, `set()` replace the stored object with an immutable updated copy.
9
+ *
10
+ * @example
11
+ * const store = new DataStore({ name: "Dave", age: 40 });
12
+ * store.set("age", 41);
13
+ * store.get("name"); // "Dave"
14
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore
15
+ */
7
16
  export class DataStore extends BusyStore {
8
- /** Get the data of this store. */
17
+ /**
18
+ * Get the current data of this store.
19
+ * - Supports suspense-like reads: throws a `Promise` while loading or the error `reason` on failure (inherited from `Store.value`).
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/data
22
+ */
9
23
  get data() {
10
24
  return this.value;
11
25
  }
12
- /** Set the data of this store. */
26
+ /**
27
+ * Set the data of this store.
28
+ *
29
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/data
30
+ */
13
31
  set data(data) {
14
32
  this.value = data;
15
33
  }
16
- /** Update several props in this data. */
34
+ /**
35
+ * Update several props in this data.
36
+ *
37
+ * @param updates The set of prop updates to apply.
38
+ * @returns Nothing.
39
+ * @example store.update({ age: 41, "name": "Dave" });
40
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/update
41
+ */
17
42
  update(updates) {
18
43
  this.value = updateData(this.data, updates);
19
44
  }
20
- /** Update a single named prop in this data. */
45
+ /**
46
+ * Get a single named prop from this data.
47
+ *
48
+ * @param name The name of the prop to read.
49
+ * @returns The current value of the named prop.
50
+ * @example store.get("name"); // "Dave"
51
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/get
52
+ */
21
53
  get(name) {
22
54
  return this.data[name];
23
55
  }
24
- /** Update a single named prop in this data. */
56
+ /**
57
+ * Set a single named prop in this data.
58
+ *
59
+ * @param name The name of the prop to set.
60
+ * @param value The new value for the prop.
61
+ * @returns Nothing.
62
+ * @example store.set("age", 41);
63
+ * @see https://dhoulb.github.io/shelving/store/DataStore/DataStore/set
64
+ */
25
65
  set(name, value) {
26
66
  this.value = withProp(this.data, name, value);
27
67
  }
28
68
  }
29
- /** Store an optional data object. */
69
+ /**
70
+ * Store a data object that may be `undefined` (e.g. a document that may not exist).
71
+ * - Reading `data` or calling `require()` throws `RequiredError` when the value is `undefined`.
72
+ * - `delete()` sets the value back to `undefined`.
73
+ *
74
+ * @example
75
+ * const store = new OptionalDataStore<{ name: string }>(undefined);
76
+ * store.exists; // false
77
+ * store.data = { name: "Dave" };
78
+ * store.delete(); // back to undefined
79
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore
80
+ */
30
81
  export class OptionalDataStore extends BusyStore {
31
- /** Get current data value of this store (or throw `Promise` that resolves to the next required value). */
82
+ /**
83
+ * Get the current data of this store, or throw if it is not set.
84
+ * - Supports suspense-like reads: throws a `Promise` while loading or the error `reason` on failure (inherited from `Store.value`).
85
+ *
86
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/data
87
+ */
32
88
  get data() {
33
89
  return this.require(getGetter(this, "data"));
34
90
  }
35
- /** Set the data of this store. */
91
+ /**
92
+ * Set the data of this store.
93
+ *
94
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/data
95
+ */
36
96
  set data(data) {
37
97
  this.value = data;
38
98
  }
39
- /** Does the data exist or not? */
99
+ /**
100
+ * Whether the data currently exists (is not `undefined`).
101
+ *
102
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/exists
103
+ */
40
104
  get exists() {
41
105
  return !!this.value;
42
106
  }
43
- /** Require the data for this data store, or throw `RequiredError` if it is not set. */
107
+ /**
108
+ * Require the data of this store, or throw `RequiredError` if it is not set.
109
+ *
110
+ * @param caller The function to attribute a thrown `RequiredError` to (defaults to `this.require`).
111
+ * @returns The current data.
112
+ * @throws {RequiredError} If the data is `undefined`.
113
+ * @example store.require(); // throws if no data is set
114
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/require
115
+ */
44
116
  require(caller = this.require) {
45
117
  const data = this.value;
46
118
  if (!data)
47
119
  throw new RequiredError("Data is empty", { caller });
48
120
  return data;
49
121
  }
50
- /** Update several props in this data. */
122
+ /**
123
+ * Update several props in this data.
124
+ *
125
+ * @param updates The set of prop updates to apply.
126
+ * @returns Nothing.
127
+ * @throws {RequiredError} If the data is `undefined`.
128
+ * @example store.update({ name: "Dave" });
129
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/update
130
+ */
51
131
  update(updates) {
52
132
  this.value = updateData(this.require(this.update), updates);
53
133
  }
54
- /** Update a single named prop in this data. */
134
+ /**
135
+ * Get a single named prop from this data.
136
+ *
137
+ * @param name The name of the prop to read.
138
+ * @returns The current value of the named prop.
139
+ * @throws {RequiredError} If the data is `undefined`.
140
+ * @example store.get("name");
141
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/get
142
+ */
55
143
  get(name) {
56
144
  return this.require(this.get)[name];
57
145
  }
58
- /** Update a single named prop in this data. */
146
+ /**
147
+ * Set a single named prop in this data.
148
+ *
149
+ * @param name The name of the prop to set.
150
+ * @param value The new value for the prop.
151
+ * @returns Nothing.
152
+ * @throws {RequiredError} If the data is `undefined`.
153
+ * @example store.set("name", "Dave");
154
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/set
155
+ */
59
156
  set(name, value) {
60
157
  this.value = withProp(this.require(this.set), name, value);
61
158
  }
62
- /** Set the data to `undefined`. */
159
+ /**
160
+ * Set the data to `undefined`.
161
+ *
162
+ * @returns Nothing.
163
+ * @example store.delete();
164
+ * @see https://dhoulb.github.io/shelving/store/DataStore/OptionalDataStore/delete
165
+ */
63
166
  delete() {
64
167
  this.value = undefined;
65
168
  }
@@ -1,22 +1,80 @@
1
1
  import type { DictionaryItem, ImmutableDictionary, PossibleDictionary } from "../util/dictionary.js";
2
2
  import type { Updates } from "../util/update.js";
3
3
  import { BusyStore } from "./BusyStore.js";
4
- /** Store a dictionary object. */
4
+ /**
5
+ * Store a dictionary object (string-keyed map of values), with helpers to read and mutate its entries.
6
+ * - Accepts any `PossibleDictionary<T>` as input and normalises it to an `ImmutableDictionary<T>`.
7
+ * - Mutations replace the stored dictionary with an immutable updated copy.
8
+ * - Iterable, yielding `[key, value]` entry tuples.
9
+ *
10
+ * @param value The initial dictionary value (defaults to an empty dictionary).
11
+ * @example
12
+ * const store = new DictionaryStore<number>({ a: 1, b: 2 });
13
+ * store.set("c", 3);
14
+ * store.get("a"); // 1
15
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore
16
+ */
5
17
  export declare class DictionaryStore<T> extends BusyStore<ImmutableDictionary<T>, PossibleDictionary<T>> implements Iterable<DictionaryItem<T>> {
6
18
  constructor(value?: PossibleDictionary<T>);
7
19
  protected _convert(possible: PossibleDictionary<T>): ImmutableDictionary<T>;
8
- /** Get the length of the current value of this store. */
20
+ /**
21
+ * Get the number of entries in the current value of this store.
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/count
24
+ */
9
25
  get count(): number;
10
- /** Set a named entry in this object with a different value. */
26
+ /**
27
+ * Update several entries in this dictionary.
28
+ *
29
+ * @param updates The set of entry updates to apply.
30
+ * @returns Nothing.
31
+ * @example store.update({ a: 10, b: 20 });
32
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/update
33
+ */
11
34
  update(updates: Updates<ImmutableDictionary<T>>): void;
12
- /** Remove a named entry from this object. */
35
+ /**
36
+ * Remove one or more named entries from this dictionary.
37
+ *
38
+ * @param keys The keys of the entries to remove.
39
+ * @returns Nothing.
40
+ * @example store.deleteItems("a", "b");
41
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/deleteItems
42
+ */
13
43
  deleteItems(...keys: string[]): void;
14
- /** Get an item in this dictionary. */
44
+ /**
45
+ * Get a single named item from this dictionary, or `undefined` if it is not set.
46
+ *
47
+ * @param name The key of the item to read.
48
+ * @returns The item value, or `undefined` if it is not present.
49
+ * @example store.get("a"); // 1
50
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/get
51
+ */
15
52
  get(name: string): T | undefined;
16
- /** Set an item in this dictionary. */
53
+ /**
54
+ * Set a single named item in this dictionary.
55
+ *
56
+ * @param name The key of the item to set.
57
+ * @param value The new value for the item.
58
+ * @returns Nothing.
59
+ * @example store.set("a", 10);
60
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/set
61
+ */
17
62
  set(name: string, value: T): void;
18
- /** Delete an item (or several items) in this dictionary. */
63
+ /**
64
+ * Delete one or more named items from this dictionary.
65
+ *
66
+ * @param name The key of the first item to delete.
67
+ * @param names Additional keys to delete.
68
+ * @returns Nothing.
69
+ * @example store.delete("a", "b");
70
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/delete
71
+ */
19
72
  delete(name: string, ...names: string[]): void;
20
- /** Iterate over the entries of the object. */
73
+ /**
74
+ * Iterate over the `[key, value]` entries of this dictionary.
75
+ *
76
+ * @returns An iterator over the dictionary's entry tuples.
77
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/[Symbol.iterator]
78
+ */
21
79
  [Symbol.iterator](): Iterator<DictionaryItem<T>>;
22
80
  }
@@ -2,7 +2,19 @@ import { EMPTY_DICTIONARY, getDictionaryItems, omitDictionaryItems, requireDicti
2
2
  import { omitProps, withProp } from "../util/object.js";
3
3
  import { updateData } from "../util/update.js";
4
4
  import { BusyStore } from "./BusyStore.js";
5
- /** Store a dictionary object. */
5
+ /**
6
+ * Store a dictionary object (string-keyed map of values), with helpers to read and mutate its entries.
7
+ * - Accepts any `PossibleDictionary<T>` as input and normalises it to an `ImmutableDictionary<T>`.
8
+ * - Mutations replace the stored dictionary with an immutable updated copy.
9
+ * - Iterable, yielding `[key, value]` entry tuples.
10
+ *
11
+ * @param value The initial dictionary value (defaults to an empty dictionary).
12
+ * @example
13
+ * const store = new DictionaryStore<number>({ a: 1, b: 2 });
14
+ * store.set("c", 3);
15
+ * store.get("a"); // 1
16
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore
17
+ */
6
18
  export class DictionaryStore extends BusyStore {
7
19
  // Override to set default value to empty dictionary.
8
20
  constructor(value = EMPTY_DICTIONARY) {
@@ -12,31 +24,77 @@ export class DictionaryStore extends BusyStore {
12
24
  _convert(possible) {
13
25
  return requireDictionary(possible);
14
26
  }
15
- /** Get the length of the current value of this store. */
27
+ /**
28
+ * Get the number of entries in the current value of this store.
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/count
31
+ */
16
32
  get count() {
17
33
  return Object.keys(this.value).length;
18
34
  }
19
- /** Set a named entry in this object with a different value. */
35
+ /**
36
+ * Update several entries in this dictionary.
37
+ *
38
+ * @param updates The set of entry updates to apply.
39
+ * @returns Nothing.
40
+ * @example store.update({ a: 10, b: 20 });
41
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/update
42
+ */
20
43
  update(updates) {
21
44
  this.value = updateData(this.value, updates);
22
45
  }
23
- /** Remove a named entry from this object. */
46
+ /**
47
+ * Remove one or more named entries from this dictionary.
48
+ *
49
+ * @param keys The keys of the entries to remove.
50
+ * @returns Nothing.
51
+ * @example store.deleteItems("a", "b");
52
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/deleteItems
53
+ */
24
54
  deleteItems(...keys) {
25
55
  this.value = omitDictionaryItems(this.value, ...keys);
26
56
  }
27
- /** Get an item in this dictionary. */
57
+ /**
58
+ * Get a single named item from this dictionary, or `undefined` if it is not set.
59
+ *
60
+ * @param name The key of the item to read.
61
+ * @returns The item value, or `undefined` if it is not present.
62
+ * @example store.get("a"); // 1
63
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/get
64
+ */
28
65
  get(name) {
29
66
  return this.value[name];
30
67
  }
31
- /** Set an item in this dictionary. */
68
+ /**
69
+ * Set a single named item in this dictionary.
70
+ *
71
+ * @param name The key of the item to set.
72
+ * @param value The new value for the item.
73
+ * @returns Nothing.
74
+ * @example store.set("a", 10);
75
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/set
76
+ */
32
77
  set(name, value) {
33
78
  this.value = withProp(this.value, name, value);
34
79
  }
35
- /** Delete an item (or several items) in this dictionary. */
80
+ /**
81
+ * Delete one or more named items from this dictionary.
82
+ *
83
+ * @param name The key of the first item to delete.
84
+ * @param names Additional keys to delete.
85
+ * @returns Nothing.
86
+ * @example store.delete("a", "b");
87
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/delete
88
+ */
36
89
  delete(name, ...names) {
37
90
  this.value = omitProps(this.value, name, ...names);
38
91
  }
39
- /** Iterate over the entries of the object. */
92
+ /**
93
+ * Iterate over the `[key, value]` entries of this dictionary.
94
+ *
95
+ * @returns An iterator over the dictionary's entry tuples.
96
+ * @see https://dhoulb.github.io/shelving/store/DictionaryStore/DictionaryStore/[Symbol.iterator]
97
+ */
40
98
  [Symbol.iterator]() {
41
99
  return getDictionaryItems(this.value)[Symbol.iterator]();
42
100
  }
@@ -1,18 +1,39 @@
1
1
  import { type NONE } from "../util/constants.js";
2
2
  import { BusyStore } from "./BusyStore.js";
3
3
  import type { AsyncStoreInput, StoreInput } from "./Store.js";
4
- /** Zero passed to `refresh()` means "always refresh this value" (this is the default). */
4
+ /**
5
+ * `maxAge` of zero passed to `refresh()` means "always refresh this value" (this is the default).
6
+ *
7
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/ALWAYS_REFRESH
8
+ */
5
9
  export declare const ALWAYS_REFRESH = 0;
6
- /** Infinity passed to `refresh()` means "only refresh if this value is not loaded or invalid". */
10
+ /**
11
+ * `maxAge` of `Infinity` passed to `refresh()` means "only refresh if this value is not loaded or invalid".
12
+ *
13
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/AVOID_REFRESH
14
+ */
7
15
  export declare const AVOID_REFRESH: number;
8
- /** Callback for a callback fetch store. */
16
+ /**
17
+ * Callback that fetches the next value for a `FetchStore`.
18
+ * - Receives the current `AbortSignal` so it can cancel in-flight HTTP requests when the fetch is aborted.
19
+ * - May return a value synchronously or a `PromiseLike` resolving to one (which the store will await).
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchCallback
22
+ */
9
23
  export type FetchCallback<T> = (signal: AbortSignal) => StoreInput<T> | PromiseLike<StoreInput<T>>;
10
24
  /**
11
- * Store that fetches its values from a remote source.
25
+ * Store that fetches its values from a remote source on demand.
26
+ * - Reading `value` or `loading` optimistically triggers a fetch so the value is available next time.
27
+ * - Fetches are de-duplicated, can be aged out with `maxAge`, and can be forced stale with `invalidate()`.
28
+ * - Provide a `callback` to fetch values, or subclass and override `this._fetch()` for custom behaviour.
12
29
  *
13
30
  * @param value The initial value for the store, or `NONE` if it does not have one yet.
14
31
  * @param callback An optional callback that, if set, will be called when the `refresh()` method is invoked to fetch the next value.
15
32
  * - Override `this._fetch()` in subclasses to define custom fetching behaviour for a subclass.
33
+ * @example
34
+ * const store = new FetchStore(NONE, async signal => (await fetch("/api/thing", { signal })).json());
35
+ * store.value; // throws a `Promise` while loading, then resolves to the fetched value
36
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore
16
37
  */
17
38
  export declare class FetchStore<T, TT = T> extends BusyStore<T, TT> {
18
39
  get loading(): boolean;
@@ -30,13 +51,20 @@ export declare class FetchStore<T, TT = T> extends BusyStore<T, TT> {
30
51
  * - `0` zero means "always refresh" (this is the default).
31
52
  * - `Infinity` means "refresh only if store is still in a loading state.
32
53
  * - Any other value may or may not be stale based on `this.age`
54
+ * @returns `true` if the value was set synchronously, `false` if no refresh happened, or a `Promise` resolving to whether the awaited fetch succeeded.
55
+ * @throws {never} Never throws — fetch errors are stored as `reason` instead.
56
+ * @example store.refresh(MINUTE); // refresh only if the current value is older than a minute
57
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/refresh
33
58
  */
34
59
  refresh(maxAge?: number): Promise<boolean> | boolean;
35
60
  private _pendingRefresh;
36
61
  /**
37
62
  * Current `AbortSignal` for this store's in-flight fetch.
38
63
  * - Created lazily; a new signal is issued each time `refresh()` starts a new fetch or `abort()` is called.
39
- * - Triggers `abort()` so any current awaits are cancelled.
64
+ * - Reading this triggers `abort()` so any current awaits are cancelled.
65
+ *
66
+ * @returns A fresh `AbortSignal` for the next fetch.
67
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/signal
40
68
  */
41
69
  get signal(): AbortSignal;
42
70
  private _aborter;
@@ -46,11 +74,20 @@ export declare class FetchStore<T, TT = T> extends BusyStore<T, TT> {
46
74
  */
47
75
  protected _fetch(signal: AbortSignal): AsyncStoreInput<TT>;
48
76
  private _callback;
49
- /** Whether this store is has currently been invalidated and needs a refresh. */
77
+ /**
78
+ * Whether this store has currently been invalidated and needs a refresh.
79
+ *
80
+ * @returns `true` if a refresh is pending after an `invalidate()` call, otherwise `false`.
81
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/invalidated
82
+ */
50
83
  get invalidated(): boolean;
51
84
  /**
52
85
  * Invalidate this store so a new fetch is triggered on the next read of `loading` or `value`.
53
86
  * - Triggers `abort()` so any current awaits are cancelled.
87
+ *
88
+ * @returns Nothing.
89
+ * @example store.invalidate(); // next read of `value` refetches
90
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/invalidate
54
91
  */
55
92
  invalidate(): void;
56
93
  private _invalidation;
@@ -2,16 +2,31 @@ import { RequiredError } from "../error/RequiredError.js";
2
2
  import { isAsync } from "../util/async.js";
3
3
  import { ABORT, SKIP } from "../util/constants.js";
4
4
  import { BusyStore } from "./BusyStore.js";
5
- /** Zero passed to `refresh()` means "always refresh this value" (this is the default). */
5
+ /**
6
+ * `maxAge` of zero passed to `refresh()` means "always refresh this value" (this is the default).
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/ALWAYS_REFRESH
9
+ */
6
10
  export const ALWAYS_REFRESH = 0;
7
- /** Infinity passed to `refresh()` means "only refresh if this value is not loaded or invalid". */
11
+ /**
12
+ * `maxAge` of `Infinity` passed to `refresh()` means "only refresh if this value is not loaded or invalid".
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/AVOID_REFRESH
15
+ */
8
16
  export const AVOID_REFRESH = Infinity;
9
17
  /**
10
- * Store that fetches its values from a remote source.
18
+ * Store that fetches its values from a remote source on demand.
19
+ * - Reading `value` or `loading` optimistically triggers a fetch so the value is available next time.
20
+ * - Fetches are de-duplicated, can be aged out with `maxAge`, and can be forced stale with `invalidate()`.
21
+ * - Provide a `callback` to fetch values, or subclass and override `this._fetch()` for custom behaviour.
11
22
  *
12
23
  * @param value The initial value for the store, or `NONE` if it does not have one yet.
13
24
  * @param callback An optional callback that, if set, will be called when the `refresh()` method is invoked to fetch the next value.
14
25
  * - Override `this._fetch()` in subclasses to define custom fetching behaviour for a subclass.
26
+ * @example
27
+ * const store = new FetchStore(NONE, async signal => (await fetch("/api/thing", { signal })).json());
28
+ * store.value; // throws a `Promise` while loading, then resolves to the fetched value
29
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore
15
30
  */
16
31
  export class FetchStore extends BusyStore {
17
32
  // Override to trigger a refresh when `this.loading` is read.
@@ -56,6 +71,10 @@ export class FetchStore extends BusyStore {
56
71
  * - `0` zero means "always refresh" (this is the default).
57
72
  * - `Infinity` means "refresh only if store is still in a loading state.
58
73
  * - Any other value may or may not be stale based on `this.age`
74
+ * @returns `true` if the value was set synchronously, `false` if no refresh happened, or a `Promise` resolving to whether the awaited fetch succeeded.
75
+ * @throws {never} Never throws — fetch errors are stored as `reason` instead.
76
+ * @example store.refresh(MINUTE); // refresh only if the current value is older than a minute
77
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/refresh
59
78
  */
60
79
  refresh(maxAge = ALWAYS_REFRESH) {
61
80
  if (this._pendingRefresh)
@@ -78,7 +97,10 @@ export class FetchStore extends BusyStore {
78
97
  /**
79
98
  * Current `AbortSignal` for this store's in-flight fetch.
80
99
  * - Created lazily; a new signal is issued each time `refresh()` starts a new fetch or `abort()` is called.
81
- * - Triggers `abort()` so any current awaits are cancelled.
100
+ * - Reading this triggers `abort()` so any current awaits are cancelled.
101
+ *
102
+ * @returns A fresh `AbortSignal` for the next fetch.
103
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/signal
82
104
  */
83
105
  get signal() {
84
106
  this.abort();
@@ -96,13 +118,22 @@ export class FetchStore extends BusyStore {
96
118
  return this._callback(signal);
97
119
  }
98
120
  _callback;
99
- /** Whether this store is has currently been invalidated and needs a refresh. */
121
+ /**
122
+ * Whether this store has currently been invalidated and needs a refresh.
123
+ *
124
+ * @returns `true` if a refresh is pending after an `invalidate()` call, otherwise `false`.
125
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/invalidated
126
+ */
100
127
  get invalidated() {
101
128
  return !!this._invalidation;
102
129
  }
103
130
  /**
104
131
  * Invalidate this store so a new fetch is triggered on the next read of `loading` or `value`.
105
132
  * - Triggers `abort()` so any current awaits are cancelled.
133
+ *
134
+ * @returns Nothing.
135
+ * @example store.invalidate(); // next read of `value` refetches
136
+ * @see https://dhoulb.github.io/shelving/store/FetchStore/FetchStore/invalidate
106
137
  */
107
138
  invalidate() {
108
139
  this.abort();
@@ -3,20 +3,59 @@ import type { AbsolutePath, RelativePath } from "../util/path.js";
3
3
  import { BusyStore } from "./BusyStore.js";
4
4
  /**
5
5
  * Store an absolute path, e.g. `/a/b/c`
6
+ * - Accepts absolute or relative paths as input and normalises them to an absolute path against `this.base`.
7
+ * - Provides helpers to test whether other paths are active or proud relative to the current path.
6
8
  *
7
- * @param path: The initial value for the store.
8
- * @param base: The base path to resolve relative paths against.
9
+ * @param path The initial value for the store (defaults to `.`, resolved against `base`).
10
+ * @param base The base path to resolve relative paths against (defaults to `/`).
11
+ * @example
12
+ * const store = new PathStore("/a/b");
13
+ * store.isActive("/a/b"); // true
14
+ * store.getPath("c"); // "/a/b/c"
15
+ * @see https://dhoulb.github.io/shelving/store/PathStore/PathStore
9
16
  */
10
17
  export declare class PathStore extends BusyStore<AbsolutePath, AbsolutePath | RelativePath> {
18
+ /**
19
+ * Base path that relative inputs are resolved against.
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/store/PathStore/PathStore/base
22
+ */
11
23
  readonly base: AbsolutePath;
12
24
  constructor(path?: AbsolutePath | RelativePath, base?: AbsolutePath);
13
25
  protected _convert(possible: AbsolutePath | RelativePath, caller: AnyCaller): AbsolutePath;
14
26
  protected _equal(a: AbsolutePath, b: AbsolutePath): boolean;
15
- /** Based on the current store path, is a path active? */
27
+ /**
28
+ * Based on the current store path, is a path active (i.e. equal to the current path)?
29
+ *
30
+ * @param path The absolute path to test.
31
+ * @returns `true` if `path` matches the current path, otherwise `false`.
32
+ * @example store.isActive("/a/b");
33
+ * @see https://dhoulb.github.io/shelving/store/PathStore/PathStore/isActive
34
+ */
16
35
  isActive(path: AbsolutePath): boolean;
17
- /** Based on the current store path, is a path proud (i.e. a child of the current store path)? */
36
+ /**
37
+ * Based on the current store path, is a path proud (i.e. an ancestor of the current store path)?
38
+ *
39
+ * @param path The absolute path to test.
40
+ * @returns `true` if `path` is at or above the current path in the hierarchy, otherwise `false`.
41
+ * @example store.isProud("/a"); // true when current path is "/a/b"
42
+ * @see https://dhoulb.github.io/shelving/store/PathStore/PathStore/isProud
43
+ */
18
44
  isProud(path: AbsolutePath): boolean;
19
- /** Get an absolute path from a path relative to the current store path. */
45
+ /**
46
+ * Get an absolute path from a path relative to the current store path.
47
+ *
48
+ * @param path The absolute or relative path to resolve.
49
+ * @returns The resolved absolute path.
50
+ * @example store.getPath("c"); // "/a/b/c" when current path is "/a/b"
51
+ * @see https://dhoulb.github.io/shelving/store/PathStore/PathStore/getPath
52
+ */
20
53
  getPath(path: AbsolutePath | RelativePath): AbsolutePath;
54
+ /**
55
+ * Return the current path as a string.
56
+ *
57
+ * @returns The current absolute path.
58
+ * @see https://dhoulb.github.io/shelving/store/PathStore/PathStore/toString
59
+ */
21
60
  toString(): string;
22
61
  }