@functional-systems/lambdadb 0.4.3 → 0.5.0-rc.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 (378) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/FUNCTIONS.md +7 -2
  3. package/README.md +76 -4
  4. package/RUNTIMES.md +7 -0
  5. package/USAGE.md +20 -0
  6. package/dist/commonjs/client.d.ts +31 -14
  7. package/dist/commonjs/client.d.ts.map +1 -1
  8. package/dist/commonjs/client.js +188 -60
  9. package/dist/commonjs/client.js.map +1 -1
  10. package/dist/commonjs/compat/qdrant/client.d.ts +3 -6
  11. package/dist/commonjs/compat/qdrant/client.d.ts.map +1 -1
  12. package/dist/commonjs/compat/qdrant/client.js +17 -11
  13. package/dist/commonjs/compat/qdrant/client.js.map +1 -1
  14. package/dist/commonjs/funcs/collectionsCreate.d.ts +1 -1
  15. package/dist/commonjs/funcs/collectionsCreate.d.ts.map +1 -1
  16. package/dist/commonjs/funcs/collectionsCreate.js +1 -1
  17. package/dist/commonjs/funcs/collectionsCreate.js.map +1 -1
  18. package/dist/commonjs/funcs/collectionsDelete.d.ts +1 -1
  19. package/dist/commonjs/funcs/collectionsDelete.d.ts.map +1 -1
  20. package/dist/commonjs/funcs/collectionsDelete.js +1 -1
  21. package/dist/commonjs/funcs/collectionsDelete.js.map +1 -1
  22. package/dist/commonjs/funcs/collectionsDocsBulkUpsert.d.ts +1 -1
  23. package/dist/commonjs/funcs/collectionsDocsBulkUpsert.d.ts.map +1 -1
  24. package/dist/commonjs/funcs/collectionsDocsBulkUpsert.js +1 -1
  25. package/dist/commonjs/funcs/collectionsDocsBulkUpsert.js.map +1 -1
  26. package/dist/commonjs/funcs/collectionsDocsDelete.d.ts +2 -2
  27. package/dist/commonjs/funcs/collectionsDocsDelete.d.ts.map +1 -1
  28. package/dist/commonjs/funcs/collectionsDocsDelete.js +2 -2
  29. package/dist/commonjs/funcs/collectionsDocsDelete.js.map +1 -1
  30. package/dist/commonjs/funcs/collectionsDocsFetch.d.ts +1 -1
  31. package/dist/commonjs/funcs/collectionsDocsFetch.d.ts.map +1 -1
  32. package/dist/commonjs/funcs/collectionsDocsFetch.js +1 -1
  33. package/dist/commonjs/funcs/collectionsDocsFetch.js.map +1 -1
  34. package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.d.ts +1 -1
  35. package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.d.ts.map +1 -1
  36. package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.js +5 -1
  37. package/dist/commonjs/funcs/collectionsDocsGetBulkUpsert.js.map +1 -1
  38. package/dist/commonjs/funcs/collectionsDocsListDocs.d.ts +1 -1
  39. package/dist/commonjs/funcs/collectionsDocsListDocs.d.ts.map +1 -1
  40. package/dist/commonjs/funcs/collectionsDocsListDocs.js +3 -1
  41. package/dist/commonjs/funcs/collectionsDocsListDocs.js.map +1 -1
  42. package/dist/commonjs/funcs/collectionsDocsListDocsExtended.d.ts +1 -1
  43. package/dist/commonjs/funcs/collectionsDocsListDocsExtended.d.ts.map +1 -1
  44. package/dist/commonjs/funcs/collectionsDocsListDocsExtended.js +1 -1
  45. package/dist/commonjs/funcs/collectionsDocsListDocsExtended.js.map +1 -1
  46. package/dist/commonjs/funcs/collectionsDocsUpdate.d.ts +1 -1
  47. package/dist/commonjs/funcs/collectionsDocsUpdate.d.ts.map +1 -1
  48. package/dist/commonjs/funcs/collectionsDocsUpdate.js +1 -1
  49. package/dist/commonjs/funcs/collectionsDocsUpdate.js.map +1 -1
  50. package/dist/commonjs/funcs/collectionsDocsUpsert.d.ts +1 -1
  51. package/dist/commonjs/funcs/collectionsDocsUpsert.d.ts.map +1 -1
  52. package/dist/commonjs/funcs/collectionsDocsUpsert.js +1 -1
  53. package/dist/commonjs/funcs/collectionsDocsUpsert.js.map +1 -1
  54. package/dist/commonjs/funcs/collectionsGet.d.ts +1 -1
  55. package/dist/commonjs/funcs/collectionsGet.d.ts.map +1 -1
  56. package/dist/commonjs/funcs/collectionsGet.js +1 -1
  57. package/dist/commonjs/funcs/collectionsGet.js.map +1 -1
  58. package/dist/commonjs/funcs/collectionsList.d.ts +1 -1
  59. package/dist/commonjs/funcs/collectionsList.d.ts.map +1 -1
  60. package/dist/commonjs/funcs/collectionsList.js +1 -1
  61. package/dist/commonjs/funcs/collectionsList.js.map +1 -1
  62. package/dist/commonjs/funcs/collectionsQuery.d.ts +1 -1
  63. package/dist/commonjs/funcs/collectionsQuery.d.ts.map +1 -1
  64. package/dist/commonjs/funcs/collectionsQuery.js +1 -1
  65. package/dist/commonjs/funcs/collectionsQuery.js.map +1 -1
  66. package/dist/commonjs/funcs/collectionsUpdate.d.ts +1 -1
  67. package/dist/commonjs/funcs/collectionsUpdate.d.ts.map +1 -1
  68. package/dist/commonjs/funcs/collectionsUpdate.js +1 -1
  69. package/dist/commonjs/funcs/collectionsUpdate.js.map +1 -1
  70. package/dist/commonjs/index.d.ts +4 -1
  71. package/dist/commonjs/index.d.ts.map +1 -1
  72. package/dist/commonjs/index.js +15 -1
  73. package/dist/commonjs/index.js.map +1 -1
  74. package/dist/commonjs/lib/collectionContract.d.ts +4 -0
  75. package/dist/commonjs/lib/collectionContract.d.ts.map +1 -0
  76. package/dist/commonjs/lib/collectionContract.js +68 -0
  77. package/dist/commonjs/lib/collectionContract.js.map +1 -0
  78. package/dist/commonjs/lib/config.d.ts +2 -2
  79. package/dist/commonjs/lib/config.js +2 -2
  80. package/dist/commonjs/lib/config.js.map +1 -1
  81. package/dist/commonjs/lib/matchers.d.ts +3 -0
  82. package/dist/commonjs/lib/matchers.d.ts.map +1 -1
  83. package/dist/commonjs/lib/matchers.js +11 -0
  84. package/dist/commonjs/lib/matchers.js.map +1 -1
  85. package/dist/commonjs/lib/queryInput.d.ts +3 -11
  86. package/dist/commonjs/lib/queryInput.d.ts.map +1 -1
  87. package/dist/commonjs/lib/queryInput.js.map +1 -1
  88. package/dist/commonjs/models/collectionresponse.d.ts +16 -22
  89. package/dist/commonjs/models/collectionresponse.d.ts.map +1 -1
  90. package/dist/commonjs/models/collectionresponse.js +6 -7
  91. package/dist/commonjs/models/collectionresponse.js.map +1 -1
  92. package/dist/commonjs/models/errors/gatewayerrors.d.ts +47 -0
  93. package/dist/commonjs/models/errors/gatewayerrors.d.ts.map +1 -0
  94. package/dist/commonjs/models/errors/gatewayerrors.js +104 -0
  95. package/dist/commonjs/models/errors/gatewayerrors.js.map +1 -0
  96. package/dist/commonjs/models/errors/index.d.ts +1 -0
  97. package/dist/commonjs/models/errors/index.d.ts.map +1 -1
  98. package/dist/commonjs/models/errors/index.js +1 -0
  99. package/dist/commonjs/models/errors/index.js.map +1 -1
  100. package/dist/commonjs/models/errors/lambdadberror.d.ts +2 -0
  101. package/dist/commonjs/models/errors/lambdadberror.d.ts.map +1 -1
  102. package/dist/commonjs/models/errors/lambdadberror.js +4 -0
  103. package/dist/commonjs/models/errors/lambdadberror.js.map +1 -1
  104. package/dist/commonjs/models/index.d.ts +1 -0
  105. package/dist/commonjs/models/index.d.ts.map +1 -1
  106. package/dist/commonjs/models/index.js +1 -0
  107. package/dist/commonjs/models/index.js.map +1 -1
  108. package/dist/commonjs/models/operations/bulkupsertdocs.d.ts +6 -0
  109. package/dist/commonjs/models/operations/bulkupsertdocs.d.ts.map +1 -1
  110. package/dist/commonjs/models/operations/bulkupsertdocs.js +3 -1
  111. package/dist/commonjs/models/operations/bulkupsertdocs.js.map +1 -1
  112. package/dist/commonjs/models/operations/createcollection.d.ts +20 -13
  113. package/dist/commonjs/models/operations/createcollection.d.ts.map +1 -1
  114. package/dist/commonjs/models/operations/createcollection.js +15 -8
  115. package/dist/commonjs/models/operations/createcollection.js.map +1 -1
  116. package/dist/commonjs/models/operations/deletedocs.d.ts +26 -2
  117. package/dist/commonjs/models/operations/deletedocs.d.ts.map +1 -1
  118. package/dist/commonjs/models/operations/deletedocs.js +2 -1
  119. package/dist/commonjs/models/operations/deletedocs.js.map +1 -1
  120. package/dist/commonjs/models/operations/fetchdocs.d.ts +4 -1
  121. package/dist/commonjs/models/operations/fetchdocs.d.ts.map +1 -1
  122. package/dist/commonjs/models/operations/fetchdocs.js +9 -0
  123. package/dist/commonjs/models/operations/fetchdocs.js.map +1 -1
  124. package/dist/commonjs/models/operations/getbulkupsertdocs.d.ts +5 -0
  125. package/dist/commonjs/models/operations/getbulkupsertdocs.d.ts.map +1 -1
  126. package/dist/commonjs/models/operations/getbulkupsertdocs.js +5 -3
  127. package/dist/commonjs/models/operations/getbulkupsertdocs.js.map +1 -1
  128. package/dist/commonjs/models/operations/listdocs.d.ts +11 -2
  129. package/dist/commonjs/models/operations/listdocs.d.ts.map +1 -1
  130. package/dist/commonjs/models/operations/listdocs.js +12 -1
  131. package/dist/commonjs/models/operations/listdocs.js.map +1 -1
  132. package/dist/commonjs/models/operations/querycollection.d.ts +4 -1
  133. package/dist/commonjs/models/operations/querycollection.d.ts.map +1 -1
  134. package/dist/commonjs/models/operations/querycollection.js +9 -0
  135. package/dist/commonjs/models/operations/querycollection.js.map +1 -1
  136. package/dist/commonjs/models/operations/updatecollection.d.ts +33 -4
  137. package/dist/commonjs/models/operations/updatecollection.d.ts.map +1 -1
  138. package/dist/commonjs/models/operations/updatecollection.js +6 -2
  139. package/dist/commonjs/models/operations/updatecollection.js.map +1 -1
  140. package/dist/commonjs/models/operations/updatedocs.d.ts +3 -0
  141. package/dist/commonjs/models/operations/updatedocs.d.ts.map +1 -1
  142. package/dist/commonjs/models/operations/updatedocs.js +2 -1
  143. package/dist/commonjs/models/operations/updatedocs.js.map +1 -1
  144. package/dist/commonjs/models/operations/upsertdocs.d.ts +3 -0
  145. package/dist/commonjs/models/operations/upsertdocs.d.ts.map +1 -1
  146. package/dist/commonjs/models/operations/upsertdocs.js +2 -1
  147. package/dist/commonjs/models/operations/upsertdocs.js.map +1 -1
  148. package/dist/commonjs/models/versioning.d.ts +100 -0
  149. package/dist/commonjs/models/versioning.d.ts.map +1 -0
  150. package/dist/commonjs/models/versioning.js +93 -0
  151. package/dist/commonjs/models/versioning.js.map +1 -0
  152. package/dist/commonjs/sdk/docs.d.ts +1 -1
  153. package/dist/commonjs/sdk/docs.js +1 -1
  154. package/dist/commonjs/types/errors.d.ts +15 -13
  155. package/dist/commonjs/types/errors.d.ts.map +1 -1
  156. package/dist/commonjs/types/errors.js +6 -1
  157. package/dist/commonjs/types/errors.js.map +1 -1
  158. package/dist/commonjs/types/public.d.ts +80 -6
  159. package/dist/commonjs/types/public.d.ts.map +1 -1
  160. package/dist/commonjs/types/public.js +30 -7
  161. package/dist/commonjs/types/public.js.map +1 -1
  162. package/dist/commonjs/versioning.d.ts +63 -0
  163. package/dist/commonjs/versioning.d.ts.map +1 -0
  164. package/dist/commonjs/versioning.js +402 -0
  165. package/dist/commonjs/versioning.js.map +1 -0
  166. package/dist/esm/client.d.ts +31 -14
  167. package/dist/esm/client.d.ts.map +1 -1
  168. package/dist/esm/client.js +189 -62
  169. package/dist/esm/client.js.map +1 -1
  170. package/dist/esm/compat/qdrant/client.d.ts +3 -6
  171. package/dist/esm/compat/qdrant/client.d.ts.map +1 -1
  172. package/dist/esm/compat/qdrant/client.js +17 -11
  173. package/dist/esm/compat/qdrant/client.js.map +1 -1
  174. package/dist/esm/funcs/collectionsCreate.d.ts +1 -1
  175. package/dist/esm/funcs/collectionsCreate.d.ts.map +1 -1
  176. package/dist/esm/funcs/collectionsCreate.js +1 -1
  177. package/dist/esm/funcs/collectionsCreate.js.map +1 -1
  178. package/dist/esm/funcs/collectionsDelete.d.ts +1 -1
  179. package/dist/esm/funcs/collectionsDelete.d.ts.map +1 -1
  180. package/dist/esm/funcs/collectionsDelete.js +1 -1
  181. package/dist/esm/funcs/collectionsDelete.js.map +1 -1
  182. package/dist/esm/funcs/collectionsDocsBulkUpsert.d.ts +1 -1
  183. package/dist/esm/funcs/collectionsDocsBulkUpsert.d.ts.map +1 -1
  184. package/dist/esm/funcs/collectionsDocsBulkUpsert.js +1 -1
  185. package/dist/esm/funcs/collectionsDocsBulkUpsert.js.map +1 -1
  186. package/dist/esm/funcs/collectionsDocsDelete.d.ts +2 -2
  187. package/dist/esm/funcs/collectionsDocsDelete.d.ts.map +1 -1
  188. package/dist/esm/funcs/collectionsDocsDelete.js +2 -2
  189. package/dist/esm/funcs/collectionsDocsDelete.js.map +1 -1
  190. package/dist/esm/funcs/collectionsDocsFetch.d.ts +1 -1
  191. package/dist/esm/funcs/collectionsDocsFetch.d.ts.map +1 -1
  192. package/dist/esm/funcs/collectionsDocsFetch.js +1 -1
  193. package/dist/esm/funcs/collectionsDocsFetch.js.map +1 -1
  194. package/dist/esm/funcs/collectionsDocsGetBulkUpsert.d.ts +1 -1
  195. package/dist/esm/funcs/collectionsDocsGetBulkUpsert.d.ts.map +1 -1
  196. package/dist/esm/funcs/collectionsDocsGetBulkUpsert.js +6 -2
  197. package/dist/esm/funcs/collectionsDocsGetBulkUpsert.js.map +1 -1
  198. package/dist/esm/funcs/collectionsDocsListDocs.d.ts +1 -1
  199. package/dist/esm/funcs/collectionsDocsListDocs.d.ts.map +1 -1
  200. package/dist/esm/funcs/collectionsDocsListDocs.js +3 -1
  201. package/dist/esm/funcs/collectionsDocsListDocs.js.map +1 -1
  202. package/dist/esm/funcs/collectionsDocsListDocsExtended.d.ts +1 -1
  203. package/dist/esm/funcs/collectionsDocsListDocsExtended.d.ts.map +1 -1
  204. package/dist/esm/funcs/collectionsDocsListDocsExtended.js +1 -1
  205. package/dist/esm/funcs/collectionsDocsListDocsExtended.js.map +1 -1
  206. package/dist/esm/funcs/collectionsDocsUpdate.d.ts +1 -1
  207. package/dist/esm/funcs/collectionsDocsUpdate.d.ts.map +1 -1
  208. package/dist/esm/funcs/collectionsDocsUpdate.js +1 -1
  209. package/dist/esm/funcs/collectionsDocsUpdate.js.map +1 -1
  210. package/dist/esm/funcs/collectionsDocsUpsert.d.ts +1 -1
  211. package/dist/esm/funcs/collectionsDocsUpsert.d.ts.map +1 -1
  212. package/dist/esm/funcs/collectionsDocsUpsert.js +1 -1
  213. package/dist/esm/funcs/collectionsDocsUpsert.js.map +1 -1
  214. package/dist/esm/funcs/collectionsGet.d.ts +1 -1
  215. package/dist/esm/funcs/collectionsGet.d.ts.map +1 -1
  216. package/dist/esm/funcs/collectionsGet.js +1 -1
  217. package/dist/esm/funcs/collectionsGet.js.map +1 -1
  218. package/dist/esm/funcs/collectionsList.d.ts +1 -1
  219. package/dist/esm/funcs/collectionsList.d.ts.map +1 -1
  220. package/dist/esm/funcs/collectionsList.js +1 -1
  221. package/dist/esm/funcs/collectionsList.js.map +1 -1
  222. package/dist/esm/funcs/collectionsQuery.d.ts +1 -1
  223. package/dist/esm/funcs/collectionsQuery.d.ts.map +1 -1
  224. package/dist/esm/funcs/collectionsQuery.js +1 -1
  225. package/dist/esm/funcs/collectionsQuery.js.map +1 -1
  226. package/dist/esm/funcs/collectionsUpdate.d.ts +1 -1
  227. package/dist/esm/funcs/collectionsUpdate.d.ts.map +1 -1
  228. package/dist/esm/funcs/collectionsUpdate.js +1 -1
  229. package/dist/esm/funcs/collectionsUpdate.js.map +1 -1
  230. package/dist/esm/index.d.ts +4 -1
  231. package/dist/esm/index.d.ts.map +1 -1
  232. package/dist/esm/index.js +3 -1
  233. package/dist/esm/index.js.map +1 -1
  234. package/dist/esm/lib/collectionContract.d.ts +4 -0
  235. package/dist/esm/lib/collectionContract.d.ts.map +1 -0
  236. package/dist/esm/lib/collectionContract.js +32 -0
  237. package/dist/esm/lib/collectionContract.js.map +1 -0
  238. package/dist/esm/lib/config.d.ts +2 -2
  239. package/dist/esm/lib/config.js +2 -2
  240. package/dist/esm/lib/config.js.map +1 -1
  241. package/dist/esm/lib/matchers.d.ts +3 -0
  242. package/dist/esm/lib/matchers.d.ts.map +1 -1
  243. package/dist/esm/lib/matchers.js +10 -0
  244. package/dist/esm/lib/matchers.js.map +1 -1
  245. package/dist/esm/lib/queryInput.d.ts +3 -11
  246. package/dist/esm/lib/queryInput.d.ts.map +1 -1
  247. package/dist/esm/lib/queryInput.js.map +1 -1
  248. package/dist/esm/models/collectionresponse.d.ts +16 -22
  249. package/dist/esm/models/collectionresponse.d.ts.map +1 -1
  250. package/dist/esm/models/collectionresponse.js +6 -7
  251. package/dist/esm/models/collectionresponse.js.map +1 -1
  252. package/dist/esm/models/errors/gatewayerrors.d.ts +47 -0
  253. package/dist/esm/models/errors/gatewayerrors.d.ts.map +1 -0
  254. package/dist/esm/models/errors/gatewayerrors.js +63 -0
  255. package/dist/esm/models/errors/gatewayerrors.js.map +1 -0
  256. package/dist/esm/models/errors/index.d.ts +1 -0
  257. package/dist/esm/models/errors/index.d.ts.map +1 -1
  258. package/dist/esm/models/errors/index.js +1 -0
  259. package/dist/esm/models/errors/index.js.map +1 -1
  260. package/dist/esm/models/errors/lambdadberror.d.ts +2 -0
  261. package/dist/esm/models/errors/lambdadberror.d.ts.map +1 -1
  262. package/dist/esm/models/errors/lambdadberror.js +4 -0
  263. package/dist/esm/models/errors/lambdadberror.js.map +1 -1
  264. package/dist/esm/models/index.d.ts +1 -0
  265. package/dist/esm/models/index.d.ts.map +1 -1
  266. package/dist/esm/models/index.js +1 -0
  267. package/dist/esm/models/index.js.map +1 -1
  268. package/dist/esm/models/operations/bulkupsertdocs.d.ts +6 -0
  269. package/dist/esm/models/operations/bulkupsertdocs.d.ts.map +1 -1
  270. package/dist/esm/models/operations/bulkupsertdocs.js +3 -1
  271. package/dist/esm/models/operations/bulkupsertdocs.js.map +1 -1
  272. package/dist/esm/models/operations/createcollection.d.ts +20 -13
  273. package/dist/esm/models/operations/createcollection.d.ts.map +1 -1
  274. package/dist/esm/models/operations/createcollection.js +15 -8
  275. package/dist/esm/models/operations/createcollection.js.map +1 -1
  276. package/dist/esm/models/operations/deletedocs.d.ts +26 -2
  277. package/dist/esm/models/operations/deletedocs.d.ts.map +1 -1
  278. package/dist/esm/models/operations/deletedocs.js +2 -1
  279. package/dist/esm/models/operations/deletedocs.js.map +1 -1
  280. package/dist/esm/models/operations/fetchdocs.d.ts +4 -1
  281. package/dist/esm/models/operations/fetchdocs.d.ts.map +1 -1
  282. package/dist/esm/models/operations/fetchdocs.js +9 -0
  283. package/dist/esm/models/operations/fetchdocs.js.map +1 -1
  284. package/dist/esm/models/operations/getbulkupsertdocs.d.ts +5 -0
  285. package/dist/esm/models/operations/getbulkupsertdocs.d.ts.map +1 -1
  286. package/dist/esm/models/operations/getbulkupsertdocs.js +6 -4
  287. package/dist/esm/models/operations/getbulkupsertdocs.js.map +1 -1
  288. package/dist/esm/models/operations/listdocs.d.ts +11 -2
  289. package/dist/esm/models/operations/listdocs.d.ts.map +1 -1
  290. package/dist/esm/models/operations/listdocs.js +12 -1
  291. package/dist/esm/models/operations/listdocs.js.map +1 -1
  292. package/dist/esm/models/operations/querycollection.d.ts +4 -1
  293. package/dist/esm/models/operations/querycollection.d.ts.map +1 -1
  294. package/dist/esm/models/operations/querycollection.js +9 -0
  295. package/dist/esm/models/operations/querycollection.js.map +1 -1
  296. package/dist/esm/models/operations/updatecollection.d.ts +33 -4
  297. package/dist/esm/models/operations/updatecollection.d.ts.map +1 -1
  298. package/dist/esm/models/operations/updatecollection.js +6 -2
  299. package/dist/esm/models/operations/updatecollection.js.map +1 -1
  300. package/dist/esm/models/operations/updatedocs.d.ts +3 -0
  301. package/dist/esm/models/operations/updatedocs.d.ts.map +1 -1
  302. package/dist/esm/models/operations/updatedocs.js +2 -1
  303. package/dist/esm/models/operations/updatedocs.js.map +1 -1
  304. package/dist/esm/models/operations/upsertdocs.d.ts +3 -0
  305. package/dist/esm/models/operations/upsertdocs.d.ts.map +1 -1
  306. package/dist/esm/models/operations/upsertdocs.js +2 -1
  307. package/dist/esm/models/operations/upsertdocs.js.map +1 -1
  308. package/dist/esm/models/versioning.d.ts +100 -0
  309. package/dist/esm/models/versioning.d.ts.map +1 -0
  310. package/dist/esm/models/versioning.js +57 -0
  311. package/dist/esm/models/versioning.js.map +1 -0
  312. package/dist/esm/sdk/docs.d.ts +1 -1
  313. package/dist/esm/sdk/docs.js +1 -1
  314. package/dist/esm/types/errors.d.ts +15 -13
  315. package/dist/esm/types/errors.d.ts.map +1 -1
  316. package/dist/esm/types/errors.js +1 -1
  317. package/dist/esm/types/errors.js.map +1 -1
  318. package/dist/esm/types/public.d.ts +80 -6
  319. package/dist/esm/types/public.d.ts.map +1 -1
  320. package/dist/esm/types/public.js +26 -7
  321. package/dist/esm/types/public.js.map +1 -1
  322. package/dist/esm/versioning.d.ts +63 -0
  323. package/dist/esm/versioning.d.ts.map +1 -0
  324. package/dist/esm/versioning.js +356 -0
  325. package/dist/esm/versioning.js.map +1 -0
  326. package/jsr.json +3 -1
  327. package/package.json +14 -2
  328. package/src/client.ts +306 -65
  329. package/src/compat/qdrant/client.ts +28 -16
  330. package/src/funcs/collectionsCreate.ts +14 -1
  331. package/src/funcs/collectionsDelete.ts +18 -1
  332. package/src/funcs/collectionsDocsBulkUpsert.ts +13 -0
  333. package/src/funcs/collectionsDocsDelete.ts +14 -1
  334. package/src/funcs/collectionsDocsFetch.ts +13 -0
  335. package/src/funcs/collectionsDocsGetBulkUpsert.ts +19 -1
  336. package/src/funcs/collectionsDocsListDocs.ts +15 -0
  337. package/src/funcs/collectionsDocsListDocsExtended.ts +13 -0
  338. package/src/funcs/collectionsDocsUpdate.ts +13 -0
  339. package/src/funcs/collectionsDocsUpsert.ts +13 -0
  340. package/src/funcs/collectionsGet.ts +13 -0
  341. package/src/funcs/collectionsList.ts +13 -0
  342. package/src/funcs/collectionsQuery.ts +13 -0
  343. package/src/funcs/collectionsUpdate.ts +17 -0
  344. package/src/index.ts +17 -0
  345. package/src/lib/collectionContract.ts +42 -0
  346. package/src/lib/config.ts +2 -2
  347. package/src/lib/matchers.ts +27 -0
  348. package/src/lib/queryInput.ts +3 -10
  349. package/src/models/collectionresponse.ts +25 -28
  350. package/src/models/errors/gatewayerrors.ts +104 -0
  351. package/src/models/errors/index.ts +1 -0
  352. package/src/models/errors/lambdadberror.ts +5 -0
  353. package/src/models/index.ts +1 -0
  354. package/src/models/operations/bulkupsertdocs.ts +9 -1
  355. package/src/models/operations/createcollection.ts +37 -19
  356. package/src/models/operations/deletedocs.ts +36 -3
  357. package/src/models/operations/fetchdocs.ts +13 -1
  358. package/src/models/operations/getbulkupsertdocs.ts +11 -4
  359. package/src/models/operations/listdocs.ts +23 -3
  360. package/src/models/operations/querycollection.ts +13 -1
  361. package/src/models/operations/updatecollection.ts +45 -6
  362. package/src/models/operations/updatedocs.ts +5 -1
  363. package/src/models/operations/upsertdocs.ts +5 -1
  364. package/src/models/versioning.ts +118 -0
  365. package/src/sdk/docs.ts +1 -1
  366. package/src/types/errors.ts +32 -13
  367. package/src/types/public.ts +127 -14
  368. package/src/versioning.ts +509 -0
  369. package/examples/collectionScoped.example.ts +0 -38
  370. package/examples/collectionsList.example.ts +0 -25
  371. package/examples/package-lock.json +0 -612
  372. package/examples/package.json +0 -18
  373. package/test/integration/qdrant-compat-external.test.mjs +0 -351
  374. package/test/integration/qdrant-compat-live.test.mjs +0 -122
  375. package/test/null-response.test.mjs +0 -73
  376. package/test/public-api.test.mjs +0 -540
  377. package/test/qdrant-compat.test.mjs +0 -547
  378. package/tsconfig.json +0 -39
