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
@@ -10,27 +10,103 @@ import { QueryStore } from "../store/QueryStore.js";
10
10
  * Cache of `ItemStore` and `QueryStore` objects for a single collection.
11
11
  * - Use `getItem(id)` to retrieve or create the `ItemStore` for a given id.
12
12
  * - Use `getQuery(query)` to retrieve or create the `QueryStore` for a given query.
13
+ *
14
+ * @example
15
+ * const cache = new CollectionCache(collection, provider);
16
+ * const store = cache.getItem("abc");
17
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache
13
18
  */
14
19
  export declare class CollectionCache<I extends Identifier, T extends Data> implements AsyncDisposable {
15
20
  private readonly _items;
16
21
  private readonly _queries;
22
+ /**
23
+ * The collection these cached stores belong to.
24
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/collection
25
+ */
17
26
  readonly collection: Collection<string, I, T>;
27
+ /**
28
+ * The database provider the cached stores fetch from.
29
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/provider
30
+ */
18
31
  readonly provider: DBProvider<I>;
32
+ /**
33
+ * Optional memory provider used to seed stores and drive realtime updates.
34
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/memory
35
+ */
19
36
  readonly memory: MemoryDBProvider<I> | undefined;
37
+ /**
38
+ * Create a cache of stores for a single collection.
39
+ *
40
+ * @param collection The collection to cache stores for.
41
+ * @param provider The database provider the stores fetch from.
42
+ * @param memory Optional memory provider used to seed stores and drive realtime updates.
43
+ * @example new CollectionCache(collection, provider)
44
+ */
20
45
  constructor(collection: Collection<string, I, T>, provider: DBProvider<I>, memory?: MemoryDBProvider<I>);
21
- /** Get (or create) the `ItemStore` for the given id. */
46
+ /**
47
+ * Get (or create) the `ItemStore` for the given id.
48
+ *
49
+ * @param id The ID of the item to get a store for.
50
+ * @returns The cached (or newly created) `ItemStore` for the id.
51
+ * @example cache.getItem("abc")
52
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/getItem
53
+ */
22
54
  getItem(id: I): ItemStore<I, T>;
23
- /** Get (or create) the `QueryStore` for the given query. */
55
+ /**
56
+ * Get (or create) the `QueryStore` for the given query.
57
+ *
58
+ * @param query The query to get a store for.
59
+ * @returns The cached (or newly created) `QueryStore` for the query.
60
+ * @example cache.getQuery(query)
61
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/getQuery
62
+ */
24
63
  getQuery(query: Query<Item<I, T>>): QueryStore<I, T>;
25
- /** Refresh a specific item store. */
64
+ /**
65
+ * Refresh a specific item store.
66
+ *
67
+ * @param id The ID of the item store to refresh.
68
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
69
+ * @returns Promise that resolves once the refresh has completed.
70
+ * @example await cache.refreshItem("abc")
71
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshItem
72
+ */
26
73
  refreshItem(id: I, maxAge?: number): Promise<void>;
27
- /** Refresh every cached item store. */
74
+ /**
75
+ * Refresh every cached item store.
76
+ *
77
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
78
+ * @returns Promise that resolves once every item store has refreshed.
79
+ * @example await cache.refreshItems()
80
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshItems
81
+ */
28
82
  refreshItems(maxAge?: number): Promise<void>;
29
- /** Refresh a specific query store. */
83
+ /**
84
+ * Refresh a specific query store.
85
+ *
86
+ * @param query The query whose store should be refreshed.
87
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
88
+ * @returns Promise that resolves once the refresh has completed.
89
+ * @example await cache.refreshQuery(query)
90
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshQuery
91
+ */
30
92
  refreshQuery(query: Query<Item<I, T>>, maxAge?: number): Promise<void>;
31
- /** Refresh every cached query store. */
93
+ /**
94
+ * Refresh every cached query store.
95
+ *
96
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
97
+ * @returns Promise that resolves once every query store has refreshed.
98
+ * @example await cache.refreshQueries()
99
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshQueries
100
+ */
32
101
  refreshQueries(maxAge?: number): Promise<void>;
33
- /** Refresh every cached store (items and queries). */
102
+ /**
103
+ * Refresh every cached store (items and queries).
104
+ *
105
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
106
+ * @returns Promise that resolves once every store has refreshed.
107
+ * @example await cache.refreshAll()
108
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshAll
109
+ */
34
110
  refreshAll(maxAge?: number): Promise<void>;
35
111
  private _queryKey;
36
112
  [Symbol.asyncDispose](): Promise<void>;
@@ -7,44 +7,120 @@ import { QueryStore } from "../store/QueryStore.js";
7
7
  * Cache of `ItemStore` and `QueryStore` objects for a single collection.
8
8
  * - Use `getItem(id)` to retrieve or create the `ItemStore` for a given id.
9
9
  * - Use `getQuery(query)` to retrieve or create the `QueryStore` for a given query.
10
+ *
11
+ * @example
12
+ * const cache = new CollectionCache(collection, provider);
13
+ * const store = cache.getItem("abc");
14
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache
10
15
  */
11
16
  export class CollectionCache {
12
17
  _items = new Map();
13
18
  _queries = new Map();
19
+ /**
20
+ * The collection these cached stores belong to.
21
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/collection
22
+ */
14
23
  collection;
24
+ /**
25
+ * The database provider the cached stores fetch from.
26
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/provider
27
+ */
15
28
  provider;
29
+ /**
30
+ * Optional memory provider used to seed stores and drive realtime updates.
31
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/memory
32
+ */
16
33
  memory;
34
+ /**
35
+ * Create a cache of stores for a single collection.
36
+ *
37
+ * @param collection The collection to cache stores for.
38
+ * @param provider The database provider the stores fetch from.
39
+ * @param memory Optional memory provider used to seed stores and drive realtime updates.
40
+ * @example new CollectionCache(collection, provider)
41
+ */
17
42
  constructor(collection, provider, memory) {
18
43
  this.collection = collection;
19
44
  this.provider = provider;
20
45
  this.memory = memory;
21
46
  }
22
- /** Get (or create) the `ItemStore` for the given id. */
47
+ /**
48
+ * Get (or create) the `ItemStore` for the given id.
49
+ *
50
+ * @param id The ID of the item to get a store for.
51
+ * @returns The cached (or newly created) `ItemStore` for the id.
52
+ * @example cache.getItem("abc")
53
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/getItem
54
+ */
23
55
  getItem(id) {
24
56
  return this._items.get(id) || setMapItem(this._items, id, new ItemStore(this.collection, id, this.provider, this.memory));
25
57
  }
26
- /** Get (or create) the `QueryStore` for the given query. */
58
+ /**
59
+ * Get (or create) the `QueryStore` for the given query.
60
+ *
61
+ * @param query The query to get a store for.
62
+ * @returns The cached (or newly created) `QueryStore` for the query.
63
+ * @example cache.getQuery(query)
64
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/getQuery
65
+ */
27
66
  getQuery(query) {
28
67
  const key = this._queryKey(query);
29
68
  return this._queries.get(key) || setMapItem(this._queries, key, new QueryStore(this.collection, query, this.provider, this.memory));
30
69
  }
31
- /** Refresh a specific item store. */
70
+ /**
71
+ * Refresh a specific item store.
72
+ *
73
+ * @param id The ID of the item store to refresh.
74
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
75
+ * @returns Promise that resolves once the refresh has completed.
76
+ * @example await cache.refreshItem("abc")
77
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshItem
78
+ */
32
79
  async refreshItem(id, maxAge) {
33
80
  await this._items.get(id)?.refresh(maxAge);
34
81
  }
35
- /** Refresh every cached item store. */
82
+ /**
83
+ * Refresh every cached item store.
84
+ *
85
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
86
+ * @returns Promise that resolves once every item store has refreshed.
87
+ * @example await cache.refreshItems()
88
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshItems
89
+ */
36
90
  async refreshItems(maxAge) {
37
91
  await awaitValues(...this._items.values().map(store => store.refresh(maxAge)));
38
92
  }
39
- /** Refresh a specific query store. */
93
+ /**
94
+ * Refresh a specific query store.
95
+ *
96
+ * @param query The query whose store should be refreshed.
97
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
98
+ * @returns Promise that resolves once the refresh has completed.
99
+ * @example await cache.refreshQuery(query)
100
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshQuery
101
+ */
40
102
  async refreshQuery(query, maxAge) {
41
103
  await this._queries.get(this._queryKey(query))?.refresh(maxAge);
42
104
  }
43
- /** Refresh every cached query store. */
105
+ /**
106
+ * Refresh every cached query store.
107
+ *
108
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
109
+ * @returns Promise that resolves once every query store has refreshed.
110
+ * @example await cache.refreshQueries()
111
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshQueries
112
+ */
44
113
  async refreshQueries(maxAge) {
45
114
  await awaitValues(...this._queries.values().map(store => store.refresh(maxAge)));
46
115
  }
47
- /** Refresh every cached store (items and queries). */
116
+ /**
117
+ * Refresh every cached store (items and queries).
118
+ *
119
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
120
+ * @returns Promise that resolves once every store has refreshed.
121
+ * @example await cache.refreshAll()
122
+ * @see https://dhoulb.github.io/shelving/db/cache/CollectionCache/CollectionCache/refreshAll
123
+ */
48
124
  async refreshAll(maxAge) {
49
125
  await awaitValues(this.refreshItems(maxAge), this.refreshQueries(maxAge));
50
126
  }
@@ -11,28 +11,113 @@ import { CollectionCache } from "./CollectionCache.js";
11
11
  * Cache of `CollectionCache` objects for multiple collections.
12
12
  * - Use `get(collection)` to retrieve or create the `CollectionCache` for a given collection,
13
13
  * then `getItem(id)` / `getQuery(query)` on that to get a specific store.
14
+ * - If the provider chain contains a `CacheDBProvider`, its memory is reused so stores can seed synchronously.
15
+ *
16
+ * @example
17
+ * const cache = new DBCache(provider);
18
+ * const store = cache.getItem(collection, "abc");
19
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache
14
20
  */
15
21
  export declare class DBCache<I extends Identifier = Identifier, T extends Data = Data> implements AsyncDisposable {
16
22
  private readonly _collections;
23
+ /**
24
+ * The database provider the cached stores fetch from.
25
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/provider
26
+ */
17
27
  readonly provider: DBProvider<I, T>;
28
+ /**
29
+ * Memory provider reused from the provider chain to seed stores synchronously, if available.
30
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/memory
31
+ */
18
32
  readonly memory: MemoryDBProvider<I, T> | undefined;
33
+ /**
34
+ * Create a cache of collection caches for a database provider.
35
+ *
36
+ * @param provider The database provider the cached stores fetch from.
37
+ * @example new DBCache(provider)
38
+ */
19
39
  constructor(provider: DBProvider<I, T>);
20
40
  private _get;
21
- /** Get (or create) the `CollectionCache` for the given collection. */
41
+ /**
42
+ * Get (or create) the `CollectionCache` for the given collection.
43
+ *
44
+ * @param collection The collection to get a cache for.
45
+ * @returns The cached (or newly created) `CollectionCache` for the collection.
46
+ * @example cache.get(collection)
47
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/get
48
+ */
22
49
  get<II extends I, TT extends T>(collection: Collection<string, II, TT>): CollectionCache<II, TT>;
23
- /** Get (or create) an `ItemStore` for a collection/id in one hop. */
50
+ /**
51
+ * Get (or create) an `ItemStore` for a collection/id in one hop.
52
+ *
53
+ * @param collection The collection the item lives in.
54
+ * @param id The ID of the item to get a store for.
55
+ * @returns The cached (or newly created) `ItemStore`.
56
+ * @example cache.getItem(collection, "abc")
57
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/getItem
58
+ */
24
59
  getItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II): ItemStore<II, TT>;
25
- /** Get (or create) a `QueryStore` for a collection/query in one hop. */
60
+ /**
61
+ * Get (or create) a `QueryStore` for a collection/query in one hop.
62
+ *
63
+ * @param collection The collection the query runs against.
64
+ * @param query The query to get a store for.
65
+ * @returns The cached (or newly created) `QueryStore`.
66
+ * @example cache.getQuery(collection, query)
67
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/getQuery
68
+ */
26
69
  getQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query: Query<Item<II, TT>>): QueryStore<II, TT>;
27
- /** Refresh a specific item store for a collection. */
70
+ /**
71
+ * Refresh a specific item store for a collection.
72
+ *
73
+ * @param collection The collection the item lives in.
74
+ * @param id The ID of the item store to refresh.
75
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
76
+ * @returns Promise that resolves once the refresh has completed.
77
+ * @example await cache.refreshItem(collection, "abc")
78
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshItem
79
+ */
28
80
  refreshItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II, maxAge?: number): Promise<void>;
