shelving 1.236.0 → 1.236.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/api/cache/APICache.d.ts +69 -6
  2. package/api/cache/APICache.js +61 -5
  3. package/api/cache/EndpointCache.d.ts +75 -7
  4. package/api/cache/EndpointCache.js +75 -7
  5. package/api/endpoint/Endpoint.d.ts +141 -25
  6. package/api/endpoint/Endpoint.js +55 -9
  7. package/api/endpoint/util.d.ts +28 -6
  8. package/api/provider/APIProvider.d.ts +58 -14
  9. package/api/provider/APIProvider.js +24 -2
  10. package/api/provider/CachedAPIProvider.d.ts +58 -5
  11. package/api/provider/CachedAPIProvider.js +58 -6
  12. package/api/provider/ClientAPIProvider.d.ts +80 -4
  13. package/api/provider/ClientAPIProvider.js +75 -4
  14. package/api/provider/DebugAPIProvider.d.ts +40 -1
  15. package/api/provider/DebugAPIProvider.js +40 -1
  16. package/api/provider/JSONAPIProvider.d.ts +18 -2
  17. package/api/provider/JSONAPIProvider.js +18 -2
  18. package/api/provider/LoggingAPIProvider.d.ts +25 -2
  19. package/api/provider/LoggingAPIProvider.js +25 -2
  20. package/api/provider/MockAPIProvider.d.ts +72 -1
  21. package/api/provider/MockAPIProvider.js +60 -4
  22. package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
  23. package/api/provider/MockEndpointAPIProvider.js +9 -0
  24. package/api/provider/ThroughAPIProvider.d.ts +67 -1
  25. package/api/provider/ThroughAPIProvider.js +67 -1
  26. package/api/provider/ValidationAPIProvider.d.ts +32 -1
  27. package/api/provider/ValidationAPIProvider.js +32 -1
  28. package/api/provider/XMLAPIProvider.d.ts +18 -2
  29. package/api/provider/XMLAPIProvider.js +18 -2
  30. package/api/store/EndpointStore.d.ts +24 -1
  31. package/api/store/EndpointStore.js +24 -1
  32. package/bun/BunPostgreSQLProvider.d.ts +38 -0
  33. package/bun/BunPostgreSQLProvider.js +38 -2
  34. package/cloudflare/CloudflareD1Provider.d.ts +29 -2
  35. package/cloudflare/CloudflareD1Provider.js +29 -2
  36. package/cloudflare/CloudflareKVProvider.d.ts +115 -0
  37. package/cloudflare/CloudflareKVProvider.js +115 -0
  38. package/cloudflare/types.d.ts +41 -7
  39. package/db/cache/CollectionCache.d.ts +83 -7
  40. package/db/cache/CollectionCache.js +83 -7
  41. package/db/cache/DBCache.d.ts +93 -8
  42. package/db/cache/DBCache.js +85 -7
  43. package/db/collection/Collection.d.ts +103 -15
  44. package/db/collection/Collection.js +58 -6
  45. package/db/migrate/DBMigrator.d.ts +29 -1
  46. package/db/migrate/DBMigrator.js +20 -1
  47. package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
  48. package/db/migrate/PostgreSQLMigrator.js +8 -1
  49. package/db/migrate/SQLMigrator.d.ts +63 -4
  50. package/db/migrate/SQLMigrator.js +51 -1
  51. package/db/migrate/SQLiteMigrator.d.ts +8 -1
  52. package/db/migrate/SQLiteMigrator.js +8 -1
  53. package/db/provider/CacheDBProvider.d.ts +135 -1
  54. package/db/provider/CacheDBProvider.js +135 -1
  55. package/db/provider/ChangesDBProvider.d.ts +84 -3
  56. package/db/provider/ChangesDBProvider.js +77 -2
  57. package/db/provider/DBProvider.d.ts +148 -1
  58. package/db/provider/DBProvider.js +51 -1
  59. package/db/provider/DebugDBProvider.d.ts +118 -1
  60. package/db/provider/DebugDBProvider.js +118 -1
  61. package/db/provider/MemoryDBProvider.d.ts +262 -7
  62. package/db/provider/MemoryDBProvider.js +262 -7
  63. package/db/provider/MockDBProvider.d.ts +113 -2
  64. package/db/provider/MockDBProvider.js +106 -1
  65. package/db/provider/PostgreSQLProvider.d.ts +34 -2
  66. package/db/provider/PostgreSQLProvider.js +34 -4
  67. package/db/provider/SQLProvider.d.ts +250 -14
  68. package/db/provider/SQLProvider.js +237 -13
  69. package/db/provider/SQLiteProvider.d.ts +41 -1
  70. package/db/provider/SQLiteProvider.js +41 -4
  71. package/db/provider/ThroughDBProvider.d.ts +156 -1
  72. package/db/provider/ThroughDBProvider.js +156 -1
  73. package/db/provider/ValidationDBProvider.d.ts +120 -1
  74. package/db/provider/ValidationDBProvider.js +120 -1
  75. package/db/store/ItemStore.d.ts +38 -2
  76. package/db/store/ItemStore.js +38 -2
  77. package/db/store/QueryStore.d.ts +64 -6
  78. package/db/store/QueryStore.js +64 -6
  79. package/error/BaseError.d.ts +27 -2
  80. package/error/BaseError.js +14 -0
  81. package/error/Errors.d.ts +12 -1
  82. package/error/Errors.js +12 -1
  83. package/error/NetworkError.d.ts +13 -1
  84. package/error/NetworkError.js +13 -1
  85. package/error/RequestError.d.ts +90 -7
  86. package/error/RequestError.js +90 -7
  87. package/error/RequiredError.d.ts +11 -1
  88. package/error/RequiredError.js +11 -1
  89. package/error/ResponseError.d.ts +19 -2
  90. package/error/ResponseError.js +19 -2
  91. package/error/UnexpectedError.d.ts +14 -1
  92. package/error/UnexpectedError.js +14 -1
  93. package/error/UnimplementedError.d.ts +13 -1
  94. package/error/UnimplementedError.js +13 -1
  95. package/error/ValueError.d.ts +14 -1
  96. package/error/ValueError.js +14 -1
  97. package/extract/DirectoryExtractor.d.ts +35 -1
  98. package/extract/DirectoryExtractor.js +30 -0
  99. package/extract/Extractor.d.ts +21 -2
  100. package/extract/Extractor.js +7 -1
  101. package/extract/FileExtractor.d.ts +18 -0
  102. package/extract/FileExtractor.js +18 -0
  103. package/extract/IndexExtractor.d.ts +36 -1
  104. package/extract/IndexExtractor.js +31 -0
  105. package/extract/MarkupExtractor.d.ts +15 -0
  106. package/extract/MarkupExtractor.js +15 -0
  107. package/extract/MergingExtractor.d.ts +36 -1
  108. package/extract/MergingExtractor.js +31 -0
  109. package/extract/ModuleExtractor.d.ts +25 -1
  110. package/extract/ModuleExtractor.js +20 -0
  111. package/extract/PackageExtractor.d.ts +36 -1
  112. package/extract/PackageExtractor.js +31 -0
  113. package/extract/ThroughExtractor.d.ts +22 -1
  114. package/extract/ThroughExtractor.js +22 -1
  115. package/extract/TypescriptExtractor.d.ts +21 -0
  116. package/extract/TypescriptExtractor.js +28 -3
  117. package/firestore/client/FirestoreClientProvider.d.ts +129 -4
  118. package/firestore/client/FirestoreClientProvider.js +129 -4
  119. package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
  120. package/firestore/lite/FirestoreLiteProvider.js +128 -3
  121. package/firestore/server/FirestoreServerProvider.d.ts +129 -2
  122. package/firestore/server/FirestoreServerProvider.js +129 -2
  123. package/markup/MarkupParser.d.ts +57 -10
  124. package/markup/MarkupParser.js +50 -9
  125. package/markup/MarkupRule.d.ts +34 -1
  126. package/markup/Parser.d.ts +18 -0
  127. package/markup/Parser.js +11 -0
  128. package/markup/rule/blockquote.d.ts +3 -0
  129. package/markup/rule/blockquote.js +3 -0
  130. package/markup/rule/code.d.ts +3 -0
  131. package/markup/rule/code.js +3 -0
  132. package/markup/rule/fenced.d.ts +3 -0
  133. package/markup/rule/fenced.js +3 -0
  134. package/markup/rule/heading.d.ts +3 -0
  135. package/markup/rule/heading.js +3 -0
  136. package/markup/rule/index.d.ts +16 -3
  137. package/markup/rule/index.js +16 -3
  138. package/markup/rule/inline.d.ts +4 -1
  139. package/markup/rule/inline.js +5 -2
  140. package/markup/rule/linebreak.d.ts +3 -0
  141. package/markup/rule/linebreak.js +3 -0
  142. package/markup/rule/link.d.ts +6 -0
  143. package/markup/rule/link.js +6 -0
  144. package/markup/rule/ordered.d.ts +3 -0
  145. package/markup/rule/ordered.js +3 -0
  146. package/markup/rule/paragraph.d.ts +3 -0
  147. package/markup/rule/paragraph.js +3 -0
  148. package/markup/rule/separator.d.ts +3 -0
  149. package/markup/rule/separator.js +3 -0
  150. package/markup/rule/table.d.ts +3 -0
  151. package/markup/rule/table.js +3 -0
  152. package/markup/rule/unordered.d.ts +3 -0
  153. package/markup/rule/unordered.js +3 -0
  154. package/markup/util/regexp.d.ts +80 -3
  155. package/markup/util/regexp.js +44 -0
  156. package/package.json +1 -1
  157. package/react/createAPIContext.d.ts +15 -0
  158. package/react/createAPIContext.js +10 -0
  159. package/react/createDBContext.d.ts +15 -0
  160. package/react/createDBContext.js +10 -0
  161. package/react/useInstance.d.ts +11 -0
  162. package/react/useInstance.js +11 -0
  163. package/react/useLazy.d.ts +11 -0
  164. package/react/useMap.d.ts +14 -1
  165. package/react/useMap.js +14 -1
  166. package/react/useReduce.d.ts +12 -0
  167. package/react/useSequence.d.ts +10 -0
  168. package/react/useSequence.js +10 -0
  169. package/react/useStore.d.ts +16 -1
  170. package/schema/AddressSchema.d.ts +41 -4
  171. package/schema/AddressSchema.js +36 -3
  172. package/schema/ArraySchema.d.ts +48 -6
  173. package/schema/ArraySchema.js +40 -5
  174. package/schema/BooleanSchema.d.ts +59 -3
  175. package/schema/BooleanSchema.js +51 -2
  176. package/schema/ChoiceSchema.d.ts +61 -7
  177. package/schema/ChoiceSchema.js +44 -2
  178. package/schema/ColorSchema.d.ts +41 -8
  179. package/schema/ColorSchema.js +36 -7
  180. package/schema/CountrySchema.d.ts +44 -4
  181. package/schema/CountrySchema.js +39 -3
  182. package/schema/CurrencyAmountSchema.d.ts +104 -8
  183. package/schema/CurrencyAmountSchema.js +91 -4
  184. package/schema/CurrencyCodeSchema.d.ts +56 -4
  185. package/schema/CurrencyCodeSchema.js +49 -3
  186. package/schema/DataSchema.d.ts +101 -10
  187. package/schema/DataSchema.js +87 -8
  188. package/schema/DateSchema.d.ts +73 -4
  189. package/schema/DateSchema.js +57 -2
  190. package/schema/DateTimeSchema.d.ts +40 -3
  191. package/schema/DateTimeSchema.js +40 -3
  192. package/schema/DictionarySchema.d.ts +54 -4
  193. package/schema/DictionarySchema.js +47 -3
  194. package/schema/EmailSchema.d.ts +34 -3
  195. package/schema/EmailSchema.js +34 -3
  196. package/schema/EntitySchema.d.ts +45 -4
  197. package/schema/EntitySchema.js +38 -3
  198. package/schema/FileSchema.d.ts +45 -4
  199. package/schema/FileSchema.js +39 -3
  200. package/schema/KeySchema.d.ts +32 -3
  201. package/schema/KeySchema.js +32 -3
  202. package/schema/NullableSchema.d.ts +64 -4
  203. package/schema/NullableSchema.js +59 -3
  204. package/schema/NumberSchema.d.ts +137 -12
  205. package/schema/NumberSchema.js +127 -11
  206. package/schema/OptionalSchema.d.ts +61 -4
  207. package/schema/OptionalSchema.js +56 -4
  208. package/schema/PasswordSchema.d.ts +37 -1
  209. package/schema/PasswordSchema.js +32 -1
  210. package/schema/PhoneSchema.d.ts +40 -4
  211. package/schema/PhoneSchema.js +35 -3
  212. package/schema/RequiredSchema.d.ts +39 -3
  213. package/schema/RequiredSchema.js +41 -3
  214. package/schema/Schema.d.ts +67 -7
  215. package/schema/Schema.js +42 -6
  216. package/schema/SlugSchema.d.ts +37 -5
  217. package/schema/SlugSchema.js +37 -5
  218. package/schema/StringSchema.d.ts +124 -19
  219. package/schema/StringSchema.js +107 -17
  220. package/schema/ThroughSchema.d.ts +35 -2
  221. package/schema/ThroughSchema.js +30 -1
  222. package/schema/TimeSchema.d.ts +43 -3
  223. package/schema/TimeSchema.js +43 -3
  224. package/schema/URISchema.d.ts +67 -6
  225. package/schema/URISchema.js +60 -6
  226. package/schema/URLSchema.d.ts +69 -6
  227. package/schema/URLSchema.js +61 -6
  228. package/schema/UUIDSchema.d.ts +37 -4
  229. package/schema/UUIDSchema.js +37 -4
  230. package/sequence/DeferredSequence.d.ts +49 -3
  231. package/sequence/DeferredSequence.js +39 -3
  232. package/sequence/InspectSequence.d.ts +59 -5
  233. package/sequence/InspectSequence.js +59 -5
  234. package/sequence/LazySequence.d.ts +30 -2
  235. package/sequence/LazySequence.js +30 -2
  236. package/sequence/Sequence.d.ts +11 -0
  237. package/sequence/Sequence.js +10 -0
  238. package/sequence/ThroughSequence.d.ts +15 -0
  239. package/sequence/ThroughSequence.js +15 -0
  240. package/store/ArrayStore.d.ts +74 -11
  241. package/store/ArrayStore.js +74 -11
  242. package/store/BooleanStore.d.ts +19 -2
  243. package/store/BooleanStore.js +19 -2
  244. package/store/BusyStore.d.ts +13 -1
  245. package/store/BusyStore.js +13 -1
  246. package/store/DataStore.d.ts +118 -15
  247. package/store/DataStore.js +118 -15
  248. package/store/DictionaryStore.d.ts +66 -8
  249. package/store/DictionaryStore.js +66 -8
  250. package/store/FetchStore.d.ts +43 -6
  251. package/store/FetchStore.js +36 -5
  252. package/store/PathStore.d.ts +44 -5
  253. package/store/PathStore.js +44 -5
  254. package/store/PayloadFetchStore.d.ts +16 -1
  255. package/store/PayloadFetchStore.js +9 -1
  256. package/store/Store.d.ts +85 -16
  257. package/store/Store.js +52 -10
  258. package/store/URLStore.d.ts +173 -15
  259. package/store/URLStore.js +173 -15
  260. package/test/basics.d.ts +70 -0
  261. package/test/basics.js +60 -0
  262. package/test/people.d.ts +45 -0
  263. package/test/people.js +35 -0
  264. package/test/util.d.ts +30 -3
  265. package/test/util.js +30 -3
  266. package/ui/app/App.d.ts +14 -2
  267. package/ui/app/App.js +9 -2
  268. package/ui/app/App.tsx +14 -2
  269. package/ui/block/Address.d.ts +45 -3
  270. package/ui/block/Address.js +30 -3
  271. package/ui/block/Address.tsx +46 -3
  272. package/ui/block/Block.d.ts +23 -1
  273. package/ui/block/Block.js +13 -1
  274. package/ui/block/Block.tsx +23 -1
  275. package/ui/block/Blockquote.d.ts +21 -0
  276. package/ui/block/Blockquote.js +16 -0
  277. package/ui/block/Blockquote.tsx +22 -0
  278. package/ui/block/Caption.d.ts +21 -1
  279. package/ui/block/Caption.js +16 -1
  280. package/ui/block/Caption.tsx +22 -1
  281. package/ui/block/Card.d.ts +6 -0
  282. package/ui/block/Card.js +1 -0
  283. package/ui/block/Card.tsx +6 -0
  284. package/ui/block/Definitions.d.ts +18 -0
  285. package/ui/block/Definitions.js +13 -0
  286. package/ui/block/Definitions.tsx +19 -0
  287. package/ui/block/Divider.d.ts +21 -0
  288. package/ui/block/Divider.js +16 -0
  289. package/ui/block/Divider.tsx +22 -0
  290. package/ui/block/Heading.d.ts +20 -1
  291. package/ui/block/Heading.js +15 -0
  292. package/ui/block/Heading.tsx +21 -1
  293. package/ui/block/Image.d.ts +23 -0
  294. package/ui/block/Image.js +18 -0
  295. package/ui/block/Image.tsx +24 -0
  296. package/ui/block/Label.d.ts +18 -3
  297. package/ui/block/Label.js +13 -3
  298. package/ui/block/Label.tsx +18 -3
  299. package/ui/block/List.d.ts +30 -0
  300. package/ui/block/List.js +25 -0
  301. package/ui/block/List.tsx +32 -0
  302. package/ui/block/Panel.d.ts +13 -1
  303. package/ui/block/Panel.js +3 -0
  304. package/ui/block/Panel.tsx +13 -1
  305. package/ui/block/Paragraph.d.ts +23 -0
  306. package/ui/block/Paragraph.js +18 -0
  307. package/ui/block/Paragraph.tsx +24 -0
  308. package/ui/block/Preformatted.d.ts +20 -0
  309. package/ui/block/Preformatted.js +15 -0
  310. package/ui/block/Preformatted.tsx +21 -0
  311. package/ui/block/Prose.d.ts +14 -1
  312. package/ui/block/Prose.js +9 -1
  313. package/ui/block/Prose.tsx +14 -1
  314. package/ui/block/Section.d.ts +69 -6
  315. package/ui/block/Section.js +59 -6
  316. package/ui/block/Section.tsx +70 -6
  317. package/ui/block/Subheading.d.ts +20 -1
  318. package/ui/block/Subheading.js +15 -0
  319. package/ui/block/Subheading.tsx +21 -1
  320. package/ui/block/Table.d.ts +20 -0
  321. package/ui/block/Table.js +15 -0
  322. package/ui/block/Table.tsx +21 -0
  323. package/ui/block/Title.d.ts +20 -1
  324. package/ui/block/Title.js +15 -0
  325. package/ui/block/Title.tsx +21 -1
  326. package/ui/block/Video.d.ts +50 -3
  327. package/ui/block/Video.js +30 -3
  328. package/ui/block/Video.tsx +50 -3
  329. package/ui/dialog/Dialog.d.ts +28 -1
  330. package/ui/dialog/Dialog.js +18 -1
  331. package/ui/dialog/Dialog.tsx +28 -1
  332. package/ui/dialog/Dialogs.d.ts +53 -6
  333. package/ui/dialog/Dialogs.js +43 -6
  334. package/ui/dialog/Dialogs.tsx +53 -6
  335. package/ui/dialog/Modal.d.ts +13 -0
  336. package/ui/dialog/Modal.js +8 -0
  337. package/ui/dialog/Modal.tsx +13 -0
  338. package/ui/docs/DocumentationButtons.d.ts +5 -1
  339. package/ui/docs/DocumentationButtons.tsx +5 -1
  340. package/ui/docs/DocumentationCard.d.ts +6 -1
  341. package/ui/docs/DocumentationCard.js +6 -1
  342. package/ui/docs/DocumentationCard.tsx +6 -1
  343. package/ui/docs/DocumentationKind.d.ts +13 -1
  344. package/ui/docs/DocumentationKind.js +8 -0
  345. package/ui/docs/DocumentationKind.tsx +13 -1
  346. package/ui/docs/DocumentationPage.d.ts +6 -1
  347. package/ui/docs/DocumentationPage.js +6 -1
  348. package/ui/docs/DocumentationPage.tsx +6 -1
  349. package/ui/docs/DocumentationSignatures.d.ts +10 -1
  350. package/ui/docs/DocumentationSignatures.js +5 -0
  351. package/ui/docs/DocumentationSignatures.tsx +10 -1
  352. package/ui/form/ArrayInput.d.ts +15 -0
  353. package/ui/form/ArrayInput.tsx +15 -0
  354. package/ui/form/ArrayRadioInputs.d.ts +10 -0
  355. package/ui/form/ArrayRadioInputs.js +5 -0
  356. package/ui/form/ArrayRadioInputs.tsx +10 -0
  357. package/ui/form/Button.d.ts +19 -3
  358. package/ui/form/Button.js +14 -2
  359. package/ui/form/Button.tsx +19 -3
  360. package/ui/form/ButtonInput.d.ts +14 -1
  361. package/ui/form/ButtonInput.js +9 -1
  362. package/ui/form/ButtonInput.tsx +14 -1
  363. package/ui/form/ButtonInputPopover.d.ts +10 -0
  364. package/ui/form/ButtonInputPopover.js +5 -0
  365. package/ui/form/ButtonInputPopover.tsx +10 -0
  366. package/ui/form/ButtonPopover.d.ts +11 -1
  367. package/ui/form/ButtonPopover.js +6 -1
  368. package/ui/form/ButtonPopover.tsx +11 -1
  369. package/ui/form/CheckboxInput.d.ts +14 -1
  370. package/ui/form/CheckboxInput.js +9 -1
  371. package/ui/form/CheckboxInput.tsx +14 -1
  372. package/ui/form/ChoiceRadioInputs.d.ts +10 -0
  373. package/ui/form/ChoiceRadioInputs.tsx +10 -0
  374. package/ui/form/Clickable.d.ts +45 -5
  375. package/ui/form/Clickable.js +30 -3
  376. package/ui/form/Clickable.tsx +45 -5
  377. package/ui/form/DataInput.d.ts +14 -0
  378. package/ui/form/DataInput.tsx +14 -0
  379. package/ui/form/DateInput.d.ts +14 -0
  380. package/ui/form/DateInput.js +9 -0
  381. package/ui/form/DateInput.tsx +14 -0
  382. package/ui/form/DictionaryInput.d.ts +15 -0
  383. package/ui/form/DictionaryInput.tsx +15 -0
  384. package/ui/form/Field.d.ts +5 -0
  385. package/ui/form/Field.tsx +5 -0
  386. package/ui/form/FileInput.d.ts +14 -0
  387. package/ui/form/FileInput.js +9 -0
  388. package/ui/form/FileInput.tsx +14 -0
  389. package/ui/form/Form.d.ts +55 -6
  390. package/ui/form/Form.js +35 -3
  391. package/ui/form/Form.tsx +55 -6
  392. package/ui/form/FormContext.d.ts +24 -3
  393. package/ui/form/FormContext.js +5 -1
  394. package/ui/form/FormContext.tsx +24 -3
  395. package/ui/form/FormFields.d.ts +15 -2
  396. package/ui/form/FormFields.js +15 -2
  397. package/ui/form/FormFields.tsx +15 -2
  398. package/ui/form/FormFooter.d.ts +13 -3
  399. package/ui/form/FormFooter.js +8 -3
  400. package/ui/form/FormFooter.tsx +13 -3
  401. package/ui/form/FormInput.d.ts +21 -2
  402. package/ui/form/FormInput.js +16 -2
  403. package/ui/form/FormInput.tsx +21 -2
  404. package/ui/form/FormMessage.d.ts +8 -1
  405. package/ui/form/FormMessage.js +8 -1
  406. package/ui/form/FormMessage.tsx +8 -2
  407. package/ui/form/FormNotice.d.ts +8 -1
  408. package/ui/form/FormNotice.js +8 -1
  409. package/ui/form/FormNotice.tsx +8 -2
  410. package/ui/form/FormNotify.d.ts +8 -1
  411. package/ui/form/FormNotify.js +8 -1
  412. package/ui/form/FormNotify.tsx +8 -2
  413. package/ui/form/FormStore.d.ts +50 -6
  414. package/ui/form/FormStore.js +50 -6
  415. package/ui/form/FormStore.tsx +50 -6
  416. package/ui/form/Input.d.ts +65 -1
  417. package/ui/form/Input.js +60 -0
  418. package/ui/form/Input.tsx +77 -1
  419. package/ui/form/NumberInput.d.ts +14 -0
  420. package/ui/form/NumberInput.js +9 -0
  421. package/ui/form/NumberInput.tsx +14 -0
  422. package/ui/form/OutputInput.d.ts +13 -1
  423. package/ui/form/OutputInput.js +8 -1
  424. package/ui/form/OutputInput.tsx +13 -1
  425. package/ui/form/Popover.d.ts +18 -2
  426. package/ui/form/Popover.js +8 -2
  427. package/ui/form/Popover.tsx +18 -2
  428. package/ui/form/Progress.d.ts +26 -2
  429. package/ui/form/Progress.js +16 -2
  430. package/ui/form/Progress.tsx +26 -2
  431. package/ui/form/QueryInput.d.ts +14 -5
  432. package/ui/form/QueryInput.js +9 -5
  433. package/ui/form/QueryInput.tsx +14 -5
  434. package/ui/form/RadioInput.d.ts +14 -1
  435. package/ui/form/RadioInput.js +9 -1
  436. package/ui/form/RadioInput.tsx +14 -1
  437. package/ui/form/SchemaInput.d.ts +138 -7
  438. package/ui/form/SchemaInput.js +79 -4
  439. package/ui/form/SchemaInput.tsx +138 -7
  440. package/ui/form/SelectInput.d.ts +14 -0
  441. package/ui/form/SelectInput.tsx +14 -0
  442. package/ui/form/SubmitButton.d.ts +14 -1
  443. package/ui/form/SubmitButton.js +9 -1
  444. package/ui/form/SubmitButton.tsx +14 -1
  445. package/ui/form/TextInput.d.ts +15 -0
  446. package/ui/form/TextInput.js +10 -0
  447. package/ui/form/TextInput.tsx +15 -0
  448. package/ui/inline/Code.d.ts +29 -0
  449. package/ui/inline/Code.js +24 -0
  450. package/ui/inline/Code.tsx +31 -0
  451. package/ui/inline/Deleted.d.ts +23 -0
  452. package/ui/inline/Deleted.js +18 -0
  453. package/ui/inline/Deleted.tsx +24 -0
  454. package/ui/inline/Emphasis.d.ts +23 -0
  455. package/ui/inline/Emphasis.js +18 -0
  456. package/ui/inline/Emphasis.tsx +24 -0
  457. package/ui/inline/Inserted.d.ts +23 -0
  458. package/ui/inline/Inserted.js +18 -0
  459. package/ui/inline/Inserted.tsx +24 -0
  460. package/ui/inline/Link.d.ts +23 -0
  461. package/ui/inline/Link.js +18 -0
  462. package/ui/inline/Link.tsx +24 -0
  463. package/ui/inline/Mark.d.ts +23 -0
  464. package/ui/inline/Mark.js +18 -0
  465. package/ui/inline/Mark.tsx +24 -0
  466. package/ui/inline/Small.d.ts +23 -0
  467. package/ui/inline/Small.js +18 -0
  468. package/ui/inline/Small.tsx +24 -0
  469. package/ui/inline/Strong.d.ts +23 -0
  470. package/ui/inline/Strong.js +18 -0
  471. package/ui/inline/Strong.tsx +24 -0
  472. package/ui/inline/Subscript.d.ts +23 -0
  473. package/ui/inline/Subscript.js +18 -0
  474. package/ui/inline/Subscript.tsx +24 -0
  475. package/ui/inline/Superscript.d.ts +23 -0
  476. package/ui/inline/Superscript.js +18 -0
  477. package/ui/inline/Superscript.tsx +24 -0
  478. package/ui/inline/When.d.ts +42 -3
  479. package/ui/inline/When.js +27 -3
  480. package/ui/inline/When.tsx +42 -3
  481. package/ui/layout/CenteredLayout.d.ts +12 -1
  482. package/ui/layout/CenteredLayout.js +7 -1
  483. package/ui/layout/CenteredLayout.tsx +12 -1
  484. package/ui/layout/Layout.d.ts +12 -3
  485. package/ui/layout/Layout.js +12 -3
  486. package/ui/layout/Layout.ts +12 -3
  487. package/ui/layout/SidebarLayout.d.ts +12 -0
  488. package/ui/layout/SidebarLayout.js +7 -0
  489. package/ui/layout/SidebarLayout.tsx +12 -0
  490. package/ui/menu/Menu.d.ts +22 -0
  491. package/ui/menu/Menu.js +12 -0
  492. package/ui/menu/Menu.tsx +22 -0
  493. package/ui/misc/Catcher.d.ts +77 -5
  494. package/ui/misc/Catcher.js +47 -5
  495. package/ui/misc/Catcher.tsx +77 -5
  496. package/ui/misc/Loading.d.ts +20 -0
  497. package/ui/misc/Loading.js +15 -0
  498. package/ui/misc/Loading.tsx +20 -0
  499. package/ui/misc/Mapper.d.ts +13 -1
  500. package/ui/misc/Mapper.js +4 -0
  501. package/ui/misc/Mapper.tsx +13 -1
  502. package/ui/misc/Markup.d.ts +9 -1
  503. package/ui/misc/Markup.js +4 -0
  504. package/ui/misc/Markup.tsx +9 -1
  505. package/ui/misc/MetaContext.d.ts +24 -7
  506. package/ui/misc/MetaContext.js +19 -6
  507. package/ui/misc/MetaContext.tsx +24 -7
  508. package/ui/misc/StatusIcon.d.ts +16 -1
  509. package/ui/misc/StatusIcon.js +11 -1
  510. package/ui/misc/StatusIcon.tsx +16 -1
  511. package/ui/misc/Tag.d.ts +21 -0
  512. package/ui/misc/Tag.js +11 -0
  513. package/ui/misc/Tag.tsx +21 -0
  514. package/ui/notice/Message.d.ts +27 -1
  515. package/ui/notice/Message.js +22 -1
  516. package/ui/notice/Message.tsx +27 -1
  517. package/ui/notice/Notice.d.ts +24 -0
  518. package/ui/notice/Notice.js +19 -0
  519. package/ui/notice/Notice.tsx +24 -0
  520. package/ui/notice/NoticeStore.d.ts +30 -2
  521. package/ui/notice/NoticeStore.js +30 -2
  522. package/ui/notice/NoticeStore.ts +30 -2
  523. package/ui/notice/Notices.d.ts +11 -1
  524. package/ui/notice/Notices.js +6 -1
  525. package/ui/notice/Notices.tsx +11 -1
  526. package/ui/notice/NoticesStore.d.ts +23 -3
  527. package/ui/notice/NoticesStore.js +23 -3
  528. package/ui/notice/NoticesStore.ts +23 -3
  529. package/ui/page/HTML.d.ts +13 -2
  530. package/ui/page/HTML.js +8 -2
  531. package/ui/page/HTML.tsx +13 -2
  532. package/ui/page/Head.d.ts +5 -1
  533. package/ui/page/Head.js +5 -1
  534. package/ui/page/Head.tsx +5 -1
  535. package/ui/page/Page.d.ts +12 -1
  536. package/ui/page/Page.js +7 -1
  537. package/ui/page/Page.tsx +12 -1
  538. package/ui/router/Navigation.d.ts +11 -0
  539. package/ui/router/Navigation.js +6 -0
  540. package/ui/router/Navigation.tsx +11 -0
  541. package/ui/router/NavigationContext.d.ts +14 -2
  542. package/ui/router/NavigationContext.js +14 -2
  543. package/ui/router/NavigationContext.tsx +14 -2
  544. package/ui/router/NavigationStore.d.ts +29 -1
  545. package/ui/router/NavigationStore.js +29 -1
  546. package/ui/router/NavigationStore.tsx +29 -1
  547. package/ui/router/Router.d.ts +12 -1
  548. package/ui/router/Router.js +7 -1
  549. package/ui/router/Router.tsx +12 -1
  550. package/ui/router/Routes.d.ts +14 -4
  551. package/ui/router/Routes.tsx +14 -4
  552. package/ui/style/Color.d.ts +15 -2
  553. package/ui/style/Color.js +5 -0
  554. package/ui/style/Color.tsx +15 -2
  555. package/ui/style/Flex.d.ts +41 -4
  556. package/ui/style/Flex.js +26 -3
  557. package/ui/style/Flex.tsx +41 -4
  558. package/ui/style/Gap.d.ts +18 -3
  559. package/ui/style/Gap.js +8 -1
  560. package/ui/style/Gap.tsx +18 -3
  561. package/ui/style/Padding.d.ts +18 -3
  562. package/ui/style/Padding.js +8 -1
  563. package/ui/style/Padding.tsx +18 -3
  564. package/ui/style/Scroll.d.ts +36 -1
  565. package/ui/style/Scroll.js +26 -1
  566. package/ui/style/Scroll.tsx +37 -1
  567. package/ui/style/Space.d.ts +18 -3
  568. package/ui/style/Space.js +8 -1
  569. package/ui/style/Space.tsx +18 -3
  570. package/ui/style/Status.d.ts +23 -7
  571. package/ui/style/Status.js +13 -5
  572. package/ui/style/Status.tsx +23 -7
  573. package/ui/style/Tint.d.ts +7 -1
  574. package/ui/style/Tint.js +7 -1
  575. package/ui/style/Tint.tsx +7 -1
  576. package/ui/style/Typography.d.ts +38 -6
  577. package/ui/style/Typography.js +8 -0
  578. package/ui/style/Typography.tsx +38 -6
  579. package/ui/style/Width.d.ts +18 -1
  580. package/ui/style/Width.js +8 -0
  581. package/ui/style/Width.tsx +18 -1
  582. package/ui/transition/CollapseTransition.d.ts +13 -0
  583. package/ui/transition/CollapseTransition.js +8 -0
  584. package/ui/transition/CollapseTransition.tsx +13 -0
  585. package/ui/transition/FadeTransition.d.ts +13 -0
  586. package/ui/transition/FadeTransition.js +8 -0
  587. package/ui/transition/FadeTransition.tsx +13 -0
  588. package/ui/transition/HorizontalTransition.d.ts +13 -0
  589. package/ui/transition/HorizontalTransition.js +8 -0
  590. package/ui/transition/HorizontalTransition.tsx +13 -0
  591. package/ui/transition/Transition.d.ts +12 -4
  592. package/ui/transition/Transition.js +7 -3
  593. package/ui/transition/Transition.tsx +12 -4
  594. package/ui/transition/VerticalTransition.d.ts +13 -0
  595. package/ui/transition/VerticalTransition.js +8 -0
  596. package/ui/transition/VerticalTransition.tsx +13 -0
  597. package/ui/transition/util.d.ts +16 -6
  598. package/ui/transition/util.js +7 -1
  599. package/ui/transition/util.tsx +16 -6
  600. package/ui/tree/TreeApp.d.ts +11 -0
  601. package/ui/tree/TreeApp.js +6 -0
  602. package/ui/tree/TreeApp.tsx +11 -0
  603. package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
  604. package/ui/tree/TreeBreadcrumbs.js +6 -0
  605. package/ui/tree/TreeBreadcrumbs.tsx +11 -0
  606. package/ui/tree/TreeButton.d.ts +9 -1
  607. package/ui/tree/TreeButton.js +4 -0
  608. package/ui/tree/TreeButton.tsx +9 -1
  609. package/ui/tree/TreeCard.d.ts +8 -1
  610. package/ui/tree/TreeCard.js +8 -1
  611. package/ui/tree/TreeCard.tsx +8 -1
  612. package/ui/tree/TreeCards.d.ts +16 -1
  613. package/ui/tree/TreeCards.js +11 -1
  614. package/ui/tree/TreeCards.tsx +16 -1
  615. package/ui/tree/TreeContext.d.ts +18 -1
  616. package/ui/tree/TreeContext.js +18 -1
  617. package/ui/tree/TreeContext.tsx +18 -1
  618. package/ui/tree/TreeMenu.d.ts +28 -1
  619. package/ui/tree/TreeMenu.js +23 -1
  620. package/ui/tree/TreeMenu.tsx +28 -1
  621. package/ui/tree/TreePage.d.ts +6 -0
  622. package/ui/tree/TreePage.js +6 -0
  623. package/ui/tree/TreePage.tsx +6 -0
  624. package/ui/tree/TreeRouter.d.ts +17 -2
  625. package/ui/tree/TreeRouter.js +12 -2
  626. package/ui/tree/TreeRouter.tsx +17 -2
  627. package/ui/tree/TreeSidebar.d.ts +11 -0
  628. package/ui/tree/TreeSidebar.js +6 -0
  629. package/ui/tree/TreeSidebar.tsx +11 -0
  630. package/ui/util/context.d.ts +13 -1
  631. package/ui/util/context.ts +13 -1
  632. package/ui/util/css.d.ts +17 -4
  633. package/ui/util/css.js +5 -1
  634. package/ui/util/css.ts +17 -4
  635. package/ui/util/event.d.ts +9 -1
  636. package/ui/util/event.js +9 -1
  637. package/ui/util/event.ts +9 -1
  638. package/ui/util/focus.d.ts +24 -5
  639. package/ui/util/focus.js +24 -5
  640. package/ui/util/focus.ts +24 -5
  641. package/ui/util/meta.d.ts +113 -21
  642. package/ui/util/meta.js +73 -13
  643. package/ui/util/meta.ts +113 -21
  644. package/ui/util/notice.d.ts +98 -10
  645. package/ui/util/notice.js +93 -9
  646. package/ui/util/notice.ts +98 -10
  647. package/ui/util/props.d.ts +10 -2
  648. package/ui/util/props.ts +10 -2
  649. package/ui/util/refresh.d.ts +10 -1
  650. package/ui/util/refresh.js +10 -1
  651. package/ui/util/refresh.ts +10 -1
  652. package/ui/util/scroll.d.ts +20 -4
  653. package/ui/util/scroll.js +20 -4
  654. package/ui/util/scroll.ts +20 -4
  655. package/ui/util/state.d.ts +19 -5
  656. package/ui/util/state.js +19 -5
  657. package/ui/util/state.ts +19 -5
  658. package/util/ansi.d.ts +118 -0
  659. package/util/ansi.js +116 -0
  660. package/util/array.d.ts +349 -33
  661. package/util/array.js +284 -27
  662. package/util/async.d.ts +87 -9
  663. package/util/async.js +80 -8
  664. package/util/base64.d.ts +56 -6
  665. package/util/base64.js +56 -6
  666. package/util/boolean.d.ts +75 -10
  667. package/util/boolean.js +75 -10
  668. package/util/buffer.d.ts +26 -3
  669. package/util/buffer.js +21 -3
  670. package/util/bytes.d.ts +42 -4
  671. package/util/bytes.js +32 -2
  672. package/util/class.d.ts +59 -8
  673. package/util/class.js +44 -5
  674. package/util/color.d.ts +131 -13
  675. package/util/color.js +126 -12
  676. package/util/constants.d.ts +132 -19
  677. package/util/constants.js +132 -19
  678. package/util/crypto.d.ts +17 -1
  679. package/util/crypto.js +17 -1
  680. package/util/currency.d.ts +38 -4
  681. package/util/currency.js +33 -3
  682. package/util/data.d.ts +139 -24
  683. package/util/data.js +39 -5
  684. package/util/date.d.ts +152 -18
  685. package/util/date.js +147 -17
  686. package/util/debug.d.ts +112 -11
  687. package/util/debug.js +114 -11
  688. package/util/dictionary.d.ts +205 -24
  689. package/util/dictionary.js +162 -17
  690. package/util/diff.d.ts +22 -3
  691. package/util/diff.js +11 -1
  692. package/util/dispose.d.ts +74 -2
  693. package/util/dispose.js +74 -2
  694. package/util/duration.d.ts +278 -16
  695. package/util/duration.js +267 -15
  696. package/util/element.d.ts +59 -6
  697. package/util/element.js +32 -3
  698. package/util/entity.d.ts +39 -6
  699. package/util/entity.js +5 -1
  700. package/util/entry.d.ts +56 -9
  701. package/util/entry.js +32 -4
  702. package/util/env.d.ts +26 -4
  703. package/util/env.js +26 -4
  704. package/util/equal.d.ts +181 -17
  705. package/util/equal.js +181 -17
  706. package/util/error.d.ts +57 -5
  707. package/util/error.js +52 -4
  708. package/util/file.d.ts +30 -7
  709. package/util/file.js +25 -6
  710. package/util/filter.d.ts +36 -4
  711. package/util/filter.js +31 -3
  712. package/util/focus.d.ts +9 -1
  713. package/util/focus.js +9 -1
  714. package/util/format.d.ts +186 -22
  715. package/util/format.js +135 -14
  716. package/util/function.d.ts +66 -11
  717. package/util/function.js +31 -4
  718. package/util/geo.d.ts +60 -8
  719. package/util/geo.js +45 -5
  720. package/util/hash.d.ts +21 -2
  721. package/util/hash.js +21 -2
  722. package/util/http.d.ts +134 -19
  723. package/util/http.js +94 -11
  724. package/util/hydrate.d.ts +19 -2
  725. package/util/hydrate.js +12 -1
  726. package/util/item.d.ts +70 -11
  727. package/util/item.js +35 -4
  728. package/util/iterate.d.ts +109 -13
  729. package/util/iterate.js +86 -10
  730. package/util/jwt.d.ts +47 -13
  731. package/util/jwt.js +36 -12
  732. package/util/lazy.d.ts +9 -6
  733. package/util/link.d.ts +10 -3
  734. package/util/link.js +5 -2
  735. package/util/log.d.ts +26 -3
  736. package/util/log.js +26 -3
  737. package/util/map.d.ts +144 -19
  738. package/util/map.js +101 -11
  739. package/util/merge.d.ts +23 -1
  740. package/util/merge.js +6 -0
  741. package/util/null.d.ts +102 -13
  742. package/util/null.js +92 -11
  743. package/util/number.d.ts +125 -8
  744. package/util/number.js +120 -7
  745. package/util/object.d.ts +263 -31
  746. package/util/object.js +154 -17
  747. package/util/path.d.ts +91 -15
  748. package/util/path.js +60 -9
  749. package/util/query.d.ts +78 -9
  750. package/util/query.js +58 -6
  751. package/util/random.d.ts +67 -4
  752. package/util/random.js +67 -4
  753. package/util/regexp.d.ts +201 -24
  754. package/util/regexp.js +106 -11
  755. package/util/sequence.d.ts +66 -8
  756. package/util/sequence.js +52 -7
  757. package/util/serialise.d.ts +7 -1
  758. package/util/serialise.js +7 -1
  759. package/util/set.d.ts +103 -13
  760. package/util/set.js +83 -9
  761. package/util/sort.d.ts +32 -7
  762. package/util/sort.js +26 -6
  763. package/util/source.d.ts +28 -3
  764. package/util/source.js +22 -2
  765. package/util/start.d.ts +62 -5
  766. package/util/start.js +47 -2
  767. package/util/string.d.ts +209 -25
  768. package/util/string.js +188 -21
  769. package/util/template.d.ts +58 -9
  770. package/util/template.js +45 -6
  771. package/util/timeout.d.ts +35 -11
  772. package/util/timeout.js +35 -11
  773. package/util/transform.d.ts +87 -8
  774. package/util/transform.js +75 -7
  775. package/util/tree.d.ts +39 -6
  776. package/util/tree.js +3 -0
  777. package/util/types.d.ts +8 -2
  778. package/util/undefined.d.ts +47 -6
  779. package/util/undefined.js +47 -6
  780. package/util/units.d.ts +107 -12
  781. package/util/units.js +97 -12
  782. package/util/update.d.ts +36 -4
  783. package/util/update.js +24 -2
  784. package/util/uri.d.ts +138 -6
  785. package/util/uri.js +44 -3
  786. package/util/url.d.ts +152 -7
  787. package/util/url.js +136 -5
  788. package/util/uuid.d.ts +28 -3
  789. package/util/uuid.js +28 -3
  790. package/util/validate.d.ts +85 -20
  791. package/util/validate.js +61 -12
  792. package/util/xml.d.ts +9 -10
  793. package/util/xml.js +9 -10