@@ -6,15 +6,39 @@
6
6
  // ---- Input types (RequestBody / Request aliased as XxxInput) ----
7
7
  export type { CreateCollectionRequest as CreateCollectionInput } from "../models/operations/createcollection.js";
8
8
  export type { UpdateCollectionRequestBody as UpdateCollectionInput } from "../models/operations/updatecollection.js";
9
- export type { QueryCollectionRequestBody as QueryCollectionInput } from "../models/operations/querycollection.js";
10
9
  export type { UpsertDocsRequestBody as UpsertDocsInput } from "../models/operations/upsertdocs.js";
11
10
  export type { UpdateDocsRequestBody as UpdateDocsInput } from "../models/operations/updatedocs.js";
12
11
  export type { DeleteDocsRequestBody as DeleteDocsInput } from "../models/operations/deletedocs.js";
13
- export type { FetchDocsRequestBody as FetchDocsInput } from "../models/operations/fetchdocs.js";
14
12
  export type { BulkUpsertDocsRequestBody as BulkUpsertInput } from "../models/operations/bulkupsertdocs.js";
15
13
 
16
14
  import type { ListDocsRequest } from "../models/operations/listdocs.js";
17
15
  import type { ListCollectionsRequest } from "../models/operations/listcollections.js";
16
+ import type { QueryCollectionRequestBody } from "../models/operations/querycollection.js";
17
+ import type { FetchDocsRequestBody } from "../models/operations/fetchdocs.js";
18
+ import type {
19
+ AliasDetails as AliasDetailsModel,
20
+ AliasRef,
21
+ BranchRef,
22
+ ReadRef,
23
+ RefDetails as RefDetailsModel,
24
+ TagRef,
25
+ } from "../models/versioning.js";
26
+
27
+ type ConsistentReadForRef =
28
+ | { ref?: BranchRef | undefined; consistentRead?: boolean | undefined }
29
+ | { ref: TagRef | AliasRef; consistentRead?: false | undefined };
30
+
31
+ /** Query input with consistent reads restricted to direct Branch refs. */
32
+ export type QueryCollectionInput = Omit<
33
+ QueryCollectionRequestBody,
34
+ "ref" | "consistentRead"
35
+ > & ConsistentReadForRef;
36
+
37
+ /** Fetch input with consistent reads restricted to direct Branch refs. */
38
+ export type FetchDocsInput = Omit<
39
+ FetchDocsRequestBody,
40
+ "ref" | "consistentRead"
41
+ > & ConsistentReadForRef;
18
42
 
