shelving 1.236.0 → 1.236.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/api/cache/APICache.d.ts +69 -6
  2. package/api/cache/APICache.js +61 -5
  3. package/api/cache/EndpointCache.d.ts +75 -7
  4. package/api/cache/EndpointCache.js +75 -7
  5. package/api/endpoint/Endpoint.d.ts +141 -25
  6. package/api/endpoint/Endpoint.js +55 -9
  7. package/api/endpoint/util.d.ts +28 -6
  8. package/api/provider/APIProvider.d.ts +58 -14
  9. package/api/provider/APIProvider.js +24 -2
  10. package/api/provider/CachedAPIProvider.d.ts +58 -5
  11. package/api/provider/CachedAPIProvider.js +58 -6
  12. package/api/provider/ClientAPIProvider.d.ts +80 -4
  13. package/api/provider/ClientAPIProvider.js +75 -4
  14. package/api/provider/DebugAPIProvider.d.ts +40 -1
  15. package/api/provider/DebugAPIProvider.js +40 -1
  16. package/api/provider/JSONAPIProvider.d.ts +18 -2
  17. package/api/provider/JSONAPIProvider.js +18 -2
  18. package/api/provider/LoggingAPIProvider.d.ts +25 -2
  19. package/api/provider/LoggingAPIProvider.js +25 -2
  20. package/api/provider/MockAPIProvider.d.ts +72 -1
  21. package/api/provider/MockAPIProvider.js +60 -4
  22. package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
  23. package/api/provider/MockEndpointAPIProvider.js +9 -0
  24. package/api/provider/ThroughAPIProvider.d.ts +67 -1
  25. package/api/provider/ThroughAPIProvider.js +67 -1
  26. package/api/provider/ValidationAPIProvider.d.ts +32 -1
  27. package/api/provider/ValidationAPIProvider.js +32 -1
  28. package/api/provider/XMLAPIProvider.d.ts +18 -2
  29. package/api/provider/XMLAPIProvider.js +18 -2
  30. package/api/store/EndpointStore.d.ts +24 -1
  31. package/api/store/EndpointStore.js +24 -1
  32. package/bun/BunPostgreSQLProvider.d.ts +38 -0
  33. package/bun/BunPostgreSQLProvider.js +38 -2
  34. package/cloudflare/CloudflareD1Provider.d.ts +29 -2
  35. package/cloudflare/CloudflareD1Provider.js +29 -2
  36. package/cloudflare/CloudflareKVProvider.d.ts +115 -0
  37. package/cloudflare/CloudflareKVProvider.js +115 -0
  38. package/cloudflare/types.d.ts +41 -7
  39. package/db/cache/CollectionCache.d.ts +83 -7
  40. package/db/cache/CollectionCache.js +83 -7
  41. package/db/cache/DBCache.d.ts +93 -8
  42. package/db/cache/DBCache.js +85 -7
  43. package/db/collection/Collection.d.ts +103 -15
  44. package/db/collection/Collection.js +58 -6
  45. package/db/migrate/DBMigrator.d.ts +29 -1
  46. package/db/migrate/DBMigrator.js +20 -1
  47. package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
  48. package/db/migrate/PostgreSQLMigrator.js +8 -1
  49. package/db/migrate/SQLMigrator.d.ts +63 -4
  50. package/db/migrate/SQLMigrator.js +51 -1
  51. package/db/migrate/SQLiteMigrator.d.ts +8 -1
  52. package/db/migrate/SQLiteMigrator.js +8 -1
  53. package/db/provider/CacheDBProvider.d.ts +135 -1
  54. package/db/provider/CacheDBProvider.js +135 -1
  55. package/db/provider/ChangesDBProvider.d.ts +84 -3
  56. package/db/provider/ChangesDBProvider.js +77 -2
  57. package/db/provider/DBProvider.d.ts +148 -1
  58. package/db/provider/DBProvider.js +51 -1
  59. package/db/provider/DebugDBProvider.d.ts +118 -1
  60. package/db/provider/DebugDBProvider.js +118 -1
  61. package/db/provider/MemoryDBProvider.d.ts +262 -7
  62. package/db/provider/MemoryDBProvider.js +262 -7
  63. package/db/provider/MockDBProvider.d.ts +113 -2
  64. package/db/provider/MockDBProvider.js +106 -1
  65. package/db/provider/PostgreSQLProvider.d.ts +34 -2
  66. package/db/provider/PostgreSQLProvider.js +34 -4
  67. package/db/provider/SQLProvider.d.ts +250 -14
  68. package/db/provider/SQLProvider.js +237 -13
  69. package/db/provider/SQLiteProvider.d.ts +41 -1
  70. package/db/provider/SQLiteProvider.js +41 -4
  71. package/db/provider/ThroughDBProvider.d.ts +156 -1
  72. package/db/provider/ThroughDBProvider.js +156 -1
  73. package/db/provider/ValidationDBProvider.d.ts +120 -1
  74. package/db/provider/ValidationDBProvider.js +120 -1
  75. package/db/store/ItemStore.d.ts +38 -2
  76. package/db/store/ItemStore.js +38 -2
  77. package/db/store/QueryStore.d.ts +64 -6
  78. package/db/store/QueryStore.js +64 -6
  79. package/error/BaseError.d.ts +27 -2
  80. package/error/BaseError.js +14 -0
  81. package/error/Errors.d.ts +12 -1
  82. package/error/Errors.js +12 -1
  83. package/error/NetworkError.d.ts +13 -1
  84. package/error/NetworkError.js +13 -1
  85. package/error/RequestError.d.ts +90 -7
  86. package/error/RequestError.js +90 -7
  87. package/error/RequiredError.d.ts +11 -1
  88. package/error/RequiredError.js +11 -1
  89. package/error/ResponseError.d.ts +19 -2
  90. package/error/ResponseError.js +19 -2
  91. package/error/UnexpectedError.d.ts +14 -1
  92. package/error/UnexpectedError.js +14 -1
  93. package/error/UnimplementedError.d.ts +13 -1
  94. package/error/UnimplementedError.js +13 -1
  95. package/error/ValueError.d.ts +14 -1
  96. package/error/ValueError.js +14 -1
  97. package/extract/DirectoryExtractor.d.ts +35 -1
  98. package/extract/DirectoryExtractor.js +30 -0
  99. package/extract/Extractor.d.ts +21 -2
  100. package/extract/Extractor.js +7 -1
  101. package/extract/FileExtractor.d.ts +18 -0
  102. package/extract/FileExtractor.js +18 -0
  103. package/extract/IndexExtractor.d.ts +36 -1
  104. package/extract/IndexExtractor.js +31 -0
  105. package/extract/MarkupExtractor.d.ts +15 -0
  106. package/extract/MarkupExtractor.js +15 -0
  107. package/extract/MergingExtractor.d.ts +36 -1
  108. package/extract/MergingExtractor.js +31 -0
  109. package/extract/ModuleExtractor.d.ts +25 -1
  110. package/extract/ModuleExtractor.js +20 -0
  111. package/extract/PackageExtractor.d.ts +36 -1
  112. package/extract/PackageExtractor.js +31 -0
  113. package/extract/ThroughExtractor.d.ts +22 -1
  114. package/extract/ThroughExtractor.js +22 -1
  115. package/extract/TypescriptExtractor.d.ts +21 -0
  116. package/extract/TypescriptExtractor.js +28 -3
  117. package/firestore/client/FirestoreClientProvider.d.ts +129 -4
  118. package/firestore/client/FirestoreClientProvider.js +129 -4
  119. package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
  120. package/firestore/lite/FirestoreLiteProvider.js +128 -3
  121. package/firestore/server/FirestoreServerProvider.d.ts +129 -2
  122. package/firestore/server/FirestoreServerProvider.js +129 -2
  123. package/markup/MarkupParser.d.ts +57 -10
  124. package/markup/MarkupParser.js +50 -9
  125. package/markup/MarkupRule.d.ts +34 -1
  126. package/markup/Parser.d.ts +18 -0
  127. package/markup/Parser.js +11 -0
  128. package/markup/rule/blockquote.d.ts +3 -0
  129. package/markup/rule/blockquote.js +3 -0
  130. package/markup/rule/code.d.ts +3 -0
  131. package/markup/rule/code.js +3 -0
  132. package/markup/rule/fenced.d.ts +3 -0
  133. package/markup/rule/fenced.js +3 -0
  134. package/markup/rule/heading.d.ts +3 -0
  135. package/markup/rule/heading.js +3 -0
  136. package/markup/rule/index.d.ts +16 -3
  137. package/markup/rule/index.js +16 -3
  138. package/markup/rule/inline.d.ts +4 -1
  139. package/markup/rule/inline.js +5 -2
  140. package/markup/rule/linebreak.d.ts +3 -0
  141. package/markup/rule/linebreak.js +3 -0
  142. package/markup/rule/link.d.ts +6 -0
  143. package/markup/rule/link.js +6 -0
  144. package/markup/rule/ordered.d.ts +3 -0
  145. package/markup/rule/ordered.js +3 -0
  146. package/markup/rule/paragraph.d.ts +3 -0
  147. package/markup/rule/paragraph.js +3 -0
  148. package/markup/rule/separator.d.ts +3 -0
  149. package/markup/rule/separator.js +3 -0
  150. package/markup/rule/table.d.ts +3 -0
  151. package/markup/rule/table.js +3 -0
  152. package/markup/rule/unordered.d.ts +3 -0
  153. package/markup/rule/unordered.js +3 -0
  154. package/markup/util/regexp.d.ts +80 -3
  155. package/markup/util/regexp.js +44 -0
  156. package/package.json +1 -1
  157. package/react/createAPIContext.d.ts +15 -0
  158. package/react/createAPIContext.js +10 -0
  159. package/react/createDBContext.d.ts +15 -0
  160. package/react/createDBContext.js +10 -0
  161. package/react/useInstance.d.ts +11 -0
  162. package/react/useInstance.js +11 -0
  163. package/react/useLazy.d.ts +11 -0
  164. package/react/useMap.d.ts +14 -1
  165. package/react/useMap.js +14 -1
  166. package/react/useReduce.d.ts +12 -0
  167. package/react/useSequence.d.ts +10 -0
  168. package/react/useSequence.js +10 -0
  169. package/react/useStore.d.ts +16 -1
  170. package/schema/AddressSchema.d.ts +41 -4
  171. package/schema/AddressSchema.js +36 -3
  172. package/schema/ArraySchema.d.ts +48 -6
  173. package/schema/ArraySchema.js +40 -5
  174. package/schema/BooleanSchema.d.ts +59 -3
  175. package/schema/BooleanSchema.js +51 -2
  176. package/schema/ChoiceSchema.d.ts +61 -7
  177. package/schema/ChoiceSchema.js +44 -2
  178. package/schema/ColorSchema.d.ts +41 -8
  179. package/schema/ColorSchema.js +36 -7
  180. package/schema/CountrySchema.d.ts +44 -4
  181. package/schema/CountrySchema.js +39 -3
  182. package/schema/CurrencyAmountSchema.d.ts +104 -8
  183. package/schema/CurrencyAmountSchema.js +91 -4
  184. package/schema/CurrencyCodeSchema.d.ts +56 -4
  185. package/schema/CurrencyCodeSchema.js +49 -3
  186. package/schema/DataSchema.d.ts +101 -10
  187. package/schema/DataSchema.js +87 -8
  188. package/schema/DateSchema.d.ts +73 -4
  189. package/schema/DateSchema.js +57 -2
  190. package/schema/DateTimeSchema.d.ts +40 -3
  191. package/schema/DateTimeSchema.js +40 -3
  192. package/schema/DictionarySchema.d.ts +54 -4
  193. package/schema/DictionarySchema.js +47 -3
  194. package/schema/EmailSchema.d.ts +34 -3
  195. package/schema/EmailSchema.js +34 -3
  196. package/schema/EntitySchema.d.ts +45 -4
  197. package/schema/EntitySchema.js +38 -3
  198. package/schema/FileSchema.d.ts +45 -4
  199. package/schema/FileSchema.js +39 -3
  200. package/schema/KeySchema.d.ts +32 -3
  201. package/schema/KeySchema.js +32 -3
  202. package/schema/NullableSchema.d.ts +64 -4
  203. package/schema/NullableSchema.js +59 -3
  204. package/schema/NumberSchema.d.ts +137 -12
  205. package/schema/NumberSchema.js +127 -11
  206. package/schema/OptionalSchema.d.ts +61 -4
  207. package/schema/OptionalSchema.js +56 -4
  208. package/schema/PasswordSchema.d.ts +37 -1
  209. package/schema/PasswordSchema.js +32 -1
  210. package/schema/PhoneSchema.d.ts +40 -4
  211. package/schema/PhoneSchema.js +35 -3
  212. package/schema/RequiredSchema.d.ts +39 -3
  213. package/schema/RequiredSchema.js +41 -3
  214. package/schema/Schema.d.ts +67 -7
  215. package/schema/Schema.js +42 -6
  216. package/schema/SlugSchema.d.ts +37 -5
  217. package/schema/SlugSchema.js +37 -5
  218. package/schema/StringSchema.d.ts +124 -19
  219. package/schema/StringSchema.js +107 -17
  220. package/schema/ThroughSchema.d.ts +35 -2
  221. package/schema/ThroughSchema.js +30 -1
  222. package/schema/TimeSchema.d.ts +43 -3
  223. package/schema/TimeSchema.js +43 -3
  224. package/schema/URISchema.d.ts +67 -6
  225. package/schema/URISchema.js +60 -6
  226. package/schema/URLSchema.d.ts +69 -6
  227. package/schema/URLSchema.js +61 -6
  228. package/schema/UUIDSchema.d.ts +37 -4
  229. package/schema/UUIDSchema.js +37 -4
  230. package/sequence/DeferredSequence.d.ts +49 -3
  231. package/sequence/DeferredSequence.js +39 -3
  232. package/sequence/InspectSequence.d.ts +59 -5
  233. package/sequence/InspectSequence.js +59 -5
  234. package/sequence/LazySequence.d.ts +30 -2
  235. package/sequence/LazySequence.js +30 -2
  236. package/sequence/Sequence.d.ts +11 -0
  237. package/sequence/Sequence.js +10 -0
  238. package/sequence/ThroughSequence.d.ts +15 -0
  239. package/sequence/ThroughSequence.js +15 -0
  240. package/store/ArrayStore.d.ts +74 -11
  241. package/store/ArrayStore.js +74 -11
  242. package/store/BooleanStore.d.ts +19 -2
  243. package/store/BooleanStore.js +19 -2
  244. package/store/BusyStore.d.ts +13 -1
  245. package/store/BusyStore.js +13 -1
  246. package/store/DataStore.d.ts +118 -15
  247. package/store/DataStore.js +118 -15
  248. package/store/DictionaryStore.d.ts +66 -8
  249. package/store/DictionaryStore.js +66 -8
  250. package/store/FetchStore.d.ts +43 -6
  251. package/store/FetchStore.js +36 -5
  252. package/store/PathStore.d.ts +44 -5
  253. package/store/PathStore.js +44 -5
  254. package/store/PayloadFetchStore.d.ts +16 -1
  255. package/store/PayloadFetchStore.js +9 -1
  256. package/store/Store.d.ts +85 -16
  257. package/store/Store.js +52 -10
  258. package/store/URLStore.d.ts +173 -15
  259. package/store/URLStore.js +173 -15
  260. package/test/basics.d.ts +70 -0
  261. package/test/basics.js +60 -0
  262. package/test/people.d.ts +45 -0
  263. package/test/people.js +35 -0
  264. package/test/util.d.ts +30 -3
  265. package/test/util.js +30 -3
  266. package/ui/app/App.d.ts +14 -2
  267. package/ui/app/App.js +9 -2
  268. package/ui/app/App.tsx +14 -2
  269. package/ui/block/Address.d.ts +45 -3
  270. package/ui/block/Address.js +30 -3
  271. package/ui/block/Address.tsx +46 -3
  272. package/ui/block/Block.d.ts +23 -1
  273. package/ui/block/Block.js +13 -1
  274. package/ui/block/Block.tsx +23 -1
  275. package/ui/block/Blockquote.d.ts +21 -0
  276. package/ui/block/Blockquote.js +16 -0
  277. package/ui/block/Blockquote.tsx +22 -0
  278. package/ui/block/Caption.d.ts +21 -1
  279. package/ui/block/Caption.js +16 -1
  280. package/ui/block/Caption.tsx +22 -1
  281. package/ui/block/Card.d.ts +6 -0
  282. package/ui/block/Card.js +1 -0
  283. package/ui/block/Card.tsx +6 -0
  284. package/ui/block/Definitions.d.ts +18 -0
  285. package/ui/block/Definitions.js +13 -0
  286. package/ui/block/Definitions.tsx +19 -0
  287. package/ui/block/Divider.d.ts +21 -0
  288. package/ui/block/Divider.js +16 -0
  289. package/ui/block/Divider.tsx +22 -0
  290. package/ui/block/Heading.d.ts +20 -1
  291. package/ui/block/Heading.js +15 -0
  292. package/ui/block/Heading.tsx +21 -1
  293. package/ui/block/Image.d.ts +23 -0
  294. package/ui/block/Image.js +18 -0
  295. package/ui/block/Image.tsx +24 -0
  296. package/ui/block/Label.d.ts +18 -3
  297. package/ui/block/Label.js +13 -3
  298. package/ui/block/Label.tsx +18 -3
  299. package/ui/block/List.d.ts +30 -0
  300. package/ui/block/List.js +25 -0
  301. package/ui/block/List.tsx +32 -0
  302. package/ui/block/Panel.d.ts +13 -1
  303. package/ui/block/Panel.js +3 -0
  304. package/ui/block/Panel.tsx +13 -1
  305. package/ui/block/Paragraph.d.ts +23 -0
  306. package/ui/block/Paragraph.js +18 -0
  307. package/ui/block/Paragraph.tsx +24 -0
  308. package/ui/block/Preformatted.d.ts +20 -0
  309. package/ui/block/Preformatted.js +15 -0
  310. package/ui/block/Preformatted.tsx +21 -0
  311. package/ui/block/Prose.d.ts +14 -1
  312. package/ui/block/Prose.js +9 -1
  313. package/ui/block/Prose.tsx +14 -1
  314. package/ui/block/Section.d.ts +69 -6
  315. package/ui/block/Section.js +59 -6
  316. package/ui/block/Section.tsx +70 -6
  317. package/ui/block/Subheading.d.ts +20 -1
  318. package/ui/block/Subheading.js +15 -0
  319. package/ui/block/Subheading.tsx +21 -1
  320. package/ui/block/Table.d.ts +20 -0
  321. package/ui/block/Table.js +15 -0
  322. package/ui/block/Table.tsx +21 -0
  323. package/ui/block/Title.d.ts +20 -1
  324. package/ui/block/Title.js +15 -0
  325. package/ui/block/Title.tsx +21 -1
  326. package/ui/block/Video.d.ts +50 -3
  327. package/ui/block/Video.js +30 -3
  328. package/ui/block/Video.tsx +50 -3
  329. package/ui/dialog/Dialog.d.ts +28 -1
  330. package/ui/dialog/Dialog.js +18 -1
  331. package/ui/dialog/Dialog.tsx +28 -1
  332. package/ui/dialog/Dialogs.d.ts +53 -6
  333. package/ui/dialog/Dialogs.js +43 -6
  334. package/ui/dialog/Dialogs.tsx +53 -6
  335. package/ui/dialog/Modal.d.ts +13 -0
  336. package/ui/dialog/Modal.js +8 -0
  337. package/ui/dialog/Modal.tsx +13 -0
  338. package/ui/docs/DocumentationButtons.d.ts +5 -1
  339. package/ui/docs/DocumentationButtons.tsx +5 -1
  340. package/ui/docs/DocumentationCard.d.ts +6 -1
  341. package/ui/docs/DocumentationCard.js +6 -1
  342. package/ui/docs/DocumentationCard.tsx +6 -1
  343. package/ui/docs/DocumentationKind.d.ts +13 -1
  344. package/ui/docs/DocumentationKind.js +8 -0
  345. package/ui/docs/DocumentationKind.tsx +13 -1
  346. package/ui/docs/DocumentationPage.d.ts +6 -1
  347. package/ui/docs/DocumentationPage.js +6 -1
  348. package/ui/docs/DocumentationPage.tsx +6 -1
  349. package/ui/docs/DocumentationSignatures.d.ts +10 -1
  350. package/ui/docs/DocumentationSignatures.js +5 -0
  351. package/ui/docs/DocumentationSignatures.tsx +10 -1
  352. package/ui/form/ArrayInput.d.ts +15 -0
  353. package/ui/form/ArrayInput.tsx +15 -0
  354. package/ui/form/ArrayRadioInputs.d.ts +10 -0
  355. package/ui/form/ArrayRadioInputs.js +5 -0
  356. package/ui/form/ArrayRadioInputs.tsx +10 -0
  357. package/ui/form/Button.d.ts +19 -3
  358. package/ui/form/Button.js +14 -2
  359. package/ui/form/Button.tsx +19 -3
  360. package/ui/form/ButtonInput.d.ts +14 -1
  361. package/ui/form/ButtonInput.js +9 -1
  362. package/ui/form/ButtonInput.tsx +14 -1
  363. package/ui/form/ButtonInputPopover.d.ts +10 -0
  364. package/ui/form/ButtonInputPopover.js +5 -0
  365. package/ui/form/ButtonInputPopover.tsx +10 -0
  366. package/ui/form/ButtonPopover.d.ts +11 -1
  367. package/ui/form/ButtonPopover.js +6 -1
  368. package/ui/form/ButtonPopover.tsx +11 -1
  369. package/ui/form/CheckboxInput.d.ts +14 -1
  370. package/ui/form/CheckboxInput.js +9 -1
  371. package/ui/form/CheckboxInput.tsx +14 -1
  372. package/ui/form/ChoiceRadioInputs.d.ts +10 -0
  373. package/ui/form/ChoiceRadioInputs.tsx +10 -0
  374. package/ui/form/Clickable.d.ts +45 -5
  375. package/ui/form/Clickable.js +30 -3
  376. package/ui/form/Clickable.tsx +45 -5
  377. package/ui/form/DataInput.d.ts +14 -0
  378. package/ui/form/DataInput.tsx +14 -0
  379. package/ui/form/DateInput.d.ts +14 -0
  380. package/ui/form/DateInput.js +9 -0
  381. package/ui/form/DateInput.tsx +14 -0
  382. package/ui/form/DictionaryInput.d.ts +15 -0
  383. package/ui/form/DictionaryInput.tsx +15 -0
  384. package/ui/form/Field.d.ts +5 -0
  385. package/ui/form/Field.tsx +5 -0
  386. package/ui/form/FileInput.d.ts +14 -0
  387. package/ui/form/FileInput.js +9 -0
  388. package/ui/form/FileInput.tsx +14 -0
  389. package/ui/form/Form.d.ts +55 -6
  390. package/ui/form/Form.js +35 -3
  391. package/ui/form/Form.tsx +55 -6
  392. package/ui/form/FormContext.d.ts +24 -3
  393. package/ui/form/FormContext.js +5 -1
  394. package/ui/form/FormContext.tsx +24 -3
  395. package/ui/form/FormFields.d.ts +15 -2
  396. package/ui/form/FormFields.js +15 -2
  397. package/ui/form/FormFields.tsx +15 -2
  398. package/ui/form/FormFooter.d.ts +13 -3
  399. package/ui/form/FormFooter.js +8 -3
  400. package/ui/form/FormFooter.tsx +13 -3
  401. package/ui/form/FormInput.d.ts +21 -2
  402. package/ui/form/FormInput.js +16 -2
  403. package/ui/form/FormInput.tsx +21 -2
  404. package/ui/form/FormMessage.d.ts +8 -1
  405. package/ui/form/FormMessage.js +8 -1
  406. package/ui/form/FormMessage.tsx +8 -2
  407. package/ui/form/FormNotice.d.ts +8 -1
  408. package/ui/form/FormNotice.js +8 -1
  409. package/ui/form/FormNotice.tsx +8 -2
  410. package/ui/form/FormNotify.d.ts +8 -1
  411. package/ui/form/FormNotify.js +8 -1
  412. package/ui/form/FormNotify.tsx +8 -2
  413. package/ui/form/FormStore.d.ts +50 -6
  414. package/ui/form/FormStore.js +50 -6
  415. package/ui/form/FormStore.tsx +50 -6
  416. package/ui/form/Input.d.ts +65 -1
  417. package/ui/form/Input.js +60 -0
  418. package/ui/form/Input.tsx +77 -1
  419. package/ui/form/NumberInput.d.ts +14 -0
  420. package/ui/form/NumberInput.js +9 -0
  421. package/ui/form/NumberInput.tsx +14 -0
  422. package/ui/form/OutputInput.d.ts +13 -1
  423. package/ui/form/OutputInput.js +8 -1
  424. package/ui/form/OutputInput.tsx +13 -1
  425. package/ui/form/Popover.d.ts +18 -2
  426. package/ui/form/Popover.js +8 -2
  427. package/ui/form/Popover.tsx +18 -2
  428. package/ui/form/Progress.d.ts +26 -2
  429. package/ui/form/Progress.js +16 -2
  430. package/ui/form/Progress.tsx +26 -2
  431. package/ui/form/QueryInput.d.ts +14 -5
  432. package/ui/form/QueryInput.js +9 -5
  433. package/ui/form/QueryInput.tsx +14 -5
  434. package/ui/form/RadioInput.d.ts +14 -1
  435. package/ui/form/RadioInput.js +9 -1
  436. package/ui/form/RadioInput.tsx +14 -1
  437. package/ui/form/SchemaInput.d.ts +138 -7
  438. package/ui/form/SchemaInput.js +79 -4
  439. package/ui/form/SchemaInput.tsx +138 -7
  440. package/ui/form/SelectInput.d.ts +14 -0
  441. package/ui/form/SelectInput.tsx +14 -0
  442. package/ui/form/SubmitButton.d.ts +14 -1
  443. package/ui/form/SubmitButton.js +9 -1
  444. package/ui/form/SubmitButton.tsx +14 -1
  445. package/ui/form/TextInput.d.ts +15 -0
  446. package/ui/form/TextInput.js +10 -0
  447. package/ui/form/TextInput.tsx +15 -0
  448. package/ui/inline/Code.d.ts +29 -0
  449. package/ui/inline/Code.js +24 -0
  450. package/ui/inline/Code.tsx +31 -0
  451. package/ui/inline/Deleted.d.ts +23 -0
  452. package/ui/inline/Deleted.js +18 -0
  453. package/ui/inline/Deleted.tsx +24 -0
  454. package/ui/inline/Emphasis.d.ts +23 -0
  455. package/ui/inline/Emphasis.js +18 -0
  456. package/ui/inline/Emphasis.tsx +24 -0
  457. package/ui/inline/Inserted.d.ts +23 -0
  458. package/ui/inline/Inserted.js +18 -0
  459. package/ui/inline/Inserted.tsx +24 -0
  460. package/ui/inline/Link.d.ts +23 -0
  461. package/ui/inline/Link.js +18 -0
  462. package/ui/inline/Link.tsx +24 -0
  463. package/ui/inline/Mark.d.ts +23 -0
  464. package/ui/inline/Mark.js +18 -0
  465. package/ui/inline/Mark.tsx +24 -0
  466. package/ui/inline/Small.d.ts +23 -0
  467. package/ui/inline/Small.js +18 -0
  468. package/ui/inline/Small.tsx +24 -0
  469. package/ui/inline/Strong.d.ts +23 -0
  470. package/ui/inline/Strong.js +18 -0
  471. package/ui/inline/Strong.tsx +24 -0
  472. package/ui/inline/Subscript.d.ts +23 -0
  473. package/ui/inline/Subscript.js +18 -0
  474. package/ui/inline/Subscript.tsx +24 -0
  475. package/ui/inline/Superscript.d.ts +23 -0
  476. package/ui/inline/Superscript.js +18 -0
  477. package/ui/inline/Superscript.tsx +24 -0
  478. package/ui/inline/When.d.ts +42 -3
  479. package/ui/inline/When.js +27 -3
  480. package/ui/inline/When.tsx +42 -3
  481. package/ui/layout/CenteredLayout.d.ts +12 -1
  482. package/ui/layout/CenteredLayout.js +7 -1
  483. package/ui/layout/CenteredLayout.tsx +12 -1
  484. package/ui/layout/Layout.d.ts +12 -3
  485. package/ui/layout/Layout.js +12 -3
  486. package/ui/layout/Layout.ts +12 -3
  487. package/ui/layout/SidebarLayout.d.ts +12 -0
  488. package/ui/layout/SidebarLayout.js +7 -0
  489. package/ui/layout/SidebarLayout.tsx +12 -0
  490. package/ui/menu/Menu.d.ts +22 -0
  491. package/ui/menu/Menu.js +12 -0
  492. package/ui/menu/Menu.tsx +22 -0
  493. package/ui/misc/Catcher.d.ts +77 -5
  494. package/ui/misc/Catcher.js +47 -5
  495. package/ui/misc/Catcher.tsx +77 -5
  496. package/ui/misc/Loading.d.ts +20 -0
  497. package/ui/misc/Loading.js +15 -0
  498. package/ui/misc/Loading.tsx +20 -0
  499. package/ui/misc/Mapper.d.ts +13 -1
  500. package/ui/misc/Mapper.js +4 -0
  501. package/ui/misc/Mapper.tsx +13 -1
  502. package/ui/misc/Markup.d.ts +9 -1
  503. package/ui/misc/Markup.js +4 -0
  504. package/ui/misc/Markup.tsx +9 -1
  505. package/ui/misc/MetaContext.d.ts +24 -7
  506. package/ui/misc/MetaContext.js +19 -6
  507. package/ui/misc/MetaContext.tsx +24 -7
  508. package/ui/misc/StatusIcon.d.ts +16 -1
  509. package/ui/misc/StatusIcon.js +11 -1
  510. package/ui/misc/StatusIcon.tsx +16 -1
  511. package/ui/misc/Tag.d.ts +21 -0
  512. package/ui/misc/Tag.js +11 -0
  513. package/ui/misc/Tag.tsx +21 -0
  514. package/ui/notice/Message.d.ts +27 -1
  515. package/ui/notice/Message.js +22 -1
  516. package/ui/notice/Message.tsx +27 -1
  517. package/ui/notice/Notice.d.ts +24 -0
  518. package/ui/notice/Notice.js +19 -0
  519. package/ui/notice/Notice.tsx +24 -0
  520. package/ui/notice/NoticeStore.d.ts +30 -2
  521. package/ui/notice/NoticeStore.js +30 -2
  522. package/ui/notice/NoticeStore.ts +30 -2
  523. package/ui/notice/Notices.d.ts +11 -1
  524. package/ui/notice/Notices.js +6 -1
  525. package/ui/notice/Notices.tsx +11 -1
  526. package/ui/notice/NoticesStore.d.ts +23 -3
  527. package/ui/notice/NoticesStore.js +23 -3
  528. package/ui/notice/NoticesStore.ts +23 -3
  529. package/ui/page/HTML.d.ts +13 -2
  530. package/ui/page/HTML.js +8 -2
  531. package/ui/page/HTML.tsx +13 -2
  532. package/ui/page/Head.d.ts +5 -1
  533. package/ui/page/Head.js +5 -1
  534. package/ui/page/Head.tsx +5 -1
  535. package/ui/page/Page.d.ts +12 -1
  536. package/ui/page/Page.js +7 -1
  537. package/ui/page/Page.tsx +12 -1
  538. package/ui/router/Navigation.d.ts +11 -0
  539. package/ui/router/Navigation.js +6 -0
  540. package/ui/router/Navigation.tsx +11 -0
  541. package/ui/router/NavigationContext.d.ts +14 -2
  542. package/ui/router/NavigationContext.js +14 -2
  543. package/ui/router/NavigationContext.tsx +14 -2
  544. package/ui/router/NavigationStore.d.ts +29 -1
  545. package/ui/router/NavigationStore.js +29 -1
  546. package/ui/router/NavigationStore.tsx +29 -1
  547. package/ui/router/Router.d.ts +12 -1
  548. package/ui/router/Router.js +7 -1
  549. package/ui/router/Router.tsx +12 -1
  550. package/ui/router/Routes.d.ts +14 -4
  551. package/ui/router/Routes.tsx +14 -4
  552. package/ui/style/Color.d.ts +15 -2
  553. package/ui/style/Color.js +5 -0
  554. package/ui/style/Color.tsx +15 -2
  555. package/ui/style/Flex.d.ts +41 -4
  556. package/ui/style/Flex.js +26 -3
  557. package/ui/style/Flex.tsx +41 -4
  558. package/ui/style/Gap.d.ts +18 -3
  559. package/ui/style/Gap.js +8 -1
  560. package/ui/style/Gap.tsx +18 -3
  561. package/ui/style/Padding.d.ts +18 -3
  562. package/ui/style/Padding.js +8 -1
  563. package/ui/style/Padding.tsx +18 -3
  564. package/ui/style/Scroll.d.ts +36 -1
  565. package/ui/style/Scroll.js +26 -1
  566. package/ui/style/Scroll.tsx +37 -1
  567. package/ui/style/Space.d.ts +18 -3
  568. package/ui/style/Space.js +8 -1
  569. package/ui/style/Space.tsx +18 -3
  570. package/ui/style/Status.d.ts +23 -7
  571. package/ui/style/Status.js +13 -5
  572. package/ui/style/Status.tsx +23 -7
  573. package/ui/style/Tint.d.ts +7 -1
  574. package/ui/style/Tint.js +7 -1
  575. package/ui/style/Tint.tsx +7 -1
  576. package/ui/style/Typography.d.ts +38 -6
  577. package/ui/style/Typography.js +8 -0
  578. package/ui/style/Typography.tsx +38 -6
  579. package/ui/style/Width.d.ts +18 -1
  580. package/ui/style/Width.js +8 -0
  581. package/ui/style/Width.tsx +18 -1
  582. package/ui/transition/CollapseTransition.d.ts +13 -0
  583. package/ui/transition/CollapseTransition.js +8 -0
  584. package/ui/transition/CollapseTransition.tsx +13 -0
  585. package/ui/transition/FadeTransition.d.ts +13 -0
  586. package/ui/transition/FadeTransition.js +8 -0
  587. package/ui/transition/FadeTransition.tsx +13 -0
  588. package/ui/transition/HorizontalTransition.d.ts +13 -0
  589. package/ui/transition/HorizontalTransition.js +8 -0
  590. package/ui/transition/HorizontalTransition.tsx +13 -0
  591. package/ui/transition/Transition.d.ts +12 -4
  592. package/ui/transition/Transition.js +7 -3
  593. package/ui/transition/Transition.tsx +12 -4
  594. package/ui/transition/VerticalTransition.d.ts +13 -0
  595. package/ui/transition/VerticalTransition.js +8 -0
  596. package/ui/transition/VerticalTransition.tsx +13 -0
  597. package/ui/transition/util.d.ts +16 -6
  598. package/ui/transition/util.js +7 -1
  599. package/ui/transition/util.tsx +16 -6
  600. package/ui/tree/TreeApp.d.ts +11 -0
  601. package/ui/tree/TreeApp.js +6 -0
  602. package/ui/tree/TreeApp.tsx +11 -0
  603. package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
  604. package/ui/tree/TreeBreadcrumbs.js +6 -0
  605. package/ui/tree/TreeBreadcrumbs.tsx +11 -0
  606. package/ui/tree/TreeButton.d.ts +9 -1
  607. package/ui/tree/TreeButton.js +4 -0
  608. package/ui/tree/TreeButton.tsx +9 -1
  609. package/ui/tree/TreeCard.d.ts +8 -1
  610. package/ui/tree/TreeCard.js +8 -1
  611. package/ui/tree/TreeCard.tsx +8 -1
  612. package/ui/tree/TreeCards.d.ts +16 -1
  613. package/ui/tree/TreeCards.js +11 -1
  614. package/ui/tree/TreeCards.tsx +16 -1
  615. package/ui/tree/TreeContext.d.ts +18 -1
  616. package/ui/tree/TreeContext.js +18 -1
  617. package/ui/tree/TreeContext.tsx +18 -1
  618. package/ui/tree/TreeMenu.d.ts +28 -1
  619. package/ui/tree/TreeMenu.js +23 -1
  620. package/ui/tree/TreeMenu.tsx +28 -1
  621. package/ui/tree/TreePage.d.ts +6 -0
  622. package/ui/tree/TreePage.js +6 -0
  623. package/ui/tree/TreePage.tsx +6 -0
  624. package/ui/tree/TreeRouter.d.ts +17 -2
  625. package/ui/tree/TreeRouter.js +12 -2
  626. package/ui/tree/TreeRouter.tsx +17 -2
  627. package/ui/tree/TreeSidebar.d.ts +11 -0
  628. package/ui/tree/TreeSidebar.js +6 -0
  629. package/ui/tree/TreeSidebar.tsx +11 -0
  630. package/ui/util/context.d.ts +13 -1
  631. package/ui/util/context.ts +13 -1
  632. package/ui/util/css.d.ts +17 -4
  633. package/ui/util/css.js +5 -1
  634. package/ui/util/css.ts +17 -4
  635. package/ui/util/event.d.ts +9 -1
  636. package/ui/util/event.js +9 -1
  637. package/ui/util/event.ts +9 -1
  638. package/ui/util/focus.d.ts +24 -5
  639. package/ui/util/focus.js +24 -5
  640. package/ui/util/focus.ts +24 -5
  641. package/ui/util/meta.d.ts +113 -21
  642. package/ui/util/meta.js +73 -13
  643. package/ui/util/meta.ts +113 -21
  644. package/ui/util/notice.d.ts +98 -10
  645. package/ui/util/notice.js +93 -9
  646. package/ui/util/notice.ts +98 -10
  647. package/ui/util/props.d.ts +10 -2
  648. package/ui/util/props.ts +10 -2
  649. package/ui/util/refresh.d.ts +10 -1
  650. package/ui/util/refresh.js +10 -1
  651. package/ui/util/refresh.ts +10 -1
  652. package/ui/util/scroll.d.ts +20 -4
  653. package/ui/util/scroll.js +20 -4
  654. package/ui/util/scroll.ts +20 -4
  655. package/ui/util/state.d.ts +19 -5
  656. package/ui/util/state.js +19 -5
  657. package/ui/util/state.ts +19 -5
  658. package/util/ansi.d.ts +118 -0
  659. package/util/ansi.js +116 -0
  660. package/util/array.d.ts +349 -33
  661. package/util/array.js +284 -27
  662. package/util/async.d.ts +87 -9
  663. package/util/async.js +80 -8
  664. package/util/base64.d.ts +56 -6
  665. package/util/base64.js +56 -6
  666. package/util/boolean.d.ts +75 -10
  667. package/util/boolean.js +75 -10
  668. package/util/buffer.d.ts +26 -3
  669. package/util/buffer.js +21 -3
  670. package/util/bytes.d.ts +42 -4
  671. package/util/bytes.js +32 -2
  672. package/util/class.d.ts +59 -8
  673. package/util/class.js +44 -5
  674. package/util/color.d.ts +131 -13
  675. package/util/color.js +126 -12
  676. package/util/constants.d.ts +132 -19
  677. package/util/constants.js +132 -19
  678. package/util/crypto.d.ts +17 -1
  679. package/util/crypto.js +17 -1
  680. package/util/currency.d.ts +38 -4
  681. package/util/currency.js +33 -3
  682. package/util/data.d.ts +139 -24
  683. package/util/data.js +39 -5
  684. package/util/date.d.ts +152 -18
  685. package/util/date.js +147 -17
  686. package/util/debug.d.ts +112 -11
  687. package/util/debug.js +114 -11
  688. package/util/dictionary.d.ts +205 -24
  689. package/util/dictionary.js +162 -17
  690. package/util/diff.d.ts +22 -3
  691. package/util/diff.js +11 -1
  692. package/util/dispose.d.ts +74 -2
  693. package/util/dispose.js +74 -2
  694. package/util/duration.d.ts +278 -16
  695. package/util/duration.js +267 -15
  696. package/util/element.d.ts +59 -6
  697. package/util/element.js +32 -3
  698. package/util/entity.d.ts +39 -6
  699. package/util/entity.js +5 -1
  700. package/util/entry.d.ts +56 -9
  701. package/util/entry.js +32 -4
  702. package/util/env.d.ts +26 -4
  703. package/util/env.js +26 -4
  704. package/util/equal.d.ts +181 -17
  705. package/util/equal.js +181 -17
  706. package/util/error.d.ts +57 -5
  707. package/util/error.js +52 -4
  708. package/util/file.d.ts +30 -7
  709. package/util/file.js +25 -6
  710. package/util/filter.d.ts +36 -4
  711. package/util/filter.js +31 -3
  712. package/util/focus.d.ts +9 -1
  713. package/util/focus.js +9 -1
  714. package/util/format.d.ts +186 -22
  715. package/util/format.js +135 -14
  716. package/util/function.d.ts +66 -11
  717. package/util/function.js +31 -4
  718. package/util/geo.d.ts +60 -8
  719. package/util/geo.js +45 -5
  720. package/util/hash.d.ts +21 -2
  721. package/util/hash.js +21 -2
  722. package/util/http.d.ts +134 -19
  723. package/util/http.js +94 -11
  724. package/util/hydrate.d.ts +19 -2
  725. package/util/hydrate.js +12 -1
  726. package/util/item.d.ts +70 -11
  727. package/util/item.js +35 -4
  728. package/util/iterate.d.ts +109 -13
  729. package/util/iterate.js +86 -10
  730. package/util/jwt.d.ts +47 -13
  731. package/util/jwt.js +36 -12
  732. package/util/lazy.d.ts +9 -6
  733. package/util/link.d.ts +10 -3
  734. package/util/link.js +5 -2
  735. package/util/log.d.ts +26 -3
  736. package/util/log.js +26 -3
  737. package/util/map.d.ts +144 -19
  738. package/util/map.js +101 -11
  739. package/util/merge.d.ts +23 -1
  740. package/util/merge.js +6 -0
  741. package/util/null.d.ts +102 -13
  742. package/util/null.js +92 -11
  743. package/util/number.d.ts +125 -8
  744. package/util/number.js +120 -7
  745. package/util/object.d.ts +263 -31
  746. package/util/object.js +154 -17
  747. package/util/path.d.ts +91 -15
  748. package/util/path.js +60 -9
  749. package/util/query.d.ts +78 -9
  750. package/util/query.js +58 -6
  751. package/util/random.d.ts +67 -4
  752. package/util/random.js +67 -4
  753. package/util/regexp.d.ts +201 -24
  754. package/util/regexp.js +106 -11
  755. package/util/sequence.d.ts +66 -8
  756. package/util/sequence.js +52 -7
  757. package/util/serialise.d.ts +7 -1
  758. package/util/serialise.js +7 -1
  759. package/util/set.d.ts +103 -13
  760. package/util/set.js +83 -9
  761. package/util/sort.d.ts +32 -7
  762. package/util/sort.js +26 -6
  763. package/util/source.d.ts +28 -3
  764. package/util/source.js +22 -2
  765. package/util/start.d.ts +62 -5
  766. package/util/start.js +47 -2
  767. package/util/string.d.ts +209 -25
  768. package/util/string.js +188 -21
  769. package/util/template.d.ts +58 -9
  770. package/util/template.js +45 -6
  771. package/util/timeout.d.ts +35 -11
  772. package/util/timeout.js +35 -11
  773. package/util/transform.d.ts +87 -8
  774. package/util/transform.js +75 -7
  775. package/util/tree.d.ts +39 -6
  776. package/util/tree.js +3 -0
  777. package/util/types.d.ts +8 -2
  778. package/util/undefined.d.ts +47 -6
  779. package/util/undefined.js +47 -6
  780. package/util/units.d.ts +107 -12
  781. package/util/units.js +97 -12
  782. package/util/update.d.ts +36 -4
  783. package/util/update.js +24 -2
  784. package/util/uri.d.ts +138 -6
  785. package/util/uri.js +44 -3
  786. package/util/url.d.ts +152 -7
  787. package/util/url.js +136 -5
  788. package/util/uuid.d.ts +28 -3
  789. package/util/uuid.js +28 -3
  790. package/util/validate.d.ts +85 -20
  791. package/util/validate.js +61 -12
  792. package/util/xml.d.ts +9 -10
  793. package/util/xml.js +9 -10