@@ -3,9 +3,47 @@ import { PostgreSQLProvider, type SQLFragment } from "../db/index.js";
3
3
  import type { ImmutableArray } from "../util/array.js";
4
4
  import type { Data } from "../util/data.js";
5
5
  import type { Identifier } from "../util/item.js";
6
+ /**
7
+ * PostgreSQL database provider backed by Bun's built-in `Bun.SQL` driver.
8
+ *
9
+ * Implements the `PostgreSQLProvider` SQL abstraction by executing tagged-template queries against a `Bun.SQL` connection.
10
+ * - Identifiers are escaped through `Bun.SQL`'s own `sql()` helper rather than naive string quoting, which is more secure.
11
+ * - Requires the `bun` peer dependency and a running Bun environment.
12
+ *
13
+ * @example
14
+ * import { SQL } from "bun";
15
+ * const provider = new BunPostgreSQLProvider(new SQL(process.env.DATABASE_URL));
16
+ *
17
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider
18
+ */
6
19
  export declare class BunPostgreSQLProvider<I extends Identifier = Identifier, T extends Data = Data> extends PostgreSQLProvider<I, T> {
7
20
  private _sql;
21
+ /**
22
+ * Create a provider wrapping an existing `Bun.SQL` connection.
23
+ *
24
+ * @param sql The `Bun.SQL` instance to execute queries against.
25
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider
26
+ */
8
27
  constructor(sql: SQL);
28
+ /**
29
+ * Execute an SQL query through the underlying `Bun.SQL` connection.
30
+ *
31
+ * @param strings The tagged-template string parts of the query.
32
+ * @param values The interpolated values bound as query parameters.
33
+ * @returns Promise resolving to the array of result rows.
34
+ * @example provider.exec`SELECT * FROM ${provider.sqlIdentifier("items")}`
35
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider/exec
36
+ */
9
37
  exec<X extends Data>(strings: TemplateStringsArray, ...values: ImmutableArray<unknown>): Promise<ImmutableArray<X>>;
38
+ /**
39
+ * Build an SQL fragment for an identifier, escaped via `Bun.SQL`'s `sql()` helper.
40
+ *
41
+ * Overrides the base implementation because the Bun SQL engine supports first-class identifier wrapping, which is more secure than manual quoting.
42
+ *
43
+ * @param name The identifier (table or column name) to escape.
44
+ * @returns An `SQLFragment` wrapping the escaped identifier.
45
+ * @example provider.sqlIdentifier("items")
46
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider/sqlIdentifier
47
+ */
10
48
  sqlIdentifier(name: string): SQLFragment;
11
49
  }