29
- /** Refresh every cached item store for a collection. */
81
+ /**
82
+ * Refresh every cached item store for a collection.
83
+ *
84
+ * @param collection The collection whose item stores should be refreshed.
85
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
86
+ * @returns Promise that resolves once every item store has refreshed.
87
+ * @example await cache.refreshItems(collection)
88
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshItems
89
+ */
30
90
  refreshItems<II extends I, TT extends T>(collection: Collection<string, II, TT>, maxAge?: number): Promise<void>;
31
- /** Refresh a specific query store for a collection. */
91
+ /**
92
+ * Refresh a specific query store for a collection.
93
+ *
94
+ * @param collection The collection the query runs against.
95
+ * @param query The query whose store should be refreshed.
96
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
97
+ * @returns Promise that resolves once the refresh has completed.
98
+ * @example await cache.refreshQuery(collection, query)
99
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshQuery
100
+ */
32
101
  refreshQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query: Query<Item<II, TT>>, maxAge?: number): Promise<void>;
33
- /** Refresh every cached query store for a collection. */
102
+ /**
103
+ * Refresh every cached query store for a collection.
104
+ *
105
+ * @param collection The collection whose query stores should be refreshed.
106
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
107
+ * @returns Promise that resolves once every query store has refreshed.
108
+ * @example await cache.refreshQueries(collection)
109
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshQueries
110
+ */
34
111
  refreshQueries<II extends I, TT extends T>(collection: Collection<string, II, TT>, maxAge?: number): Promise<void>;
