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
@@ -14,8 +14,29 @@ import { extractMarkdownProps } from "./MarkupExtractor.js";
14
14
  * - Members declared with the `override` or `declare` modifier are skipped — the base class already documents overrides, and `declare` members are ambient type-only re-declarations rather than new API.
15
15
  * - Keys are the raw declared `name` (case-preserving) so case-distinct exports like `Collection` and `COLLECTION` stay separate.
16
16
  * - The file element itself has no `title` — a TS source file has no confident title source; renderers fall back to `name`.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const element = new TypescriptExtractor().extractProps("string.ts", sourceText);
21
+ * ```
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/extract/TypescriptExtractor
17
24
  */
18
25
  export class TypescriptExtractor extends FileExtractor {
26
+ /**
27
+ * Parse a TypeScript source file into the props of a `tree-element`.
28
+ *
29
+ * @param name Filename of the source (used as the source file name and the element `name`).
30
+ * @param text Full TypeScript source text to parse.
31
+ * @returns Partial `tree-element` props with `name`, `description`, `content`, and `children`.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const props = new TypescriptExtractor().extractProps("string.ts", sourceText);
36
+ * ```
37
+ *
38
+ * @see https://dhoulb.github.io/shelving/extract/TypescriptExtractor/extractProps
39
+ */
19
40
  extractProps(name, text) {
20
41
  const source = ts.createSourceFile(name, text, ts.ScriptTarget.Latest, true);
21
42
  const content = _getFileDocComment(source);
@@ -158,7 +179,7 @@ function _getHeritage(statement, source) {
158
179
  }
159
180
  /**
160
181
  * Combine the JSDoc leading-description text and any unhandled `@rule` blocks into a single markup content string.
161
- * - Unhandled rules (anything not `@param`/`@returns`/`@throws`/`@example`) are appended after the description, separated by blank lines, with their `@name` preserved.
182
+ * - Unhandled rules (anything not `@param`/`@returns`/`@throws`/`@example`/`@see`) are appended after the description, separated by blank lines, with their `@name` preserved.
162
183
  * - Returns `undefined` if both are empty.
163
184
  */
164
185
  function _buildJSDocContent(description, unhandled) {
@@ -419,8 +440,12 @@ function _getClassMembers(statement, source, className) {
419
440
  }
420
441
  return members.length ? members : undefined;
421
442
  }
422
- /** `@rule` names handled by dedicated parsers — everything else is appended to `unhandled` as raw markup. */
423
- const _HANDLED_RULES = new Set(["param", "params", "return", "returns", "throw", "throws", "example", "examples"]);
443
+ /**
444
+ * `@rule` names handled (parsed or deliberately discarded) everything else is appended to `unhandled` as raw markup.
445
+ * - `@see` is recognised here purely to strip it: it's a VS Code hover affordance (a link back to the docs site) and must
446
+ * never leak into the rendered page content. It has no dedicated parser; it's simply discarded from the `unhandled` bucket.
447
+ */
448
+ const _HANDLED_RULES = new Set(["param", "params", "return", "returns", "throw", "throws", "example", "examples", "see"]);
424
449
  /** Extract JSDoc from a node. */
425
450
  function _getJSDoc(node, source) {
426
451
  const ranges = ts.getLeadingCommentRanges(source.text, node.pos);
@@ -6,13 +6,26 @@ import type { Item, Items, ItemsSequence, OptionalItem, OptionalItemSequence } f
6
6
  import { type Query } from "../../util/query.js";
7
7
  import type { Updates } from "../../util/update.js";
8
8
  /**
9
- * Firestore client database provider.
10
- * - Works with the Firebase JS SDK.
11
- * - Supports offline mode.
12
- * - Supports realtime subscriptions.
9
+ * Cloud Firestore database provider backed by the full Firebase JS SDK, implementing the `DBProvider` abstraction.
10
+ *
11
+ * - Works with the Firebase JS SDK via `firebase/firestore`.
12
+ * - Supports offline mode (local cache and write queueing).
13
+ * - Supports realtime subscriptions through Firestore `onSnapshot` listeners.
14
+ *
15
+ * @example
16
+ * import { getFirestore } from "firebase/firestore";
17
+ * const provider = new FirestoreClientProvider(getFirestore());
18
+ *
19
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider
13
20
  */
14
21
  export declare class FirestoreClientProvider<I extends string = string, T extends Data = Data> extends DBProvider<I, T> {
15
22
  private readonly _firestore;
23
+ /**
24
+ * Create a provider wrapping a Firebase `Firestore` instance.
25
+ *
26
+ * @param firestore The `Firestore` instance to read and write through.
27
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider
28
+ */
16
29
  constructor(firestore: Firestore);
17
30
  /** Get a Firestore CollectionReference for a given collection. */
18
31
  private _collection;
@@ -20,16 +33,128 @@ export declare class FirestoreClientProvider<I extends string = string, T extend
20
33
  private _doc;
21
34
  /** Get a Firestore QueryReference for a given query. */
22
35
  private _query;
36
+ /**
37
+ * Read a single item by ID from its Firestore document.
38
+ *
39
+ * @param c The collection the item belongs to.
40
+ * @param id The ID of the item to read.
41
+ * @returns Promise resolving to the item, or `undefined` if the document does not exist.
42
+ * @example await provider.getItem(users, "abc123")
43
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getItem
44
+ */
23
45
  getItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): Promise<OptionalItem<II, TT>>;
46
+ /**
47
+ * Subscribe to realtime changes to a single item via a Firestore `onSnapshot` listener.
48
+ *
49
+ * @param c The collection the item belongs to.
50
+ * @param id The ID of the item to subscribe to.
51
+ * @returns An async sequence yielding the item (or `undefined` when absent) on every change.
52
+ * @example for await (const item of provider.getItemSequence(users, "abc123")) console.log(item)
53
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getItemSequence
54
+ */
24
55
  getItemSequence<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): OptionalItemSequence<II, TT>;
56
+ /**
57
+ * Add an item to a collection, letting Firestore generate its document ID.
58
+ *
59
+ * @param c The collection to add the item to.
60
+ * @param data The data for the new item.
61
+ * @returns Promise resolving to the generated ID of the new item.
62
+ * @example const id = await provider.addItem(users, { name: "Dave" })
63
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/addItem
64
+ */
25
65
  addItem<II extends I, TT extends T>(c: Collection<string, II, TT>, data: TT): Promise<II>;
66
+ /**
67
+ * Write an item by ID, overwriting any existing document.
68
+ *
69
+ * @param c The collection the item belongs to.
70
+ * @param id The ID of the item to write.
71
+ * @param data The data to store for the item.
72
+ * @returns Promise resolving once the write completes.
73
+ * @example await provider.setItem(users, "abc123", { name: "Dave" })
74
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/setItem
75
+ */
26
76
  setItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II, data: TT): Promise<void>;