@@ -1,15 +1,51 @@
1
1
  import { PostgreSQLProvider } from "../db/index.js";
2
+ /**
3
+ * PostgreSQL database provider backed by Bun's built-in `Bun.SQL` driver.
4
+ *
5
+ * Implements the `PostgreSQLProvider` SQL abstraction by executing tagged-template queries against a `Bun.SQL` connection.
6
+ * - Identifiers are escaped through `Bun.SQL`'s own `sql()` helper rather than naive string quoting, which is more secure.
7
+ * - Requires the `bun` peer dependency and a running Bun environment.
8
+ *
9
+ * @example
10
+ * import { SQL } from "bun";
11
+ * const provider = new BunPostgreSQLProvider(new SQL(process.env.DATABASE_URL));
12
+ *
13
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider
14
+ */
2
15
  export class BunPostgreSQLProvider extends PostgreSQLProvider {
3
16
  _sql;
17
+ /**
18
+ * Create a provider wrapping an existing `Bun.SQL` connection.
19
+ *
20
+ * @param sql The `Bun.SQL` instance to execute queries against.
21
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider
22
+ */
4
23
  constructor(sql) {
5
24
  super();
6
25
  this._sql = sql;
7
26
  }
8
- // Implement `SQLProvider` using `Bun.SQL` instance.
27
+ /**
28
+ * Execute an SQL query through the underlying `Bun.SQL` connection.
29
+ *
30
+ * @param strings The tagged-template string parts of the query.
31
+ * @param values The interpolated values bound as query parameters.
32
+ * @returns Promise resolving to the array of result rows.
33
+ * @example provider.exec`SELECT * FROM ${provider.sqlIdentifier("items")}`
34
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider/exec
35
+ */
9
36
  exec(strings, ...values) {
10
37
  return this._sql(strings, ...values);
11
38
  }
12
- // Override to wrap identifiers using `sql()`, since Bun SQL engine supports this and it's more secure.
39
+ /**
40
+ * Build an SQL fragment for an identifier, escaped via `Bun.SQL`'s `sql()` helper.
41
+ *
42
+ * Overrides the base implementation because the Bun SQL engine supports first-class identifier wrapping, which is more secure than manual quoting.
43
+ *
44
+ * @param name The identifier (table or column name) to escape.
45
+ * @returns An `SQLFragment` wrapping the escaped identifier.
46
+ * @example provider.sqlIdentifier("items")
47
+ * @see https://dhoulb.github.io/shelving/bun/BunPostgreSQLProvider/BunPostgreSQLProvider/sqlIdentifier
48
+ */
13
49
  sqlIdentifier(name) {
14
50
  return this.sql `${this._sql(name)}`;
15
51
  }
@@ -4,12 +4,39 @@ import type { Data } from "../util/data.js";
4
4
  import type { Identifier } from "../util/item.js";
5
5
  import type { D1Database } from "./types.js";
6
6
  /**
7
- * Cloudflare D1 database provider.
7
+ * SQLite database provider backed by Cloudflare D1.
8
8
  *
9
- * Uses the D1 Worker API for execution and standard SQL from `SQLProvider`.
9
+ * Implements the `SQLiteProvider` SQL abstraction by binding tagged-template queries and running them through the D1 Worker API.
10
+ * - Tagged-template values are flattened into positional `?` bindings; nested `SQLFragment` values are inlined recursively.
11
+ * - Array and plain-object values are JSON-encoded before binding; other non-primitive values throw `ValueError`.
12
+ * - The `D1Database` binding is provided by the Cloudflare Workers runtime environment.
13
+ *
14
+ * @example
15
+ * // `env.DB` is the D1 binding from the Worker environment.
16
+ * const provider = new CloudflareD1Provider(env.DB);
17
+ *
18
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareD1Provider/CloudflareD1Provider
10
19
  */
11
20
  export declare class CloudflareD1Provider<I extends Identifier = Identifier, T extends Data = Data> extends SQLiteProvider<I, T> {
12
21
  private readonly _db;
22
+ /**
23
+ * Create a provider wrapping a Cloudflare D1 database binding.
24
+ *
25
+ * @param db The `D1Database` binding from the Worker environment.
26
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareD1Provider/CloudflareD1Provider
27
+ */
13
28
  constructor(db: D1Database);
29
+ /**
30
+ * Execute an SQL query through the Cloudflare D1 Worker API.
31
+ *
32
+ * Converts the tagged-template query into a parameterised statement, binds its values, and runs it via `prepare().bind().run()`.
33
+ *
34
+ * @param strings The tagged-template string parts of the query.
35
+ * @param values The interpolated values, bound as positional parameters or inlined `SQLFragment` instances.
36
+ * @returns Promise resolving to the array of result rows (empty if D1 returns no results).
37
+ * @throws {ValueError} If a value cannot be converted to a D1 binding.
38
+ * @example provider.exec`SELECT * FROM ${provider.sqlIdentifier("items")}`
39
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareD1Provider/CloudflareD1Provider/exec
40
+ */
14
41
  exec<X extends Data>(strings: TemplateStringsArray, ...values: ImmutableArray<unknown>): Promise<readonly X[]>;
15
42
  }
@@ -3,16 +3,43 @@ import { ValueError } from "../error/ValueError.js";
3
3
  import { isArray } from "../util/array.js";
4
4
  import { isPlainObject } from "../util/object.js";
5
5
  /**
6
- * Cloudflare D1 database provider.
6
+ * SQLite database provider backed by Cloudflare D1.
7
7
  *
8
- * Uses the D1 Worker API for execution and standard SQL from `SQLProvider`.
8
+ * Implements the `SQLiteProvider` SQL abstraction by binding tagged-template queries and running them through the D1 Worker API.
9
+ * - Tagged-template values are flattened into positional `?` bindings; nested `SQLFragment` values are inlined recursively.
10
+ * - Array and plain-object values are JSON-encoded before binding; other non-primitive values throw `ValueError`.
11
+ * - The `D1Database` binding is provided by the Cloudflare Workers runtime environment.
12
+ *
13
+ * @example
14
+ * // `env.DB` is the D1 binding from the Worker environment.
15
+ * const provider = new CloudflareD1Provider(env.DB);
16
+ *
17
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareD1Provider/CloudflareD1Provider
9
18
  */
10
19
  export class CloudflareD1Provider extends SQLiteProvider {
11
20
  _db;
21
+ /**
22
+ * Create a provider wrapping a Cloudflare D1 database binding.
23
+ *
24
+ * @param db The `D1Database` binding from the Worker environment.
25
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareD1Provider/CloudflareD1Provider
26
+ */
12
27
  constructor(db) {
13
28
  super();
14
29
  this._db = db;
15
30
  }
31
+ /**
32
+ * Execute an SQL query through the Cloudflare D1 Worker API.
33
+ *
34
+ * Converts the tagged-template query into a parameterised statement, binds its values, and runs it via `prepare().bind().run()`.
35
+ *
36
+ * @param strings The tagged-template string parts of the query.
37
+ * @param values The interpolated values, bound as positional parameters or inlined `SQLFragment` instances.
38
+ * @returns Promise resolving to the array of result rows (empty if D1 returns no results).
39
+ * @throws {ValueError} If a value cannot be converted to a D1 binding.
40
+ * @example provider.exec`SELECT * FROM ${provider.sqlIdentifier("items")}`
41
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareD1Provider/CloudflareD1Provider/exec
42
+ */
16
43
  async exec(strings, ...values) {
17
44
  const { query, values: bindings } = _getD1Query(strings, values, this.exec);
18
45
  const result = await this._db
@@ -26,19 +26,134 @@ import type { KVNamespace } from "./types.js";
26
26
  * - **Single-key store only:** This provider is intentionally limited to direct key reads and writes.
27
27
  * If you need collection queries, filtering, sorting, or bulk mutations, use a different backend.
28
28
  * - **Eventual consistency:** KV is eventually consistent, so reads may briefly return stale values shortly after writes.
29
+ *
30
+ * @example
31
+ * // `env.KV` is the KV namespace binding from the Worker environment.
32
+ * const provider = new CloudflareKVProvider(env.KV);
33
+ *
34
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider
29
35
  */
30
36
  export declare class CloudflareKVProvider<I extends string = string, T extends Data = Data> extends DBProvider<I, T> {
31
37
  private readonly _kv;
38
+ /**
39
+ * Create a provider wrapping a Cloudflare Workers KV namespace binding.
40
+ *
41
+ * @param kv The `KVNamespace` binding from the Worker environment.
42
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider
43
+ */
32
44
  constructor(kv: KVNamespace);
45
+ /**
46
+ * Read a single item by ID from the KV namespace.
47
+ *
48
+ * @param collection The collection the item belongs to (only its `name` is used to form the key).
49
+ * @param id The ID of the item to read.
50
+ * @returns Promise resolving to the item, or `undefined` if no value exists for the key.
51
+ * @example await provider.getItem(users, "abc123")
52
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getItem
53
+ */
33
54
  getItem<II extends I, TT extends T>({ name }: Collection<string, II, TT>, id: II): Promise<OptionalItem<II, TT>>;
55
+ /**
56
+ * Not supported — KV has no change feed or push notification mechanism.
57
+ *
58
+ * @param collection The collection the item belongs to.
59
+ * @param id The ID of the item to subscribe to.
60
+ * @returns Never returns normally.
61
+ * @throws {UnimplementedError} Always, because KV does not support realtime subscriptions.
62
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getItemSequence
63
+ */
34
64
  getItemSequence<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _id: II): OptionalItemSequence<II, TT>;
65
+ /**
66
+ * Add an item with an automatically generated UUID v4 identifier.
67
+ *
68
+ * @param collection The collection to add the item to (only its `name` is used to form the key).
69
+ * @param data The data for the new item.
70
+ * @returns Promise resolving to the generated ID of the new item.
71
+ * @example const id = await provider.addItem(users, { name: "Dave" })
72
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/addItem
73
+ */
35
74
  addItem<II extends I, TT extends T>({ name }: Collection<string, II, TT>, data: TT): Promise<II>;
75
+ /**
76
+ * Write an item by ID, overwriting any existing value.
77
+ *
78
+ * @param collection The collection the item belongs to (only its `name` is used to form the key).
79
+ * @param id The ID of the item to write.
80
+ * @param data The data to store for the item.
81
+ * @returns Promise resolving once the write completes.
82
+ * @example await provider.setItem(users, "abc123", { name: "Dave" })
83
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/setItem
84
+ */
36
85
  setItem<II extends I, TT extends T>({ name }: Collection<string, II, TT>, id: II, data: TT): Promise<void>;
86
+ /**
87
+ * Not supported — KV cannot apply partial updates atomically.
88
+ *
89
+ * @param collection The collection the item belongs to.
90
+ * @param id The ID of the item to update.
91
+ * @param updates The updates to apply.
92
+ * @returns Never returns normally.
93
+ * @throws {UnimplementedError} Always, because KV does not support item updates.
94
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/updateItem
95
+ */
37
96
  updateItem<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _id: II, _updates: Updates<Item<II, TT>>): Promise<void>;
97
+ /**
98
+ * Delete an item by ID from the KV namespace.
99
+ *
100
+ * @param collection The collection the item belongs to (only its `name` is used to form the key).
101
+ * @param id The ID of the item to delete.
102
+ * @returns Promise resolving once the deletion completes.
103
+ * @example await provider.deleteItem(users, "abc123")
104
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/deleteItem
105
+ */
38
106
  deleteItem<II extends I, TT extends T>({ name }: Collection<string, II, TT>, id: II): Promise<void>;
107
+ /**
108
+ * Not supported — KV cannot efficiently filter, sort, or scan collections.
109
+ *
110
+ * @param collection The collection to query.
111
+ * @param query The query to run.
112
+ * @returns Never returns normally.
113
+ * @throws {UnimplementedError} Always, because KV does not support collection queries.
114
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getQuery
115
+ */
39
116
  getQuery<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _query?: Query<Item<II, TT>>): Promise<Items<II, TT>>;
117
+ /**
118
+ * Not supported — KV has no change feed and cannot run collection queries.
119
+ *
120
+ * @param collection The collection to query.
121
+ * @param query The query to subscribe to.
122
+ * @returns Never returns normally.
123
+ * @throws {UnimplementedError} Always, because KV does not support realtime subscriptions.
124
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getQuerySequence
125
+ */
40
126
  getQuerySequence<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _query?: Query<Item<II, TT>>): ItemsSequence<II, TT>;