35
- /** Refresh every cached store (items and queries) for a collection. */
112
+ /**
113
+ * Refresh every cached store (items and queries) for a collection.
114
+ *
115
+ * @param collection The collection whose stores should be refreshed.
116
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
117
+ * @returns Promise that resolves once every store has refreshed.
118
+ * @example await cache.refreshAll(collection)
119
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshAll
120
+ */
36
121
  refreshAll<II extends I, TT extends T>(collection: Collection<string, II, TT>, maxAge?: number): Promise<void>;
37
122
  [Symbol.asyncDispose](): Promise<void>;
38
123
  }
@@ -7,11 +7,31 @@ import { CollectionCache } from "./CollectionCache.js";
7
7
  * Cache of `CollectionCache` objects for multiple collections.
8
8
  * - Use `get(collection)` to retrieve or create the `CollectionCache` for a given collection,
9
9
  * then `getItem(id)` / `getQuery(query)` on that to get a specific store.
10
+ * - If the provider chain contains a `CacheDBProvider`, its memory is reused so stores can seed synchronously.
11
+ *
12
+ * @example
13
+ * const cache = new DBCache(provider);
14
+ * const store = cache.getItem(collection, "abc");
15
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache
10
16
  */
11
17
  export class DBCache {
12
18
  _collections = new Map();
19
+ /**
20
+ * The database provider the cached stores fetch from.
21
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/provider
22
+ */
13
23
  provider;
24
+ /**
25
+ * Memory provider reused from the provider chain to seed stores synchronously, if available.
26
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/memory
27
+ */
14
28
  memory;
29
+ /**
30
+ * Create a cache of collection caches for a database provider.
31
+ *
32
+ * @param provider The database provider the cached stores fetch from.
33
+ * @example new DBCache(provider)
34
+ */
15
35
  constructor(provider) {
16
36
  this.provider = provider;
17
37
  // If the provider chain contains a `CacheDBProvider`, reuse its memory so we can seed stores synchronously.
@@ -23,31 +43,89 @@ export class DBCache {
23
43
  get(collection) {
24
44
  return this._get(collection) || setMapItem(this._collections, collection, new CollectionCache(collection, this.provider, this.memory));
25
45
  }
26
- /** Get (or create) an `ItemStore` for a collection/id in one hop. */
46
+ /**
47
+ * Get (or create) an `ItemStore` for a collection/id in one hop.
48
+ *
49
+ * @param collection The collection the item lives in.
50
+ * @param id The ID of the item to get a store for.
51
+ * @returns The cached (or newly created) `ItemStore`.
52
+ * @example cache.getItem(collection, "abc")
53
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/getItem
54
+ */
27
55
  getItem(collection, id) {
28
56
  return this.get(collection).getItem(id);
29
57
  }
30
- /** Get (or create) a `QueryStore` for a collection/query in one hop. */
58
+ /**
59
+ * Get (or create) a `QueryStore` for a collection/query in one hop.
60
+ *
61
+ * @param collection The collection the query runs against.
62
+ * @param query The query to get a store for.
63
+ * @returns The cached (or newly created) `QueryStore`.
64
+ * @example cache.getQuery(collection, query)
65
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/getQuery
66
+ */
31
67
  getQuery(collection, query) {
32
68
  return this.get(collection).getQuery(query);
33
69
  }
34
- /** Refresh a specific item store for a collection. */
70
+ /**
71
+ * Refresh a specific item store for a collection.
72
+ *
73
+ * @param collection The collection the item lives in.
74
+ * @param id The ID of the item store to refresh.
75
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
76
+ * @returns Promise that resolves once the refresh has completed.
77
+ * @example await cache.refreshItem(collection, "abc")
78
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshItem
79
+ */
35
80
  async refreshItem(collection, id, maxAge) {
36
81
  await this._get(collection)?.refreshItem(id, maxAge);
37
82
  }
38
- /** Refresh every cached item store for a collection. */
83
+ /**
84
+ * Refresh every cached item store for a collection.
85
+ *
86
+ * @param collection The collection whose item stores should be refreshed.
87
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
88
+ * @returns Promise that resolves once every item store has refreshed.
89
+ * @example await cache.refreshItems(collection)
90
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshItems
91
+ */
39
92
  async refreshItems(collection, maxAge) {
40
93
  await this._get(collection)?.refreshItems(maxAge);
41
94
  }
42
- /** Refresh a specific query store for a collection. */
95
+ /**
96
+ * Refresh a specific query store for a collection.
97
+ *
98
+ * @param collection The collection the query runs against.
99
+ * @param query The query whose store should be refreshed.
100
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
101
+ * @returns Promise that resolves once the refresh has completed.
102
+ * @example await cache.refreshQuery(collection, query)
103
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshQuery
104
+ */
43
105
  async refreshQuery(collection, query, maxAge) {
44
106
  await this._get(collection)?.refreshQuery(query, maxAge);
45
107
  }
46
- /** Refresh every cached query store for a collection. */
108
+ /**
109
+ * Refresh every cached query store for a collection.
110
+ *
111
+ * @param collection The collection whose query stores should be refreshed.
112
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
113
+ * @returns Promise that resolves once every query store has refreshed.
114
+ * @example await cache.refreshQueries(collection)
115
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshQueries
116
+ */
47
117
  async refreshQueries(collection, maxAge) {
48
118
  await this._get(collection)?.refreshQueries(maxAge);
49
119
  }
50
- /** Refresh every cached store (items and queries) for a collection. */
120
+ /**
121
+ * Refresh every cached store (items and queries) for a collection.
122
+ *
123
+ * @param collection The collection whose stores should be refreshed.
124
+ * @param maxAge Maximum age in milliseconds of cached data that may be reused instead of refetching.
125
+ * @returns Promise that resolves once every store has refreshed.
126
+ * @example await cache.refreshAll(collection)
127
+ * @see https://dhoulb.github.io/shelving/db/cache/DBCache/DBCache/refreshAll
128
+ */
51
129
  async refreshAll(collection, maxAge) {
52
130
  await this._get(collection)?.refreshAll(maxAge);
53
131
  }
@@ -4,38 +4,126 @@ import type { Schema, Schemas } from "../../schema/Schema.js";
4
4
  import type { ImmutableArray } from "../../util/array.js";
5
5
  import type { Data } from "../../util/data.js";
6
6
  import type { Identifier, Item, Items, OptionalItem } from "../../util/item.js";
7
- /** Default identifier schema (integer). */
7
+ /**
8
+ * Default identifier schema (integer) used when a collection doesn't supply its own.
9
+ *
10
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/ID
11
+ */
8
12
  export declare const ID: NumberSchema;
9
- /** Declarative definition of a database collection/table. */
13
+ /**
14
+ * Declarative definition of a database collection/table.
15
+ *
16
+ * - Pairs a collection name with an identifier schema and a data schema, so providers can validate and address items.
17
+ * - Extends `DataSchema<T>`, so the collection itself validates an item's data, while `.item` validates the complete `id + data` item.
18
+ *
19
+ * @example
20
+ * const users = new Collection("users", ID, { name: STRING, age: NUMBER });
21
+ * users.validate({ name: "Dave", age: 40 }); // Validates item data.
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection
24
+ */
10
25
  export declare class Collection<N extends string = string, I extends Identifier = Identifier, T extends Data = Data> extends DataSchema<T> {
11
- /** Collection name (used as the table/collection key). */
26
+ /**
27
+ * Collection name (used as the table/collection key).
28
+ *
29
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/name
30
+ */
12
31
  readonly name: N;
13
- /** Schema for the identifier type. */
32
+ /**
33
+ * Schema for the identifier type.
34
+ *
35
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/id
36
+ */
14
37
  readonly id: Schema<I>;
15
- /** Schema for a complete item (id + data). */
38
+ /**
39
+ * Schema for a complete item (id + data).
40
+ *
41
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/item
42
+ */
16
43
  readonly item: DataSchema<Item<I, T>>;
44
+ /**
45
+ * Create a new `Collection`.
46
+ *
47
+ * @param name Collection name used as the table/collection key.
48
+ * @param id Schema for the identifier type.
49
+ * @param data Data schema, or the `Schemas` props used to construct one.
50
+ */
17
51
  constructor(name: N, id: Schema<I>, data: Schemas<T> | DataSchema<T>);
52
+ /**
53
+ * Convert this collection to its string name.
54
+ *
55
+ * @returns The collection name.
56
+ * @example `${users}` // "users"
57
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/toString
58
+ */
18
59
  toString(): string;
19
60
  }
20
- /** Shortcut factory for creating a Collection. */
61
+ /**
62
+ * Create a `Collection` from a name, an identifier schema, and a data schema.
63
+ *
64
+ * *Factory for `Collection`.*
65
+ *
66
+ * @param name Collection name used as the table/collection key.
67
+ * @param id Schema for the identifier type.
68
+ * @param data Data schema, or the `Schemas` props used to construct one.
69
+ * @returns A new `Collection` instance.
70
+ * @example COLLECTION("users", ID, { name: STRING, age: NUMBER }) // Collection<"users", number, { name: string; age: number }>
71
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/COLLECTION
72
+ */
21
73
  export declare function COLLECTION<K extends string, I extends Identifier, T extends Data>(name: K, id: Schema<I>, data: Schemas<T> | DataSchema<T>): Collection<K, I, T>;
22
- /** Extract the string name from a `Collection` instance. */
74
+ /**
75
+ * Extract the string name from a `Collection` instance.
76
+ *
77
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionName
78
+ */
23
79
  export type CollectionName<C extends Collection> = C extends Collection<infer N, infer _I, infer _T> ? N : never;
24
- /** Extract the `Identifier` type from a `Collection` instance. */
80
+ /**
81
+ * Extract the `Identifier` type from a `Collection` instance.
82
+ *
83
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionIdentifier
84
+ */
25
85
  export type CollectionIdentifier<C extends Collection> = C extends Collection<infer _N, infer I, infer _T> ? I : never;
26
- /** Extract the `Data` type from a `Collection` instance. */
86
+ /**
87
+ * Extract the `Data` type from a `Collection` instance.
88
+ *
89
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionData
90
+ */
27
91
  export type CollectionData<C extends Collection> = C extends Collection<infer _N, infer _I, infer T> ? T : never;
28
- /** Extract the `Item` type from a `Collection` instance. */
92
+ /**
93
+ * Extract the `Item` type from a `Collection` instance.
94
+ *
95
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionItem
96
+ */
29
97
  export type CollectionItem<C extends Collection> = Item<CollectionIdentifier<C>, CollectionData<C>>;
30
- /** Extract the optional (possibly undefined) `Item` type from a `Collection` instance. */
98
+ /**
99
+ * Extract the optional (possibly undefined) `Item` type from a `Collection` instance.
100
+ *
101
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/OptionalCollectionItem
102
+ */
31
103
  export type OptionalCollectionItem<C extends Collection> = OptionalItem<CollectionIdentifier<C>, CollectionData<C>>;
32
- /** Extract the array of `Item` types from a `Collection` instance. */
104
+ /**
105
+ * Extract the array of `Item` types from a `Collection` instance.
106
+ *
107
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionItems
108
+ */
33
109
  export type CollectionItems<C extends Collection> = Items<CollectionIdentifier<C>, CollectionData<C>>;
34
- /** A readonly array of Collection instances, possibly with a standardised `Identifier` and `Data` types. */
110
+ /**
111
+ * A readonly array of `Collection` instances, optionally narrowed to a standardised `Identifier` and `Data` type.
112
+ *
113
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collections
114
+ */
35
115
  export type Collections<I extends Identifier = Identifier, D extends Data = Data> = ImmutableArray<Collection<string, I, D>>;
36
- /** Extract the union of string collection names from a `Collections` type. */
116
+ /**
117
+ * Extract the union of string collection names from a `Collections` type.
118
+ *
119
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionNames
120
+ */
37
121
  export type CollectionNames<C extends Collections> = C[number]["name"];
38
- /** Convert a `Collections` array type to a Database-style object mapping in `{ name: data }` format. */
122
+ /**
123
+ * Convert a `Collections` array type to a database-style object mapping in `{ name: data }` format.
124
+ *
125
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/CollectionsDatabase
126
+ */
39
127
  export type CollectionsDatabase<C extends Collections> = {
40
128
  [E in C[number] as E extends Collection<infer N, Identifier, Data> ? N : never]: E extends Collection<string, Identifier, infer T> ? T : never;
41
129
  };