77
+ /**
78
+ * Apply partial updates to a single item, translating them into Firestore `FieldValue` operations.
79
+ *
80
+ * @param c The collection the item belongs to.
81
+ * @param id The ID of the item to update.
82
+ * @param updates The updates to apply to the item.
83
+ * @returns Promise resolving once the update completes.
84
+ * @example await provider.updateItem(users, "abc123", { name: "Dave" })
85
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/updateItem
86
+ */
27
87
  updateItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II, updates: Updates<Item<II, TT>>): Promise<void>;
88
+ /**
89
+ * Delete a single item by ID from its collection.
90
+ *
91
+ * @param c The collection the item belongs to.
92
+ * @param id The ID of the item to delete.
93
+ * @returns Promise resolving once the deletion completes.
94
+ * @example await provider.deleteItem(users, "abc123")
95
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/deleteItem
96
+ */
28
97
  deleteItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): Promise<void>;
98
+ /**
99
+ * Count the items matching a query using Firestore's server-side aggregation.
100
+ *
101
+ * @param c The collection to query.
102
+ * @param q The query selecting which items to count; counts the whole collection when omitted.
103
+ * @returns Promise resolving to the number of matching items.
104
+ * @example const total = await provider.countQuery(users)
105
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/countQuery
106
+ */
29
107
  countQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): Promise<number>;