127
+ /**
128
+ * Not supported — KV cannot run the collection query needed to target matching items.
129
+ *
130
+ * @param collection The collection to query.
131
+ * @param query The query selecting items to write.
132
+ * @param data The data to write to each matching item.
133
+ * @returns Never returns normally.
134
+ * @throws {UnimplementedError} Always, because KV does not support collection queries.
135
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/setQuery
136
+ */
41
137
  setQuery<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _query: Query<Item<II, TT>>, _data: TT): Promise<void>;
138
+ /**
139
+ * Not supported — KV supports neither updates nor collection queries.
140
+ *
141
+ * @param collection The collection to query.
142
+ * @param query The query selecting items to update.
143
+ * @param updates The updates to apply to each matching item.
144
+ * @returns Never returns normally.
145
+ * @throws {UnimplementedError} Always, because KV does not support item updates.
146
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/updateQuery
147
+ */
42
148
  updateQuery<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _query: Query<Item<II, TT>>, _updates: Updates<TT>): Promise<void>;
149
+ /**
150
+ * Not supported — KV cannot run the collection query needed to target matching items.
151
+ *
152
+ * @param collection The collection to query.
153
+ * @param query The query selecting items to delete.
154
+ * @returns Never returns normally.
155
+ * @throws {UnimplementedError} Always, because KV does not support collection queries.
156
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/deleteQuery
157
+ */
43
158
  deleteQuery<II extends I, TT extends T>(_collection: Collection<string, II, TT>, _query: Query<Item<II, TT>>): Promise<void>;