19
43
  /** Parameters for listing documents, including extended list options. */
20
44
  export type ListDocsInput = Pick<
@@ -24,6 +48,8 @@ export type ListDocsInput = Pick<
24
48
  filter?: Record<string, unknown> | undefined;
25
49
  partitionFilter?: import("../models/index.js").PartitionFilter | undefined;
26
50
  fields?: import("../models/index.js").FieldsSelectorUnion | undefined;
51
+ /** Read target. Omitting it reads from main. */
52
+ ref?: ReadRef | undefined;
27
53
  };
28
54
 
29
55
  /** Parameters for listing collections (size, pageToken). */
@@ -46,12 +72,57 @@ export type {
46
72
  ListDocsDoc,
47
73
  } from "../models/operations/listdocs.js";
48
74
  export type { MessageResponse } from "../models/index.js";
49
- export type {
50
- FetchDocsResponse,
51
- FetchDocsDoc,
52
- } from "../models/operations/fetchdocs.js";
75
+ export type { FetchDocsResponse, FetchDocsDoc } from "../models/operations/fetchdocs.js";
53
76
  export type { GetBulkUpsertDocsResponse } from "../models/operations/getbulkupsertdocs.js";
54
77
 
78
+ export type {
79
+ AliasRef,
80
+ AliasTarget,
81
+ BranchRef,
82
+ BranchSource,
83
+ ReadRef,
84
+ RefSource,
85
+ TagRef,
86
+ TagSource,
87
+ } from "../models/versioning.js";
88
+
89
+ export type RefDetails = Omit<RefDetailsModel, "createdAt"> & {
90
+ createdAt: Date;
91
+ };
92
+
93
+ export type AliasDetails = Omit<AliasDetailsModel, "createdAt"> & {
94
+ createdAt: Date;
95
+ };
96
+
97
+ export type CreateBranchInput = {
98
+ branchName: string;
99
+ source?: import("../models/versioning.js").RefSource | undefined;
100
+ };
101
+
102
+ export type CreateBranchResponse = { branch: RefDetails };
103
+ export type ListBranchesResponse = { branches: RefDetails[] };
104
+
105
+ export type CreateTagInput = {
106
+ tagName: string;
107
+ source?: import("../models/versioning.js").RefSource | undefined;
108
+ };
109
+
110
+ export type CreateTagResponse = { tag: RefDetails };
111
+ export type ListTagsResponse = { tags: RefDetails[] };
112
+
113
+ export type CreateAliasInput = {
114
+ aliasName: string;
115
+ target: import("../models/versioning.js").AliasTarget;
116
+ };
117
+
118
+ export type RetargetAliasInput = {
119
+ target: import("../models/versioning.js").AliasTarget;
120
+ };
121
+
122
+ export type AliasResponse = { alias: AliasDetails };
123
+ export type ListAliasesResponse = { aliases: AliasDetails[] };
124
+ export type GetBulkUpsertInput = { branch?: string | undefined };
125
+
55
126
  // ---- Models referenced by request/response bodies ----