108
+ /**
109
+ * Read all items matching a query.
110
+ *
111
+ * @param c The collection to query.
112
+ * @param q The query selecting which items to read; reads the whole collection when omitted.
113
+ * @returns Promise resolving to the array of matching items.
114
+ * @example const items = await provider.getQuery(users, { "name": "Dave" })
115
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getQuery
116
+ */
30
117
  getQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): Promise<Items<II, TT>>;
118
+ /**
119
+ * Subscribe to realtime changes to a query via a Firestore `onSnapshot` listener.
120
+ *
121
+ * @param c The collection to query.
122
+ * @param q The query selecting which items to subscribe to; subscribes to the whole collection when omitted.
123
+ * @returns An async sequence yielding the matching items on every change.
124
+ * @example for await (const items of provider.getQuerySequence(users)) console.log(items)
125
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getQuerySequence
126
+ */
31
127
  getQuerySequence<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): ItemsSequence<II, TT>;
128
+ /**
129
+ * Write the same data to every item matching a query, one `setDoc` per matching document.
130
+ *
131
+ * @param c The collection to query.
132
+ * @param q The query selecting which items to write.
133
+ * @param data The data to write to each matching item.
134
+ * @returns Promise resolving once all writes complete.
135
+ * @example await provider.setQuery(users, { "name": "Dave" }, { active: false })
136
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/setQuery
137
+ */
32
138
  setQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>, data: TT): Promise<void>;
139
+ /**
140
+ * Apply the same partial updates to every item matching a query, one `updateDoc` per matching document.
141
+ *
142
+ * @param c The collection to query.
143
+ * @param q The query selecting which items to update.
144
+ * @param updates The updates to apply to each matching item.
145
+ * @returns Promise resolving once all updates complete.
146
+ * @example await provider.updateQuery(users, { "active": true }, { name: "Dave" })
147
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/updateQuery
148
+ */
33
149
  updateQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>, updates: Updates<TT>): Promise<void>;
150
+ /**
151
+ * Delete every item matching a query, one `deleteDoc` per matching document.
152
+ *
153
+ * @param c The collection to query.
154
+ * @param q The query selecting which items to delete.
155
+ * @returns Promise resolving once all deletions complete.
156
+ * @example await provider.deleteQuery(users, { "active": false })
157
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/deleteQuery
158
+ */
34
159
  deleteQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>): Promise<void>;
35
160
  }
@@ -63,13 +63,26 @@ function _getFieldValue({ key, action, value }) {
63
63
  return action; // Never happens.
64
64
  }
65
65
  /**
66
- * Firestore client database provider.
67
- * - Works with the Firebase JS SDK.
68
- * - Supports offline mode.
69
- * - Supports realtime subscriptions.
66
+ * Cloud Firestore database provider backed by the full Firebase JS SDK, implementing the `DBProvider` abstraction.
67
+ *
68
+ * - Works with the Firebase JS SDK via `firebase/firestore`.
69
+ * - Supports offline mode (local cache and write queueing).
70
+ * - Supports realtime subscriptions through Firestore `onSnapshot` listeners.
71
+ *
72
+ * @example
73
+ * import { getFirestore } from "firebase/firestore";
74
+ * const provider = new FirestoreClientProvider(getFirestore());
75
+ *
76
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider
70
77
  */