@@ -1,6 +1,10 @@
1
1
  import { DataSchema, ITEM } from "../../schema/DataSchema.js";
2
2
  import { NumberSchema } from "../../schema/NumberSchema.js";
3
- /** Default identifier schema (integer). */
3
+ /**
4
+ * Default identifier schema (integer) used when a collection doesn't supply its own.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/ID
7
+ */
4
8
  export const ID = new NumberSchema({
5
9
  step: 1,
6
10
  min: Number.MIN_SAFE_INTEGER,
@@ -9,14 +13,44 @@ export const ID = new NumberSchema({
9
13
  one: "ID",
10
14
  title: "ID",
11
15
  });
12
- /** Declarative definition of a database collection/table. */
16
+ /**
17
+ * Declarative definition of a database collection/table.
18
+ *
19
+ * - Pairs a collection name with an identifier schema and a data schema, so providers can validate and address items.
20
+ * - Extends `DataSchema<T>`, so the collection itself validates an item's data, while `.item` validates the complete `id + data` item.
21
+ *
22
+ * @example
23
+ * const users = new Collection("users", ID, { name: STRING, age: NUMBER });
24
+ * users.validate({ name: "Dave", age: 40 }); // Validates item data.
25
+ *
26
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection
27
+ */
13
28
  export class Collection extends DataSchema {
14
- /** Collection name (used as the table/collection key). */
29
+ /**
30
+ * Collection name (used as the table/collection key).
31
+ *
32
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/name
33
+ */
15
34
  name;
16
- /** Schema for the identifier type. */
35
+ /**
36
+ * Schema for the identifier type.
37
+ *
38
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/id
39
+ */
17
40
  id;
18
- /** Schema for a complete item (id + data). */
41
+ /**
42
+ * Schema for a complete item (id + data).
43
+ *
44
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/item
45
+ */
19
46
  item;
47
+ /**
48
+ * Create a new `Collection`.
49
+ *
50
+ * @param name Collection name used as the table/collection key.
51
+ * @param id Schema for the identifier type.
52
+ * @param data Data schema, or the `Schemas` props used to construct one.
53
+ */
20
54
  constructor(name, id, data) {
21
55
  const dataSchema = data instanceof DataSchema ? data : new DataSchema({ props: data });
22
56
  super({ ...dataSchema, props: dataSchema.props });
@@ -24,11 +58,29 @@ export class Collection extends DataSchema {
24
58
  this.id = id;
25
59
  this.item = ITEM(id, dataSchema);
26
60
  }
61
+ /**
62
+ * Convert this collection to its string name.
63
+ *
64
+ * @returns The collection name.
65
+ * @example `${users}` // "users"
66
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/Collection/toString
67
+ */
27
68
  toString() {
28
69
  return this.name;
29
70
  }
30
71
  }
31
- /** Shortcut factory for creating a Collection. */
72
+ /**
73
+ * Create a `Collection` from a name, an identifier schema, and a data schema.
74
+ *
75
+ * *Factory for `Collection`.*
76
+ *
77
+ * @param name Collection name used as the table/collection key.
78
+ * @param id Schema for the identifier type.
79
+ * @param data Data schema, or the `Schemas` props used to construct one.
80
+ * @returns A new `Collection` instance.
81
+ * @example COLLECTION("users", ID, { name: STRING, age: NUMBER }) // Collection<"users", number, { name: string; age: number }>
82
+ * @see https://dhoulb.github.io/shelving/db/collection/Collection/COLLECTION
83
+ */
32
84
  export function COLLECTION(name, id, data) {
33
85
  return new Collection(name, id, data);
34
86
  }
@@ -1,8 +1,36 @@
1
1
  import type { Collections } from "../collection/Collection.js";
2
2
  import type { DBProvider } from "../provider/DBProvider.js";
3
- /** Base class for database schema migrators. */
3
+ /**
4
+ * Base class for database schema migrators that bring a provider's storage into line with a set of collection schemas.
5
+ *
6
+ * - Subclasses implement `migrate()` for a specific backend (e.g. SQL via `SQLMigrator`).
7
+ *
8
+ * @example
9
+ * class MyMigrator extends DBMigrator { async migrate(...collections) { ... } }
10
+ * await new MyMigrator(provider).migrate(users, posts);
11
+ * @see https://dhoulb.github.io/shelving/db/migrate/DBMigrator/DBMigrator
12
+ */
4
13
  export declare abstract class DBMigrator<T extends DBProvider = DBProvider> {
14
+ /**
15
+ * The database provider whose storage this migrator updates.
16
+ * @see https://dhoulb.github.io/shelving/db/migrate/DBMigrator/DBMigrator/provider
17
+ */
5
18
  readonly provider: T;
19
+ /**
20
+ * Create a migrator bound to a database provider.
21
+ *
22
+ * @param provider The database provider whose storage this migrator updates.
23
+ * @example new DBMigrator(provider)
24
+ */
6
25
  constructor(provider: T);
26
+ /**
27
+ * Bring the provider's storage into line with the given collection schemas.
28
+ *
29
+ * @param collections The collections whose schemas the storage should match.
30
+ * @returns Promise that resolves once migration has completed.
31
+ * @throws {UnimplementedError} If a schema feature can't be represented by the backend.
32
+ * @example await migrator.migrate(users, posts)
33
+ * @see https://dhoulb.github.io/shelving/db/migrate/DBMigrator/DBMigrator/migrate
34
+ */
7
35
  abstract migrate(...collections: Collections): Promise<void>;
8
36
  }
@@ -1,6 +1,25 @@
1
- /** Base class for database schema migrators. */
1
+ /**
2
+ * Base class for database schema migrators that bring a provider's storage into line with a set of collection schemas.
3
+ *
4
+ * - Subclasses implement `migrate()` for a specific backend (e.g. SQL via `SQLMigrator`).
5
+ *
6
+ * @example
7
+ * class MyMigrator extends DBMigrator { async migrate(...collections) { ... } }
8
+ * await new MyMigrator(provider).migrate(users, posts);
9
+ * @see https://dhoulb.github.io/shelving/db/migrate/DBMigrator/DBMigrator
10
+ */
2
11
  export class DBMigrator {
12
+ /**
13
+ * The database provider whose storage this migrator updates.
14
+ * @see https://dhoulb.github.io/shelving/db/migrate/DBMigrator/DBMigrator/provider
15
+ */
3
16
  provider;
17
+ /**
18
+ * Create a migrator bound to a database provider.
19
+ *
20
+ * @param provider The database provider whose storage this migrator updates.
21
+ * @example new DBMigrator(provider)
22
+ */
4
23
  constructor(provider) {
5
24
  this.provider = provider;
6
25
  }
@@ -13,7 +13,14 @@ type PostgreSQLColumnRow = {
13
13
  readonly type: string;
14
14
  readonly value: string | null;
15
15
  };
16
- /** PostgreSQL migrator using pg_catalog-style schema inspection. */
16
+ /**
17
+ * PostgreSQL migrator that inspects the live schema via `pg_catalog` tables to diff and migrate columns.
18
+ *
19
+ * @example
20
+ * const migrator = new PostgreSQLMigrator(provider);
21
+ * await migrator.migrate(users, posts);
22
+ * @see https://dhoulb.github.io/shelving/db/migrate/PostgreSQLMigrator/PostgreSQLMigrator
23
+ */
17
24
  export declare class PostgreSQLMigrator<T extends SQLProvider = SQLProvider> extends SQLMigrator<T> {
18
25
  protected getTables(): Promise<readonly string[]>;
19
26
  protected getTable(name: string): Promise<SQLTable | undefined>;
@@ -15,7 +15,14 @@ const INT4_MAX = 2147483647;
15
15
  const INT4_MIN = -2147483648;
16
16
  const COMPATIBLE_NUMBER_TYPES = ["integer", "bigint", "numeric", "int", "int4", "int8"];
17
17
  const COMPATIBLE_STRING_TYPES = ["character varying", "varchar", "text", "char", "character"];
18
- /** PostgreSQL migrator using pg_catalog-style schema inspection. */
18
+ /**
19
+ * PostgreSQL migrator that inspects the live schema via `pg_catalog` tables to diff and migrate columns.
20
+ *
21
+ * @example
22
+ * const migrator = new PostgreSQLMigrator(provider);
23
+ * await migrator.migrate(users, posts);
24
+ * @see https://dhoulb.github.io/shelving/db/migrate/PostgreSQLMigrator/PostgreSQLMigrator
25
+ */
19
26
  export class PostgreSQLMigrator extends SQLMigrator {
20
27
  async getTables() {
21
28
  const rows = await this.provider.exec `
@@ -3,29 +3,88 @@ import type { Data } from "../../util/data.js";
3
3
  import type { Collection, Collections } from "../collection/Collection.js";
4
4
  import type { SQLProvider } from "../provider/SQLProvider.js";
5
5
  import { DBMigrator } from "./DBMigrator.js";
6
- /** Column definition in a live SQL table. */
6
+ /**
7
+ * Column definition in a live SQL table, pairing a column name with its raw definition statement.
8
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLTableColumn
9
+ */
7
10
  export type SQLTableColumn = {
8
11
  readonly name: string;
9
12
  readonly statement: string;
10
13
  };
11
- /** Existing SQL table schema keyed by column name. */
14
+ /**
15
+ * Existing SQL table schema keyed by column name, as read back from the database.
16
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLTable
17
+ */
12
18
  export type SQLTable = {
13
19
  readonly columns: Readonly<Record<string, SQLTableColumn>>;
14
20
  readonly name: string;
15
21
  readonly sql?: string | undefined;
16
22
  };
17
- /** Generated SQL column mapped from a collection path. */
23
+ /**
24
+ * Generated SQL column mapped from a collection schema path, holding its column name, key, and JSON path.
25
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLColumn
26
+ */
18
27
  export type SQLColumn = {
19
28
  readonly column: string;
20
29
  readonly key: string;
21
30
  readonly path: string;
22
31
  };
23
- /** Shared SQL migration logic based on schema diffing. */
32
+ /**
33
+ * Shared SQL migration logic that diffs collection schemas against live tables to produce migration statements.
34
+ *
35
+ * - Subclasses implement backend-specific schema inspection and column definitions (e.g. SQLite, PostgreSQL).
36
+ *
37
+ * @example
38
+ * const migrator = new SQLiteMigrator(provider);
39
+ * await migrator.migrate(users, posts);
40
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator
41
+ */
24
42
  export declare abstract class SQLMigrator<T extends SQLProvider = SQLProvider> extends DBMigrator<T> {
43
+ /**
44
+ * Bring the provider's tables into line with the given collection schemas by running the generated migrations.
45
+ *
46
+ * @param collections The collections whose schemas the tables should match.
47
+ * @returns Promise that resolves once every migration has been executed.
48
+ * @throws {UnimplementedError} If a schema feature can't be represented as a SQL column.
49
+ * @example await migrator.migrate(users, posts)
50
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/migrate
51
+ */
25
52
  migrate(...collections: Collections<number>): Promise<void>;
53
+ /**
54
+ * Compute the SQL statements needed to bring the tables into line with the given collection schemas, without executing them.
55
+ *
56
+ * @param collections The collections whose schemas the tables should match.
57
+ * @returns Promise resolving to the ordered list of SQL migration statements.
58
+ * @example const sql = await migrator.getMigrations(users)
59
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getMigrations
60
+ */
26
61
  getMigrations(...collections: Collections<number>): Promise<readonly string[]>;
62
+ /**
63
+ * Build the `CREATE TABLE` statement for a collection, including its ID, data, and generated columns.
64
+ *
65
+ * @param collection The collection to create a table for.
66
+ * @returns The `CREATE TABLE` SQL statement.
67
+ * @example migrator.getCreateTableQuery(users) // CREATE TABLE "users" (...)
68
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getCreateTableQuery
69
+ */
27
70
  getCreateTableQuery<T extends Data>(collection: Collection<string, number, T>): string;
71
+ /**
72
+ * Get the full set of columns for a collection's table: the ID column, data column, and generated columns.
73
+ *
74
+ * @param collection The collection to get columns for.
75
+ * @returns The ordered list of table columns.
76
+ * @example migrator.getCreateTableColumns(users)
77
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getCreateTableColumns
78
+ */
28
79
  getCreateTableColumns<T extends Data>(collection: Collection<string, number, T>): readonly SQLTableColumn[];
80
+ /**
81
+ * Get the generated (computed) columns for a collection's table, derived from its schema's scalar properties.
82
+ *
83
+ * @param collection The collection to get generated columns for.
84
+ * @returns The list of generated table columns.
85
+ * @example migrator.getGeneratedTableColumns(users)
86
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getGeneratedTableColumns
87
+ */
29
88
  getGeneratedTableColumns<T extends Data>(collection: Collection<string, number, T>): readonly SQLTableColumn[];
30
89
  protected getColumnMigrations(tableName: string, from: SQLTableColumn | undefined, to: SQLTableColumn | undefined): readonly string[];
31
90
  protected getAlterColumnQueries(tableName: string, from: SQLTableColumn, to: SQLTableColumn): readonly string[];
@@ -9,12 +9,38 @@ import { NumberSchema } from "../../schema/NumberSchema.js";
9
9
  import { StringSchema } from "../../schema/StringSchema.js";
10
10
  import { ThroughSchema } from "../../schema/ThroughSchema.js";
11
11
  import { DBMigrator } from "./DBMigrator.js";
12
- /** Shared SQL migration logic based on schema diffing. */
12
+ /**
13
+ * Shared SQL migration logic that diffs collection schemas against live tables to produce migration statements.
14
+ *
15
+ * - Subclasses implement backend-specific schema inspection and column definitions (e.g. SQLite, PostgreSQL).
16
+ *
17
+ * @example
18
+ * const migrator = new SQLiteMigrator(provider);
19
+ * await migrator.migrate(users, posts);
20
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator
21
+ */
13
22
  export class SQLMigrator extends DBMigrator {
23
+ /**
24
+ * Bring the provider's tables into line with the given collection schemas by running the generated migrations.
25
+ *
26
+ * @param collections The collections whose schemas the tables should match.
27
+ * @returns Promise that resolves once every migration has been executed.
28
+ * @throws {UnimplementedError} If a schema feature can't be represented as a SQL column.
29
+ * @example await migrator.migrate(users, posts)
30
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/migrate
31
+ */
14
32
  async migrate(...collections) {
15
33
  for (const migration of await this.getMigrations(...collections))
16
34
  await this.provider.exec(_getTemplateStrings(migration));
17
35
  }
36
+ /**
37
+ * Compute the SQL statements needed to bring the tables into line with the given collection schemas, without executing them.
38
+ *
39
+ * @param collections The collections whose schemas the tables should match.
40
+ * @returns Promise resolving to the ordered list of SQL migration statements.
41
+ * @example const sql = await migrator.getMigrations(users)
42
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getMigrations
43
+ */
18
44
  async getMigrations(...collections) {
19
45
  const tables = await this.getTables();
20
46
  const existing = new Set(tables);
@@ -26,15 +52,39 @@ export class SQLMigrator extends DBMigrator {
26
52
  }
27
53
  return migrations;
28
54
  }
55
+ /**
56
+ * Build the `CREATE TABLE` statement for a collection, including its ID, data, and generated columns.
57
+ *
58
+ * @param collection The collection to create a table for.
59
+ * @returns The `CREATE TABLE` SQL statement.
60
+ * @example migrator.getCreateTableQuery(users) // CREATE TABLE "users" (...)
61
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getCreateTableQuery
62
+ */
29
63
  getCreateTableQuery(collection) {
30
64
  const suffix = this.getCreateTableSuffix(collection);
31
65
  return `CREATE TABLE ${this.quoteIdentifier(collection.name)} (\n${this.getCreateTableColumns(collection)
32
66
  .map(column => ` ${this.getTableColumnDefinition(column)}`)
33
67
  .join(",\n")}\n)${suffix};`;
34
68
  }
69
+ /**
70
+ * Get the full set of columns for a collection's table: the ID column, data column, and generated columns.
71
+ *
72
+ * @param collection The collection to get columns for.
73
+ * @returns The ordered list of table columns.
74
+ * @example migrator.getCreateTableColumns(users)
75
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getCreateTableColumns
76
+ */
35
77
  getCreateTableColumns(collection) {
36
78
  return [this.getIDColumn(collection), this.getDataColumn(), ...this.getGeneratedTableColumns(collection)];
37
79
  }
80
+ /**
81
+ * Get the generated (computed) columns for a collection's table, derived from its schema's scalar properties.
82
+ *
83
+ * @param collection The collection to get generated columns for.
84
+ * @returns The list of generated table columns.
85
+ * @example migrator.getGeneratedTableColumns(users)
86
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLMigrator/SQLMigrator/getGeneratedTableColumns
87
+ */
38
88
  getGeneratedTableColumns(collection) {
39
89
  return this.getGeneratedColumns(collection).map(column => this.getGeneratedColumn(column, collection));
40
90
  }
@@ -3,7 +3,14 @@ import type { Identifier } from "../../util/item.js";
3
3
  import type { Collection } from "../collection/Collection.js";
4
4
  import type { SQLProvider } from "../provider/SQLProvider.js";
5
5
  import { SQLMigrator, type SQLTable, type SQLTableColumn } from "./SQLMigrator.js";
6
- /** SQLite and D1 migrator using sqlite_master as the schema source of truth. */
6
+ /**
7
+ * SQLite (and Cloudflare D1) migrator that uses `sqlite_master` as the schema source of truth.
8
+ *
9
+ * @example
10
+ * const migrator = new SQLiteMigrator(provider);
11
+ * await migrator.migrate(users, posts);
12
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLiteMigrator/SQLiteMigrator
13
+ */
7
14
  export declare class SQLiteMigrator<T extends SQLProvider = SQLProvider> extends SQLMigrator<T> {
8
15
  protected getTables(): Promise<readonly string[]>;
9
16
  protected getTable(name: string): Promise<SQLTable | undefined>;
@@ -3,7 +3,14 @@ import { ChoiceSchema } from "../../schema/ChoiceSchema.js";
3
3
  import { DateSchema } from "../../schema/DateSchema.js";
4
4
  import { NumberSchema } from "../../schema/NumberSchema.js";
5
5
  import { SQLMigrator } from "./SQLMigrator.js";
6
- /** SQLite and D1 migrator using sqlite_master as the schema source of truth. */
6
+ /**
7
+ * SQLite (and Cloudflare D1) migrator that uses `sqlite_master` as the schema source of truth.
8
+ *
9
+ * @example
10
+ * const migrator = new SQLiteMigrator(provider);
11
+ * await migrator.migrate(users, posts);
12
+ * @see https://dhoulb.github.io/shelving/db/migrate/SQLiteMigrator/SQLiteMigrator
13
+ */
7
14
  export class SQLiteMigrator extends SQLMigrator {
8
15
  async getTables() {
9
16
  const rows = await this.provider.exec `
@@ -6,22 +6,156 @@ import type { Updates } from "../../util/update.js";
6
6
  import type { Collection } from "../collection/Collection.js";
7
7
  import { DBProvider } from "./DBProvider.js";
8
8
  import { MemoryDBProvider } from "./MemoryDBProvider.js";
9
- /** Keep a copy of asynchronous remote data in a local synchronous cache. */
9
+ /**
10
+ * Database provider that keeps a copy of asynchronous remote data in a local synchronous cache.
11
+ *
12
+ * - Wraps a `source` provider and mirrors every read and write into an in-memory `MemoryDBProvider`, so subsequent reads can be served synchronously and live subscriptions stay seeded.
13
+ * - Reads fetch from `source`, then refresh the cache; writes hit `source`, then mirror the change into the cache.
14
+ * - Discover the cache from a wrapping layer with `getSource(CacheDBProvider, provider)` to seed stores from `.memory`.
15
+ *
16
+ * @example
17
+ * const provider = new CacheDBProvider(new FirestoreProvider());
18
+ * await provider.getItem(users, 123); // Fetches from source, then caches in memory.
19
+ *
20
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider
21
+ */
10
22
  export declare class CacheDBProvider<I extends Identifier, T extends Data> extends DBProvider<I, T> implements Sourceable<DBProvider<I, T>> {
23
+ /**
24
+ * The wrapped source provider that data is fetched from and written to.
25
+ *
26
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/source
27
+ */
11
28
  readonly source: DBProvider<I, T>;
29
+ /**
30
+ * The in-memory provider holding the local synchronous cache of `source` data.
31
+ *
32
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/memory
33
+ */
12
34
  readonly memory: MemoryDBProvider<I, T>;
35
+ /**
36
+ * Create a new `CacheDBProvider` wrapping a source provider.
37
+ *
38
+ * @param source The provider to fetch from and write to.
39
+ * @param cache In-memory provider to use as the cache (a fresh `MemoryDBProvider` by default).
40
+ */
13
41
  constructor(source: DBProvider<I, T>, cache?: MemoryDBProvider<I, T>);
42
+ /**
43
+ * Get an item from `source` by its id, refreshing the cache, or `undefined` if it doesn't exist.
44
+ *
45
+ * @param collection Collection the item belongs to.
46
+ * @param id Identifier of the item to get.
47
+ * @returns The item, or `undefined` if no item exists with that id.
48
+ * @example await provider.getItem(users, 123) // Item or undefined.
49
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/getItem
50
+ */
14
51
  getItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II): Promise<OptionalItem<II, TT>>;
52
+ /**
53
+ * Subscribe to live changes for a single item, mirroring each emission into the cache.
54
+ *
55
+ * @param collection Collection the item belongs to.
56
+ * @param id Identifier of the item to subscribe to.
57
+ * @returns Async sequence yielding the item (or `undefined`) on every change.
58
+ * @example for await (const item of provider.getItemSequence(users, 123)) console.log(item);
59
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/getItemSequence
60
+ */
15
61
  getItemSequence<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II): OptionalItemSequence<II, TT>;
62
+ /**
63
+ * Add a new item to `source` and mirror it into the cache.
64
+ *
65
+ * @param collection Collection to add the item to.
66
+ * @param data Data for the new item.
67
+ * @returns The generated identifier for the new item.
68
+ * @example await provider.addItem(users, { name: "Dave" }) // 123
69
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/addItem
70
+ */
16
71
  addItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, data: TT): Promise<II>;
72
+ /**
73
+ * Set (insert or overwrite) an item in `source` and mirror it into the cache.
74
+ *
75
+ * @param collection Collection the item belongs to.
76
+ * @param id Identifier of the item to set.
77
+ * @param data Full data to store for the item.
78
+ * @example await provider.setItem(users, 123, { name: "Dave" });
79
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/setItem
80
+ */
17
81
  setItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II, data: TT): Promise<void>;
82
+ /**
83
+ * Apply partial updates to an item in `source` and mirror them into the cache.
84
+ *
85
+ * @param collection Collection the item belongs to.
86
+ * @param id Identifier of the item to update.
87
+ * @param updates Updates to apply to the item.
88
+ * @example await provider.updateItem(users, 123, { name: "Dave" });
89
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/updateItem
90
+ */
18
91
  updateItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II, updates: Updates<Item<II, TT>>): Promise<void>;
92
+ /**
93
+ * Delete an item from `source` and remove it from the cache.
94
+ *
95
+ * @param collection Collection the item belongs to.
96
+ * @param id Identifier of the item to delete.
97
+ * @example await provider.deleteItem(users, 123);
98
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/deleteItem
99
+ */
19
100
  deleteItem<II extends I, TT extends T>(collection: Collection<string, II, TT>, id: II): Promise<void>;
101
+ /**
102
+ * Count the items in `source` matching an optional query (not cached).
103
+ *
104
+ * @param collection Collection to count items in.
105
+ * @param query Query to filter the counted items (counts all items when omitted).
106
+ * @returns The number of matching items.
107
+ * @example await provider.countQuery(users, { age: 40 }) // 7
108
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/countQuery
109
+ */
20
110
  countQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query?: Query<Item<II, TT>>): Promise<number>;
111
+ /**
112
+ * Get the items in `source` matching an optional query, refreshing the cache.
113
+ *
114
+ * @param collection Collection to query.
115
+ * @param query Query to filter, sort, and limit the items (returns all items when omitted).
116
+ * @returns An array of matching items.
117
+ * @example await provider.getQuery(users, { age: 40, $order: "name" }) // Items.
118
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/getQuery
119
+ */
21
120
  getQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query?: Query<Item<II, TT>>): Promise<Items<II, TT>>;
121
+ /**
122
+ * Subscribe to live changes for a query, mirroring each emission into the cache.
123
+ *
124
+ * @param collection Collection to query.
125
+ * @param query Query to filter, sort, and limit the items.
126
+ * @returns Async sequence yielding the matching items on every change.
127
+ * @example for await (const items of provider.getQuerySequence(users, { age: 40 })) console.log(items);
128
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/getQuerySequence
129
+ */
22
130
  getQuerySequence<II extends I, TT extends T>(collection: Collection<string, II, TT>, query?: Query<Item<II, TT>>): ItemsSequence<II, TT>;
131
+ /**
132
+ * Set (overwrite) every item in `source` matching a query and mirror the change into the cache.
133
+ *
134
+ * @param collection Collection to write to.
135
+ * @param query Query selecting the items to set.
136
+ * @param data Full data to store for each matching item.
137
+ * @example await provider.setQuery(users, { age: 40 }, { active: true });
138
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/setQuery
139
+ */
23
140
  setQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query: Query<Item<II, TT>>, data: TT): Promise<void>;
141
+ /**
142
+ * Apply partial updates to every item in `source` matching a query and mirror them into the cache.
143
+ *
144
+ * @param collection Collection to write to.
145
+ * @param query Query selecting the items to update.
146
+ * @param updates Updates to apply to each matching item.
147
+ * @example await provider.updateQuery(users, { age: 40 }, { active: true });
148
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/updateQuery
149
+ */
24
150
  updateQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query: Query<Item<II, TT>>, updates: Updates<TT>): Promise<void>;
151
+ /**
152
+ * Delete every item in `source` matching a query and remove them from the cache.
153
+ *
154
+ * @param collection Collection to delete from.
155
+ * @param query Query selecting the items to delete.
156
+ * @example await provider.deleteQuery(users, { active: false });
157
+ * @see https://dhoulb.github.io/shelving/db/provider/CacheDBProvider/CacheDBProvider/deleteQuery
158
+ */
25
159
  deleteQuery<II extends I, TT extends T>(collection: Collection<string, II, TT>, query: Query<Item<II, TT>>): Promise<void>;
26
160
  [Symbol.asyncDispose](): Promise<void>;
27
161
  }