44
159
  }
@@ -23,47 +23,162 @@ import { randomUUID } from "../util/uuid.js";
23
23
  * - **Single-key store only:** This provider is intentionally limited to direct key reads and writes.
24
24
  * If you need collection queries, filtering, sorting, or bulk mutations, use a different backend.
25
25
  * - **Eventual consistency:** KV is eventually consistent, so reads may briefly return stale values shortly after writes.
26
+ *
27
+ * @example
28
+ * // `env.KV` is the KV namespace binding from the Worker environment.
29
+ * const provider = new CloudflareKVProvider(env.KV);
30
+ *
31
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider
26
32
  */
27
33
  export class CloudflareKVProvider extends DBProvider {
28
34
  _kv;
35
+ /**
36
+ * Create a provider wrapping a Cloudflare Workers KV namespace binding.
37
+ *
38
+ * @param kv The `KVNamespace` binding from the Worker environment.
39
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider
40
+ */
29
41
  constructor(kv) {
30
42
  super();
31
43
  this._kv = kv;
32
44
  }
45
+ /**
46
+ * Read a single item by ID from the KV namespace.
47
+ *
48
+ * @param collection The collection the item belongs to (only its `name` is used to form the key).
49
+ * @param id The ID of the item to read.
50
+ * @returns Promise resolving to the item, or `undefined` if no value exists for the key.
51
+ * @example await provider.getItem(users, "abc123")
52
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getItem
53
+ */
33
54
  async getItem({ name }, id) {
34
55
  const data = (await this._kv.get(_getKey(name, id), { type: "json" })); // `as TT` needed: KV returns unknown from JSON parse.
35
56
  if (data)
36
57
  return getItem(id, data);
37
58
  }
59
+ /**
60
+ * Not supported — KV has no change feed or push notification mechanism.
61
+ *
62
+ * @param collection The collection the item belongs to.
63
+ * @param id The ID of the item to subscribe to.
64
+ * @returns Never returns normally.
65
+ * @throws {UnimplementedError} Always, because KV does not support realtime subscriptions.
66
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getItemSequence
67
+ */
38
68
  getItemSequence(_collection, _id) {
39
69
  throw new UnimplementedError("CloudflareKVProvider does not support realtime subscriptions");
40
70
  }
71
+ /**
72
+ * Add an item with an automatically generated UUID v4 identifier.
73
+ *
74
+ * @param collection The collection to add the item to (only its `name` is used to form the key).
75
+ * @param data The data for the new item.
76
+ * @returns Promise resolving to the generated ID of the new item.
77
+ * @example const id = await provider.addItem(users, { name: "Dave" })
78
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/addItem
79
+ */
41
80
  async addItem({ name }, data) {
42
81
  const id = randomUUID(); // `as II` needed: TypeScript can't narrow II from string return type.
43
82
  await this._kv.put(_getKey(name, id), JSON.stringify(data));
44
83
  return id;
45
84
  }
85
+ /**
86
+ * Write an item by ID, overwriting any existing value.
87
+ *
88
+ * @param collection The collection the item belongs to (only its `name` is used to form the key).
89
+ * @param id The ID of the item to write.
90
+ * @param data The data to store for the item.
91
+ * @returns Promise resolving once the write completes.
92
+ * @example await provider.setItem(users, "abc123", { name: "Dave" })
93
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/setItem
94
+ */
46
95
  async setItem({ name }, id, data) {
47
96
  await this._kv.put(_getKey(name, id), JSON.stringify(data));
48
97
  }
98
+ /**
99
+ * Not supported — KV cannot apply partial updates atomically.
100
+ *
101
+ * @param collection The collection the item belongs to.
102
+ * @param id The ID of the item to update.
103
+ * @param updates The updates to apply.
104
+ * @returns Never returns normally.
105
+ * @throws {UnimplementedError} Always, because KV does not support item updates.
106
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/updateItem
107
+ */
49
108
  async updateItem(_collection, _id, _updates) {
50
109
  throw new UnimplementedError("CloudflareKVProvider does not support updates to items");
51
110
  }
111
+ /**
112
+ * Delete an item by ID from the KV namespace.
113
+ *
114
+ * @param collection The collection the item belongs to (only its `name` is used to form the key).
115
+ * @param id The ID of the item to delete.
116
+ * @returns Promise resolving once the deletion completes.
117
+ * @example await provider.deleteItem(users, "abc123")
118
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/deleteItem
119
+ */
52
120
  async deleteItem({ name }, id) {
53
121
  await this._kv.delete(_getKey(name, id));
54
122
  }
123
+ /**
124
+ * Not supported — KV cannot efficiently filter, sort, or scan collections.
125
+ *
126
+ * @param collection The collection to query.
127
+ * @param query The query to run.
128
+ * @returns Never returns normally.
129
+ * @throws {UnimplementedError} Always, because KV does not support collection queries.
130
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getQuery
131
+ */
55
132
  async getQuery(_collection, _query) {
56
133
  throw new UnimplementedError("CloudflareKVProvider does not support querying items");
57
134
  }
135
+ /**
136
+ * Not supported — KV has no change feed and cannot run collection queries.
137
+ *
138
+ * @param collection The collection to query.
139
+ * @param query The query to subscribe to.
140
+ * @returns Never returns normally.
141
+ * @throws {UnimplementedError} Always, because KV does not support realtime subscriptions.
142
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/getQuerySequence
143
+ */
58
144
  getQuerySequence(_collection, _query) {
59
145
  throw new UnimplementedError("CloudflareKVProvider does not support realtime subscriptions");
60
146
  }
147
+ /**
148
+ * Not supported — KV cannot run the collection query needed to target matching items.
149
+ *
150
+ * @param collection The collection to query.
151
+ * @param query The query selecting items to write.
152
+ * @param data The data to write to each matching item.
153
+ * @returns Never returns normally.
154
+ * @throws {UnimplementedError} Always, because KV does not support collection queries.
155
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/setQuery
156
+ */
61
157
  async setQuery(_collection, _query, _data) {
62
158
  throw new UnimplementedError("CloudflareKVProvider does not support querying items");
63
159
  }
160
+ /**
161
+ * Not supported — KV supports neither updates nor collection queries.
162
+ *
163
+ * @param collection The collection to query.
164
+ * @param query The query selecting items to update.
165
+ * @param updates The updates to apply to each matching item.
166
+ * @returns Never returns normally.
167
+ * @throws {UnimplementedError} Always, because KV does not support item updates.
168
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/updateQuery
169
+ */
64
170
  async updateQuery(_collection, _query, _updates) {
65
171
  throw new UnimplementedError("CloudflareKVProvider does not support updates to items");
66
172
  }
173
+ /**
174
+ * Not supported — KV cannot run the collection query needed to target matching items.
175
+ *
176
+ * @param collection The collection to query.
177
+ * @param query The query selecting items to delete.
178
+ * @returns Never returns normally.
179
+ * @throws {UnimplementedError} Always, because KV does not support collection queries.
180
+ * @see https://dhoulb.github.io/shelving/cloudflare/CloudflareKVProvider/CloudflareKVProvider/deleteQuery
181
+ */
67
182
  async deleteQuery(_collection, _query) {
68
183
  throw new UnimplementedError("CloudflareKVProvider does not support querying items");
69
184
  }
@@ -1,4 +1,10 @@
1
- /** Minimal interface matching Cloudflare Workers KV namespace runtime object. */
1
+ /**
2
+ * Minimal interface matching the Cloudflare Workers KV namespace runtime object.
3
+ *
4
+ * Declares only the subset of methods `CloudflareKVProvider` uses, so the `@cloudflare/workers-types` package is not required as a dependency.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/KVNamespace
7
+ */
2
8
  export interface KVNamespace {
3
9
  get(key: string, options: {
4
10
  type: "json";
@@ -6,9 +12,17 @@ export interface KVNamespace {
6
12
  put(key: string, value: string): Promise<void>;
7
13
  delete(key: string): Promise<void>;
8
14
  }
9
- /** Value that can be passed through the D1 Worker API. */
15
+ /**
16
+ * Value that can be passed through the D1 Worker API as a bound parameter.
17
+ *
18
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/D1Value
19
+ */
10
20
  export type D1Value = boolean | null | number | string;
11
- /** Metadata returned by the D1 Worker API. */
21
+ /**
22
+ * Metadata returned by the D1 Worker API alongside a query result.
23
+ *
24
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/D1Meta
25
+ */
12
26
  export interface D1Meta {
13
27
  readonly changed_db?: boolean | undefined;
14
28
  readonly duration?: number | undefined;
@@ -16,18 +30,32 @@ export interface D1Meta {
16
30
  readonly rows_read?: number | undefined;
17
31
  readonly rows_written?: number | undefined;
18
32
  }
19
- /** Result object returned by `D1PreparedStatement.run()`. */
33
+ /**
34
+ * Result object returned by `D1PreparedStatement.run()`.
35
+ *
36
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/D1Result
37
+ */
20
38
  export interface D1Result<T extends Record<string, unknown> = Record<string, unknown>> {
21
39
  readonly success: boolean;
22
40
  readonly meta?: D1Meta | undefined;
23
41
  readonly results?: readonly T[] | undefined;
24
42
  }
25
- /** Result object returned by `D1Database.exec()`. */
43
+ /**
44
+ * Result object returned by `D1Database.exec()`.
45
+ *
46
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/D1ExecResult
47
+ */
26
48
  export interface D1ExecResult {
27
49
  readonly count: number;
28
50
  readonly duration: number;
29
51
  }
30
- /** Minimal prepared statement interface for D1 databases and sessions. */
52
+ /**
53
+ * Minimal prepared statement interface for D1 databases and sessions.
54
+ *
55
+ * Declares only the subset of the D1 prepared-statement API used by `CloudflareD1Provider`.
56
+ *
57
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/D1PreparedStatement
58
+ */
31
59
  export interface D1PreparedStatement {
32
60
  bind(...values: D1Value[]): D1PreparedStatement;
33
61
  first<T = Record<string, unknown>>(column?: string): Promise<T | null>;
@@ -36,7 +64,13 @@ export interface D1PreparedStatement {
36
64
  }): Promise<readonly T[]>;
37
65
  run<T extends Record<string, unknown> = Record<string, unknown>>(): Promise<D1Result<T>>;
38
66
  }
39
- /** Minimal D1 binding/session interface used by `CloudflareD1Provider`. */
67
+ /**
68
+ * Minimal D1 binding/session interface used by `CloudflareD1Provider`.
69
+ *
70
+ * Declares only the subset of the D1 binding API the provider needs, so the `@cloudflare/workers-types` package is not required as a dependency.
71
+ *
72
+ * @see https://dhoulb.github.io/shelving/cloudflare/types/D1Database
73
+ */
40
74
  export interface D1Database {
41
75
  batch<T extends Record<string, unknown> = Record<string, unknown>>(statements: readonly D1PreparedStatement[]): Promise<readonly D1Result<T>[]>;
42
76
  exec?(query: string): Promise<D1ExecResult>;