71
78
  export class FirestoreClientProvider extends DBProvider {
72
79
  _firestore;
80
+ /**
81
+ * Create a provider wrapping a Firebase `Firestore` instance.
82
+ *
83
+ * @param firestore The `Firestore` instance to read and write through.
84
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider
85
+ */
73
86
  constructor(firestore) {
74
87
  super();
75
88
  this._firestore = firestore;
@@ -86,47 +99,159 @@ export class FirestoreClientProvider extends DBProvider {
86
99
  _query(c, q) {
87
100
  return q ? query(this._collection(c), ..._getConstraints(q)) : this._collection(c);
88
101
  }
102
+ /**
103
+ * Read a single item by ID from its Firestore document.
104
+ *
105
+ * @param c The collection the item belongs to.
106
+ * @param id The ID of the item to read.
107
+ * @returns Promise resolving to the item, or `undefined` if the document does not exist.
108
+ * @example await provider.getItem(users, "abc123")
109
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getItem
110
+ */
89
111
  async getItem(c, id) {
90
112
  const snapshot = await getDoc(this._doc(c, id));
91
113
  return _getOptionalItem(snapshot);
92
114
  }
115
+ /**
116
+ * Subscribe to realtime changes to a single item via a Firestore `onSnapshot` listener.
117
+ *
118
+ * @param c The collection the item belongs to.
119
+ * @param id The ID of the item to subscribe to.
120
+ * @returns An async sequence yielding the item (or `undefined` when absent) on every change.
121
+ * @example for await (const item of provider.getItemSequence(users, "abc123")) console.log(item)
122
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getItemSequence
123
+ */
93
124
  getItemSequence(c, id) {
94
125
  const sequence = new DeferredSequence();
95
126
  return new LazySequence(sequence, () => onSnapshot(this._doc(c, id), snapshot => sequence.resolve(_getOptionalItem(snapshot)), reason => sequence.reject(reason)));
96
127
  }
128
+ /**
129
+ * Add an item to a collection, letting Firestore generate its document ID.
130
+ *
131
+ * @param c The collection to add the item to.
132
+ * @param data The data for the new item.
133
+ * @returns Promise resolving to the generated ID of the new item.
134
+ * @example const id = await provider.addItem(users, { name: "Dave" })
135
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/addItem
136
+ */
97
137
  async addItem(c, data) {
98
138
  const reference = await addDoc(this._collection(c), data);
99
139
  return reference.id; // `as II` needed: Firestore returns string, not II.
100
140
  }
141
+ /**
142
+ * Write an item by ID, overwriting any existing document.
143
+ *
144
+ * @param c The collection the item belongs to.
145
+ * @param id The ID of the item to write.
146
+ * @param data The data to store for the item.
147
+ * @returns Promise resolving once the write completes.
148
+ * @example await provider.setItem(users, "abc123", { name: "Dave" })
149
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/setItem
150
+ */
101
151
  async setItem(c, id, data) {
102
152
  await setDoc(this._doc(c, id), data);
103
153
  }
154
+ /**
155
+ * Apply partial updates to a single item, translating them into Firestore `FieldValue` operations.
156
+ *
157
+ * @param c The collection the item belongs to.
158
+ * @param id The ID of the item to update.
159
+ * @param updates The updates to apply to the item.
160
+ * @returns Promise resolving once the update completes.
161
+ * @example await provider.updateItem(users, "abc123", { name: "Dave" })
162
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/updateItem
163
+ */
104
164
  async updateItem(c, id, updates) {
105
165
  await updateDoc(this._doc(c, id), _getFieldValues(updates));
106
166
  }
167
+ /**
168
+ * Delete a single item by ID from its collection.
169
+ *
170
+ * @param c The collection the item belongs to.
171
+ * @param id The ID of the item to delete.
172
+ * @returns Promise resolving once the deletion completes.
173
+ * @example await provider.deleteItem(users, "abc123")
174
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/deleteItem
175
+ */
107
176
  async deleteItem(c, id) {
108
177
  await deleteDoc(this._doc(c, id));
109
178
  }
179
+ /**
180
+ * Count the items matching a query using Firestore's server-side aggregation.
181
+ *
182
+ * @param c The collection to query.
183
+ * @param q The query selecting which items to count; counts the whole collection when omitted.
184
+ * @returns Promise resolving to the number of matching items.
185
+ * @example const total = await provider.countQuery(users)
186
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/countQuery
187
+ */
110
188
  async countQuery(c, q) {
111
189
  const snapshot = await getCountFromServer(this._query(c, q));
112
190
  return snapshot.data().count;
113
191
  }
192
+ /**
193
+ * Read all items matching a query.
194
+ *
195
+ * @param c The collection to query.
196
+ * @param q The query selecting which items to read; reads the whole collection when omitted.
197
+ * @returns Promise resolving to the array of matching items.
198
+ * @example const items = await provider.getQuery(users, { "name": "Dave" })
199
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getQuery
200
+ */
114
201
  async getQuery(c, q) {
115
202
  return _getItems(await getDocs(this._query(c, q)));
116
203
  }
204
+ /**
205
+ * Subscribe to realtime changes to a query via a Firestore `onSnapshot` listener.
206
+ *
207
+ * @param c The collection to query.
208
+ * @param q The query selecting which items to subscribe to; subscribes to the whole collection when omitted.
209
+ * @returns An async sequence yielding the matching items on every change.
210
+ * @example for await (const items of provider.getQuerySequence(users)) console.log(items)
211
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/getQuerySequence
212
+ */
117
213
  getQuerySequence(c, q) {
118
214
  const sequence = new DeferredSequence();
119
215
  return new LazySequence(sequence, () => onSnapshot(this._query(c, q), snapshot => sequence.resolve(_getItems(snapshot)), reason => sequence.reject(reason)));
120
216
  }
217
+ /**
218
+ * Write the same data to every item matching a query, one `setDoc` per matching document.
219
+ *
220
+ * @param c The collection to query.
221
+ * @param q The query selecting which items to write.
222
+ * @param data The data to write to each matching item.
223
+ * @returns Promise resolving once all writes complete.
224
+ * @example await provider.setQuery(users, { "name": "Dave" }, { active: false })
225
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/setQuery
226
+ */
121
227
  async setQuery(c, q, data) {
122
228
  const snapshot = await getDocs(this._query(c, q));
123
229
  await Promise.all(snapshot.docs.map(s => setDoc(s.ref, data)));
124
230
  }
231
+ /**
232
+ * Apply the same partial updates to every item matching a query, one `updateDoc` per matching document.
233
+ *
234
+ * @param c The collection to query.
235
+ * @param q The query selecting which items to update.
236
+ * @param updates The updates to apply to each matching item.
237
+ * @returns Promise resolving once all updates complete.
238
+ * @example await provider.updateQuery(users, { "active": true }, { name: "Dave" })
239
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/updateQuery
240
+ */
125
241
  async updateQuery(c, q, updates) {
126
242
  const snapshot = await getDocs(this._query(c, q));
127
243
  const fieldValues = _getFieldValues(updates);
128
244
  await Promise.all(snapshot.docs.map(s => updateDoc(s.ref, fieldValues)));
129
245
  }
246
+ /**
247
+ * Delete every item matching a query, one `deleteDoc` per matching document.
248
+ *
249
+ * @param c The collection to query.
250
+ * @param q The query selecting which items to delete.
251
+ * @returns Promise resolving once all deletions complete.
252
+ * @example await provider.deleteQuery(users, { "active": false })
253
+ * @see https://dhoulb.github.io/shelving/firestore/client/FirestoreClientProvider/FirestoreClientProvider/deleteQuery
254
+ */
130
255
  async deleteQuery(c, q) {
131
256
  const snapshot = await getDocs(this._query(c, q));
132
257
  await Promise.all(snapshot.docs.map(s => deleteDoc(s.ref)));
@@ -6,13 +6,26 @@ import type { Item, Items, ItemsSequence, OptionalItem, OptionalItemSequence } f
6
6
  import { type Query } from "../../util/query.js";
7
7
  import type { Updates } from "../../util/update.js";
8
8
  /**
9
- * Firestore Lite client database provider.
10
- * - Works with the Firebase JS SDK.
9
+ * Cloud Firestore database provider backed by the Firebase Lite SDK, implementing the `DBProvider` abstraction.
10
+ *
11
+ * - Works with the Firebase JS SDK via `firebase/firestore/lite`, which keeps bundle size small.
11
12
  * - Does not support offline mode.
12
- * - Does not support realtime subscriptions.
13
+ * - Does not support realtime subscriptions: `getItemSequence()` and `getQuerySequence()` throw `UnimplementedError`.
14
+ *
15
+ * @example
16
+ * import { getFirestore } from "firebase/firestore/lite";
17
+ * const provider = new FirestoreLiteProvider(getFirestore());
18
+ *
19
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider
13
20
  */
14
21
  export declare class FirestoreLiteProvider<I extends string = string, T extends Data = Data> extends DBProvider<I, T> {
15
22
  private readonly _firestore;
23
+ /**
24
+ * Create a provider wrapping a Firebase Lite `Firestore` instance.
25
+ *
26
+ * @param firestore The `Firestore` instance to read and write through.
27
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider
28
+ */
16
29
  constructor(firestore: Firestore);
17
30
  /** Get a Firestore CollectionReference for a given collection. */
18
31
  private _collection;
@@ -20,16 +33,128 @@ export declare class FirestoreLiteProvider<I extends string = string, T extends
20
33
  private _doc;
21
34
  /** Get a Firestore QueryReference for a given query. */
22
35
  private _query;
36
+ /**
37
+ * Read a single item by ID from its Firestore document.
38
+ *
39
+ * @param c The collection the item belongs to.
40
+ * @param id The ID of the item to read.
41
+ * @returns Promise resolving to the item, or `undefined` if the document does not exist.
42
+ * @example await provider.getItem(users, "abc123")
43
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/getItem
44
+ */
23
45
  getItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): Promise<OptionalItem<II, TT>>;
46
+ /**
47
+ * Not supported — the Firebase Lite SDK has no realtime listeners.
48
+ *
49
+ * @param _c The collection the item belongs to.
50
+ * @param _id The ID of the item to subscribe to.
51
+ * @returns Never returns normally.
52
+ * @throws {UnimplementedError} Always, because Firestore Lite does not support realtime subscriptions.
53
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/getItemSequence
54
+ */
24
55
  getItemSequence<II extends I, TT extends T>(_c: Collection<string, II, TT>, _id: II): OptionalItemSequence<II, TT>;
56
+ /**
57
+ * Add an item to a collection, letting Firestore generate its document ID.
58
+ *
59
+ * @param c The collection to add the item to.
60
+ * @param data The data for the new item.
61
+ * @returns Promise resolving to the generated ID of the new item.
62
+ * @example const id = await provider.addItem(users, { name: "Dave" })
63
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/addItem
64
+ */
25
65
  addItem<II extends I, TT extends T>(c: Collection<string, II, TT>, data: TT): Promise<II>;
66
+ /**
67
+ * Write an item by ID, overwriting any existing document.
68
+ *
69
+ * @param c The collection the item belongs to.
70
+ * @param id The ID of the item to write.
71
+ * @param data The data to store for the item.
72
+ * @returns Promise resolving once the write completes.
73
+ * @example await provider.setItem(users, "abc123", { name: "Dave" })
74
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/setItem
75
+ */
26
76
  setItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II, data: TT): Promise<void>;
77
+ /**
78
+ * Apply partial updates to a single item, translating them into Firestore `FieldValue` operations.
79
+ *
80
+ * @param c The collection the item belongs to.
81
+ * @param id The ID of the item to update.
82
+ * @param updates The updates to apply to the item.
83
+ * @returns Promise resolving once the update completes.
84
+ * @example await provider.updateItem(users, "abc123", { name: "Dave" })
85
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/updateItem
86
+ */
27
87
  updateItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II, updates: Updates<Item<II, TT>>): Promise<void>;
88
+ /**
89
+ * Delete a single item by ID from its collection.
90
+ *
91
+ * @param c The collection the item belongs to.
92
+ * @param id The ID of the item to delete.
93
+ * @returns Promise resolving once the deletion completes.
94
+ * @example await provider.deleteItem(users, "abc123")
95
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/deleteItem
96
+ */
28
97
  deleteItem<II extends I, TT extends T>(c: Collection<string, II, TT>, id: II): Promise<void>;
98
+ /**
99
+ * Count the items matching a query using Firestore's server-side aggregation.
100
+ *
101
+ * @param c The collection to query.
102
+ * @param q The query selecting which items to count; counts the whole collection when omitted.
103
+ * @returns Promise resolving to the number of matching items.
104
+ * @example const total = await provider.countQuery(users)
105
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/countQuery
106
+ */
29
107
  countQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): Promise<number>;
108
+ /**
109
+ * Read all items matching a query.
110
+ *
111
+ * @param c The collection to query.
112
+ * @param q The query selecting which items to read; reads the whole collection when omitted.
113
+ * @returns Promise resolving to the array of matching items.
114
+ * @example const items = await provider.getQuery(users, { "name": "Dave" })
115
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/getQuery
116
+ */
30
117
  getQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q?: Query<Item<II, TT>>): Promise<Items<II, TT>>;