56
127
  export type {
57
128
  IndexConfigsUnion,
@@ -64,8 +135,11 @@ export type {
64
135
  CollectionResponse,
65
136
  } from "../models/index.js";
66
137
 
67
- // ---- Timestamp helpers (Unix seconds → Date) ----
138
+ // ---- Timestamp helpers (Unix epoch milliseconds → Date) ----
68
139
  import type { CollectionResponse as CollectionResponseModel } from "../models/index.js";
140
+ import type {
141
+ CreateCollectionResponse as CreateCollectionResponseModel,
142
+ } from "../models/operations/createcollection.js";
69
143
 
70
144
  /**
71
145
  * Collection response with timestamp fields as Date (for better DX).
@@ -75,8 +149,8 @@ export type CollectionResponseWithDates = Omit<
75
149
  CollectionResponseModel,
76
150
  "createdAt" | "updatedAt" | "dataUpdatedAt"
77
151
  > & {
78
- createdAt?: Date | undefined;
79
- updatedAt?: Date | undefined;
152
+ createdAt: Date;
153
+ updatedAt: Date;
80
154
  dataUpdatedAt?: Date | undefined;
81
155
  };
82
156
 
@@ -89,17 +163,19 @@ export type ListCollectionsResponseWithDates = {
89
163
  };
90
164
 
91
165
  /**
92
- * Converts Unix-second timestamp fields to Date. Safe to call on partial responses.
166
+ * Converts Unix-millisecond timestamp fields to Date. Safe to call on partial responses.
93
167
  */
94
168
  export function collectionResponseWithDates(
95
169
  c: CollectionResponseModel,
96
170
  ): CollectionResponseWithDates {
97
171
  const { createdAt, updatedAt, dataUpdatedAt, ...rest } = c;
98
- const out: CollectionResponseWithDates = { ...rest };
99
- if (createdAt != null) out.createdAt = new Date(createdAt * 1000);
100
- if (updatedAt != null) out.updatedAt = new Date(updatedAt * 1000);
172
+ const out: CollectionResponseWithDates = {
173
+ ...rest,
174
+ createdAt: new Date(createdAt),
175
+ updatedAt: new Date(updatedAt),
176
+ };
101
177
  if (dataUpdatedAt != null)
102
- out.dataUpdatedAt = new Date(dataUpdatedAt * 1000);
178
+ out.dataUpdatedAt = new Date(dataUpdatedAt);
103
179
  return out;
104
180
  }
105
181
 
@@ -126,3 +202,40 @@ export function getCollectionResponseWithDates(res: {
126
202
  }): GetCollectionResponseWithDates {
127
203
  return { collection: collectionResponseWithDates(res.collection) };
128
204
  }
205
+
206
+ /** Update response with timestamp fields converted to Date. */
207
+ export type UpdateCollectionResponseWithDates = GetCollectionResponseWithDates;
208
+
209
+ export function updateCollectionResponseWithDates(res: {
210
+ collection: CollectionResponseModel;
211
+ }): UpdateCollectionResponseWithDates {
212
+ return getCollectionResponseWithDates(res);
213
+ }
214
+
215
+ /** Create response with its Unix-millisecond timestamp converted to Date. */
216
+ export type CreateCollectionResponseWithDates = {
217
+ collection: Omit<CreateCollectionResponseModel["collection"], "createdAt"> & {
218
+ createdAt: Date;
219
+ };
220
+ };
221
+
222
+ export function createCollectionResponseWithDates(
223
+ response: CreateCollectionResponseModel,
224
+ ): CreateCollectionResponseWithDates {
225
+ return {
226
+ collection: {
227
+ ...response.collection,
228
+ createdAt: new Date(response.collection.createdAt),
229
+ },
230
+ };
231
+ }
232
+
233
+ /** @internal */
234
+ export function refDetailsWithDate(details: RefDetailsModel): RefDetails {
235
+ return { ...details, createdAt: new Date(details.createdAt) };
236
+ }
237
+
238
+ /** @internal */
239
+ export function aliasDetailsWithDate(details: AliasDetailsModel): AliasDetails {
240
+ return { ...details, createdAt: new Date(details.createdAt) };
241
+ }
@@ -0,0 +1,509 @@
1
+ import * as z from "zod/v3";
2
+
3
+ import type { LambdaDBCore } from "./core.js";
4
+ import * as M from "./lib/matchers.js";
5
+ import { compactMap } from "./lib/primitives.js";
6
+ import { safeParse } from "./lib/schemas.js";
7
+ import type { RequestOptions } from "./lib/sdks.js";
8
+ import { extractSecurity, resolveGlobalSecurity } from "./lib/security.js";
9
+ import * as errors from "./models/errors/index.js";
10
+ import type { LambdaDBError } from "./models/errors/lambdadberror.js";
11
+ import type { ResponseValidationError } from "./models/errors/responsevalidationerror.js";
12
+ import type { SDKValidationError } from "./models/errors/sdkvalidationerror.js";
13
+ import {
14
+ AliasDetails$inboundSchema,
15
+ AliasTarget$schema,
16
+ RefDetails$inboundSchema,
17
+ RefSource$schema,
18
+ type AliasRef,
19
+ type BranchRef,
20
+ type BranchSource,
21
+ type TagRef,
22
+ type TagSource,
23
+ } from "./models/versioning.js";
24
+ import type {
25
+ ConnectionError,
26
+ InvalidRequestError,
27
+ RequestAbortedError,
28
+ RequestTimeoutError,
29
+ UnexpectedClientError,
30
+ } from "./models/errors/httpclienterrors.js";
31
+ import {
32
+ aliasDetailsWithDate,
33
+ refDetailsWithDate,
34
+ type AliasResponse,
35
+ type CreateAliasInput,
36
+ type CreateBranchInput,
37
+ type CreateBranchResponse,
38
+ type CreateTagInput,
39
+ type CreateTagResponse,
40
+ type ListAliasesResponse,
41
+ type ListBranchesResponse,
42
+ type ListTagsResponse,
43
+ type MessageResponse,
44
+ type RetargetAliasInput,
45
+ } from "./types/public.js";
46
+ import type { Result } from "./types/fp.js";
47
+
48
+ /** Exact public contract revision implemented by this SDK. */
49
+ export const DATA_VERSIONING_CONTRACT_REVISION =
50
+ "b171ff0a408bbeb024535941b83b861d205a829f" as const;
51
+
52
+ const refNamePattern = /^[a-zA-Z0-9_-]{3,52}$/;
53
+ const refNameSchema = z.string().regex(refNamePattern);
54
+
55
+ function checkedRefName(name: string): string {
56
+ if (!refNamePattern.test(name)) {
57
+ throw new TypeError(
58
+ "Ref names must contain 3 to 52 letters, numbers, underscores, or hyphens",
59
+ );
60
+ }
61
+ return name;
62
+ }
63
+
64
+ /** Creates a validated Branch read ref. */
65
+ export function branchRef(name: string): BranchRef {
66
+ return { kind: "branch", name: checkedRefName(name) };
67
+ }
68
+
69
+ /** Creates a validated Tag read ref. */
70
+ export function tagRef(name: string): TagRef {
71
+ return { kind: "tag", name: checkedRefName(name) };
72
+ }
73
+
74
+ /** Creates a validated Alias read ref. */
75
+ export function aliasRef(name: string): AliasRef {
76
+ return { kind: "alias", name: checkedRefName(name) };
77
+ }
78
+
79
+ /** Creates a validated Branch source, optionally at a Unix-millisecond cutoff. */
80
+ export function branchSource(
81
+ name: string,
82
+ asOf?: Date | number,
83
+ ): BranchSource {
84
+ const source: BranchSource = { kind: "branch", name: checkedRefName(name) };
85
+ if (asOf !== undefined) {
86
+ const milliseconds = asOf instanceof Date ? asOf.getTime() : asOf;
87
+ if (!Number.isInteger(milliseconds)) {
88
+ throw new TypeError("Branch source asOf must be a valid Date or integer Unix milliseconds");
89
+ }
90
+ source.asOf = milliseconds;
91
+ }
92
+ return source;
93
+ }
94
+
95
+ /** Creates a validated Tag source. `asOf` is intentionally unavailable. */
96
+ export function tagSource(name: string): TagSource {
97
+ return tagRef(name);
98
+ }
99
+
100
+ /** Creates a validated Branch Alias target. */
101
+ export function branchTarget(name: string): BranchRef {
102
+ return branchRef(name);
103
+ }
104
+
105
+ /** Creates a validated Tag Alias target. */
106
+ export function tagTarget(name: string): TagRef {
107
+ return tagRef(name);
108
+ }
109
+
110
+ export type VersioningError =
111
+ | errors.BadRequestError
112
+ | errors.UnauthenticatedError
113
+ | errors.ResourceNotFoundError
114
+ | errors.ResourceAlreadyExistsError
115
+ | errors.CatalogConflictError
116
+ | errors.PayloadTooLargeError
117
+ | errors.TooManyRequestsError
118
+ | errors.InternalServerError
119
+ | errors.BadGatewayError
120
+ | errors.ServiceUnavailableError
121
+ | errors.GatewayTimeoutError
122
+ | LambdaDBError
123
+ | ResponseValidationError
124
+ | ConnectionError
125
+ | RequestAbortedError
126
+ | RequestTimeoutError
127
+ | InvalidRequestError
128
+ | UnexpectedClientError
129
+ | SDKValidationError;
130
+
131
+ type VersioningRequest<TInput, TOutput> = {
132
+ body?: TInput | undefined;
133
+ bodySchema?: z.ZodType<TInput> | undefined;
134
+ method: "GET" | "POST" | "PATCH" | "DELETE";
135
+ path: string;
136
+ responseSchema: z.ZodType<TOutput>;
137
+ successStatus: 200 | 201;
138
+ conflict?: "already-exists" | "catalog" | undefined;
139
+ };
140
+
141
+ async function requestVersioning<TInput, TOutput>(
142
+ client: LambdaDBCore,
143
+ request: VersioningRequest<TInput, TOutput>,
144
+ options?: RequestOptions,
145
+ ): Promise<Result<TOutput, VersioningError>> {
146
+ let body: string | null = null;
147
+ if (request.bodySchema !== undefined) {
148
+ const parsed = safeParse(
149
+ request.body,
150
+ (value) => request.bodySchema?.parse(value) as TInput,
151
+ "Input validation failed",
152
+ );
153
+ if (!parsed.ok) return parsed;
154
+ body = JSON.stringify(parsed.value);
155
+ }
156
+
157
+ const headers = new Headers(compactMap({
158
+ Accept: "application/json",
159
+ "Content-Type": body == null ? undefined : "application/json",
160
+ }));
161
+ const secConfig = await extractSecurity(client._options.projectApiKey);
162
+ const securityInput = secConfig == null ? {} : { projectApiKey: secConfig };
163
+ const requestSecurity = resolveGlobalSecurity(securityInput);
164
+ const retryConfig = options?.retries
165
+ || client._options.retryConfig
166
+ || {
167
+ strategy: "backoff" as const,
168
+ backoff: {
169
+ initialInterval: 500,
170
+ maxInterval: 60000,
171
+ exponent: 1.5,
172
+ maxElapsedTime: 3600000,
173
+ },
174
+ retryConnectionErrors: true,
175
+ };
176
+ const retryCodes = options?.retryCodes || ["429", "5XX"];
177
+ const context = {
178
+ options: client._options,
179
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
180
+ operationID: `${request.method} ${request.path}`,
181
+ oAuth2Scopes: null,
182
+ resolvedSecurity: requestSecurity,
183
+ securitySource: client._options.projectApiKey,
184
+ retryConfig,
185
+ retryCodes,
186
+ };
187
+
188
+ const requestResult = client._createRequest(context, {
189
+ security: requestSecurity,
190
+ method: request.method,
191
+ baseURL: options?.serverURL,
192
+ path: request.path,
193
+ headers,
194
+ body,
195
+ userAgent: client._options.userAgent,
196
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
197
+ }, options);
198
+ if (!requestResult.ok) return requestResult;
199
+
200
+ const httpRequest = requestResult.value;
201
+ const responseResult = await client._do(httpRequest, {
202
+ context,
203
+ errorCodes: ["400", "401", "404", "409", "429", "4XX", "500", "5XX"],
204
+ retryConfig,
205
+ retryCodes,
206
+ });
207
+ if (!responseResult.ok) return responseResult;
208
+
209
+ const response = responseResult.value;
210
+ const conflictMatchers = request.conflict === "already-exists"
211
+ ? [M.jsonErr(409, errors.ResourceAlreadyExistsError$inboundSchema)]
212
+ : request.conflict === "catalog"
213
+ ? [M.jsonErr(409, errors.CatalogConflictError$inboundSchema)]
214
+ : [];
215
+ const [result] = await M.match<TOutput, VersioningError>(
216
+ M.json(request.successStatus, request.responseSchema),
217
+ M.jsonErr(400, errors.BadRequestError$inboundSchema),
218
+ M.jsonErr(401, errors.UnauthenticatedError$inboundSchema),
219
+ M.jsonErr(404, errors.ResourceNotFoundError$inboundSchema),
220
+ ...conflictMatchers,
221
+ M.jsonErr(429, errors.TooManyRequestsError$inboundSchema),
222
+ M.jsonErr(500, errors.InternalServerError$inboundSchema),
223
+ ...M.gatewayErrorMatchers(),
224
+ M.fail("4XX"),
225
+ M.fail("5XX"),
226
+ )(response, httpRequest, {
227
+ extraFields: { HttpMeta: { Response: response, Request: httpRequest } },
228
+ });
229
+ return result;
230
+ }
231
+
232
+ function pathFor(collectionName: string, suffix: string): string {
233
+ return `/collections/${encodeURIComponent(collectionName)}${suffix}`;
234
+ }
235
+
236
+ const createBranchSchema: z.ZodType<CreateBranchInput> = z.object({
237
+ branchName: z.string().regex(refNamePattern),
238
+ source: RefSource$schema.optional(),
239
+ }).strict();
240
+ const createBranchResponseSchema = z.object({ branch: RefDetails$inboundSchema });
241
+ const listBranchesResponseSchema = z.object({ branches: z.array(RefDetails$inboundSchema) });
242
+
243
+ const createTagSchema: z.ZodType<CreateTagInput> = z.object({
244
+ tagName: z.string().regex(refNamePattern),
245
+ source: RefSource$schema.optional(),
246
+ }).strict();
247
+ const createTagResponseSchema = z.object({ tag: RefDetails$inboundSchema });
248
+ const listTagsResponseSchema = z.object({ tags: z.array(RefDetails$inboundSchema) });
249
+
250
+ const createAliasSchema: z.ZodType<CreateAliasInput> = z.object({
251
+ aliasName: z.string().regex(refNamePattern),
252
+ target: AliasTarget$schema,
253
+ }).strict();
254
+ const retargetAliasSchema: z.ZodType<RetargetAliasInput> = z.object({
255
+ target: AliasTarget$schema,
256
+ }).strict();
257
+ const aliasResponseSchema = z.object({ alias: AliasDetails$inboundSchema });
258
+ const listAliasesResponseSchema = z.object({ aliases: z.array(AliasDetails$inboundSchema) });
259
+ const messageResponseSchema = z.object({ message: z.string() });
260
+
261
+ export class CollectionBranches {
262
+ constructor(
263
+ private readonly client: LambdaDBCore,
264
+ private readonly collectionName: string,
265
+ ) {}
266
+
267
+ async create(input: CreateBranchInput, options?: RequestOptions): Promise<CreateBranchResponse> {
268
+ const result = await this.createSafe(input, options);
269
+ if (!result.ok) throw result.error;
270
+ return result.value;
271
+ }
272
+
273
+ async createSafe(
274
+ input: CreateBranchInput,
275
+ options?: RequestOptions,
276
+ ): Promise<Result<CreateBranchResponse, VersioningError>> {
277
+ const result = await requestVersioning(this.client, {
278
+ body: input,
279
+ bodySchema: createBranchSchema,
280
+ method: "POST",
281
+ path: pathFor(this.collectionName, "/branches"),
282
+ responseSchema: createBranchResponseSchema,
283
+ successStatus: 201,
284
+ conflict: "already-exists",
285
+ }, options);
286
+ if (!result.ok) return result;
287
+ return { ok: true, value: { branch: refDetailsWithDate(result.value.branch) } };
288
+ }
289
+
290
+ async list(options?: RequestOptions): Promise<ListBranchesResponse> {
291
+ const result = await this.listSafe(options);
292
+ if (!result.ok) throw result.error;
293
+ return result.value;
294
+ }
295
+
296
+ async listSafe(options?: RequestOptions): Promise<Result<ListBranchesResponse, VersioningError>> {
297
+ const result = await requestVersioning(this.client, {
298
+ method: "GET",
299
+ path: pathFor(this.collectionName, "/branches"),
300
+ responseSchema: listBranchesResponseSchema,
301
+ successStatus: 200,
302
+ }, options);
303
+ if (!result.ok) return result;
304
+ return { ok: true, value: { branches: result.value.branches.map(refDetailsWithDate) } };
305
+ }
306
+
307
+ async delete(branchName: string, options?: RequestOptions): Promise<MessageResponse> {
308
+ const result = await this.deleteSafe(branchName, options);
309
+ if (!result.ok) throw result.error;
310
+ return result.value;
311
+ }
312
+
313
+ async deleteSafe(
314
+ branchName: string,
315
+ options?: RequestOptions,
316
+ ): Promise<Result<MessageResponse, VersioningError>> {
317
+ const parsedName = safeParse(
318
+ branchName,
319
+ (value) => refNameSchema.parse(value),
320
+ "Input validation failed",
321
+ );
322
+ if (!parsedName.ok) return parsedName;
323
+ return requestVersioning(this.client, {
324
+ method: "DELETE",
325
+ path: pathFor(this.collectionName, `/branches/${encodeURIComponent(parsedName.value)}`),
326
+ responseSchema: messageResponseSchema,
327
+ successStatus: 200,
328
+ conflict: "catalog",
329
+ }, options);
330
+ }
331
+ }
332
+
333
+ export class CollectionTags {
334
+ constructor(
335
+ private readonly client: LambdaDBCore,
336
+ private readonly collectionName: string,
337
+ ) {}
338
+
339
+ async create(input: CreateTagInput, options?: RequestOptions): Promise<CreateTagResponse> {
340
+ const result = await this.createSafe(input, options);
341
+ if (!result.ok) throw result.error;
342
+ return result.value;
343
+ }
344
+
345
+ async createSafe(
346
+ input: CreateTagInput,
347
+ options?: RequestOptions,
348
+ ): Promise<Result<CreateTagResponse, VersioningError>> {
349
+ const result = await requestVersioning(this.client, {
350
+ body: input,
351
+ bodySchema: createTagSchema,
352
+ method: "POST",
353
+ path: pathFor(this.collectionName, "/tags"),
354
+ responseSchema: createTagResponseSchema,
355
+ successStatus: 201,
356
+ conflict: "already-exists",
357
+ }, options);
358
+ if (!result.ok) return result;
359
+ return { ok: true, value: { tag: refDetailsWithDate(result.value.tag) } };
360
+ }
361
+
362
+ async list(options?: RequestOptions): Promise<ListTagsResponse> {
363
+ const result = await this.listSafe(options);
364
+ if (!result.ok) throw result.error;
365
+ return result.value;
366
+ }
367
+
368
+ async listSafe(options?: RequestOptions): Promise<Result<ListTagsResponse, VersioningError>> {
369
+ const result = await requestVersioning(this.client, {
370
+ method: "GET",
371
+ path: pathFor(this.collectionName, "/tags"),
372
+ responseSchema: listTagsResponseSchema,
373
+ successStatus: 200,
374
+ }, options);
375
+ if (!result.ok) return result;
376
+ return { ok: true, value: { tags: result.value.tags.map(refDetailsWithDate) } };
377
+ }
378
+
379
+ async delete(tagName: string, options?: RequestOptions): Promise<MessageResponse> {
380
+ const result = await this.deleteSafe(tagName, options);
381
+ if (!result.ok) throw result.error;
382
+ return result.value;
383
+ }
384
+
385
+ async deleteSafe(
386
+ tagName: string,
387
+ options?: RequestOptions,
388
+ ): Promise<Result<MessageResponse, VersioningError>> {
389
+ const parsedName = safeParse(
390
+ tagName,
391
+ (value) => refNameSchema.parse(value),
392
+ "Input validation failed",
393
+ );
394
+ if (!parsedName.ok) return parsedName;
395
+ return requestVersioning(this.client, {
396
+ method: "DELETE",
397
+ path: pathFor(this.collectionName, `/tags/${encodeURIComponent(parsedName.value)}`),
398
+ responseSchema: messageResponseSchema,
399
+ successStatus: 200,
400
+ conflict: "catalog",
401
+ }, options);
402
+ }
403
+ }
404
+
405
+ export class CollectionAliases {
406
+ constructor(
407
+ private readonly client: LambdaDBCore,
408
+ private readonly collectionName: string,
409
+ ) {}
410
+
411
+ async create(input: CreateAliasInput, options?: RequestOptions): Promise<AliasResponse> {
412
+ const result = await this.createSafe(input, options);
413
+ if (!result.ok) throw result.error;
414
+ return result.value;
415
+ }
416
+
417
+ async createSafe(
418
+ input: CreateAliasInput,
419
+ options?: RequestOptions,
420
+ ): Promise<Result<AliasResponse, VersioningError>> {
421
+ const result = await requestVersioning(this.client, {
422
+ body: input,
423
+ bodySchema: createAliasSchema,
424
+ method: "POST",
425
+ path: pathFor(this.collectionName, "/aliases"),
426
+ responseSchema: aliasResponseSchema,
427
+ successStatus: 201,
428
+ conflict: "already-exists",
429
+ }, options);
430
+ if (!result.ok) return result;
431
+ return { ok: true, value: { alias: aliasDetailsWithDate(result.value.alias) } };
432
+ }
433
+
434
+ async list(options?: RequestOptions): Promise<ListAliasesResponse> {
435
+ const result = await this.listSafe(options);
436
+ if (!result.ok) throw result.error;
437
+ return result.value;
438
+ }
439
+
440
+ async listSafe(options?: RequestOptions): Promise<Result<ListAliasesResponse, VersioningError>> {
441
+ const result = await requestVersioning(this.client, {
442
+ method: "GET",
443
+ path: pathFor(this.collectionName, "/aliases"),
444
+ responseSchema: listAliasesResponseSchema,
445
+ successStatus: 200,
446
+ }, options);
447
+ if (!result.ok) return result;
448
+ return { ok: true, value: { aliases: result.value.aliases.map(aliasDetailsWithDate) } };
449
+ }
450
+
451
+ async retarget(
452
+ aliasName: string,
453
+ input: RetargetAliasInput,
454
+ options?: RequestOptions,
455
+ ): Promise<AliasResponse> {
456
+ const result = await this.retargetSafe(aliasName, input, options);
457
+ if (!result.ok) throw result.error;
458
+ return result.value;
459
+ }
460
+
461
+ async retargetSafe(
462
+ aliasName: string,
463
+ input: RetargetAliasInput,
464
+ options?: RequestOptions,
465
+ ): Promise<Result<AliasResponse, VersioningError>> {
466
+ const parsedName = safeParse(
467
+ aliasName,
468
+ (value) => refNameSchema.parse(value),
469
+ "Input validation failed",
470
+ );
471
+ if (!parsedName.ok) return parsedName;
472
+ const result = await requestVersioning(this.client, {
473
+ body: input,
474
+ bodySchema: retargetAliasSchema,
475
+ method: "PATCH",
476
+ path: pathFor(this.collectionName, `/aliases/${encodeURIComponent(parsedName.value)}`),
477
+ responseSchema: aliasResponseSchema,
478
+ successStatus: 200,
479
+ conflict: "catalog",
480
+ }, options);
481
+ if (!result.ok) return result;
482
+ return { ok: true, value: { alias: aliasDetailsWithDate(result.value.alias) } };
483
+ }
484
+
485
+ async delete(aliasName: string, options?: RequestOptions): Promise<MessageResponse> {
486
+ const result = await this.deleteSafe(aliasName, options);
487
+ if (!result.ok) throw result.error;
488
+ return result.value;
489
+ }
490
+
491
+ async deleteSafe(
492
+ aliasName: string,
493
+ options?: RequestOptions,
494
+ ): Promise<Result<MessageResponse, VersioningError>> {
495
+ const parsedName = safeParse(
496
+ aliasName,
497
+ (value) => refNameSchema.parse(value),
498
+ "Input validation failed",
499
+ );
500
+ if (!parsedName.ok) return parsedName;
501
+ return requestVersioning(this.client, {
502
+ method: "DELETE",
503
+ path: pathFor(this.collectionName, `/aliases/${encodeURIComponent(parsedName.value)}`),
504
+ responseSchema: messageResponseSchema,
505
+ successStatus: 200,
506
+ conflict: "catalog",
507
+ }, options);
508
+ }
509
+ }