118
+ /**
119
+ * Not supported — the Firebase Lite SDK has no realtime listeners.
120
+ *
121
+ * @param _c The collection to query.
122
+ * @param _q The query to subscribe to.
123
+ * @returns Never returns normally.
124
+ * @throws {UnimplementedError} Always, because Firestore Lite does not support realtime subscriptions.
125
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/getQuerySequence
126
+ */
31
127
  getQuerySequence<II extends I, TT extends T>(_c: Collection<string, II, TT>, _q?: Query<Item<II, TT>>): ItemsSequence<II, TT>;
128
+ /**
129
+ * Write the same data to every item matching a query, one `setDoc` per matching document.
130
+ *
131
+ * @param c The collection to query.
132
+ * @param q The query selecting which items to write.
133
+ * @param data The data to write to each matching item.
134
+ * @returns Promise resolving once all writes complete.
135
+ * @example await provider.setQuery(users, { "name": "Dave" }, { active: false })
136
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/setQuery
137
+ */
32
138
  setQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>, data: TT): Promise<void>;
139
+ /**
140
+ * Apply the same partial updates to every item matching a query, one `updateDoc` per matching document.
141
+ *
142
+ * @param c The collection to query.
143
+ * @param q The query selecting which items to update.
144
+ * @param updates The updates to apply to each matching item.
145
+ * @returns Promise resolving once all updates complete.
146
+ * @example await provider.updateQuery(users, { "active": true }, { name: "Dave" })
147
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/updateQuery
148
+ */
33
149
  updateQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>, updates: Updates<TT>): Promise<void>;
150
+ /**
151
+ * Delete every item matching a query, one `deleteDoc` per matching document.
152
+ *
153
+ * @param c The collection to query.
154
+ * @param q The query selecting which items to delete.
155
+ * @returns Promise resolving once all deletions complete.
156
+ * @example await provider.deleteQuery(users, { "active": false })
157
+ * @see https://dhoulb.github.io/shelving/firestore/lite/FirestoreLiteProvider/FirestoreLiteProvider/deleteQuery
158
+ */
34
159
  deleteQuery<II extends I, TT extends T>(c: Collection<string, II, TT>, q: Query<Item<II, TT>>): Promise<void>;
35
160
  }