@vibesdotdev/storage 0.0.2 → 1.0.0-rc.4

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 (1462) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +78 -1
  3. package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.d.ts +10 -0
  4. package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.d.ts.map +1 -0
  5. package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.js +40 -0
  6. package/dist/adapters/cloud-api/cloud-api.adapter.descriptor.js.map +1 -0
  7. package/dist/adapters/cloud-api/cloud-api.adapter.impl.d.ts +93 -0
  8. package/dist/adapters/cloud-api/cloud-api.adapter.impl.d.ts.map +1 -0
  9. package/dist/adapters/cloud-api/cloud-api.adapter.impl.js +448 -0
  10. package/dist/adapters/cloud-api/cloud-api.adapter.impl.js.map +1 -0
  11. package/dist/adapters/cloud-api/cloud-api.fetch-client.d.ts +66 -0
  12. package/dist/adapters/cloud-api/cloud-api.fetch-client.d.ts.map +1 -0
  13. package/dist/adapters/cloud-api/cloud-api.fetch-client.js +376 -0
  14. package/dist/adapters/cloud-api/cloud-api.fetch-client.js.map +1 -0
  15. package/dist/adapters/cloud-api/cloud-api.record.d.ts +85 -0
  16. package/dist/adapters/cloud-api/cloud-api.record.d.ts.map +1 -0
  17. package/dist/adapters/cloud-api/cloud-api.record.helpers.d.ts +71 -0
  18. package/dist/adapters/cloud-api/cloud-api.record.helpers.d.ts.map +1 -0
  19. package/dist/adapters/cloud-api/cloud-api.record.helpers.js +270 -0
  20. package/dist/adapters/cloud-api/cloud-api.record.helpers.js.map +1 -0
  21. package/dist/adapters/cloud-api/cloud-api.record.js +351 -0
  22. package/dist/adapters/cloud-api/cloud-api.record.js.map +1 -0
  23. package/dist/adapters/cloud-api/cloud-api.test-utils.d.ts +38 -0
  24. package/dist/adapters/cloud-api/cloud-api.test-utils.d.ts.map +1 -0
  25. package/dist/adapters/cloud-api/cloud-api.test-utils.js +147 -0
  26. package/dist/adapters/cloud-api/cloud-api.test-utils.js.map +1 -0
  27. package/dist/adapters/cloud-api/index.d.ts +10 -0
  28. package/dist/adapters/cloud-api/index.d.ts.map +1 -0
  29. package/dist/adapters/cloud-api/index.js +10 -0
  30. package/dist/adapters/cloud-api/index.js.map +1 -0
  31. package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.d.ts +9 -0
  32. package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.d.ts.map +1 -0
  33. package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.js +21 -0
  34. package/dist/adapters/cloud-api/storage-adapter-cloud-api.plugin.js.map +1 -0
  35. package/dist/adapters/drizzle/batch-type-proof.d.ts +21 -0
  36. package/dist/adapters/drizzle/batch-type-proof.d.ts.map +1 -0
  37. package/dist/adapters/drizzle/batch-type-proof.js +2 -0
  38. package/dist/adapters/drizzle/batch-type-proof.js.map +1 -0
  39. package/dist/adapters/drizzle/canonical.adapter.descriptor.d.ts +4 -0
  40. package/dist/adapters/drizzle/canonical.adapter.descriptor.d.ts.map +1 -0
  41. package/dist/adapters/drizzle/canonical.adapter.descriptor.js +35 -0
  42. package/dist/adapters/drizzle/canonical.adapter.descriptor.js.map +1 -0
  43. package/dist/adapters/drizzle/contracts.d.ts +24 -0
  44. package/dist/adapters/drizzle/contracts.d.ts.map +1 -0
  45. package/dist/adapters/drizzle/contracts.js +5 -0
  46. package/dist/adapters/drizzle/contracts.js.map +1 -0
  47. package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.d.ts +4 -0
  48. package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.d.ts.map +1 -0
  49. package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.js +187 -0
  50. package/dist/adapters/drizzle/docs/storage.adapters.drizzle.docs.descriptor.js.map +1 -0
  51. package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.d.ts +15 -0
  52. package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.d.ts.map +1 -0
  53. package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.js +59 -0
  54. package/dist/adapters/drizzle/drizzle-journal.migration-format.impl.js.map +1 -0
  55. package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.d.ts +5 -0
  56. package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.d.ts.map +1 -0
  57. package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.js +27 -0
  58. package/dist/adapters/drizzle/drizzle-journal.migration-format.plugin.js.map +1 -0
  59. package/dist/adapters/drizzle/drizzle.adapter.descriptor.d.ts +2 -0
  60. package/dist/adapters/drizzle/drizzle.adapter.descriptor.d.ts.map +1 -0
  61. package/dist/adapters/drizzle/drizzle.adapter.descriptor.js +3 -0
  62. package/dist/adapters/drizzle/drizzle.adapter.descriptor.js.map +1 -0
  63. package/dist/adapters/drizzle/drizzle.adapter.impl.d.ts +37 -0
  64. package/dist/adapters/drizzle/drizzle.adapter.impl.d.ts.map +1 -0
  65. package/dist/adapters/drizzle/drizzle.adapter.impl.js +1163 -0
  66. package/dist/adapters/drizzle/drizzle.adapter.impl.js.map +1 -0
  67. package/dist/adapters/drizzle/extensions.d.ts +5 -0
  68. package/dist/adapters/drizzle/extensions.d.ts.map +1 -0
  69. package/dist/adapters/drizzle/extensions.js +30 -0
  70. package/dist/adapters/drizzle/extensions.js.map +1 -0
  71. package/dist/adapters/drizzle/index.d.ts +12 -0
  72. package/dist/adapters/drizzle/index.d.ts.map +1 -0
  73. package/dist/adapters/drizzle/index.js +12 -0
  74. package/dist/adapters/drizzle/index.js.map +1 -0
  75. package/dist/adapters/drizzle/libsql-migrator.d.ts +23 -0
  76. package/dist/adapters/drizzle/libsql-migrator.d.ts.map +1 -0
  77. package/dist/adapters/drizzle/libsql-migrator.js +67 -0
  78. package/dist/adapters/drizzle/libsql-migrator.js.map +1 -0
  79. package/dist/adapters/drizzle/libsql.d.ts +15 -0
  80. package/dist/adapters/drizzle/libsql.d.ts.map +1 -0
  81. package/dist/adapters/drizzle/libsql.js +19 -0
  82. package/dist/adapters/drizzle/libsql.js.map +1 -0
  83. package/dist/adapters/drizzle/migration-files.d.ts +15 -0
  84. package/dist/adapters/drizzle/migration-files.d.ts.map +1 -0
  85. package/dist/adapters/drizzle/migration-files.js +54 -0
  86. package/dist/adapters/drizzle/migration-files.js.map +1 -0
  87. package/dist/adapters/drizzle/migration-statements.d.ts +7 -0
  88. package/dist/adapters/drizzle/migration-statements.d.ts.map +1 -0
  89. package/dist/adapters/drizzle/migration-statements.js +14 -0
  90. package/dist/adapters/drizzle/migration-statements.js.map +1 -0
  91. package/dist/adapters/drizzle/persistence-errors.d.ts +33 -0
  92. package/dist/adapters/drizzle/persistence-errors.d.ts.map +1 -0
  93. package/dist/adapters/drizzle/persistence-errors.js +75 -0
  94. package/dist/adapters/drizzle/persistence-errors.js.map +1 -0
  95. package/dist/adapters/drizzle/persistence-factory.d.ts +100 -0
  96. package/dist/adapters/drizzle/persistence-factory.d.ts.map +1 -0
  97. package/dist/adapters/drizzle/persistence-factory.js +391 -0
  98. package/dist/adapters/drizzle/persistence-factory.js.map +1 -0
  99. package/dist/adapters/drizzle/persistence.client.d.ts +73 -0
  100. package/dist/adapters/drizzle/persistence.client.d.ts.map +1 -0
  101. package/dist/adapters/drizzle/persistence.client.js +238 -0
  102. package/dist/adapters/drizzle/persistence.client.js.map +1 -0
  103. package/dist/adapters/drizzle/providers.d.ts +19 -0
  104. package/dist/adapters/drizzle/providers.d.ts.map +1 -0
  105. package/dist/adapters/drizzle/providers.js +62 -0
  106. package/dist/adapters/drizzle/providers.js.map +1 -0
  107. package/dist/adapters/drizzle/record-ddl.d.ts +13 -0
  108. package/dist/adapters/drizzle/record-ddl.d.ts.map +1 -0
  109. package/dist/adapters/drizzle/record-ddl.js +70 -0
  110. package/dist/adapters/drizzle/record-ddl.js.map +1 -0
  111. package/dist/adapters/drizzle/record-table.d.ts +59 -0
  112. package/dist/adapters/drizzle/record-table.d.ts.map +1 -0
  113. package/dist/adapters/drizzle/record-table.js +87 -0
  114. package/dist/adapters/drizzle/record-table.js.map +1 -0
  115. package/dist/adapters/drizzle/schemas/record-migration.d.ts +30 -0
  116. package/dist/adapters/drizzle/schemas/record-migration.d.ts.map +1 -0
  117. package/dist/adapters/drizzle/schemas/record-migration.js +12 -0
  118. package/dist/adapters/drizzle/schemas/record-migration.js.map +1 -0
  119. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.d.ts +26 -0
  120. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.d.ts.map +1 -0
  121. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.js +90 -0
  122. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.js.map +1 -0
  123. package/dist/adapters/drizzle/storage-drizzle-db.context.d.ts +53 -0
  124. package/dist/adapters/drizzle/storage-drizzle-db.context.d.ts.map +1 -0
  125. package/dist/adapters/drizzle/storage-drizzle-db.context.js +8 -0
  126. package/dist/adapters/drizzle/storage-drizzle-db.context.js.map +1 -0
  127. package/dist/adapters/drizzle/test.d.ts +60 -0
  128. package/dist/adapters/drizzle/test.d.ts.map +1 -0
  129. package/dist/adapters/drizzle/test.js +49 -0
  130. package/dist/adapters/drizzle/test.js.map +1 -0
  131. package/dist/adapters/drizzle/transforms.d.ts +42 -0
  132. package/dist/adapters/drizzle/transforms.d.ts.map +1 -0
  133. package/dist/adapters/drizzle/transforms.js +147 -0
  134. package/dist/adapters/drizzle/transforms.js.map +1 -0
  135. package/dist/adapters/filesystem/filesystem.adapter.descriptor.d.ts +13 -0
  136. package/dist/adapters/filesystem/filesystem.adapter.descriptor.d.ts.map +1 -0
  137. package/dist/adapters/filesystem/filesystem.adapter.descriptor.js +34 -0
  138. package/dist/adapters/filesystem/filesystem.adapter.descriptor.js.map +1 -0
  139. package/dist/adapters/filesystem/filesystem.adapter.impl.d.ts +57 -0
  140. package/dist/adapters/filesystem/filesystem.adapter.impl.d.ts.map +1 -0
  141. package/dist/adapters/filesystem/filesystem.adapter.impl.js +257 -0
  142. package/dist/adapters/filesystem/filesystem.adapter.impl.js.map +1 -0
  143. package/dist/adapters/filesystem/index.d.ts +10 -0
  144. package/dist/adapters/filesystem/index.d.ts.map +1 -0
  145. package/dist/adapters/filesystem/index.js +10 -0
  146. package/dist/adapters/filesystem/index.js.map +1 -0
  147. package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.d.ts +11 -0
  148. package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.d.ts.map +1 -0
  149. package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.js +25 -0
  150. package/dist/adapters/filesystem/storage-adapter-filesystem.plugin.js.map +1 -0
  151. package/dist/adapters/fixture/fixture.adapter.descriptor.d.ts +14 -0
  152. package/dist/adapters/fixture/fixture.adapter.descriptor.d.ts.map +1 -0
  153. package/dist/adapters/fixture/fixture.adapter.descriptor.js +35 -0
  154. package/dist/adapters/fixture/fixture.adapter.descriptor.js.map +1 -0
  155. package/dist/adapters/fixture/fixture.adapter.impl.d.ts +41 -0
  156. package/dist/adapters/fixture/fixture.adapter.impl.d.ts.map +1 -0
  157. package/dist/adapters/fixture/fixture.adapter.impl.js +162 -0
  158. package/dist/adapters/fixture/fixture.adapter.impl.js.map +1 -0
  159. package/dist/adapters/fixture/index.d.ts +9 -0
  160. package/dist/adapters/fixture/index.d.ts.map +1 -0
  161. package/dist/adapters/fixture/index.js +9 -0
  162. package/dist/adapters/fixture/index.js.map +1 -0
  163. package/dist/adapters/fixture/storage-adapter-fixture.plugin.d.ts +10 -0
  164. package/dist/adapters/fixture/storage-adapter-fixture.plugin.d.ts.map +1 -0
  165. package/dist/adapters/fixture/storage-adapter-fixture.plugin.js +21 -0
  166. package/dist/adapters/fixture/storage-adapter-fixture.plugin.js.map +1 -0
  167. package/dist/adapters/idb/idb-backend.d.ts +33 -0
  168. package/dist/adapters/idb/idb-backend.d.ts.map +1 -0
  169. package/dist/adapters/idb/idb-backend.js +217 -0
  170. package/dist/adapters/idb/idb-backend.js.map +1 -0
  171. package/dist/adapters/idb/idb.adapter.descriptor.d.ts +14 -0
  172. package/dist/adapters/idb/idb.adapter.descriptor.d.ts.map +1 -0
  173. package/dist/adapters/idb/idb.adapter.descriptor.js +35 -0
  174. package/dist/adapters/idb/idb.adapter.descriptor.js.map +1 -0
  175. package/dist/adapters/idb/idb.adapter.impl.d.ts +56 -0
  176. package/dist/adapters/idb/idb.adapter.impl.d.ts.map +1 -0
  177. package/dist/adapters/idb/idb.adapter.impl.js +227 -0
  178. package/dist/adapters/idb/idb.adapter.impl.js.map +1 -0
  179. package/dist/adapters/idb/index.d.ts +10 -0
  180. package/dist/adapters/idb/index.d.ts.map +1 -0
  181. package/dist/adapters/idb/index.js +10 -0
  182. package/dist/adapters/idb/index.js.map +1 -0
  183. package/dist/adapters/idb/storage-adapter-idb.plugin.d.ts +11 -0
  184. package/dist/adapters/idb/storage-adapter-idb.plugin.d.ts.map +1 -0
  185. package/dist/adapters/idb/storage-adapter-idb.plugin.js +22 -0
  186. package/dist/adapters/idb/storage-adapter-idb.plugin.js.map +1 -0
  187. package/dist/adapters/json/filesystem-binding.d.ts +14 -0
  188. package/dist/adapters/json/filesystem-binding.d.ts.map +1 -0
  189. package/dist/adapters/json/filesystem-binding.js +7 -0
  190. package/dist/adapters/json/filesystem-binding.js.map +1 -0
  191. package/dist/adapters/json/index.d.ts +10 -0
  192. package/dist/adapters/json/index.d.ts.map +1 -0
  193. package/dist/adapters/json/index.js +10 -0
  194. package/dist/adapters/json/index.js.map +1 -0
  195. package/dist/adapters/json/json.adapter.descriptor.d.ts +10 -0
  196. package/dist/adapters/json/json.adapter.descriptor.d.ts.map +1 -0
  197. package/dist/adapters/json/json.adapter.descriptor.js +38 -0
  198. package/dist/adapters/json/json.adapter.descriptor.js.map +1 -0
  199. package/dist/adapters/json/json.adapter.impl.d.ts +59 -0
  200. package/dist/adapters/json/json.adapter.impl.d.ts.map +1 -0
  201. package/dist/adapters/json/json.adapter.impl.js +395 -0
  202. package/dist/adapters/json/json.adapter.impl.js.map +1 -0
  203. package/dist/adapters/json/storage-adapter-json.plugin.d.ts +9 -0
  204. package/dist/adapters/json/storage-adapter-json.plugin.d.ts.map +1 -0
  205. package/dist/adapters/json/storage-adapter-json.plugin.js +21 -0
  206. package/dist/adapters/json/storage-adapter-json.plugin.js.map +1 -0
  207. package/dist/adapters/localdb/index.d.ts +9 -0
  208. package/dist/adapters/localdb/index.d.ts.map +1 -0
  209. package/dist/adapters/localdb/index.js +9 -0
  210. package/dist/adapters/localdb/index.js.map +1 -0
  211. package/dist/adapters/localdb/localdb.adapter.descriptor.d.ts +10 -0
  212. package/dist/adapters/localdb/localdb.adapter.descriptor.d.ts.map +1 -0
  213. package/dist/adapters/localdb/localdb.adapter.descriptor.js +37 -0
  214. package/dist/adapters/localdb/localdb.adapter.descriptor.js.map +1 -0
  215. package/dist/adapters/localdb/localdb.adapter.impl.d.ts +237 -0
  216. package/dist/adapters/localdb/localdb.adapter.impl.d.ts.map +1 -0
  217. package/dist/adapters/localdb/localdb.adapter.impl.js +1370 -0
  218. package/dist/adapters/localdb/localdb.adapter.impl.js.map +1 -0
  219. package/dist/adapters/localdb/localdb.adapter.loader.consumer.d.ts +2 -0
  220. package/dist/adapters/localdb/localdb.adapter.loader.consumer.d.ts.map +1 -0
  221. package/dist/adapters/localdb/localdb.adapter.loader.consumer.js +2 -0
  222. package/dist/adapters/localdb/localdb.adapter.loader.consumer.js.map +1 -0
  223. package/dist/adapters/localdb/localdb.inputs.d.ts +3 -0
  224. package/dist/adapters/localdb/localdb.inputs.d.ts.map +1 -0
  225. package/dist/adapters/localdb/localdb.inputs.js +3 -0
  226. package/dist/adapters/localdb/localdb.inputs.js.map +1 -0
  227. package/dist/adapters/localdb/migration-failure.d.ts +3 -0
  228. package/dist/adapters/localdb/migration-failure.d.ts.map +1 -0
  229. package/dist/adapters/localdb/migration-failure.js +16 -0
  230. package/dist/adapters/localdb/migration-failure.js.map +1 -0
  231. package/dist/adapters/localdb/outcome.d.ts +13 -0
  232. package/dist/adapters/localdb/outcome.d.ts.map +1 -0
  233. package/dist/adapters/localdb/outcome.js +12 -0
  234. package/dist/adapters/localdb/outcome.js.map +1 -0
  235. package/dist/adapters/localdb/repository-query.d.ts +19 -0
  236. package/dist/adapters/localdb/repository-query.d.ts.map +1 -0
  237. package/dist/adapters/localdb/repository-query.js +127 -0
  238. package/dist/adapters/localdb/repository-query.js.map +1 -0
  239. package/dist/adapters/localdb/storage-adapter-localdb.plugin.d.ts +14 -0
  240. package/dist/adapters/localdb/storage-adapter-localdb.plugin.d.ts.map +1 -0
  241. package/dist/adapters/localdb/storage-adapter-localdb.plugin.js +30 -0
  242. package/dist/adapters/localdb/storage-adapter-localdb.plugin.js.map +1 -0
  243. package/dist/adapters/memory/index.d.ts +9 -0
  244. package/dist/adapters/memory/index.d.ts.map +1 -0
  245. package/dist/adapters/memory/index.js +9 -0
  246. package/dist/adapters/memory/index.js.map +1 -0
  247. package/dist/adapters/memory/memory-root-store.d.ts +20 -0
  248. package/dist/adapters/memory/memory-root-store.d.ts.map +1 -0
  249. package/dist/adapters/memory/memory-root-store.js +49 -0
  250. package/dist/adapters/memory/memory-root-store.js.map +1 -0
  251. package/dist/adapters/memory/memory.adapter.impl.d.ts +61 -0
  252. package/dist/adapters/memory/memory.adapter.impl.d.ts.map +1 -0
  253. package/dist/adapters/memory/memory.adapter.impl.js +718 -0
  254. package/dist/adapters/memory/memory.adapter.impl.js.map +1 -0
  255. package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.d.ts +10 -0
  256. package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.d.ts.map +1 -0
  257. package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.js +37 -0
  258. package/dist/adapters/memory/memory.adapter.storage-adapter-memory.descriptor.js.map +1 -0
  259. package/dist/adapters/memory/storage-adapter-memory.plugin.d.ts +9 -0
  260. package/dist/adapters/memory/storage-adapter-memory.plugin.d.ts.map +1 -0
  261. package/dist/adapters/memory/storage-adapter-memory.plugin.js +44 -0
  262. package/dist/adapters/memory/storage-adapter-memory.plugin.js.map +1 -0
  263. package/dist/adapters/parse-adapter-input.d.ts +22 -0
  264. package/dist/adapters/parse-adapter-input.d.ts.map +1 -0
  265. package/dist/adapters/parse-adapter-input.js +36 -0
  266. package/dist/adapters/parse-adapter-input.js.map +1 -0
  267. package/dist/adapters/select-adapter.d.ts +36 -0
  268. package/dist/adapters/select-adapter.d.ts.map +1 -0
  269. package/dist/adapters/select-adapter.js +88 -0
  270. package/dist/adapters/select-adapter.js.map +1 -0
  271. package/dist/adapters/validate-for-persist.d.ts +21 -0
  272. package/dist/adapters/validate-for-persist.d.ts.map +1 -0
  273. package/dist/adapters/validate-for-persist.js +36 -0
  274. package/dist/adapters/validate-for-persist.js.map +1 -0
  275. package/dist/backup/backup.plugin.d.ts +276 -0
  276. package/dist/backup/backup.plugin.d.ts.map +1 -0
  277. package/dist/backup/backup.plugin.js +72 -0
  278. package/dist/backup/backup.plugin.js.map +1 -0
  279. package/dist/backup/channels/backup.channel.d.ts +21 -0
  280. package/dist/backup/channels/backup.channel.d.ts.map +1 -0
  281. package/dist/backup/channels/backup.channel.js +89 -0
  282. package/dist/backup/channels/backup.channel.js.map +1 -0
  283. package/dist/backup/config/storage.backup.config.descriptor.d.ts +57 -0
  284. package/dist/backup/config/storage.backup.config.descriptor.d.ts.map +1 -0
  285. package/dist/backup/config/storage.backup.config.descriptor.js +53 -0
  286. package/dist/backup/config/storage.backup.config.descriptor.js.map +1 -0
  287. package/dist/backup/core/hash.d.ts +8 -0
  288. package/dist/backup/core/hash.d.ts.map +1 -0
  289. package/dist/backup/core/hash.js +10 -0
  290. package/dist/backup/core/hash.js.map +1 -0
  291. package/dist/backup/core/homes.d.ts +13 -0
  292. package/dist/backup/core/homes.d.ts.map +1 -0
  293. package/dist/backup/core/homes.js +54 -0
  294. package/dist/backup/core/homes.js.map +1 -0
  295. package/dist/backup/core/index.d.ts +17 -0
  296. package/dist/backup/core/index.d.ts.map +1 -0
  297. package/dist/backup/core/index.js +12 -0
  298. package/dist/backup/core/index.js.map +1 -0
  299. package/dist/backup/core/io.d.ts +76 -0
  300. package/dist/backup/core/io.d.ts.map +1 -0
  301. package/dist/backup/core/io.js +177 -0
  302. package/dist/backup/core/io.js.map +1 -0
  303. package/dist/backup/core/paths.d.ts +50 -0
  304. package/dist/backup/core/paths.d.ts.map +1 -0
  305. package/dist/backup/core/paths.js +75 -0
  306. package/dist/backup/core/paths.js.map +1 -0
  307. package/dist/backup/core/readiness.d.ts +9 -0
  308. package/dist/backup/core/readiness.d.ts.map +1 -0
  309. package/dist/backup/core/readiness.js +104 -0
  310. package/dist/backup/core/readiness.js.map +1 -0
  311. package/dist/backup/core/recovery.d.ts +11 -0
  312. package/dist/backup/core/recovery.d.ts.map +1 -0
  313. package/dist/backup/core/recovery.js +75 -0
  314. package/dist/backup/core/recovery.js.map +1 -0
  315. package/dist/backup/core/registry.d.ts +13 -0
  316. package/dist/backup/core/registry.d.ts.map +1 -0
  317. package/dist/backup/core/registry.js +18 -0
  318. package/dist/backup/core/registry.js.map +1 -0
  319. package/dist/backup/core/restore.d.ts +36 -0
  320. package/dist/backup/core/restore.d.ts.map +1 -0
  321. package/dist/backup/core/restore.js +280 -0
  322. package/dist/backup/core/restore.js.map +1 -0
  323. package/dist/backup/core/rotate.d.ts +19 -0
  324. package/dist/backup/core/rotate.d.ts.map +1 -0
  325. package/dist/backup/core/rotate.js +153 -0
  326. package/dist/backup/core/rotate.js.map +1 -0
  327. package/dist/backup/core/rotation.d.ts +19 -0
  328. package/dist/backup/core/rotation.d.ts.map +1 -0
  329. package/dist/backup/core/rotation.js +100 -0
  330. package/dist/backup/core/rotation.js.map +1 -0
  331. package/dist/backup/core/snapshot.d.ts +45 -0
  332. package/dist/backup/core/snapshot.d.ts.map +1 -0
  333. package/dist/backup/core/snapshot.js +217 -0
  334. package/dist/backup/core/snapshot.js.map +1 -0
  335. package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.d.ts +19 -0
  336. package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.d.ts.map +1 -0
  337. package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.js +42 -0
  338. package/dist/backup/docs/backup.disaster-recovery.docs.descriptor.js.map +1 -0
  339. package/dist/backup/index.d.ts +19 -0
  340. package/dist/backup/index.d.ts.map +1 -0
  341. package/dist/backup/index.js +16 -0
  342. package/dist/backup/index.js.map +1 -0
  343. package/dist/backup/jobs/backup.snapshot.descriptor.d.ts +95 -0
  344. package/dist/backup/jobs/backup.snapshot.descriptor.d.ts.map +1 -0
  345. package/dist/backup/jobs/backup.snapshot.descriptor.js +33 -0
  346. package/dist/backup/jobs/backup.snapshot.descriptor.js.map +1 -0
  347. package/dist/backup/jobs/backup.snapshot.impl.d.ts +59 -0
  348. package/dist/backup/jobs/backup.snapshot.impl.d.ts.map +1 -0
  349. package/dist/backup/jobs/backup.snapshot.impl.js +393 -0
  350. package/dist/backup/jobs/backup.snapshot.impl.js.map +1 -0
  351. package/dist/backup/jobs/backup.snapshot.schema.d.ts +3 -0
  352. package/dist/backup/jobs/backup.snapshot.schema.d.ts.map +1 -0
  353. package/dist/backup/jobs/backup.snapshot.schema.js +3 -0
  354. package/dist/backup/jobs/backup.snapshot.schema.js.map +1 -0
  355. package/dist/backup/kinds/backup-preflight.kind.d.ts +16 -0
  356. package/dist/backup/kinds/backup-preflight.kind.d.ts.map +1 -0
  357. package/dist/backup/kinds/backup-preflight.kind.js +27 -0
  358. package/dist/backup/kinds/backup-preflight.kind.js.map +1 -0
  359. package/dist/backup/kinds/backup-recovery-plan.kind.d.ts +11 -0
  360. package/dist/backup/kinds/backup-recovery-plan.kind.d.ts.map +1 -0
  361. package/dist/backup/kinds/backup-recovery-plan.kind.js +16 -0
  362. package/dist/backup/kinds/backup-recovery-plan.kind.js.map +1 -0
  363. package/dist/backup/kinds/backup-target.kind.d.ts +16 -0
  364. package/dist/backup/kinds/backup-target.kind.d.ts.map +1 -0
  365. package/dist/backup/kinds/backup-target.kind.js +21 -0
  366. package/dist/backup/kinds/backup-target.kind.js.map +1 -0
  367. package/dist/backup/schemas/core.d.ts +169 -0
  368. package/dist/backup/schemas/core.d.ts.map +1 -0
  369. package/dist/backup/schemas/core.js +117 -0
  370. package/dist/backup/schemas/core.js.map +1 -0
  371. package/dist/backup/schemas/disaster-recovery.d.ts +512 -0
  372. package/dist/backup/schemas/disaster-recovery.d.ts.map +1 -0
  373. package/dist/backup/schemas/disaster-recovery.js +410 -0
  374. package/dist/backup/schemas/disaster-recovery.js.map +1 -0
  375. package/dist/backup/schemas/index.d.ts +10 -0
  376. package/dist/backup/schemas/index.d.ts.map +1 -0
  377. package/dist/backup/schemas/index.js +10 -0
  378. package/dist/backup/schemas/index.js.map +1 -0
  379. package/dist/backup/schemas/job.d.ts +102 -0
  380. package/dist/backup/schemas/job.d.ts.map +1 -0
  381. package/dist/backup/schemas/job.js +47 -0
  382. package/dist/backup/schemas/job.js.map +1 -0
  383. package/dist/backup/schemas/preflight.d.ts +38 -0
  384. package/dist/backup/schemas/preflight.d.ts.map +1 -0
  385. package/dist/backup/schemas/preflight.js +21 -0
  386. package/dist/backup/schemas/preflight.js.map +1 -0
  387. package/dist/backup/schemas/snapshot.d.ts +110 -0
  388. package/dist/backup/schemas/snapshot.d.ts.map +1 -0
  389. package/dist/backup/schemas/snapshot.js +84 -0
  390. package/dist/backup/schemas/snapshot.js.map +1 -0
  391. package/dist/backup/schemas/target.d.ts +95 -0
  392. package/dist/backup/schemas/target.d.ts.map +1 -0
  393. package/dist/backup/schemas/target.js +105 -0
  394. package/dist/backup/schemas/target.js.map +1 -0
  395. package/dist/backup/storage/snapshot.record.descriptor.d.ts +10 -0
  396. package/dist/backup/storage/snapshot.record.descriptor.d.ts.map +1 -0
  397. package/dist/backup/storage/snapshot.record.descriptor.js +41 -0
  398. package/dist/backup/storage/snapshot.record.descriptor.js.map +1 -0
  399. package/dist/backup/targets/awareness-bus.target.descriptor.d.ts +10 -0
  400. package/dist/backup/targets/awareness-bus.target.descriptor.d.ts.map +1 -0
  401. package/dist/backup/targets/awareness-bus.target.descriptor.js +32 -0
  402. package/dist/backup/targets/awareness-bus.target.descriptor.js.map +1 -0
  403. package/dist/backup/targets/presence-identity.target.descriptor.d.ts +10 -0
  404. package/dist/backup/targets/presence-identity.target.descriptor.d.ts.map +1 -0
  405. package/dist/backup/targets/presence-identity.target.descriptor.js +40 -0
  406. package/dist/backup/targets/presence-identity.target.descriptor.js.map +1 -0
  407. package/dist/backup/targets/presence-inner.target.descriptor.d.ts +10 -0
  408. package/dist/backup/targets/presence-inner.target.descriptor.d.ts.map +1 -0
  409. package/dist/backup/targets/presence-inner.target.descriptor.js +36 -0
  410. package/dist/backup/targets/presence-inner.target.descriptor.js.map +1 -0
  411. package/dist/backup/targets/storage-records.target.descriptor.d.ts +16 -0
  412. package/dist/backup/targets/storage-records.target.descriptor.d.ts.map +1 -0
  413. package/dist/backup/targets/storage-records.target.descriptor.js +38 -0
  414. package/dist/backup/targets/storage-records.target.descriptor.js.map +1 -0
  415. package/dist/bridge/index.d.ts +2 -2
  416. package/dist/bridge/index.d.ts.map +1 -1
  417. package/dist/bridge/index.js +1 -1
  418. package/dist/bridge/index.js.map +1 -1
  419. package/dist/bridge/storage-kind-bridge.d.ts +13 -2
  420. package/dist/bridge/storage-kind-bridge.d.ts.map +1 -1
  421. package/dist/bridge/storage-kind-bridge.js +72 -69
  422. package/dist/bridge/storage-kind-bridge.js.map +1 -1
  423. package/dist/bridge/types.d.ts +4 -3
  424. package/dist/bridge/types.d.ts.map +1 -1
  425. package/dist/cli/backup/backup.cli-group.descriptor.d.ts +9 -0
  426. package/dist/cli/backup/backup.cli-group.descriptor.d.ts.map +1 -0
  427. package/dist/cli/backup/backup.cli-group.descriptor.js +16 -0
  428. package/dist/cli/backup/backup.cli-group.descriptor.js.map +1 -0
  429. package/dist/cli/backup/commands/backup.now.cli-command.descriptor.d.ts +4 -0
  430. package/dist/cli/backup/commands/backup.now.cli-command.descriptor.d.ts.map +1 -0
  431. package/dist/cli/backup/commands/backup.now.cli-command.descriptor.js +24 -0
  432. package/dist/cli/backup/commands/backup.now.cli-command.descriptor.js.map +1 -0
  433. package/dist/cli/backup/commands/backup.now.cli-command.impl.d.ts +26 -0
  434. package/dist/cli/backup/commands/backup.now.cli-command.impl.d.ts.map +1 -0
  435. package/dist/cli/backup/commands/backup.now.cli-command.impl.js +61 -0
  436. package/dist/cli/backup/commands/backup.now.cli-command.impl.js.map +1 -0
  437. package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.d.ts +4 -0
  438. package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.d.ts.map +1 -0
  439. package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.js +24 -0
  440. package/dist/cli/backup/commands/backup.restore.cli-command.descriptor.js.map +1 -0
  441. package/dist/cli/backup/commands/backup.restore.cli-command.impl.d.ts +23 -0
  442. package/dist/cli/backup/commands/backup.restore.cli-command.impl.d.ts.map +1 -0
  443. package/dist/cli/backup/commands/backup.restore.cli-command.impl.js +50 -0
  444. package/dist/cli/backup/commands/backup.restore.cli-command.impl.js.map +1 -0
  445. package/dist/cli/backup/commands/backup.status.cli-command.descriptor.d.ts +4 -0
  446. package/dist/cli/backup/commands/backup.status.cli-command.descriptor.d.ts.map +1 -0
  447. package/dist/cli/backup/commands/backup.status.cli-command.descriptor.js +19 -0
  448. package/dist/cli/backup/commands/backup.status.cli-command.descriptor.js.map +1 -0
  449. package/dist/cli/backup/commands/backup.status.cli-command.impl.d.ts +21 -0
  450. package/dist/cli/backup/commands/backup.status.cli-command.impl.d.ts.map +1 -0
  451. package/dist/cli/backup/commands/backup.status.cli-command.impl.js +76 -0
  452. package/dist/cli/backup/commands/backup.status.cli-command.impl.js.map +1 -0
  453. package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.d.ts +4 -0
  454. package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.d.ts.map +1 -0
  455. package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.js +20 -0
  456. package/dist/cli/backup/commands/backup.verify.cli-command.descriptor.js.map +1 -0
  457. package/dist/cli/backup/commands/backup.verify.cli-command.impl.d.ts +20 -0
  458. package/dist/cli/backup/commands/backup.verify.cli-command.impl.d.ts.map +1 -0
  459. package/dist/cli/backup/commands/backup.verify.cli-command.impl.js +48 -0
  460. package/dist/cli/backup/commands/backup.verify.cli-command.impl.js.map +1 -0
  461. package/dist/cli/backup/plugin.d.ts +5 -0
  462. package/dist/cli/backup/plugin.d.ts.map +1 -0
  463. package/dist/cli/backup/plugin.js +30 -0
  464. package/dist/cli/backup/plugin.js.map +1 -0
  465. package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts +1 -1
  466. package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts.map +1 -1
  467. package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts +8 -1
  468. package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts.map +1 -1
  469. package/dist/cli/commands/list/storage.list.cli-command.impl.js +17 -8
  470. package/dist/cli/commands/list/storage.list.cli-command.impl.js.map +1 -1
  471. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts +1 -1
  472. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts.map +1 -1
  473. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts +9 -1
  474. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts.map +1 -1
  475. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js +110 -76
  476. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js.map +1 -1
  477. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts +1 -1
  478. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts.map +1 -1
  479. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts +9 -1
  480. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts.map +1 -1
  481. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js +131 -108
  482. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js.map +1 -1
  483. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts +1 -1
  484. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts.map +1 -1
  485. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts +12 -1
  486. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts.map +1 -1
  487. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js +34 -26
  488. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js.map +1 -1
  489. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts +1 -1
  490. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts.map +1 -1
  491. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts +11 -1
  492. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts.map +1 -1
  493. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js +89 -42
  494. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js.map +1 -1
  495. package/dist/cli/commands/sync/sync-command-input.d.ts +20 -0
  496. package/dist/cli/commands/sync/sync-command-input.d.ts.map +1 -0
  497. package/dist/cli/commands/sync/sync-command-input.js +20 -0
  498. package/dist/cli/commands/sync/sync-command-input.js.map +1 -0
  499. package/dist/cli/gc/commands/gc.run.cli-command.descriptor.d.ts +4 -0
  500. package/dist/cli/gc/commands/gc.run.cli-command.descriptor.d.ts.map +1 -0
  501. package/dist/cli/gc/commands/gc.run.cli-command.descriptor.js +20 -0
  502. package/dist/cli/gc/commands/gc.run.cli-command.descriptor.js.map +1 -0
  503. package/dist/cli/gc/commands/gc.run.cli-command.impl.d.ts +24 -0
  504. package/dist/cli/gc/commands/gc.run.cli-command.impl.d.ts.map +1 -0
  505. package/dist/cli/gc/commands/gc.run.cli-command.impl.js +104 -0
  506. package/dist/cli/gc/commands/gc.run.cli-command.impl.js.map +1 -0
  507. package/dist/cli/gc/commands/gc.status.cli-command.descriptor.d.ts +4 -0
  508. package/dist/cli/gc/commands/gc.status.cli-command.descriptor.d.ts.map +1 -0
  509. package/dist/cli/gc/commands/gc.status.cli-command.descriptor.js +19 -0
  510. package/dist/cli/gc/commands/gc.status.cli-command.descriptor.js.map +1 -0
  511. package/dist/cli/gc/commands/gc.status.cli-command.impl.d.ts +21 -0
  512. package/dist/cli/gc/commands/gc.status.cli-command.impl.d.ts.map +1 -0
  513. package/dist/cli/gc/commands/gc.status.cli-command.impl.js +74 -0
  514. package/dist/cli/gc/commands/gc.status.cli-command.impl.js.map +1 -0
  515. package/dist/cli/gc/gc.cli-group.descriptor.d.ts +4 -0
  516. package/dist/cli/gc/gc.cli-group.descriptor.d.ts.map +1 -0
  517. package/dist/cli/gc/gc.cli-group.descriptor.js +11 -0
  518. package/dist/cli/gc/gc.cli-group.descriptor.js.map +1 -0
  519. package/dist/cli/gc/plugin.d.ts +5 -0
  520. package/dist/cli/gc/plugin.d.ts.map +1 -0
  521. package/dist/cli/gc/plugin.js +28 -0
  522. package/dist/cli/gc/plugin.js.map +1 -0
  523. package/dist/cli/plugin.d.ts +17 -0
  524. package/dist/cli/plugin.d.ts.map +1 -0
  525. package/dist/cli/plugin.js +51 -0
  526. package/dist/cli/plugin.js.map +1 -0
  527. package/dist/cli/storage.cli-group.descriptor.d.ts +1 -1
  528. package/dist/cli/storage.cli-group.descriptor.d.ts.map +1 -1
  529. package/dist/cli/storage.sync.cli-group.descriptor.d.ts +1 -1
  530. package/dist/cli/storage.sync.cli-group.descriptor.d.ts.map +1 -1
  531. package/dist/cli/types.d.ts +4 -20
  532. package/dist/cli/types.d.ts.map +1 -1
  533. package/dist/cli/types.js +3 -4
  534. package/dist/cli/types.js.map +1 -1
  535. package/dist/client/browse-adapter.d.ts +49 -0
  536. package/dist/client/browse-adapter.d.ts.map +1 -0
  537. package/dist/client/browse-adapter.js +99 -0
  538. package/dist/client/browse-adapter.js.map +1 -0
  539. package/dist/client/diagnose-adapter.d.ts +9 -0
  540. package/dist/client/diagnose-adapter.d.ts.map +1 -0
  541. package/dist/client/diagnose-adapter.js +9 -0
  542. package/dist/client/diagnose-adapter.js.map +1 -0
  543. package/dist/client/index.d.ts +7 -1
  544. package/dist/client/index.d.ts.map +1 -1
  545. package/dist/client/index.js +5 -1
  546. package/dist/client/index.js.map +1 -1
  547. package/dist/client/list-browsable-adapters.d.ts +4 -3
  548. package/dist/client/list-browsable-adapters.d.ts.map +1 -1
  549. package/dist/client/list-browsable-adapters.js +3 -8
  550. package/dist/client/list-browsable-adapters.js.map +1 -1
  551. package/dist/client/object-adapter.d.ts +33 -0
  552. package/dist/client/object-adapter.d.ts.map +1 -0
  553. package/dist/client/object-adapter.js +45 -0
  554. package/dist/client/object-adapter.js.map +1 -0
  555. package/dist/client/storage-explorer-capability.d.ts +81 -0
  556. package/dist/client/storage-explorer-capability.d.ts.map +1 -0
  557. package/dist/client/storage-explorer-capability.impl.worker.d.ts +23 -0
  558. package/dist/client/storage-explorer-capability.impl.worker.d.ts.map +1 -0
  559. package/dist/client/storage-explorer-capability.impl.worker.js +124 -0
  560. package/dist/client/storage-explorer-capability.impl.worker.js.map +1 -0
  561. package/dist/client/storage-explorer-capability.js +125 -0
  562. package/dist/client/storage-explorer-capability.js.map +1 -0
  563. package/dist/client/storage-failure.d.ts +43 -0
  564. package/dist/client/storage-failure.d.ts.map +1 -0
  565. package/dist/client/storage-failure.js +100 -0
  566. package/dist/client/storage-failure.js.map +1 -0
  567. package/dist/daemon/commands/browse.d.ts +29 -0
  568. package/dist/daemon/commands/browse.d.ts.map +1 -0
  569. package/dist/daemon/commands/browse.js +91 -0
  570. package/dist/daemon/commands/browse.js.map +1 -0
  571. package/dist/daemon/commands/sync.d.ts +1 -1
  572. package/dist/daemon/commands/sync.d.ts.map +1 -1
  573. package/dist/daemon/commands/sync.js +60 -52
  574. package/dist/daemon/commands/sync.js.map +1 -1
  575. package/dist/docs/records.docs.descriptor.d.ts +1 -1
  576. package/dist/docs/records.docs.descriptor.d.ts.map +1 -1
  577. package/dist/docs/records.docs.descriptor.js +136 -151
  578. package/dist/docs/records.docs.descriptor.js.map +1 -1
  579. package/dist/docs/storage.adapters.docs.descriptor.d.ts +4 -0
  580. package/dist/docs/storage.adapters.docs.descriptor.d.ts.map +1 -0
  581. package/dist/docs/storage.adapters.docs.descriptor.js +175 -0
  582. package/dist/docs/storage.adapters.docs.descriptor.js.map +1 -0
  583. package/dist/docs/storage.browse.docs.descriptor.d.ts +4 -0
  584. package/dist/docs/storage.browse.docs.descriptor.d.ts.map +1 -0
  585. package/dist/docs/storage.browse.docs.descriptor.js +74 -0
  586. package/dist/docs/storage.browse.docs.descriptor.js.map +1 -0
  587. package/dist/docs/storage.docs.descriptor.d.ts +4 -0
  588. package/dist/docs/storage.docs.descriptor.d.ts.map +1 -0
  589. package/dist/docs/storage.docs.descriptor.js +51 -0
  590. package/dist/docs/storage.docs.descriptor.js.map +1 -0
  591. package/dist/docs/storage.manifests.docs.descriptor.d.ts +4 -0
  592. package/dist/docs/storage.manifests.docs.descriptor.d.ts.map +1 -0
  593. package/dist/docs/{manifests.docs.descriptor.js → storage.manifests.docs.descriptor.js} +69 -34
  594. package/dist/docs/storage.manifests.docs.descriptor.js.map +1 -0
  595. package/dist/docs/sync.docs.descriptor.d.ts +1 -1
  596. package/dist/docs/sync.docs.descriptor.d.ts.map +1 -1
  597. package/dist/docs/sync.docs.descriptor.js +140 -150
  598. package/dist/docs/sync.docs.descriptor.js.map +1 -1
  599. package/dist/docs/transform.docs.descriptor.d.ts +4 -0
  600. package/dist/docs/transform.docs.descriptor.d.ts.map +1 -0
  601. package/dist/docs/transform.docs.descriptor.js +134 -0
  602. package/dist/docs/transform.docs.descriptor.js.map +1 -0
  603. package/dist/host-files.d.ts +35 -0
  604. package/dist/host-files.d.ts.map +1 -0
  605. package/dist/host-files.js +60 -0
  606. package/dist/host-files.js.map +1 -0
  607. package/dist/index.d.ts +15 -13
  608. package/dist/index.d.ts.map +1 -1
  609. package/dist/index.js +10 -10
  610. package/dist/index.js.map +1 -1
  611. package/dist/interfaces/adapter.d.ts +168 -47
  612. package/dist/interfaces/adapter.d.ts.map +1 -1
  613. package/dist/interfaces/document-store.d.ts +50 -1
  614. package/dist/interfaces/document-store.d.ts.map +1 -1
  615. package/dist/interfaces/index.d.ts +8 -7
  616. package/dist/interfaces/index.d.ts.map +1 -1
  617. package/dist/interfaces/index.js +9 -7
  618. package/dist/interfaces/index.js.map +1 -1
  619. package/dist/interfaces/object-store.d.ts +54 -0
  620. package/dist/interfaces/object-store.d.ts.map +1 -0
  621. package/dist/interfaces/object-store.js +13 -0
  622. package/dist/interfaces/object-store.js.map +1 -0
  623. package/dist/interfaces/query-builder.d.ts +2 -30
  624. package/dist/interfaces/query-builder.d.ts.map +1 -1
  625. package/dist/interfaces/query-builder.js +0 -9
  626. package/dist/interfaces/query-builder.js.map +1 -1
  627. package/dist/interfaces/record/index.d.ts +1 -1
  628. package/dist/interfaces/record/index.d.ts.map +1 -1
  629. package/dist/interfaces/record/index.js +1 -1
  630. package/dist/interfaces/record/index.js.map +1 -1
  631. package/dist/interfaces/record/interface.d.ts +30 -9
  632. package/dist/interfaces/record/interface.d.ts.map +1 -1
  633. package/dist/interfaces/schema/index.d.ts +2 -2
  634. package/dist/interfaces/schema/index.d.ts.map +1 -1
  635. package/dist/interfaces/schema/index.js +2 -2
  636. package/dist/interfaces/schema/index.js.map +1 -1
  637. package/dist/interfaces/schema/schema-interface.d.ts +9 -8
  638. package/dist/interfaces/schema/schema-interface.d.ts.map +1 -1
  639. package/dist/interfaces/schema/table-interface.d.ts +4 -3
  640. package/dist/interfaces/schema/table-interface.d.ts.map +1 -1
  641. package/dist/interfaces/storage-consumer-fs.d.ts +25 -27
  642. package/dist/interfaces/storage-consumer-fs.d.ts.map +1 -1
  643. package/dist/interfaces/storage-consumer-fs.js +29 -30
  644. package/dist/interfaces/storage-consumer-fs.js.map +1 -1
  645. package/dist/manifest/base.d.ts +104 -22
  646. package/dist/manifest/base.d.ts.map +1 -1
  647. package/dist/manifest/base.js +393 -151
  648. package/dist/manifest/base.js.map +1 -1
  649. package/dist/manifest/cloud-sync.browser.d.ts +3 -0
  650. package/dist/manifest/cloud-sync.browser.d.ts.map +1 -0
  651. package/dist/manifest/cloud-sync.browser.js +3 -0
  652. package/dist/manifest/cloud-sync.browser.js.map +1 -0
  653. package/dist/manifest/cloud-sync.consumer.d.ts +2 -6
  654. package/dist/manifest/cloud-sync.consumer.d.ts.map +1 -1
  655. package/dist/manifest/cloud-sync.consumer.js +2 -81
  656. package/dist/manifest/cloud-sync.consumer.js.map +1 -1
  657. package/dist/manifest/cloud-sync.core.d.ts +30 -0
  658. package/dist/manifest/cloud-sync.core.d.ts.map +1 -0
  659. package/dist/manifest/cloud-sync.core.js +91 -0
  660. package/dist/manifest/cloud-sync.core.js.map +1 -0
  661. package/dist/manifest/cloud-sync.d.ts +3 -0
  662. package/dist/manifest/cloud-sync.d.ts.map +1 -0
  663. package/dist/manifest/cloud-sync.js +8 -0
  664. package/dist/manifest/cloud-sync.js.map +1 -0
  665. package/dist/manifest/index.d.ts +1 -1
  666. package/dist/manifest/index.d.ts.map +1 -1
  667. package/dist/manifest/index.js +1 -1
  668. package/dist/manifest/index.js.map +1 -1
  669. package/dist/manifest/source-policy.d.ts +21 -4
  670. package/dist/manifest/source-policy.d.ts.map +1 -1
  671. package/dist/manifest/source-policy.js +48 -50
  672. package/dist/manifest/source-policy.js.map +1 -1
  673. package/dist/migration-format/index.d.ts +3 -0
  674. package/dist/migration-format/index.d.ts.map +1 -0
  675. package/dist/migration-format/index.js +3 -0
  676. package/dist/migration-format/index.js.map +1 -0
  677. package/dist/migration-format/migration-format.kind.d.ts +5 -0
  678. package/dist/migration-format/migration-format.kind.d.ts.map +1 -0
  679. package/dist/migration-format/migration-format.kind.js +18 -0
  680. package/dist/migration-format/migration-format.kind.js.map +1 -0
  681. package/dist/path-format.d.ts +4 -0
  682. package/dist/path-format.d.ts.map +1 -0
  683. package/dist/path-format.js +71 -0
  684. package/dist/path-format.js.map +1 -0
  685. package/dist/path-policy.d.ts +28 -0
  686. package/dist/path-policy.d.ts.map +1 -0
  687. package/dist/path-policy.js +123 -0
  688. package/dist/path-policy.js.map +1 -0
  689. package/dist/paths.d.ts +14 -5
  690. package/dist/paths.d.ts.map +1 -1
  691. package/dist/paths.js +17 -150
  692. package/dist/paths.js.map +1 -1
  693. package/dist/policy/context.d.ts +3 -2
  694. package/dist/policy/context.d.ts.map +1 -1
  695. package/dist/policy/context.js +13 -16
  696. package/dist/policy/context.js.map +1 -1
  697. package/dist/policy/index.d.ts +3 -3
  698. package/dist/policy/index.d.ts.map +1 -1
  699. package/dist/policy/index.js +3 -3
  700. package/dist/policy/index.js.map +1 -1
  701. package/dist/policy/overrides.d.ts +5 -39
  702. package/dist/policy/overrides.d.ts.map +1 -1
  703. package/dist/policy/overrides.js +19 -24
  704. package/dist/policy/overrides.js.map +1 -1
  705. package/dist/policy/persistence.d.ts +2 -35
  706. package/dist/policy/persistence.d.ts.map +1 -1
  707. package/dist/policy/persistence.js +2 -12
  708. package/dist/policy/persistence.js.map +1 -1
  709. package/dist/policy/types.d.ts +5 -5
  710. package/dist/policy/types.d.ts.map +1 -1
  711. package/dist/record/array-fields.d.ts +15 -0
  712. package/dist/record/array-fields.d.ts.map +1 -0
  713. package/dist/record/array-fields.js +80 -0
  714. package/dist/record/array-fields.js.map +1 -0
  715. package/dist/record/atomic.d.ts +5 -0
  716. package/dist/record/atomic.d.ts.map +1 -0
  717. package/dist/record/atomic.js +10 -0
  718. package/dist/record/atomic.js.map +1 -0
  719. package/dist/record/base.d.ts +177 -39
  720. package/dist/record/base.d.ts.map +1 -1
  721. package/dist/record/base.js +1708 -525
  722. package/dist/record/base.js.map +1 -1
  723. package/dist/record/columns.d.ts +23 -0
  724. package/dist/record/columns.d.ts.map +1 -0
  725. package/dist/record/columns.js +161 -0
  726. package/dist/record/columns.js.map +1 -0
  727. package/dist/record/delivery.d.ts +57 -0
  728. package/dist/record/delivery.d.ts.map +1 -0
  729. package/dist/record/delivery.js +262 -0
  730. package/dist/record/delivery.js.map +1 -0
  731. package/dist/record/events.js +1 -1
  732. package/dist/record/events.js.map +1 -1
  733. package/dist/record/extensions.d.ts +17 -14
  734. package/dist/record/extensions.d.ts.map +1 -1
  735. package/dist/record/extensions.js +79 -53
  736. package/dist/record/extensions.js.map +1 -1
  737. package/dist/record/failure-condition.d.ts +14 -0
  738. package/dist/record/failure-condition.d.ts.map +1 -0
  739. package/dist/record/failure-condition.js +17 -0
  740. package/dist/record/failure-condition.js.map +1 -0
  741. package/dist/record/index.d.ts +5 -1
  742. package/dist/record/index.d.ts.map +1 -1
  743. package/dist/record/index.js +5 -1
  744. package/dist/record/index.js.map +1 -1
  745. package/dist/record/merge.d.ts +21 -0
  746. package/dist/record/merge.d.ts.map +1 -0
  747. package/dist/record/merge.js +147 -0
  748. package/dist/record/merge.js.map +1 -0
  749. package/dist/record/relations.d.ts +23 -0
  750. package/dist/record/relations.d.ts.map +1 -0
  751. package/dist/record/relations.js +164 -0
  752. package/dist/record/relations.js.map +1 -0
  753. package/dist/record/revision.d.ts +5 -0
  754. package/dist/record/revision.d.ts.map +1 -0
  755. package/dist/record/revision.js +11 -0
  756. package/dist/record/revision.js.map +1 -0
  757. package/dist/record/schema-coordination.client.d.ts +16 -0
  758. package/dist/record/schema-coordination.client.d.ts.map +1 -0
  759. package/dist/record/schema-coordination.client.js +59 -0
  760. package/dist/record/schema-coordination.client.js.map +1 -0
  761. package/dist/record/storage.record-delivery.reconcile.descriptor.d.ts +74 -0
  762. package/dist/record/storage.record-delivery.reconcile.descriptor.d.ts.map +1 -0
  763. package/dist/record/storage.record-delivery.reconcile.descriptor.js +54 -0
  764. package/dist/record/storage.record-delivery.reconcile.descriptor.js.map +1 -0
  765. package/dist/record/storage.record-delivery.reconcile.impl.d.ts +22 -0
  766. package/dist/record/storage.record-delivery.reconcile.impl.d.ts.map +1 -0
  767. package/dist/record/storage.record-delivery.reconcile.impl.js +52 -0
  768. package/dist/record/storage.record-delivery.reconcile.impl.js.map +1 -0
  769. package/dist/resolver/storage-backed-resolver.d.ts +12 -5
  770. package/dist/resolver/storage-backed-resolver.d.ts.map +1 -1
  771. package/dist/resolver/storage-backed-resolver.js +129 -48
  772. package/dist/resolver/storage-backed-resolver.js.map +1 -1
  773. package/dist/retention/capacity.d.ts +37 -0
  774. package/dist/retention/capacity.d.ts.map +1 -0
  775. package/dist/retention/capacity.js +71 -0
  776. package/dist/retention/capacity.js.map +1 -0
  777. package/dist/retention/catalog-chunks.d.ts +11 -0
  778. package/dist/retention/catalog-chunks.d.ts.map +1 -0
  779. package/dist/retention/catalog-chunks.js +62 -0
  780. package/dist/retention/catalog-chunks.js.map +1 -0
  781. package/dist/retention/reclaim.d.ts +59 -0
  782. package/dist/retention/reclaim.d.ts.map +1 -0
  783. package/dist/retention/reclaim.js +259 -0
  784. package/dist/retention/reclaim.js.map +1 -0
  785. package/dist/retention/roots.d.ts +141 -0
  786. package/dist/retention/roots.d.ts.map +1 -0
  787. package/dist/retention/roots.js +223 -0
  788. package/dist/retention/roots.js.map +1 -0
  789. package/dist/retention/scratch-custody.d.ts +40 -0
  790. package/dist/retention/scratch-custody.d.ts.map +1 -0
  791. package/dist/retention/scratch-custody.js +15 -0
  792. package/dist/retention/scratch-custody.js.map +1 -0
  793. package/dist/retention/startup-sweep.d.ts +57 -0
  794. package/dist/retention/startup-sweep.d.ts.map +1 -0
  795. package/dist/retention/startup-sweep.js +137 -0
  796. package/dist/retention/startup-sweep.js.map +1 -0
  797. package/dist/retention/storage.retention-sweep.descriptor.d.ts +82 -0
  798. package/dist/retention/storage.retention-sweep.descriptor.d.ts.map +1 -0
  799. package/dist/retention/storage.retention-sweep.descriptor.js +42 -0
  800. package/dist/retention/storage.retention-sweep.descriptor.js.map +1 -0
  801. package/dist/retention/storage.retention-sweep.impl.d.ts +22 -0
  802. package/dist/retention/storage.retention-sweep.impl.d.ts.map +1 -0
  803. package/dist/retention/storage.retention-sweep.impl.js +78 -0
  804. package/dist/retention/storage.retention-sweep.impl.js.map +1 -0
  805. package/dist/retention/storage.retention-sweep.schema.d.ts +3 -0
  806. package/dist/retention/storage.retention-sweep.schema.d.ts.map +1 -0
  807. package/dist/retention/storage.retention-sweep.schema.js +3 -0
  808. package/dist/retention/storage.retention-sweep.schema.js.map +1 -0
  809. package/dist/retention/sweep.d.ts +31 -0
  810. package/dist/retention/sweep.d.ts.map +1 -0
  811. package/dist/retention/sweep.js +190 -0
  812. package/dist/retention/sweep.js.map +1 -0
  813. package/dist/retention/tmp-scratch.d.ts +35 -0
  814. package/dist/retention/tmp-scratch.d.ts.map +1 -0
  815. package/dist/retention/tmp-scratch.js +149 -0
  816. package/dist/retention/tmp-scratch.js.map +1 -0
  817. package/dist/schemas/adapter-config.d.ts +42 -0
  818. package/dist/schemas/adapter-config.d.ts.map +1 -0
  819. package/dist/schemas/adapter-config.js +21 -0
  820. package/dist/schemas/adapter-config.js.map +1 -0
  821. package/dist/schemas/adapter-configuration-diagnostic.d.ts +35 -0
  822. package/dist/schemas/adapter-configuration-diagnostic.d.ts.map +1 -0
  823. package/dist/schemas/adapter-configuration-diagnostic.js +30 -0
  824. package/dist/schemas/adapter-configuration-diagnostic.js.map +1 -0
  825. package/dist/schemas/adapter-descriptor.d.ts +215 -5
  826. package/dist/schemas/adapter-descriptor.d.ts.map +1 -1
  827. package/dist/schemas/adapter-descriptor.js +158 -4
  828. package/dist/schemas/adapter-descriptor.js.map +1 -1
  829. package/dist/schemas/cloud-api.d.ts +99 -0
  830. package/dist/schemas/cloud-api.d.ts.map +1 -0
  831. package/dist/schemas/cloud-api.js +55 -0
  832. package/dist/schemas/cloud-api.js.map +1 -0
  833. package/dist/schemas/cloud-endpoints.d.ts +25 -0
  834. package/dist/schemas/cloud-endpoints.d.ts.map +1 -0
  835. package/dist/schemas/cloud-endpoints.js +38 -0
  836. package/dist/schemas/cloud-endpoints.js.map +1 -0
  837. package/dist/schemas/document-identity.d.ts +40 -0
  838. package/dist/schemas/document-identity.d.ts.map +1 -0
  839. package/dist/schemas/document-identity.js +21 -0
  840. package/dist/schemas/document-identity.js.map +1 -0
  841. package/dist/schemas/document-revision.d.ts +37 -0
  842. package/dist/schemas/document-revision.d.ts.map +1 -0
  843. package/dist/schemas/document-revision.js +14 -0
  844. package/dist/schemas/document-revision.js.map +1 -0
  845. package/dist/schemas/drizzle/config.d.ts +83 -0
  846. package/dist/schemas/drizzle/config.d.ts.map +1 -0
  847. package/dist/schemas/drizzle/config.js +55 -0
  848. package/dist/schemas/drizzle/config.js.map +1 -0
  849. package/dist/schemas/drizzle/connection.d.ts +41 -0
  850. package/dist/schemas/drizzle/connection.d.ts.map +1 -0
  851. package/dist/schemas/drizzle/connection.js +23 -0
  852. package/dist/schemas/drizzle/connection.js.map +1 -0
  853. package/dist/schemas/drizzle/journal-read.d.ts +11 -0
  854. package/dist/schemas/drizzle/journal-read.d.ts.map +1 -0
  855. package/dist/schemas/drizzle/journal-read.js +2 -0
  856. package/dist/schemas/drizzle/journal-read.js.map +1 -0
  857. package/dist/schemas/drizzle/persistence-config.d.ts +39 -0
  858. package/dist/schemas/drizzle/persistence-config.d.ts.map +1 -0
  859. package/dist/schemas/drizzle/persistence-config.js +71 -0
  860. package/dist/schemas/drizzle/persistence-config.js.map +1 -0
  861. package/dist/schemas/drizzle/persistence.d.ts +102 -0
  862. package/dist/schemas/drizzle/persistence.d.ts.map +1 -0
  863. package/dist/schemas/drizzle/persistence.js +28 -0
  864. package/dist/schemas/drizzle/persistence.js.map +1 -0
  865. package/dist/schemas/drizzle/ports.d.ts +39 -0
  866. package/dist/schemas/drizzle/ports.d.ts.map +1 -0
  867. package/dist/schemas/drizzle/ports.js +2 -0
  868. package/dist/schemas/drizzle/ports.js.map +1 -0
  869. package/dist/schemas/drizzle/providers.d.ts +64 -0
  870. package/dist/schemas/drizzle/providers.d.ts.map +1 -0
  871. package/dist/schemas/drizzle/providers.js +19 -0
  872. package/dist/schemas/drizzle/providers.js.map +1 -0
  873. package/dist/schemas/drizzle/raw-sql.d.ts +33 -0
  874. package/dist/schemas/drizzle/raw-sql.d.ts.map +1 -0
  875. package/dist/schemas/drizzle/raw-sql.js +34 -0
  876. package/dist/schemas/drizzle/raw-sql.js.map +1 -0
  877. package/dist/schemas/explorer/capability.d.ts +41 -0
  878. package/dist/schemas/explorer/capability.d.ts.map +1 -0
  879. package/dist/schemas/explorer/capability.js +14 -0
  880. package/dist/schemas/explorer/capability.js.map +1 -0
  881. package/dist/schemas/explorer/overview.d.ts +41 -0
  882. package/dist/schemas/explorer/overview.d.ts.map +1 -0
  883. package/dist/schemas/explorer/overview.js +45 -0
  884. package/dist/schemas/explorer/overview.js.map +1 -0
  885. package/dist/schemas/explorer/refs.d.ts +38 -0
  886. package/dist/schemas/explorer/refs.d.ts.map +1 -0
  887. package/dist/schemas/explorer/refs.js +21 -0
  888. package/dist/schemas/explorer/refs.js.map +1 -0
  889. package/dist/schemas/explorer/rpc.d.ts +211 -0
  890. package/dist/schemas/explorer/rpc.d.ts.map +1 -0
  891. package/dist/schemas/explorer/rpc.js +103 -0
  892. package/dist/schemas/explorer/rpc.js.map +1 -0
  893. package/dist/schemas/explorer/views.d.ts +99 -0
  894. package/dist/schemas/explorer/views.d.ts.map +1 -0
  895. package/dist/schemas/explorer/views.js +84 -0
  896. package/dist/schemas/explorer/views.js.map +1 -0
  897. package/dist/schemas/index.d.ts +16 -8
  898. package/dist/schemas/index.d.ts.map +1 -1
  899. package/dist/schemas/index.js +12 -4
  900. package/dist/schemas/index.js.map +1 -1
  901. package/dist/schemas/localdb/inputs.d.ts +80 -0
  902. package/dist/schemas/localdb/inputs.d.ts.map +1 -0
  903. package/dist/schemas/localdb/inputs.js +99 -0
  904. package/dist/schemas/localdb/inputs.js.map +1 -0
  905. package/dist/schemas/localdb/query.d.ts +28 -0
  906. package/dist/schemas/localdb/query.d.ts.map +1 -0
  907. package/dist/schemas/localdb/query.js +27 -0
  908. package/dist/schemas/localdb/query.js.map +1 -0
  909. package/dist/schemas/manifest-descriptor.d.ts +15 -5
  910. package/dist/schemas/manifest-descriptor.d.ts.map +1 -1
  911. package/dist/schemas/manifest-descriptor.js +2 -2
  912. package/dist/schemas/manifest-descriptor.js.map +1 -1
  913. package/dist/schemas/memory-store.d.ts +8 -0
  914. package/dist/schemas/memory-store.d.ts.map +1 -0
  915. package/dist/schemas/memory-store.js +7 -0
  916. package/dist/schemas/memory-store.js.map +1 -0
  917. package/dist/schemas/migration-format.d.ts +50 -0
  918. package/dist/schemas/migration-format.d.ts.map +1 -0
  919. package/dist/schemas/migration-format.js +17 -0
  920. package/dist/schemas/migration-format.js.map +1 -0
  921. package/dist/schemas/policy/overrides.d.ts +41 -0
  922. package/dist/schemas/policy/overrides.d.ts.map +1 -0
  923. package/dist/schemas/policy/overrides.js +14 -0
  924. package/dist/schemas/policy/overrides.js.map +1 -0
  925. package/dist/schemas/policy/persistence.d.ts +62 -0
  926. package/dist/schemas/policy/persistence.d.ts.map +1 -0
  927. package/dist/schemas/policy/persistence.js +24 -0
  928. package/dist/schemas/policy/persistence.js.map +1 -0
  929. package/dist/schemas/record/atomic.d.ts +41 -0
  930. package/dist/schemas/record/atomic.d.ts.map +1 -0
  931. package/dist/schemas/record/atomic.js +12 -0
  932. package/dist/schemas/record/atomic.js.map +1 -0
  933. package/dist/schemas/record/batch.d.ts +53 -0
  934. package/dist/schemas/record/batch.d.ts.map +1 -0
  935. package/dist/schemas/record/batch.js +36 -0
  936. package/dist/schemas/record/batch.js.map +1 -0
  937. package/dist/schemas/record/columns.d.ts +44 -0
  938. package/dist/schemas/record/columns.d.ts.map +1 -0
  939. package/dist/schemas/record/columns.js +25 -0
  940. package/dist/schemas/record/columns.js.map +1 -0
  941. package/dist/schemas/record/delivery.d.ts +54 -0
  942. package/dist/schemas/record/delivery.d.ts.map +1 -0
  943. package/dist/schemas/record/delivery.js +23 -0
  944. package/dist/schemas/record/delivery.js.map +1 -0
  945. package/dist/schemas/record/descriptor.d.ts +153 -51
  946. package/dist/schemas/record/descriptor.d.ts.map +1 -1
  947. package/dist/schemas/record/descriptor.js +61 -11
  948. package/dist/schemas/record/descriptor.js.map +1 -1
  949. package/dist/schemas/record/index.d.ts +8 -2
  950. package/dist/schemas/record/index.d.ts.map +1 -1
  951. package/dist/schemas/record/index.js +5 -1
  952. package/dist/schemas/record/index.js.map +1 -1
  953. package/dist/schemas/record/query-values.d.ts +62 -0
  954. package/dist/schemas/record/query-values.d.ts.map +1 -0
  955. package/dist/schemas/record/query-values.js +33 -0
  956. package/dist/schemas/record/query-values.js.map +1 -0
  957. package/dist/schemas/record/relation.d.ts +1 -1
  958. package/dist/schemas/record/relation.d.ts.map +1 -1
  959. package/dist/schemas/record/relation.js +8 -4
  960. package/dist/schemas/record/relation.js.map +1 -1
  961. package/dist/schemas/record/revision.d.ts +92 -0
  962. package/dist/schemas/record/revision.d.ts.map +1 -0
  963. package/dist/schemas/record/revision.js +39 -0
  964. package/dist/schemas/record/revision.js.map +1 -0
  965. package/dist/schemas/retention/jobs.d.ts +103 -0
  966. package/dist/schemas/retention/jobs.d.ts.map +1 -0
  967. package/dist/schemas/retention/jobs.js +72 -0
  968. package/dist/schemas/retention/jobs.js.map +1 -0
  969. package/dist/schemas/retention/results.d.ts +153 -0
  970. package/dist/schemas/retention/results.d.ts.map +1 -0
  971. package/dist/schemas/retention/results.js +84 -0
  972. package/dist/schemas/retention/results.js.map +1 -0
  973. package/dist/schemas/schema/descriptor.d.ts +14 -4
  974. package/dist/schemas/schema/descriptor.d.ts.map +1 -1
  975. package/dist/schemas/schema/descriptor.js +3 -3
  976. package/dist/schemas/schema/descriptor.js.map +1 -1
  977. package/dist/schemas/schema/index.d.ts +1 -1
  978. package/dist/schemas/schema/index.d.ts.map +1 -1
  979. package/dist/schemas/schema/index.js +1 -1
  980. package/dist/schemas/schema/index.js.map +1 -1
  981. package/dist/schemas/storage-provider.d.ts +79 -0
  982. package/dist/schemas/storage-provider.d.ts.map +1 -0
  983. package/dist/schemas/storage-provider.js +54 -0
  984. package/dist/schemas/storage-provider.js.map +1 -0
  985. package/dist/schemas/storage-ref.d.ts +39 -0
  986. package/dist/schemas/storage-ref.d.ts.map +1 -0
  987. package/dist/schemas/storage-ref.js +64 -0
  988. package/dist/schemas/storage-ref.js.map +1 -0
  989. package/dist/schemas/sync/command.d.ts +15 -0
  990. package/dist/schemas/sync/command.d.ts.map +1 -0
  991. package/dist/schemas/sync/command.js +10 -0
  992. package/dist/schemas/sync/command.js.map +1 -0
  993. package/dist/schemas/sync/crud.d.ts +26 -0
  994. package/dist/schemas/sync/crud.d.ts.map +1 -0
  995. package/dist/schemas/sync/crud.js +16 -0
  996. package/dist/schemas/sync/crud.js.map +1 -0
  997. package/dist/schemas/sync/document.d.ts +4 -0
  998. package/dist/schemas/sync/document.d.ts.map +1 -0
  999. package/dist/schemas/sync/document.js +4 -0
  1000. package/dist/schemas/sync/document.js.map +1 -0
  1001. package/dist/schemas/sync/local-first.d.ts +26 -0
  1002. package/dist/schemas/sync/local-first.d.ts.map +1 -0
  1003. package/dist/schemas/sync/local-first.js +14 -0
  1004. package/dist/schemas/sync/local-first.js.map +1 -0
  1005. package/dist/schemas/sync/results.d.ts +61 -0
  1006. package/dist/schemas/sync/results.d.ts.map +1 -0
  1007. package/dist/schemas/sync/results.js +47 -0
  1008. package/dist/schemas/sync/results.js.map +1 -0
  1009. package/dist/schemas/sync-bridge-descriptor.d.ts +34 -15
  1010. package/dist/schemas/sync-bridge-descriptor.d.ts.map +1 -1
  1011. package/dist/schemas/sync-bridge-descriptor.js +9 -2
  1012. package/dist/schemas/sync-bridge-descriptor.js.map +1 -1
  1013. package/dist/schemas/sync-memory.d.ts +7 -0
  1014. package/dist/schemas/sync-memory.d.ts.map +1 -0
  1015. package/dist/schemas/sync-memory.js +4 -0
  1016. package/dist/schemas/sync-memory.js.map +1 -0
  1017. package/dist/schemas/tools/views.d.ts +83 -0
  1018. package/dist/schemas/tools/views.d.ts.map +1 -0
  1019. package/dist/schemas/tools/views.js +57 -0
  1020. package/dist/schemas/tools/views.js.map +1 -0
  1021. package/dist/schemas/tools/widgets.d.ts +41 -0
  1022. package/dist/schemas/tools/widgets.d.ts.map +1 -0
  1023. package/dist/schemas/tools/widgets.js +13 -0
  1024. package/dist/schemas/tools/widgets.js.map +1 -0
  1025. package/dist/schemas/transform.d.ts +32 -0
  1026. package/dist/schemas/transform.d.ts.map +1 -0
  1027. package/dist/schemas/transform.js +18 -0
  1028. package/dist/schemas/transform.js.map +1 -0
  1029. package/dist/schemas/zod-schema-value.d.ts +8 -0
  1030. package/dist/schemas/zod-schema-value.d.ts.map +1 -0
  1031. package/dist/schemas/zod-schema-value.js +8 -0
  1032. package/dist/schemas/zod-schema-value.js.map +1 -0
  1033. package/dist/server/manifest-route.d.ts +18 -10
  1034. package/dist/server/manifest-route.d.ts.map +1 -1
  1035. package/dist/server/manifest-route.js +88 -90
  1036. package/dist/server/manifest-route.js.map +1 -1
  1037. package/dist/storage-explorer.consumer.plugin.d.ts +10 -0
  1038. package/dist/storage-explorer.consumer.plugin.d.ts.map +1 -0
  1039. package/dist/storage-explorer.consumer.plugin.js +24 -0
  1040. package/dist/storage-explorer.consumer.plugin.js.map +1 -0
  1041. package/dist/storage-policy.context.descriptor.js +1 -1
  1042. package/dist/storage-policy.context.descriptor.js.map +1 -1
  1043. package/dist/storage-policy.context.server.d.ts +7 -9
  1044. package/dist/storage-policy.context.server.d.ts.map +1 -1
  1045. package/dist/storage-policy.context.server.js +7 -20
  1046. package/dist/storage-policy.context.server.js.map +1 -1
  1047. package/dist/storage.consumer.plugin.d.ts +3 -0
  1048. package/dist/storage.consumer.plugin.d.ts.map +1 -0
  1049. package/dist/storage.consumer.plugin.js +15 -0
  1050. package/dist/storage.consumer.plugin.js.map +1 -0
  1051. package/dist/storage.node.plugin.d.ts +3 -0
  1052. package/dist/storage.node.plugin.d.ts.map +1 -0
  1053. package/dist/storage.node.plugin.js +12 -0
  1054. package/dist/storage.node.plugin.js.map +1 -0
  1055. package/dist/storage.plugin.d.ts +10 -16
  1056. package/dist/storage.plugin.d.ts.map +1 -1
  1057. package/dist/storage.plugin.js +150 -91
  1058. package/dist/storage.plugin.js.map +1 -1
  1059. package/dist/svelte/components/ConnectStorageProviderDialog.svelte +345 -0
  1060. package/dist/svelte/components/ConnectStorageProviderDialog.svelte.d.ts +17 -0
  1061. package/dist/svelte/components/ConnectStorageProviderDialog.svelte.d.ts.map +1 -0
  1062. package/dist/svelte/components/PlatformStorageExplorer.svelte +57 -0
  1063. package/dist/svelte/components/PlatformStorageExplorer.svelte.d.ts +23 -0
  1064. package/dist/svelte/components/PlatformStorageExplorer.svelte.d.ts.map +1 -0
  1065. package/dist/svelte/components/StorageBrowser.svelte +436 -0
  1066. package/dist/svelte/components/StorageBrowser.svelte.d.ts +51 -0
  1067. package/dist/svelte/components/StorageBrowser.svelte.d.ts.map +1 -0
  1068. package/dist/svelte/components/StorageBrowserPage.svelte +71 -0
  1069. package/dist/svelte/components/StorageBrowserPage.svelte.d.ts +23 -0
  1070. package/dist/svelte/components/StorageBrowserPage.svelte.d.ts.map +1 -0
  1071. package/dist/svelte/components/StorageCollectionManager.svelte +193 -0
  1072. package/dist/svelte/components/StorageCollectionManager.svelte.d.ts +14 -0
  1073. package/dist/svelte/components/StorageCollectionManager.svelte.d.ts.map +1 -0
  1074. package/dist/svelte/components/StorageDetailsPane.svelte +160 -0
  1075. package/dist/svelte/components/StorageDetailsPane.svelte.d.ts +11 -0
  1076. package/dist/svelte/components/StorageDetailsPane.svelte.d.ts.map +1 -0
  1077. package/dist/svelte/components/StorageDropzone.svelte +76 -0
  1078. package/dist/svelte/components/StorageDropzone.svelte.d.ts +9 -0
  1079. package/dist/svelte/components/StorageDropzone.svelte.d.ts.map +1 -0
  1080. package/dist/svelte/components/StorageExplorer.svelte +954 -0
  1081. package/dist/svelte/components/StorageExplorer.svelte.d.ts +48 -0
  1082. package/dist/svelte/components/StorageExplorer.svelte.d.ts.map +1 -0
  1083. package/dist/svelte/components/StorageFileBrowser.svelte +201 -0
  1084. package/dist/svelte/components/StorageFileBrowser.svelte.d.ts +18 -0
  1085. package/dist/svelte/components/StorageFileBrowser.svelte.d.ts.map +1 -0
  1086. package/dist/svelte/components/StorageFileCard.svelte +162 -0
  1087. package/dist/svelte/components/StorageFileCard.svelte.d.ts +10 -0
  1088. package/dist/svelte/components/StorageFileCard.svelte.d.ts.map +1 -0
  1089. package/dist/svelte/components/StoragePathBar.svelte +104 -0
  1090. package/dist/svelte/components/StoragePathBar.svelte.d.ts +19 -0
  1091. package/dist/svelte/components/StoragePathBar.svelte.d.ts.map +1 -0
  1092. package/dist/svelte/components/StorageProviderSelect.svelte +163 -0
  1093. package/dist/svelte/components/StorageProviderSelect.svelte.d.ts +20 -0
  1094. package/dist/svelte/components/StorageProviderSelect.svelte.d.ts.map +1 -0
  1095. package/dist/svelte/components/StorageProviderSidebar.svelte +187 -0
  1096. package/dist/svelte/components/StorageProviderSidebar.svelte.d.ts +30 -0
  1097. package/dist/svelte/components/StorageProviderSidebar.svelte.d.ts.map +1 -0
  1098. package/dist/svelte/components/StorageReadinessNotice.svelte +181 -0
  1099. package/dist/svelte/components/StorageReadinessNotice.svelte.d.ts +32 -0
  1100. package/dist/svelte/components/StorageReadinessNotice.svelte.d.ts.map +1 -0
  1101. package/dist/svelte/components/StorageSearchBox.svelte +106 -0
  1102. package/dist/svelte/components/StorageSearchBox.svelte.d.ts +19 -0
  1103. package/dist/svelte/components/StorageSearchBox.svelte.d.ts.map +1 -0
  1104. package/dist/svelte/components/StorageToolbar.svelte +160 -0
  1105. package/dist/svelte/components/StorageToolbar.svelte.d.ts +26 -0
  1106. package/dist/svelte/components/StorageToolbar.svelte.d.ts.map +1 -0
  1107. package/dist/svelte/components/StorageUploadChip.svelte +116 -0
  1108. package/dist/svelte/components/StorageUploadChip.svelte.d.ts +13 -0
  1109. package/dist/svelte/components/StorageUploadChip.svelte.d.ts.map +1 -0
  1110. package/dist/svelte/components/index.d.ts +14 -0
  1111. package/dist/svelte/components/index.d.ts.map +1 -0
  1112. package/dist/svelte/components/index.js +12 -0
  1113. package/dist/svelte/components/storage-media.d.ts +14 -0
  1114. package/dist/svelte/components/storage-media.d.ts.map +1 -0
  1115. package/dist/svelte/components/storage-media.js +13 -0
  1116. package/dist/svelte/index.d.ts +14 -0
  1117. package/dist/svelte/index.d.ts.map +1 -0
  1118. package/dist/svelte/index.js +13 -0
  1119. package/dist/svelte/note-store-failure.d.ts +15 -0
  1120. package/dist/svelte/note-store-failure.d.ts.map +1 -0
  1121. package/dist/svelte/note-store-failure.js +21 -0
  1122. package/dist/svelte/platform-storage-port.d.ts +86 -0
  1123. package/dist/svelte/platform-storage-port.d.ts.map +1 -0
  1124. package/dist/svelte/platform-storage-port.js +71 -0
  1125. package/dist/svelte/storage-browse-runtime.d.ts +65 -0
  1126. package/dist/svelte/storage-browse-runtime.d.ts.map +1 -0
  1127. package/dist/svelte/storage-browse-runtime.js +68 -0
  1128. package/dist/svelte/storage-connection.d.ts +23 -0
  1129. package/dist/svelte/storage-connection.d.ts.map +1 -0
  1130. package/dist/svelte/storage-connection.js +40 -0
  1131. package/dist/svelte/storage-display.d.ts +6 -0
  1132. package/dist/svelte/storage-display.d.ts.map +1 -0
  1133. package/dist/svelte/storage-display.js +58 -0
  1134. package/dist/svelte/storage-explorer-runtime.d.ts +120 -0
  1135. package/dist/svelte/storage-explorer-runtime.d.ts.map +1 -0
  1136. package/dist/svelte/storage-explorer-runtime.js +251 -0
  1137. package/dist/svelte/storage-explorer.load.d.ts +22 -0
  1138. package/dist/svelte/storage-explorer.load.d.ts.map +1 -0
  1139. package/dist/svelte/storage-explorer.load.js +37 -0
  1140. package/dist/svelte/storage-refs-runtime.d.ts +36 -0
  1141. package/dist/svelte/storage-refs-runtime.d.ts.map +1 -0
  1142. package/dist/svelte/storage-refs-runtime.js +47 -0
  1143. package/dist/svelte/storage-runtime.d.ts +30 -0
  1144. package/dist/svelte/storage-runtime.d.ts.map +1 -0
  1145. package/dist/svelte/storage-runtime.js +39 -0
  1146. package/dist/svelte/storage-svelte.plugin.d.ts +40 -0
  1147. package/dist/svelte/storage-svelte.plugin.d.ts.map +1 -0
  1148. package/dist/svelte/storage-svelte.plugin.js +50 -0
  1149. package/dist/svelte/storage-upload-runtime.d.ts +8 -0
  1150. package/dist/svelte/storage-upload-runtime.d.ts.map +1 -0
  1151. package/dist/svelte/storage-upload-runtime.js +12 -0
  1152. package/dist/svelte/stores/index.d.ts +4 -0
  1153. package/dist/svelte/stores/index.d.ts.map +1 -0
  1154. package/dist/svelte/stores/index.js +3 -0
  1155. package/dist/svelte/stores/storage-browse.svelte.d.ts +70 -0
  1156. package/dist/svelte/stores/storage-browse.svelte.d.ts.map +1 -0
  1157. package/dist/svelte/stores/storage-browse.svelte.js +133 -0
  1158. package/dist/svelte/stores/storage-providers.svelte.d.ts +32 -0
  1159. package/dist/svelte/stores/storage-providers.svelte.d.ts.map +1 -0
  1160. package/dist/svelte/stores/storage-providers.svelte.js +73 -0
  1161. package/dist/svelte/stores/storage-refs.svelte.d.ts +57 -0
  1162. package/dist/svelte/stores/storage-refs.svelte.d.ts.map +1 -0
  1163. package/dist/svelte/stores/storage-refs.svelte.js +90 -0
  1164. package/dist/svelte/styles.css +14 -0
  1165. package/dist/svelte/test-assets.d.ts +8 -0
  1166. package/dist/svelte/tool-widgets/StorageBrowseToolCard.svelte +109 -0
  1167. package/dist/svelte/tool-widgets/StorageBrowseToolCard.svelte.d.ts +9 -0
  1168. package/dist/svelte/tool-widgets/StorageBrowseToolCard.svelte.d.ts.map +1 -0
  1169. package/dist/svelte/tool-widgets/StorageCopyToolCard.svelte +87 -0
  1170. package/dist/svelte/tool-widgets/StorageCopyToolCard.svelte.d.ts +9 -0
  1171. package/dist/svelte/tool-widgets/StorageCopyToolCard.svelte.d.ts.map +1 -0
  1172. package/dist/svelte/tool-widgets/StorageSearchToolCard.svelte +94 -0
  1173. package/dist/svelte/tool-widgets/StorageSearchToolCard.svelte.d.ts +9 -0
  1174. package/dist/svelte/tool-widgets/StorageSearchToolCard.svelte.d.ts.map +1 -0
  1175. package/dist/svelte/tool-widgets/format.d.ts +15 -0
  1176. package/dist/svelte/tool-widgets/format.d.ts.map +1 -0
  1177. package/dist/svelte/tool-widgets/format.js +32 -0
  1178. package/dist/svelte/tool-widgets/index.d.ts +2 -0
  1179. package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
  1180. package/dist/svelte/tool-widgets/index.js +12 -0
  1181. package/dist/svelte/tool-widgets/runtime.d.ts +9 -0
  1182. package/dist/svelte/tool-widgets/runtime.d.ts.map +1 -0
  1183. package/dist/svelte/tool-widgets/runtime.js +42 -0
  1184. package/dist/sync/cloud-document.d.ts +24 -0
  1185. package/dist/sync/cloud-document.d.ts.map +1 -0
  1186. package/dist/sync/cloud-document.js +47 -0
  1187. package/dist/sync/cloud-document.js.map +1 -0
  1188. package/dist/sync/cloud-pull.d.ts +9 -3
  1189. package/dist/sync/cloud-pull.d.ts.map +1 -1
  1190. package/dist/sync/cloud-pull.js +85 -86
  1191. package/dist/sync/cloud-pull.js.map +1 -1
  1192. package/dist/sync/cloud-record-crud-config.d.ts +7 -17
  1193. package/dist/sync/cloud-record-crud-config.d.ts.map +1 -1
  1194. package/dist/sync/cloud-record-crud-config.js +17 -9
  1195. package/dist/sync/cloud-record-crud-config.js.map +1 -1
  1196. package/dist/sync/local-first.d.ts +61 -0
  1197. package/dist/sync/local-first.d.ts.map +1 -0
  1198. package/dist/sync/local-first.js +121 -0
  1199. package/dist/sync/local-first.js.map +1 -0
  1200. package/dist/sync/record-sync-bridge.d.ts +35 -3
  1201. package/dist/sync/record-sync-bridge.d.ts.map +1 -1
  1202. package/dist/sync/record-sync-bridge.js +50 -46
  1203. package/dist/sync/record-sync-bridge.js.map +1 -1
  1204. package/dist/sync/resolve-sync-target.d.ts +16 -17
  1205. package/dist/sync/resolve-sync-target.d.ts.map +1 -1
  1206. package/dist/sync/resolve-sync-target.js +18 -43
  1207. package/dist/sync/resolve-sync-target.js.map +1 -1
  1208. package/dist/sync/runtime-sync-state.d.ts +18 -0
  1209. package/dist/sync/runtime-sync-state.d.ts.map +1 -0
  1210. package/dist/sync/runtime-sync-state.js +12 -0
  1211. package/dist/sync/runtime-sync-state.js.map +1 -0
  1212. package/dist/sync/schemas/cloud-pull.d.ts +9 -5
  1213. package/dist/sync/schemas/cloud-pull.d.ts.map +1 -1
  1214. package/dist/sync/schemas/index.d.ts +3 -3
  1215. package/dist/sync/schemas/index.d.ts.map +1 -1
  1216. package/dist/sync/schemas/index.js +3 -3
  1217. package/dist/sync/schemas/index.js.map +1 -1
  1218. package/dist/sync/schemas/sync-helpers.d.ts +4 -2
  1219. package/dist/sync/schemas/sync-helpers.d.ts.map +1 -1
  1220. package/dist/sync/schemas/sync-state.d.ts +9 -5
  1221. package/dist/sync/schemas/sync-state.d.ts.map +1 -1
  1222. package/dist/sync/schemas/sync-state.js +4 -1
  1223. package/dist/sync/schemas/sync-state.js.map +1 -1
  1224. package/dist/sync/sync-bridge.d.ts +39 -31
  1225. package/dist/sync/sync-bridge.d.ts.map +1 -1
  1226. package/dist/sync/sync-bridge.js +427 -196
  1227. package/dist/sync/sync-bridge.js.map +1 -1
  1228. package/dist/sync/sync-manifest.d.ts +7 -19
  1229. package/dist/sync/sync-manifest.d.ts.map +1 -1
  1230. package/dist/sync/sync-manifest.js +125 -84
  1231. package/dist/sync/sync-manifest.js.map +1 -1
  1232. package/dist/sync/sync-state.browser.d.ts +37 -0
  1233. package/dist/sync/sync-state.browser.d.ts.map +1 -0
  1234. package/dist/sync/sync-state.browser.js +136 -0
  1235. package/dist/sync/sync-state.browser.js.map +1 -0
  1236. package/dist/sync/sync-state.client.d.ts +73 -0
  1237. package/dist/sync/sync-state.client.d.ts.map +1 -0
  1238. package/dist/sync/sync-state.client.js +78 -0
  1239. package/dist/sync/sync-state.client.js.map +1 -0
  1240. package/dist/sync/sync-state.consumer.d.ts +44 -17
  1241. package/dist/sync/sync-state.consumer.d.ts.map +1 -1
  1242. package/dist/sync/sync-state.consumer.js +161 -87
  1243. package/dist/sync/sync-state.consumer.js.map +1 -1
  1244. package/dist/sync/sync-state.core.d.ts +40 -0
  1245. package/dist/sync/sync-state.core.d.ts.map +1 -0
  1246. package/dist/sync/sync-state.core.js +130 -0
  1247. package/dist/sync/sync-state.core.js.map +1 -0
  1248. package/dist/sync/sync-state.descriptor.d.ts +39 -0
  1249. package/dist/sync/sync-state.descriptor.d.ts.map +1 -0
  1250. package/dist/sync/sync-state.descriptor.js +23 -0
  1251. package/dist/sync/sync-state.descriptor.js.map +1 -0
  1252. package/dist/testing.d.ts +31 -0
  1253. package/dist/testing.d.ts.map +1 -0
  1254. package/dist/testing.js +82 -0
  1255. package/dist/testing.js.map +1 -0
  1256. package/dist/tools/descriptors.d.ts +312 -0
  1257. package/dist/tools/descriptors.d.ts.map +1 -0
  1258. package/dist/tools/descriptors.js +98 -0
  1259. package/dist/tools/descriptors.js.map +1 -0
  1260. package/dist/tools/impl.d.ts +72 -0
  1261. package/dist/tools/impl.d.ts.map +1 -0
  1262. package/dist/tools/impl.js +572 -0
  1263. package/dist/tools/impl.js.map +1 -0
  1264. package/dist/tools/index.d.ts +3 -0
  1265. package/dist/tools/index.d.ts.map +1 -0
  1266. package/dist/tools/index.js +3 -0
  1267. package/dist/tools/index.js.map +1 -0
  1268. package/dist/tools/schemas.d.ts +136 -0
  1269. package/dist/tools/schemas.d.ts.map +1 -0
  1270. package/dist/tools/schemas.js +113 -0
  1271. package/dist/tools/schemas.js.map +1 -0
  1272. package/dist/tools/widget-views.d.ts +9 -0
  1273. package/dist/tools/widget-views.d.ts.map +1 -0
  1274. package/dist/tools/widget-views.js +119 -0
  1275. package/dist/tools/widget-views.js.map +1 -0
  1276. package/dist/transform/index.d.ts +7 -18
  1277. package/dist/transform/index.d.ts.map +1 -1
  1278. package/dist/transform/index.js +16 -14
  1279. package/dist/transform/index.js.map +1 -1
  1280. package/dist/transform/transform-descriptor.d.ts +1 -21
  1281. package/dist/transform/transform-descriptor.d.ts.map +1 -1
  1282. package/dist/transform/transform-descriptor.js +1 -29
  1283. package/dist/transform/transform-descriptor.js.map +1 -1
  1284. package/dist/tui/plugin.d.ts +26 -0
  1285. package/dist/tui/plugin.d.ts.map +1 -0
  1286. package/dist/tui/plugin.js +107 -0
  1287. package/dist/tui/plugin.js.map +1 -0
  1288. package/dist/tui/storage-explorer.descriptor.d.ts +25 -4
  1289. package/dist/tui/storage-explorer.descriptor.d.ts.map +1 -1
  1290. package/dist/tui/storage-explorer.descriptor.js +7 -3
  1291. package/dist/tui/storage-explorer.descriptor.js.map +1 -1
  1292. package/dist/tui/storage-explorer.impl.consumer.d.ts +23 -6
  1293. package/dist/tui/storage-explorer.impl.consumer.d.ts.map +1 -1
  1294. package/dist/tui/storage-explorer.impl.consumer.js +231 -8
  1295. package/dist/tui/storage-explorer.impl.consumer.js.map +1 -1
  1296. package/dist/tui/storage-open.descriptor.d.ts +16 -3
  1297. package/dist/tui/storage-open.descriptor.d.ts.map +1 -1
  1298. package/dist/tui/storage-open.descriptor.js +5 -1
  1299. package/dist/tui/storage-open.descriptor.js.map +1 -1
  1300. package/dist/tui/storage-open.impl.consumer.d.ts +6 -1
  1301. package/dist/tui/storage-open.impl.consumer.d.ts.map +1 -1
  1302. package/dist/tui/storage-open.impl.consumer.js.map +1 -1
  1303. package/dist/tui/storage-signed-out-ui.d.ts +21 -0
  1304. package/dist/tui/storage-signed-out-ui.d.ts.map +1 -0
  1305. package/dist/tui/storage-signed-out-ui.js +34 -0
  1306. package/dist/tui/storage-signed-out-ui.js.map +1 -0
  1307. package/dist/tui/storage.tui-state.descriptor.d.ts +61 -0
  1308. package/dist/tui/storage.tui-state.descriptor.d.ts.map +1 -0
  1309. package/dist/tui/storage.tui-state.descriptor.js +52 -0
  1310. package/dist/tui/storage.tui-state.descriptor.js.map +1 -0
  1311. package/dist/tui/storage.tui-state.impl.consumer.d.ts +29 -0
  1312. package/dist/tui/storage.tui-state.impl.consumer.d.ts.map +1 -0
  1313. package/dist/tui/storage.tui-state.impl.consumer.js +207 -0
  1314. package/dist/tui/storage.tui-state.impl.consumer.js.map +1 -0
  1315. package/dist/tui/storage.tui-state.key.d.ts +27 -0
  1316. package/dist/tui/storage.tui-state.key.d.ts.map +1 -0
  1317. package/dist/tui/storage.tui-state.key.js +12 -0
  1318. package/dist/tui/storage.tui-state.key.js.map +1 -0
  1319. package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.d.ts +14 -0
  1320. package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.d.ts.map +1 -0
  1321. package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.js +28 -0
  1322. package/dist/tui/tool-widgets/StorageBrowseToolWidget.impl.consumer.js.map +1 -0
  1323. package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.d.ts +14 -0
  1324. package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.d.ts.map +1 -0
  1325. package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.js +21 -0
  1326. package/dist/tui/tool-widgets/StorageCopyToolWidget.impl.consumer.js.map +1 -0
  1327. package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.d.ts +14 -0
  1328. package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.d.ts.map +1 -0
  1329. package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.js +22 -0
  1330. package/dist/tui/tool-widgets/StorageSearchToolWidget.impl.consumer.js.map +1 -0
  1331. package/dist/tui/tool-widgets/format.d.ts +19 -0
  1332. package/dist/tui/tool-widgets/format.d.ts.map +1 -0
  1333. package/dist/tui/tool-widgets/format.js +53 -0
  1334. package/dist/tui/tool-widgets/format.js.map +1 -0
  1335. package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.d.ts +14 -0
  1336. package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.d.ts.map +1 -0
  1337. package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.js +14 -0
  1338. package/dist/tui/tool-widgets/storage.browse.tool-widget.descriptor.js.map +1 -0
  1339. package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.d.ts +14 -0
  1340. package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.d.ts.map +1 -0
  1341. package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.js +14 -0
  1342. package/dist/tui/tool-widgets/storage.copy.tool-widget.descriptor.js.map +1 -0
  1343. package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.d.ts +14 -0
  1344. package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.d.ts.map +1 -0
  1345. package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.js +14 -0
  1346. package/dist/tui/tool-widgets/storage.search.tool-widget.descriptor.js.map +1 -0
  1347. package/dist/utils/caller-bearer.d.ts +13 -0
  1348. package/dist/utils/caller-bearer.d.ts.map +1 -0
  1349. package/dist/utils/caller-bearer.js +17 -0
  1350. package/dist/utils/caller-bearer.js.map +1 -0
  1351. package/dist/utils/error-context.d.ts +9 -1
  1352. package/dist/utils/error-context.d.ts.map +1 -1
  1353. package/dist/utils/error-context.js +7 -14
  1354. package/dist/utils/error-context.js.map +1 -1
  1355. package/dist/utils/failure-of.d.ts +20 -0
  1356. package/dist/utils/failure-of.d.ts.map +1 -0
  1357. package/dist/utils/failure-of.js +35 -0
  1358. package/dist/utils/failure-of.js.map +1 -0
  1359. package/dist/workers-port.d.ts +37 -0
  1360. package/dist/workers-port.d.ts.map +1 -0
  1361. package/dist/workers-port.js +60 -0
  1362. package/dist/workers-port.js.map +1 -0
  1363. package/package.json +641 -144
  1364. package/dist/adapters/index.d.ts +0 -14
  1365. package/dist/adapters/index.d.ts.map +0 -1
  1366. package/dist/adapters/index.js +0 -15
  1367. package/dist/adapters/index.js.map +0 -1
  1368. package/dist/cli/context.consumer.d.ts +0 -26
  1369. package/dist/cli/context.consumer.d.ts.map +0 -1
  1370. package/dist/cli/context.consumer.js +0 -164
  1371. package/dist/cli/context.consumer.js.map +0 -1
  1372. package/dist/docs/adapters.docs.descriptor.d.ts +0 -4
  1373. package/dist/docs/adapters.docs.descriptor.d.ts.map +0 -1
  1374. package/dist/docs/adapters.docs.descriptor.js +0 -223
  1375. package/dist/docs/adapters.docs.descriptor.js.map +0 -1
  1376. package/dist/docs/manifests.docs.descriptor.d.ts +0 -4
  1377. package/dist/docs/manifests.docs.descriptor.d.ts.map +0 -1
  1378. package/dist/docs/manifests.docs.descriptor.js.map +0 -1
  1379. package/src/adapters/index.ts +0 -13
  1380. package/src/bridge/index.ts +0 -2
  1381. package/src/bridge/storage-kind-bridge.ts +0 -131
  1382. package/src/bridge/types.ts +0 -46
  1383. package/src/cli/commands/list/storage.list.cli-command.descriptor.ts +0 -20
  1384. package/src/cli/commands/list/storage.list.cli-command.impl.ts +0 -72
  1385. package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.ts +0 -28
  1386. package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.ts +0 -171
  1387. package/src/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.ts +0 -28
  1388. package/src/cli/commands/sync/push/storage.sync.push.cli-command.impl.ts +0 -213
  1389. package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.ts +0 -22
  1390. package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.ts +0 -129
  1391. package/src/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.ts +0 -17
  1392. package/src/cli/commands/sync/status/storage.sync.status.cli-command.impl.ts +0 -192
  1393. package/src/cli/context.consumer.ts +0 -195
  1394. package/src/cli/storage.cli-group.descriptor.ts +0 -13
  1395. package/src/cli/storage.sync.cli-group.descriptor.ts +0 -14
  1396. package/src/cli/types.ts +0 -25
  1397. package/src/client/index.ts +0 -10
  1398. package/src/client/list-browsable-adapters.ts +0 -42
  1399. package/src/daemon/commands/sync.ts +0 -225
  1400. package/src/docs/adapters.docs.descriptor.ts +0 -225
  1401. package/src/docs/manifests.docs.descriptor.ts +0 -318
  1402. package/src/docs/records.docs.descriptor.ts +0 -271
  1403. package/src/docs/sync.docs.descriptor.ts +0 -281
  1404. package/src/index.ts +0 -109
  1405. package/src/interfaces/adapter.ts +0 -451
  1406. package/src/interfaces/document-store.ts +0 -74
  1407. package/src/interfaces/index.ts +0 -117
  1408. package/src/interfaces/key-value.ts +0 -112
  1409. package/src/interfaces/query-builder.ts +0 -31
  1410. package/src/interfaces/record/index.ts +0 -58
  1411. package/src/interfaces/record/interface.ts +0 -723
  1412. package/src/interfaces/repository.ts +0 -300
  1413. package/src/interfaces/schema/index.ts +0 -37
  1414. package/src/interfaces/schema/schema-interface.ts +0 -586
  1415. package/src/interfaces/schema/table-interface.ts +0 -314
  1416. package/src/interfaces/storage-consumer-fs.ts +0 -66
  1417. package/src/manifest/base.ts +0 -594
  1418. package/src/manifest/cloud-sync.consumer.ts +0 -120
  1419. package/src/manifest/index.ts +0 -7
  1420. package/src/manifest/source-policy.ts +0 -74
  1421. package/src/paths.ts +0 -171
  1422. package/src/policy/context.ts +0 -30
  1423. package/src/policy/index.ts +0 -20
  1424. package/src/policy/overrides.ts +0 -46
  1425. package/src/policy/persistence.ts +0 -117
  1426. package/src/policy/types.ts +0 -28
  1427. package/src/record/base.ts +0 -1872
  1428. package/src/record/events.ts +0 -56
  1429. package/src/record/extensions.ts +0 -308
  1430. package/src/record/index.ts +0 -7
  1431. package/src/resolver/storage-backed-resolver.ts +0 -255
  1432. package/src/schemas/adapter-descriptor.ts +0 -128
  1433. package/src/schemas/index.ts +0 -104
  1434. package/src/schemas/manifest-descriptor.ts +0 -143
  1435. package/src/schemas/record/descriptor.ts +0 -621
  1436. package/src/schemas/record/index.ts +0 -60
  1437. package/src/schemas/record/relation.ts +0 -49
  1438. package/src/schemas/schema/descriptor.ts +0 -278
  1439. package/src/schemas/schema/index.ts +0 -14
  1440. package/src/schemas/sync-bridge-descriptor.ts +0 -143
  1441. package/src/server/manifest-route.ts +0 -319
  1442. package/src/storage-policy.context.descriptor.ts +0 -17
  1443. package/src/storage-policy.context.server.ts +0 -34
  1444. package/src/storage.plugin.ts +0 -264
  1445. package/src/sync/cloud-pull.ts +0 -202
  1446. package/src/sync/cloud-record-crud-config.ts +0 -41
  1447. package/src/sync/record-sync-bridge.ts +0 -183
  1448. package/src/sync/resolve-sync-target.ts +0 -57
  1449. package/src/sync/schemas/cloud-pull.ts +0 -26
  1450. package/src/sync/schemas/index.ts +0 -18
  1451. package/src/sync/schemas/sync-helpers.ts +0 -18
  1452. package/src/sync/schemas/sync-state.ts +0 -41
  1453. package/src/sync/sync-bridge.ts +0 -763
  1454. package/src/sync/sync-manifest.ts +0 -212
  1455. package/src/sync/sync-state.consumer.ts +0 -144
  1456. package/src/transform/index.ts +0 -130
  1457. package/src/transform/transform-descriptor.ts +0 -53
  1458. package/src/tui/storage-explorer.descriptor.ts +0 -32
  1459. package/src/tui/storage-explorer.impl.consumer.ts +0 -14
  1460. package/src/tui/storage-open.descriptor.ts +0 -31
  1461. package/src/tui/storage-open.impl.consumer.ts +0 -14
  1462. package/src/utils/error-context.ts +0 -19
@@ -0,0 +1,1163 @@
1
+ import { CapabilityError, CaughtFailureSchema, createRuntimeImplementation, settle, valueFreeFailure } from '@vibesdotdev/kernel';
2
+ import { and, Column, asc, count as countRows, desc, eq, getTableColumns, getTableName, gt, gte, ilike, inArray, isNotNull, isNull, is, like, lt, lte, ne, notInArray, sql, Table } from 'drizzle-orm';
3
+ import * as z from 'zod/v4';
4
+ import { applySetAdditions, assertArrayField, assertArrayMembers, unsupportedArrayOperation, updatePatch } from "../../record/array-fields.js";
5
+ import { RecordFilterOperatorSchema } from "../../schemas/record/query-values.js";
6
+ import { RECORD_REVISION_COLUMN, RecordRevisionMetadataSchema, RecordRevisionQuerySchema } from "../../schemas/record/revision.js";
7
+ import { OptimisticLockError } from "../../record/base.js";
8
+ import { loadRecordRelations } from "../../record/relations.js";
9
+ import { resolveStorageTransform } from '@vibesdotdev/storage/transform';
10
+ import { DrizzleAdapterConfigSchema, DrizzleDialectSchema } from "./contracts.js";
11
+ import { SQLITE_DIALECTS, recordTable } from "./record-table.js";
12
+ import { assertRecordRevisionSchema, recordColumns, timestampColumn, softDeleteColumn, ZodNodeSchema } from "../../record/columns.js";
13
+ import { readStoredLayer, validateForPersist } from "../validate-for-persist.js";
14
+ import { parseAdapterInput } from "../parse-adapter-input.js";
15
+ import { getLogger } from '@vibesdotdev/logging';
16
+ /** A row of a host table, or a record on its way to one: column keys to values. */
17
+ const RowSchema = z.record(z.string(), z.unknown());
18
+ const RowsSchema = z.array(RowSchema);
19
+ /** What `select({ count: count() })` answers. */
20
+ const CountRowsSchema = z.array(z.object({ count: z.coerce.number() }));
21
+ const HostDatabaseSchema = z.object({
22
+ select: z.instanceof(Function),
23
+ insert: z.instanceof(Function),
24
+ update: z.instanceof(Function),
25
+ delete: z.instanceof(Function),
26
+ transaction: z.instanceof(Function),
27
+ _: z.object({
28
+ fullSchema: z.record(z.string(), z.unknown()),
29
+ tableNamesMap: z.record(z.string(), z.string())
30
+ })
31
+ });
32
+ /** Whether the host handed a Drizzle database: its query builders and its schema map are present. */
33
+ function isHostDatabase(database) {
34
+ return HostDatabaseSchema.safeParse(database).success;
35
+ }
36
+ function isText(value) {
37
+ return typeof value === 'string';
38
+ }
39
+ /** Whether a filter value is an operator map (`{ gt: 1 }`) rather than a scalar, array or Date to match. */
40
+ function isComparison(value) {
41
+ return typeof value === 'object' && value !== null && !Array.isArray(value) && !(value instanceof Date);
42
+ }
43
+ /** The owner's Drizzle database, refused typed when the host hands anything else. */
44
+ function hostDatabase(host) {
45
+ const database = host.getDatabase();
46
+ if (!isHostDatabase(database)) {
47
+ throw new CapabilityError('The storage/drizzle-db host did not return a Drizzle database.', 'UNAVAILABLE', {
48
+ reason: 'storage-drizzle-database-invalid',
49
+ retryable: false
50
+ });
51
+ }
52
+ return database;
53
+ }
54
+ /** The host schema's table of that name (by schema key or SQL name), if the host declares one. */
55
+ function hostTable(database, tableName) {
56
+ const schema = database._.fullSchema;
57
+ const direct = schema[tableName];
58
+ if (is(direct, Table))
59
+ return direct;
60
+ for (const [schemaKey, entry] of Object.entries(schema)) {
61
+ if (!is(entry, Table))
62
+ continue;
63
+ if (database._.tableNamesMap[schemaKey] === tableName || getTableName(entry) === tableName)
64
+ return entry;
65
+ }
66
+ return undefined;
67
+ }
68
+ function resolveTable(database, tableName) {
69
+ const table = hostTable(database, tableName);
70
+ if (table)
71
+ return table;
72
+ throw new CapabilityError('storage.drizzle could not resolve the table from the host database schema.', 'UNAVAILABLE', {
73
+ reason: 'storage-drizzle-table-unresolved',
74
+ retryable: false,
75
+ details: { tableName }
76
+ });
77
+ }
78
+ /** The table's own column for a field key, never an inherited property. */
79
+ function columnOf(table, field) {
80
+ const columns = getTableColumns(table);
81
+ return Object.hasOwn(columns, field) ? columns[field] : undefined;
82
+ }
83
+ function unconfigured() {
84
+ return new CapabilityError('storage.drizzle must be configured before use.', 'UNAVAILABLE', {
85
+ reason: 'storage-drizzle-unconfigured',
86
+ retryable: false
87
+ });
88
+ }
89
+ /** The manifest fields a document store reads; the rest of the manifest is not the adapter's. */
90
+ const DocumentManifestSchema = z.object({
91
+ id: z.string().optional(),
92
+ idField: z.string().optional(),
93
+ collectionField: z.string().optional(),
94
+ adapterConfig: z.record(z.string(), z.unknown()).optional()
95
+ });
96
+ /** The adapter keys a manifest's `adapterConfig` entry may set for a document store. */
97
+ const DocumentAdapterHintsSchema = z.object({
98
+ tableName: z.string().optional(),
99
+ transform: z.union([z.string(), z.object({ from: z.string().optional(), to: z.string().optional() })]).optional()
100
+ });
101
+ const manifestInvalid = {
102
+ message: 'storage.drizzle cannot read the manifest it was handed.',
103
+ code: 'INVALID_INPUT',
104
+ reason: 'storage-drizzle-manifest-invalid'
105
+ };
106
+ const CollectionHolderSchema = z.record(z.string(), z.unknown());
107
+ /** The items of a manifest document: its array (or object values), read under the collection field when it has one. */
108
+ function collectionItems(document, collectionField) {
109
+ const holder = collectionField === undefined ? undefined : CollectionHolderSchema.safeParse(document);
110
+ const collection = collectionField === undefined ? document : holder?.success ? holder.data[collectionField] : undefined;
111
+ if (Array.isArray(collection))
112
+ return collection;
113
+ const entries = CollectionHolderSchema.safeParse(collection);
114
+ return entries.success ? Object.values(entries.data) : [];
115
+ }
116
+ const DEFAULT_DRIZZLE_CAPABILITIES = {
117
+ protocols: ['document', 'record'],
118
+ capabilities: ['read', 'write'],
119
+ requiresPairSchema: false,
120
+ supportsTransactions: true,
121
+ supportsTTL: false,
122
+ supportsFTS: false,
123
+ persistent: true,
124
+ supportsSubscription: false,
125
+ supportsHierarchy: false,
126
+ supportsComputedFields: true,
127
+ supportsSideEffects: true,
128
+ supportsRawQueries: false,
129
+ supportsConditionalWrites: true
130
+ };
131
+ class DrizzleStorageAdapter {
132
+ databaseHost;
133
+ runtime;
134
+ _id = 'storage.drizzle.libsql';
135
+ _config = null;
136
+ capabilities;
137
+ constructor(databaseHost, runtime, capabilities) {
138
+ this.databaseHost = databaseHost;
139
+ this.runtime = runtime;
140
+ this.capabilities = {
141
+ ...DEFAULT_DRIZZLE_CAPABILITIES,
142
+ ...capabilities,
143
+ protocols: capabilities?.protocols
144
+ ? [...capabilities.protocols]
145
+ : [...DEFAULT_DRIZZLE_CAPABILITIES.protocols],
146
+ capabilities: capabilities?.capabilities
147
+ ? [...capabilities.capabilities]
148
+ : [...(DEFAULT_DRIZZLE_CAPABILITIES.capabilities ?? [])]
149
+ };
150
+ }
151
+ get id() {
152
+ return this._id;
153
+ }
154
+ setId(id) {
155
+ this._id = id;
156
+ return this;
157
+ }
158
+ configure(config) {
159
+ this._config = parseAdapterInput(DrizzleAdapterConfigSchema, config, { message: 'The Drizzle configuration is invalid.', code: 'INVALID_INPUT', reason: 'storage-drizzle-config-invalid' });
160
+ }
161
+ isConfigured() {
162
+ return this._config !== null;
163
+ }
164
+ documentStore(namespace, schema, manifestValue) {
165
+ if (!this._config)
166
+ throw unconfigured();
167
+ const configured = this._config;
168
+ const manifest = parseAdapterInput(DocumentManifestSchema.optional(), manifestValue, manifestInvalid);
169
+ const hints = parseAdapterInput(DocumentAdapterHintsSchema, manifest?.adapterConfig?.[this.id] ?? manifest?.adapterConfig?.['storage.drizzle'] ?? {}, manifestInvalid);
170
+ const tableName = hints.tableName ?? configured.tableName ?? namespace;
171
+ const idField = manifest?.idField ?? 'id';
172
+ const collectionField = manifest?.collectionField;
173
+ const transformReference = hints.transform ?? configured.transform;
174
+ const transformId = transformReference === undefined
175
+ ? manifest?.id
176
+ : isText(transformReference)
177
+ ? transformReference
178
+ : (transformReference.from ?? manifest?.id);
179
+ const databaseHost = this.databaseHost;
180
+ const runtime = this.runtime;
181
+ async function context() {
182
+ const database = hostDatabase(databaseHost);
183
+ const table = resolveTable(database, tableName);
184
+ const transform = transformId ? await resolveStorageTransform(runtime, transformId) : null;
185
+ return { database, table, transform };
186
+ }
187
+ /** The stored rows as one document, before any schema default is applied. */
188
+ async function readStored() {
189
+ const { database, table, transform } = await context();
190
+ const rows = RowsSchema.parse(await database.select().from(table));
191
+ if (rows.length === 0)
192
+ return null;
193
+ const values = rows.map((row) => transform
194
+ ? parseAdapterInput(RowSchema, transform.fromRow(row), {
195
+ message: 'The storage transform did not map a row to a record.',
196
+ code: 'INTERNAL',
197
+ reason: 'storage-drizzle-transform-output-invalid',
198
+ details: { namespace, transformId: transformId ?? null }
199
+ })
200
+ : row);
201
+ return collectionField ? { [collectionField]: values } : values;
202
+ }
203
+ async function load() {
204
+ const document = await readStored();
205
+ return document === null ? null : schema.parse(document);
206
+ }
207
+ async function loadStored() {
208
+ const document = await readStored();
209
+ return document === null ? null : readStoredLayer(schema, document);
210
+ }
211
+ async function save(data) {
212
+ // Persist the caller's validated input, never the parse output (defaults are read-time only).
213
+ const validated = validateForPersist(schema, data);
214
+ const { database, table, transform } = await context();
215
+ const idColumn = columnOf(table, idField);
216
+ if (!idColumn) {
217
+ throw new CapabilityError('storage.drizzle cannot reconcile a document whose table has no id column.', 'INVALID_INPUT', {
218
+ reason: 'storage-drizzle-id-column-missing',
219
+ retryable: false,
220
+ details: { tableName, idField }
221
+ });
222
+ }
223
+ const rows = collectionItems(validated, collectionField).map((value) => {
224
+ const item = parseAdapterInput(RowSchema, value, {
225
+ message: 'storage.drizzle documents hold records only.',
226
+ code: 'INVALID_INPUT',
227
+ reason: 'storage-drizzle-document-item-invalid',
228
+ details: { namespace }
229
+ });
230
+ return transform?.toRow ? transform.toRow(item) : item;
231
+ });
232
+ // Every item is read before the first destructive statement: a bad item leaves the table as it was.
233
+ const ids = rows.map((row) => row[idField]);
234
+ const stringIds = ids.filter(isText);
235
+ if (stringIds.length !== ids.length) {
236
+ throw new CapabilityError('storage.drizzle document items need a string id.', 'INVALID_INPUT', {
237
+ reason: 'storage-drizzle-document-item-id-invalid',
238
+ retryable: false,
239
+ details: { namespace, idField }
240
+ });
241
+ }
242
+ if (stringIds.length === 0)
243
+ await database.delete(table);
244
+ else
245
+ await database.delete(table).where(notInArray(idColumn, stringIds));
246
+ for (const row of rows) {
247
+ const set = Object.fromEntries(Object.entries(row).filter(([key]) => key !== idField));
248
+ await database.insert(table).values(row).onConflictDoUpdate({ target: idColumn, set });
249
+ }
250
+ }
251
+ return {
252
+ load,
253
+ loadStored,
254
+ save,
255
+ async update(transform) {
256
+ // Persist the transform's validated result; hand the caller the parsed value.
257
+ const next = validateForPersist(schema, await transform(await load()));
258
+ await save(next);
259
+ return schema.parse(next);
260
+ },
261
+ async exists() {
262
+ const { database, table } = await context();
263
+ const result = CountRowsSchema.parse(await database.select({ count: countRows() }).from(table));
264
+ return (result[0]?.count ?? 0) > 0;
265
+ },
266
+ async delete() {
267
+ const { database, table } = await context();
268
+ await database.delete(table);
269
+ },
270
+ getPath: () => `drizzle://${tableName}`
271
+ };
272
+ }
273
+ keyValueStore(namespace, _keySchema, _valueSchema) {
274
+ if (!this._config)
275
+ throw unconfigured();
276
+ throw new CapabilityError('storage.drizzle has no key-value store. Use app-owned Drizzle tables or the json/localdb adapters for key-value storage.', 'UNAVAILABLE', { reason: 'storage-drizzle-key-value-unsupported', retryable: false, details: { namespace } });
277
+ }
278
+ repository(_tableName, _schema, _options) {
279
+ throw new CapabilityError('storage.drizzle has no repository. Use @vibesdotdev/storage/adapters/drizzle/libsql for direct Drizzle connections and composeDrizzleSchemaExtensions() for schema composition.', 'UNAVAILABLE', { reason: 'storage-drizzle-repository-unsupported', retryable: false });
280
+ }
281
+ record(descriptor) {
282
+ const hostDialect = this.databaseHost.dialect;
283
+ const parsed = DrizzleDialectSchema.optional().safeParse(hostDialect === undefined ? this._config?.dialect : hostDialect);
284
+ if (!parsed.success) {
285
+ throw new CapabilityError('storage.drizzle requires a valid explicit SQL dialect declaration.', 'INVALID_INPUT', {
286
+ reason: 'storage-drizzle-dialect-invalid', retryable: false
287
+ });
288
+ }
289
+ return new DrizzleStorageRecord(this.id, this.databaseHost, descriptor, this.runtime, parsed.data, this.capabilities.supportsTransactions, this.capabilities.supportsConditionalWrites ?? true);
290
+ }
291
+ async ensureReady() {
292
+ if (!this._config)
293
+ throw unconfigured();
294
+ }
295
+ /** The host's database; a host that cannot hand one is refused typed (the interface's "throws if not initialized"). */
296
+ getDatabaseConnection() {
297
+ try {
298
+ return this.databaseHost.getDatabase();
299
+ }
300
+ catch (error) {
301
+ throw new CapabilityError('The storage/drizzle-db host has no database to hand.', 'UNAVAILABLE', {
302
+ reason: 'storage-drizzle-database-unavailable',
303
+ retryable: false,
304
+ cause: error
305
+ });
306
+ }
307
+ }
308
+ async initialize() {
309
+ if (!this._config)
310
+ throw unconfigured();
311
+ }
312
+ async close() { }
313
+ async healthCheck() {
314
+ return {
315
+ healthy: true,
316
+ details: {
317
+ note: 'storage.drizzle resolves app-owned tables through the runtime-local storage/drizzle-db host context.'
318
+ }
319
+ };
320
+ }
321
+ }
322
+ function createDrizzleAdapter(id, databaseHost, runtime, capabilities) {
323
+ const adapter = new DrizzleStorageAdapter(databaseHost, runtime, capabilities);
324
+ adapter.setId(id);
325
+ return createRuntimeImplementation({
326
+ id,
327
+ kind: 'storage/adapter',
328
+ implementation: adapter
329
+ });
330
+ }
331
+ export { createDrizzleAdapter };
332
+ /** Filters a record reads: field names to a value to match or an operator map. */
333
+ const FilterSchema = z.record(z.string(), z.unknown());
334
+ /** The query options `list` reads. */
335
+ const ListOptionsSchema = z.object({
336
+ where: z.unknown().optional(),
337
+ orderBy: z
338
+ .union([
339
+ z.array(z.object({ field: z.string(), direction: z.enum(['asc', 'desc']) })),
340
+ z.record(z.string(), z.enum(['asc', 'desc']).optional())
341
+ ])
342
+ .optional(),
343
+ limit: z.number().int().nonnegative().optional(),
344
+ offset: z.number().int().nonnegative().optional()
345
+ });
346
+ const RANGE_OPERATORS = ['eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'in', 'notIn', 'between'];
347
+ const TEXT_OPERATORS = ['like', 'ilike', 'contains', 'startsWith', 'endsWith'];
348
+ /** The object field schemas of a record schema, unwrapping outer refinements or pipes. */
349
+ function schemaFieldsOf(schema) {
350
+ let current = schema;
351
+ for (let depth = 0; depth < 8 && current; depth++) {
352
+ const parsed = ZodNodeSchema.safeParse(current._zod);
353
+ if (!parsed.success)
354
+ break;
355
+ if (parsed.data.def.type === 'object' && parsed.data.def.shape) {
356
+ return parsed.data.def.shape;
357
+ }
358
+ current = parsed.data.def.innerType ?? parsed.data.def.in;
359
+ }
360
+ return {};
361
+ }
362
+ class DrizzleStorageRecord {
363
+ adapterId;
364
+ databaseHost;
365
+ descriptor;
366
+ runtime;
367
+ dialect;
368
+ supportsTransactions;
369
+ tableName;
370
+ primaryKey;
371
+ schema;
372
+ relations;
373
+ supportsConditionalWrites;
374
+ get revisions() {
375
+ if (!this.descriptor.versioning)
376
+ return undefined;
377
+ return {
378
+ metadata: id => this.revisionMetadata(id),
379
+ list: options => this.revisionList(options),
380
+ readAtRevision: (id, revision) => this.readAtRevision(id, revision)
381
+ };
382
+ }
383
+ revisionColumn(table) {
384
+ const column = columnOf(table, RECORD_REVISION_COLUMN);
385
+ if (!column)
386
+ throw new CapabilityError('The record table needs its Storage revision migration.', 'UNAVAILABLE', {
387
+ reason: 'record-revision-column-missing', retryable: false, details: { recordKind: this.descriptor.id }
388
+ });
389
+ return column;
390
+ }
391
+ revisionLivePredicate(table) {
392
+ const deleted = softDeleteColumn(this.descriptor.softDelete);
393
+ if (!deleted)
394
+ return undefined;
395
+ const column = columnOf(table, deleted);
396
+ if (!column)
397
+ throw new CapabilityError('The record table needs its soft-delete column.', 'UNAVAILABLE', {
398
+ reason: 'record-soft-delete-column-missing', retryable: false, details: { recordKind: this.descriptor.id }
399
+ });
400
+ return isNull(column);
401
+ }
402
+ async revisionMetadata(id) {
403
+ const { database, table } = await this.context();
404
+ const rows = RowsSchema.parse(await database.select({ id: this.primaryColumn(table), revision: this.revisionColumn(table) }).from(table).where(and(eq(this.primaryColumn(table), id), this.revisionLivePredicate(table))).limit(1));
405
+ if (!rows[0])
406
+ return null;
407
+ const key = z.union([z.string(), z.number(), z.bigint()]).parse(rows[0].id);
408
+ return RecordRevisionMetadataSchema.parse({ id: String(key), revision: rows[0].revision });
409
+ }
410
+ async readAtRevision(id, revision) {
411
+ const { database, table } = await this.context();
412
+ const rows = RowsSchema.parse(await database.select().from(table).where(and(eq(this.primaryColumn(table), id), eq(this.revisionColumn(table), revision), this.revisionLivePredicate(table))).limit(1));
413
+ const row = rows[0];
414
+ if (row)
415
+ return { status: 'read', revision, value: this.parse(row) };
416
+ const current = await this.revisionMetadata(id);
417
+ return current ? { status: 'changed', revision: current.revision } : { status: 'not-found' };
418
+ }
419
+ async revisionList(options) {
420
+ const query = RecordRevisionQuerySchema.parse(options ?? {});
421
+ const { database, table } = await this.context();
422
+ const predicate = and(this.where(table, this.readFilter(query.where, false)), this.revisionLivePredicate(table));
423
+ let select = database.select({ id: this.primaryColumn(table), revision: this.revisionColumn(table) }).from(table);
424
+ if (predicate)
425
+ select = select.where(predicate);
426
+ const order = Array.isArray(query.orderBy) ? query.orderBy : Object.entries(query.orderBy ?? {}).map(([field, direction]) => ({ field, direction }));
427
+ const ordering = order.map(item => {
428
+ const column = columnOf(table, item.field);
429
+ if (!column)
430
+ this.invalidFilter(false, 'unknown-column', item.field);
431
+ return item.direction === 'desc' ? desc(column) : asc(column);
432
+ });
433
+ if (!order.some(item => item.field === this.primaryKey))
434
+ ordering.push(asc(this.primaryColumn(table)));
435
+ select = select.orderBy(...ordering);
436
+ if (query.limit !== undefined)
437
+ select = select.limit(query.limit + 1);
438
+ if (query.offset !== undefined)
439
+ select = select.offset(query.offset);
440
+ const rows = RowsSchema.parse(await select);
441
+ const hasMore = query.limit !== undefined && rows.length > query.limit;
442
+ const items = (hasMore ? rows.slice(0, query.limit) : rows).map(row => {
443
+ const key = z.union([z.string(), z.number(), z.bigint()]).parse(row.id);
444
+ return RecordRevisionMetadataSchema.parse({ id: String(key), revision: row.revision });
445
+ });
446
+ const page = { items, hasMore };
447
+ if (query.limit === undefined || query.includeTotal) {
448
+ let count = database.select({ count: countRows() }).from(table);
449
+ if (predicate)
450
+ count = count.where(predicate);
451
+ page.total = CountRowsSchema.parse(await count)[0]?.count ?? 0;
452
+ }
453
+ return page;
454
+ }
455
+ constructor(adapterId, databaseHost, descriptor, runtime, dialect, supportsTransactions = true, supportsConditionalWrites = true) {
456
+ this.adapterId = adapterId;
457
+ this.databaseHost = databaseHost;
458
+ this.descriptor = descriptor;
459
+ this.runtime = runtime;
460
+ this.dialect = dialect;
461
+ this.supportsTransactions = supportsTransactions;
462
+ this.tableName = descriptor.tableName;
463
+ this.supportsConditionalWrites = supportsConditionalWrites;
464
+ assertRecordRevisionSchema(descriptor);
465
+ this.primaryKey = descriptor.primaryKey;
466
+ if (!(descriptor.schema instanceof z.ZodType)) {
467
+ throw new CapabilityError('storage.drizzle record descriptors need a Zod schema.', 'INVALID_INPUT', {
468
+ reason: 'record-schema-invalid',
469
+ retryable: false,
470
+ details: { recordKind: descriptor.id }
471
+ });
472
+ }
473
+ // SAFETY: descriptor.schema is a Zod schema (checked above); `T` is the row type the caller declares for it through record<T>().
474
+ this.schema = descriptor.schema;
475
+ this.relations = descriptor.relations ?? {};
476
+ }
477
+ /** Whether this adapter's descriptor-built table was found present (checked once; a failed check is retried). */
478
+ tableChecked;
479
+ /**
480
+ * The host schema's table wins; without one, the table the descriptor declares (its migration
481
+ * creates it), confirmed present on first use so a missing or misnamed table refuses typed
482
+ * instead of failing later as raw SQL.
483
+ */
484
+ async context() {
485
+ const database = hostDatabase(this.databaseHost);
486
+ const declared = hostTable(database, this.tableName);
487
+ if (declared)
488
+ return { database, table: declared };
489
+ const table = recordTable(this.descriptor, this.dialect);
490
+ if (this.tableChecked) {
491
+ await this.tableChecked;
492
+ return { database, table };
493
+ }
494
+ const check = this.assertTablePresent(database, table);
495
+ this.tableChecked = check;
496
+ const checked = await settle(() => check);
497
+ if (!checked.ok) {
498
+ // A failed check is not remembered: the next use asks again.
499
+ this.tableChecked = undefined;
500
+ throw checked.cause;
501
+ }
502
+ return { database, table };
503
+ }
504
+ async assertTablePresent(database, table) {
505
+ const probed = await settle(async () => { await database.select().from(table).limit(0); });
506
+ if (probed.ok)
507
+ return;
508
+ const message = (probed.cause instanceof Error ? probed.cause.message : probed.cause.description).toLowerCase();
509
+ if (message.includes('no such table') || (message.includes('relation') && message.includes('does not exist'))) {
510
+ throw new CapabilityError(`The ${this.tableName} table this record declares does not exist; apply the record's migration.`, 'UNAVAILABLE', {
511
+ reason: 'record-table-missing',
512
+ retryable: false,
513
+ details: { recordKind: this.descriptor.id, tableName: this.tableName },
514
+ recoveryHint: 'Create it from the descriptor (recordMigration) through the database owner, or declare it in the host schema.'
515
+ });
516
+ }
517
+ throw probed.cause;
518
+ }
519
+ primaryColumn(table) {
520
+ const column = columnOf(table, this.primaryKey);
521
+ if (!column) {
522
+ throw new CapabilityError('storage.drizzle record table has no primary key column.', 'INVALID_INPUT', {
523
+ reason: 'record-primary-key-column-missing',
524
+ retryable: false,
525
+ details: { tableName: this.tableName, primaryKey: this.primaryKey }
526
+ });
527
+ }
528
+ return column;
529
+ }
530
+ /** A filter the record cannot enforce, refused before any hook or SQL runs. */
531
+ invalidFilter(deleting, check, field, operator) {
532
+ const details = { tableName: this.tableName, check, field, operator };
533
+ if (deleting) {
534
+ throw new CapabilityError('storage.drizzle cannot enforce the deletion filter.', 'INVALID_INPUT', {
535
+ reason: 'record-delete-filter-invalid', retryable: false, details
536
+ });
537
+ }
538
+ throw new CapabilityError('storage.drizzle cannot enforce the record filter.', 'INVALID_INPUT', {
539
+ reason: 'record-filter-invalid', retryable: false, details
540
+ });
541
+ }
542
+ assertDateOperands(values, field, deleting) {
543
+ for (const operand of values) {
544
+ if (Number.isFinite(operand.getTime()))
545
+ continue;
546
+ if (deleting)
547
+ this.invalidFilter(true, 'invalid-date', field);
548
+ throw new CapabilityError('storage.drizzle cannot enforce an invalid Date filter.', 'INVALID_INPUT', {
549
+ reason: 'record-filter-date-invalid', retryable: false, details: { tableName: this.tableName, field }
550
+ });
551
+ }
552
+ }
553
+ /** A caller's filter read once into a field map; an absent filter (or, outside deletion, a falsy one) is no filter. */
554
+ readFilter(where, deleting) {
555
+ if (where === undefined || (!deleting && !where))
556
+ return undefined;
557
+ return parseAdapterInput(FilterSchema, where, {
558
+ message: deleting ? 'storage.drizzle cannot enforce the deletion filter.' : 'storage.drizzle cannot enforce the record filter.',
559
+ code: 'INVALID_INPUT',
560
+ reason: deleting ? 'record-delete-filter-invalid' : 'record-filter-invalid',
561
+ details: { tableName: this.tableName, check: 'field-map' }
562
+ });
563
+ }
564
+ where(table, fields, deleting = false) {
565
+ if (!fields)
566
+ return undefined;
567
+ const conditions = Object.entries(fields).flatMap(([field, expected]) => {
568
+ const column = columnOf(table, field);
569
+ if (deleting && (!column || expected === undefined))
570
+ this.invalidFilter(true, 'unknown-column-or-missing-value', field);
571
+ if (!isComparison(expected)) {
572
+ this.assertDateOperands((Array.isArray(expected) ? expected : [expected]).filter((operand) => operand instanceof Date), field, deleting);
573
+ if (!column)
574
+ return this.invalidFilter(false, 'unknown-column', field);
575
+ if (expected === undefined) {
576
+ if (!this.optionalOnlyFields().has(field))
577
+ return this.invalidFilter(deleting, 'nullable-undefined-ambiguous', field);
578
+ return [isNull(column)];
579
+ }
580
+ return [expected === null ? isNull(column) : eq(column, expected)];
581
+ }
582
+ const comparison = parseAdapterInput(FilterSchema, expected, {
583
+ message: deleting ? 'storage.drizzle cannot enforce the deletion filter.' : 'storage.drizzle cannot enforce the record filter.',
584
+ code: 'INVALID_INPUT',
585
+ reason: deleting ? 'record-delete-filter-invalid' : 'record-filter-invalid',
586
+ details: { tableName: this.tableName, field, check: 'operator-map' }
587
+ });
588
+ // An operator object with no operator constrains nothing: refused, never read as "every row".
589
+ if (!Object.keys(comparison).length)
590
+ this.invalidFilter(deleting, 'empty-comparison', field);
591
+ if ('hasNot' in comparison) {
592
+ const member = comparison.hasNot;
593
+ assertArrayField(field, member);
594
+ this.arrayColumn(table, field, member);
595
+ }
596
+ if ('hasAll' in comparison) {
597
+ for (const member of assertArrayMembers(field, comparison.hasAll))
598
+ this.arrayColumn(table, field, member);
599
+ }
600
+ if (!column)
601
+ return this.invalidFilter(false, 'unknown-column', field);
602
+ return Object.entries(comparison).flatMap(([key, value]) => {
603
+ const known = RecordFilterOperatorSchema.safeParse(key);
604
+ if (!known.success)
605
+ return this.invalidFilter(deleting, 'unknown-operator', field, key);
606
+ const operator = known.data;
607
+ if (RANGE_OPERATORS.includes(operator)) {
608
+ this.assertDateOperands((Array.isArray(value) ? value : [value]).filter((operand) => operand instanceof Date), field, deleting);
609
+ }
610
+ if (deleting && value === undefined)
611
+ this.invalidFilter(true, 'missing-operand', field, operator);
612
+ if (deleting && TEXT_OPERATORS.includes(operator) && !isText(value)) {
613
+ this.invalidFilter(true, 'text-operand-required', field, operator);
614
+ }
615
+ switch (operator) {
616
+ case 'hasAll':
617
+ return assertArrayMembers(field, value).map(member => sql `EXISTS (SELECT 1 FROM json_each(COALESCE(${column}, '[]')) WHERE type = 'text' AND value = ${member})`);
618
+ case 'hasNot': return [sql `NOT EXISTS (SELECT 1 FROM json_each(COALESCE(${column}, '[]')) WHERE type = 'text' AND value = ${value})`];
619
+ case 'eq': {
620
+ if (value === undefined) {
621
+ if (!this.optionalOnlyFields().has(field))
622
+ return this.invalidFilter(deleting, 'nullable-undefined-ambiguous', field, operator);
623
+ return [isNull(column)];
624
+ }
625
+ return [value === null ? isNull(column) : eq(column, value)];
626
+ }
627
+ case 'ne': {
628
+ if (value === undefined) {
629
+ if (comparison.eq === null && !this.optionalOnlyFields().has(field))
630
+ return [];
631
+ if (!this.optionalOnlyFields().has(field))
632
+ return this.invalidFilter(deleting, 'nullable-undefined-ambiguous', field, operator);
633
+ return [isNotNull(column)];
634
+ }
635
+ return [value === null ? isNotNull(column) : ne(column, value)];
636
+ }
637
+ case 'gt': return [gt(column, value)];
638
+ case 'gte': return [gte(column, value)];
639
+ case 'lt': return [lt(column, value)];
640
+ case 'lte': return [lte(column, value)];
641
+ case 'in':
642
+ case 'notIn': {
643
+ if (!Array.isArray(value) || (deleting && value.includes(undefined))) {
644
+ this.invalidFilter(deleting, 'array-operand-required', field, operator);
645
+ }
646
+ return [operator === 'in' ? inArray(column, value) : notInArray(column, value)];
647
+ }
648
+ case 'like': return [like(column, String(value))];
649
+ case 'ilike': return [ilike(column, String(value))];
650
+ case 'contains': return [like(column, `%${String(value)}%`)];
651
+ case 'startsWith': return [like(column, `${String(value)}%`)];
652
+ case 'endsWith': return [like(column, `%${String(value)}`)];
653
+ case 'isNull':
654
+ if (deleting && value !== true)
655
+ this.invalidFilter(true, 'true-operand-required', field, operator);
656
+ // On a read `isNull: false` is `IS NOT NULL` (as LocalDB compiles it), never a dropped clause.
657
+ return value ? [isNull(column)] : [isNotNull(column)];
658
+ case 'isNotNull':
659
+ if (deleting && value !== true)
660
+ this.invalidFilter(true, 'true-operand-required', field, operator);
661
+ return value ? [isNotNull(column)] : [isNull(column)];
662
+ case 'between': {
663
+ if (!Array.isArray(value) || value.length !== 2 || (deleting && value.includes(undefined))) {
664
+ this.invalidFilter(deleting, 'two-bounds-required', field, operator);
665
+ }
666
+ const range = and(gte(column, value[0]), lte(column, value[1]));
667
+ return range ? [range] : [];
668
+ }
669
+ }
670
+ });
671
+ });
672
+ return conditions.length ? and(...conditions) : undefined;
673
+ }
674
+ arrayColumn(table, field, value) {
675
+ assertArrayField(field, value);
676
+ if (!SQLITE_DIALECTS.includes(this.dialect ?? ''))
677
+ unsupportedArrayOperation(`storage.drizzle dialect '${this.dialect ?? 'unconfigured'}'`);
678
+ const column = columnOf(table, field);
679
+ if (!column) {
680
+ throw new CapabilityError('storage.drizzle has no such array column in the record table.', 'INVALID_INPUT', {
681
+ reason: 'record-array-column-missing', retryable: false, details: { tableName: this.tableName, field }
682
+ });
683
+ }
684
+ return column;
685
+ }
686
+ optionalFields;
687
+ /** Schema fields that accept `undefined` (optional) but not `null` (so a relational `NULL` column represents absence). */
688
+ optionalOnlyFields() {
689
+ if (this.optionalFields)
690
+ return this.optionalFields;
691
+ const schemaFields = schemaFieldsOf(this.schema);
692
+ const fields = new Set();
693
+ for (const [field, fieldSchema] of Object.entries(schemaFields)) {
694
+ if (fieldSchema.safeParse(undefined).success && !fieldSchema.safeParse(null).success)
695
+ fields.add(field);
696
+ }
697
+ this.optionalFields = fields;
698
+ return fields;
699
+ }
700
+ normalizeOptionalNulls(row) {
701
+ for (const field of this.optionalOnlyFields()) {
702
+ if (row[field] === null)
703
+ delete row[field];
704
+ }
705
+ }
706
+ parse(row) {
707
+ if (this.descriptor.versioning)
708
+ delete row[RECORD_REVISION_COLUMN];
709
+ this.normalizeOptionalNulls(row);
710
+ if (this.descriptor.validateOnRead)
711
+ return this.schema.parse(row);
712
+ // SAFETY: validateOnRead is false (checked above): the descriptor declares its schema describes the bound table's rows and opts out of read parsing.
713
+ return row;
714
+ }
715
+ /** A caller's record input read once into a field map. */
716
+ readInput(input) {
717
+ const row = parseAdapterInput(RowSchema, input, {
718
+ message: 'storage.drizzle record input must be a field map.',
719
+ code: 'INVALID_INPUT',
720
+ reason: 'record-input-invalid',
721
+ details: { tableName: this.tableName }
722
+ });
723
+ if (this.descriptor.versioning && Object.hasOwn(row, RECORD_REVISION_COLUMN))
724
+ throw new CapabilityError('Storage revision metadata cannot be written as record data.', 'INVALID_INPUT', {
725
+ reason: 'record-revision-field-reserved', retryable: false
726
+ });
727
+ return row;
728
+ }
729
+ notFound(id) {
730
+ return new CapabilityError('storage.drizzle record not found.', 'NOT_FOUND', {
731
+ reason: 'record-absent',
732
+ retryable: false,
733
+ details: { tableName: this.tableName, id }
734
+ });
735
+ }
736
+ async runHook(phase, row) {
737
+ if (this.descriptor.versioning && phase.startsWith('after'))
738
+ delete row[RECORD_REVISION_COLUMN];
739
+ const hook = this.descriptor[phase];
740
+ if (hook !== undefined)
741
+ await z.function({ input: [z.unknown()] }).parse(hook)(row);
742
+ }
743
+ emitLifecycle(phase, row) {
744
+ if (this.descriptor.versioning)
745
+ delete row[RECORD_REVISION_COLUMN];
746
+ const logger = getLogger('storage:drizzle-adapter', this.runtime);
747
+ try {
748
+ this.runtime.hooks('storage/record').emit(phase, {
749
+ recordId: row[this.primaryKey], recordKind: this.descriptor.id,
750
+ tableName: this.tableName, data: row
751
+ });
752
+ }
753
+ catch (error) {
754
+ logger.warn('storage/record lifecycle hook failed', {
755
+ error: valueFreeFailure(CaughtFailureSchema.parse(error)), phase, recordKind: this.descriptor.id
756
+ });
757
+ }
758
+ }
759
+ readPrimaryKey(record) {
760
+ const row = RowSchema.parse(record);
761
+ return z.string().parse(row[this.primaryKey]);
762
+ }
763
+ async prepare(value, creating) {
764
+ const next = { ...value };
765
+ if (creating && this.descriptor.autoId !== false && next[this.primaryKey] == null) {
766
+ next[this.primaryKey] = crypto.randomUUID();
767
+ }
768
+ if (this.descriptor.timestamps) {
769
+ // The descriptor's own timestamp fields, stamped in the form the schema reads (epoch milliseconds, a Date or an ISO string).
770
+ const now = new Date();
771
+ const columns = new Map(recordColumns(this.descriptor).map((column) => [column.field, column]));
772
+ const stamp = (field) => {
773
+ const column = columns.get(field);
774
+ if (column?.kind === 'integer')
775
+ return now.getTime();
776
+ return column?.valueIsDate === false ? now.toISOString() : now;
777
+ };
778
+ const createdAt = timestampColumn(this.descriptor.timestamps, 'createdAt');
779
+ const updatedAt = timestampColumn(this.descriptor.timestamps, 'updatedAt');
780
+ if (creating && createdAt && next[createdAt] == null)
781
+ next[createdAt] = stamp(createdAt);
782
+ if (updatedAt)
783
+ next[updatedAt] = stamp(updatedAt);
784
+ }
785
+ await this.runHook(creating ? 'beforeCreate' : 'beforeUpdate', next);
786
+ if (this.descriptor.versioning && Object.hasOwn(next, RECORD_REVISION_COLUMN))
787
+ throw new CapabilityError('Storage revision metadata cannot be written by a record hook.', 'INVALID_INPUT', {
788
+ reason: 'record-revision-field-reserved', retryable: false
789
+ });
790
+ return this.descriptor.validateOnWrite ? RowSchema.parse(this.schema.parse(next)) : next;
791
+ }
792
+ rethrowDriverConstraintFailure(cause) {
793
+ const DriverErrorNodeSchema = z.object({
794
+ code: z.string().optional(),
795
+ extendedCode: z.string().optional(),
796
+ errno: z.number().optional(),
797
+ rawCode: z.number().optional(),
798
+ retryable: z.boolean().optional(),
799
+ cause: z.unknown().optional()
800
+ });
801
+ const uniqueCodes = new Set(['SQLITE_CONSTRAINT_UNIQUE', 'SQLITE_CONSTRAINT_PRIMARYKEY', '23505']);
802
+ const uniqueErrnos = new Set([1555, 2067]);
803
+ const foreignKeyCodes = new Set(['SQLITE_CONSTRAINT_FOREIGNKEY', '23503']);
804
+ const foreignKeyErrnos = new Set([787]);
805
+ let typedRetryable;
806
+ let current = cause;
807
+ for (let depth = 0; depth < 4 && current; depth++) {
808
+ if (current instanceof CapabilityError) {
809
+ const failure = valueFreeFailure(CaughtFailureSchema.parse(cause));
810
+ throw new CapabilityError(`Database write failed on ${this.tableName}.`, current.code, {
811
+ reason: current.reason,
812
+ retryable: current.retryable,
813
+ details: { tableName: this.tableName, failure },
814
+ cause: failure
815
+ });
816
+ }
817
+ const parsed = DriverErrorNodeSchema.safeParse(current);
818
+ if (!parsed.success)
819
+ break;
820
+ const { code, extendedCode, errno, rawCode, retryable, cause: nextCause } = parsed.data;
821
+ if (typedRetryable === undefined && retryable !== undefined) {
822
+ typedRetryable = retryable;
823
+ }
824
+ const matchedUniqueCode = extendedCode && uniqueCodes.has(extendedCode) ? extendedCode : code && uniqueCodes.has(code) ? code : undefined;
825
+ if (matchedUniqueCode || (errno !== undefined && uniqueErrnos.has(errno)) || (rawCode !== undefined && uniqueErrnos.has(rawCode))) {
826
+ const driverCode = matchedUniqueCode ?? String(errno ?? rawCode);
827
+ const failure = valueFreeFailure(CaughtFailureSchema.parse(cause));
828
+ throw new CapabilityError(`Unique constraint failed on ${this.tableName}.`, 'CONFLICT', {
829
+ reason: 'record-unique-constraint-conflict',
830
+ retryable: false,
831
+ details: { tableName: this.tableName, driverCode, failure },
832
+ cause: failure
833
+ });
834
+ }
835
+ const matchedForeignKeyCode = extendedCode && foreignKeyCodes.has(extendedCode) ? extendedCode : code && foreignKeyCodes.has(code) ? code : undefined;
836
+ if (matchedForeignKeyCode || (errno !== undefined && foreignKeyErrnos.has(errno)) || (rawCode !== undefined && foreignKeyErrnos.has(rawCode))) {
837
+ const driverCode = matchedForeignKeyCode ?? String(errno ?? rawCode);
838
+ const failure = valueFreeFailure(CaughtFailureSchema.parse(cause));
839
+ throw new CapabilityError(`Foreign key constraint failed on ${this.tableName}.`, 'CONFLICT', {
840
+ reason: 'record-foreign-key-conflict',
841
+ retryable: false,
842
+ details: { tableName: this.tableName, driverCode, failure },
843
+ cause: failure
844
+ });
845
+ }
846
+ current = nextCause;
847
+ }
848
+ const failure = valueFreeFailure(CaughtFailureSchema.parse(cause));
849
+ throw new CapabilityError(`Database write failed on ${this.tableName}.`, 'UNAVAILABLE', {
850
+ reason: 'record-write-failed',
851
+ retryable: typedRetryable,
852
+ details: { tableName: this.tableName, failure },
853
+ cause: failure
854
+ });
855
+ }
856
+ async insertRow(input) {
857
+ const { database, table } = await this.context();
858
+ const primaryCol = this.primaryColumn(table);
859
+ const row = await this.prepare(input, true);
860
+ if (this.descriptor.versioning) {
861
+ this.revisionColumn(table);
862
+ row[RECORD_REVISION_COLUMN] = crypto.randomUUID();
863
+ }
864
+ const attempt = await settle(async () => RowsSchema.parse(await database.insert(table).values(row).onConflictDoNothing({ target: primaryCol }).returning()));
865
+ if (!attempt.ok) {
866
+ return this.rethrowDriverConstraintFailure(attempt.cause);
867
+ }
868
+ const inserted = attempt.value;
869
+ if (!inserted[0]) {
870
+ throw new CapabilityError(`Record with duplicate ${this.primaryKey} already exists in ${this.tableName}.`, 'CONFLICT', {
871
+ reason: 'record-identity-conflict',
872
+ retryable: true,
873
+ details: { tableName: this.tableName, primaryKey: this.primaryKey }
874
+ });
875
+ }
876
+ const persisted = inserted[0];
877
+ this.normalizeOptionalNulls(persisted);
878
+ await this.runHook('afterCreate', persisted);
879
+ this.emitLifecycle('afterCreate', persisted);
880
+ return this.parse(persisted);
881
+ }
882
+ async create(data) {
883
+ return this.insertRow(this.readInput(data));
884
+ }
885
+ async createMany(data) {
886
+ if (!data.length)
887
+ return [];
888
+ const { database, table } = await this.context();
889
+ const rows = await Promise.all(data.map((item) => this.prepare(this.readInput(item), true)));
890
+ if (this.descriptor.versioning) {
891
+ this.revisionColumn(table);
892
+ for (const row of rows)
893
+ row[RECORD_REVISION_COLUMN] = crypto.randomUUID();
894
+ }
895
+ const result = RowsSchema.parse(await database.insert(table).values(rows).returning());
896
+ for (const row of result) {
897
+ this.normalizeOptionalNulls(row);
898
+ await this.runHook('afterCreate', row);
899
+ this.emitLifecycle('afterCreate', row);
900
+ }
901
+ return result.map((row) => this.parse(row));
902
+ }
903
+ /** What relation loading reads of this record: its kind, primary key, declared relations and runtime. */
904
+ get relationOwner() {
905
+ return { recordKind: this.descriptor.id, primaryKey: this.primaryKey, relations: this.relations, runtime: this.runtime };
906
+ }
907
+ /** Each row with the relations `include` names loaded from their target records (`storage/record` by id). */
908
+ withRelations(rows, include) {
909
+ return Promise.all(rows.map((row) => loadRecordRelations(this.relationOwner, row, include)));
910
+ }
911
+ async get(id, options) {
912
+ const { database, table } = await this.context();
913
+ const rows = RowsSchema.parse(await database.select().from(table).where(eq(this.primaryColumn(table), id)).limit(1));
914
+ return rows[0] ? loadRecordRelations(this.relationOwner, this.parse(rows[0]), options?.include) : null;
915
+ }
916
+ async getOrThrow(id, options) {
917
+ const value = await this.get(id, options);
918
+ if (!value)
919
+ throw this.notFound(id);
920
+ return value;
921
+ }
922
+ async getMany(ids, options) {
923
+ if (!ids.length)
924
+ return [];
925
+ const { database, table } = await this.context();
926
+ const rows = RowsSchema.parse(await database.select().from(table).where(inArray(this.primaryColumn(table), ids)));
927
+ return this.withRelations(rows.map((row) => this.parse(row)), options?.include);
928
+ }
929
+ async list(options = {}) {
930
+ const { database, table } = await this.context();
931
+ const query = parseAdapterInput(ListOptionsSchema, options, {
932
+ message: 'storage.drizzle cannot read the list options.',
933
+ code: 'INVALID_INPUT',
934
+ reason: 'record-query-invalid',
935
+ details: { tableName: this.tableName }
936
+ });
937
+ const filter = this.readFilter(query.where, false);
938
+ const predicate = this.where(table, filter);
939
+ let select = database.select().from(table);
940
+ if (predicate)
941
+ select = select.where(predicate);
942
+ const order = Array.isArray(query.orderBy)
943
+ ? query.orderBy
944
+ : Object.entries(query.orderBy ?? {}).flatMap(([field, direction]) => (direction ? [{ field, direction }] : []));
945
+ const clauses = order.flatMap(({ field, direction }) => {
946
+ const column = columnOf(table, field);
947
+ return column ? [direction === 'desc' ? desc(column) : asc(column)] : [];
948
+ });
949
+ if (clauses.length)
950
+ select = select.orderBy(...clauses);
951
+ if (query.limit !== undefined)
952
+ select = select.limit(query.limit);
953
+ if (query.offset !== undefined)
954
+ select = select.offset(query.offset);
955
+ const rows = RowsSchema.parse(await select);
956
+ const items = await this.withRelations(rows.map((row) => this.parse(row)), options.include);
957
+ return { items, total: await this.countWhere(table, filter) };
958
+ }
959
+ async findFirst(options = {}) {
960
+ const result = await this.list({ ...options, limit: 1 });
961
+ return result.items[0] ?? null;
962
+ }
963
+ async findFirstOrThrow(options) {
964
+ const value = await this.findFirst(options);
965
+ if (!value)
966
+ throw this.notFound(undefined);
967
+ return value;
968
+ }
969
+ async exists(id) { return (await this.get(id)) !== null; }
970
+ async count(where) {
971
+ const { table } = await this.context();
972
+ return this.countWhere(table, this.readFilter(where, false));
973
+ }
974
+ async countWhere(table, filter) {
975
+ const { database } = await this.context();
976
+ const predicate = this.where(table, filter);
977
+ let query = database.select({ count: countRows() }).from(table);
978
+ if (predicate)
979
+ query = query.where(predicate);
980
+ const rows = CountRowsSchema.parse(await query);
981
+ return rows[0]?.count ?? 0;
982
+ }
983
+ unsupported(reason, message) {
984
+ throw new CapabilityError(message, 'UNAVAILABLE', { reason, retryable: false, details: { tableName: this.tableName } });
985
+ }
986
+ async search() { return this.unsupported('record-search-unsupported', 'storage.drizzle does not advertise full-text search.'); }
987
+ async getDescendants() { return this.unsupported('record-hierarchy-unsupported', 'storage.drizzle does not advertise hierarchy queries.'); }
988
+ async getAncestors() { return this.unsupported('record-hierarchy-unsupported', 'storage.drizzle does not advertise hierarchy queries.'); }
989
+ async getTree() { return this.unsupported('record-hierarchy-unsupported', 'storage.drizzle does not advertise hierarchy queries.'); }
990
+ async update(id, data, options) {
991
+ const updated = await this.updateWithConditions(id, this.readInput(data), options);
992
+ if (updated instanceof OptimisticLockError)
993
+ throw updated;
994
+ return updated;
995
+ }
996
+ /** One conditional update: the updated record, or the optimistic-lock conflict when its precondition no longer holds. */
997
+ async updateWithConditions(id, data, options, bulkWhere) {
998
+ const { database, table } = await this.context();
999
+ const bulkPredicate = this.where(table, bulkWhere);
1000
+ const extraWhere = this.readFilter(options?.where, false);
1001
+ const extraPredicate = this.where(table, extraWhere);
1002
+ if (options && Object.hasOwn(options, 'addToSet') && !SQLITE_DIALECTS.includes(this.dialect ?? '')) {
1003
+ unsupportedArrayOperation(`storage.drizzle dialect '${this.dialect ?? 'unconfigured'}'`);
1004
+ }
1005
+ for (const [field, value] of Object.entries(options?.addToSet ?? {}))
1006
+ this.arrayColumn(table, field, value);
1007
+ const current = RowSchema.parse(await this.getOrThrow(id));
1008
+ const snapshot = structuredClone(current);
1009
+ const draft = { ...current, ...data };
1010
+ const additions = applySetAdditions(draft, data, options);
1011
+ const row = await this.prepare(draft, false);
1012
+ const patch = updatePatch(snapshot, row, data, additions);
1013
+ const optionalOnly = this.optionalOnlyFields();
1014
+ for (const [field, value] of Object.entries(patch)) {
1015
+ if (value !== undefined)
1016
+ continue;
1017
+ if (!optionalOnly.has(field)) {
1018
+ throw new CapabilityError(`storage.drizzle cannot clear field '${field}' to undefined in '${this.tableName}' because the schema also accepts null; relational NULL cannot distinguish null from undefined.`, 'INVALID_INPUT', {
1019
+ reason: 'record-nullable-undefined-unsupported',
1020
+ retryable: false,
1021
+ details: { tableName: this.tableName, field }
1022
+ });
1023
+ }
1024
+ patch[field] = null;
1025
+ }
1026
+ if (this.descriptor.versioning) {
1027
+ this.revisionColumn(table);
1028
+ patch[RECORD_REVISION_COLUMN] = crypto.randomUUID();
1029
+ }
1030
+ for (const [field, value] of Object.entries(additions)) {
1031
+ const column = this.arrayColumn(table, field, value);
1032
+ patch[field] = sql `CASE WHEN EXISTS (SELECT 1 FROM json_each(COALESCE(${column}, '[]')) WHERE type = 'text' AND value = ${value})
1033
+ THEN COALESCE(${column}, '[]') ELSE json_insert(COALESCE(${column}, '[]'), '$[#]', ${value}) END`;
1034
+ }
1035
+ const primary = this.primaryColumn(table);
1036
+ // A no-op SQL update preserves the atomic precondition and lifecycle boundary.
1037
+ if (!Object.keys(patch).length)
1038
+ patch[this.primaryKey] = primary;
1039
+ const updateAttempt = await settle(async () => RowsSchema.parse(await database.update(table).set(patch).where(and(eq(primary, id), bulkPredicate, extraPredicate)).returning()));
1040
+ if (!updateAttempt.ok) {
1041
+ return this.rethrowDriverConstraintFailure(updateAttempt.cause);
1042
+ }
1043
+ const result = updateAttempt.value;
1044
+ const updated = result[0];
1045
+ const precondition = extraWhere ?? bulkWhere;
1046
+ if (!updated && precondition)
1047
+ return new OptimisticLockError(this.tableName, id, precondition);
1048
+ if (!updated)
1049
+ throw this.notFound(id);
1050
+ this.normalizeOptionalNulls(updated);
1051
+ await this.runHook('afterUpdate', updated);
1052
+ this.emitLifecycle('afterUpdate', updated);
1053
+ return this.parse(updated);
1054
+ }
1055
+ async updateMany(where, data, options) {
1056
+ const { table } = await this.context();
1057
+ this.where(table, this.readFilter(options?.where, false));
1058
+ const bulkWhere = this.readFilter(where, false);
1059
+ const changes = this.readInput(data);
1060
+ const result = await this.list({ where });
1061
+ let count = 0;
1062
+ for (const record of result.items) {
1063
+ const updated = await this.updateWithConditions(this.readPrimaryKey(record), changes, options, bulkWhere);
1064
+ // A record a peer changed out of the bulk selection is skipped, not overwritten.
1065
+ if (!(updated instanceof OptimisticLockError))
1066
+ count++;
1067
+ }
1068
+ return { count, success: count > 0 };
1069
+ }
1070
+ async upsert(id, create, update) {
1071
+ return (await this.exists(id)) ? this.update(id, update) : this.insertRow({ ...this.readInput(create), [this.primaryKey]: id });
1072
+ }
1073
+ async delete(id, options) {
1074
+ return this.deleteWithConditions(id, undefined, options);
1075
+ }
1076
+ async deleteWithConditions(id, bulkWhere, options) {
1077
+ const { database, table } = await this.context();
1078
+ const bulkPredicate = this.where(table, bulkWhere, true);
1079
+ const extraPredicate = this.where(table, this.readFilter(options?.where, true), true);
1080
+ const current = await this.get(id);
1081
+ if (!current)
1082
+ return { count: 0, success: false };
1083
+ const row = RowSchema.parse(current);
1084
+ await this.runHook('beforeDelete', row);
1085
+ const result = RowsSchema.parse(await database.delete(table).where(and(eq(this.primaryColumn(table), id), bulkPredicate, extraPredicate)).returning());
1086
+ const deleted = result[0];
1087
+ if (deleted) {
1088
+ await this.runHook('afterDelete', deleted);
1089
+ this.emitLifecycle('afterDelete', deleted);
1090
+ }
1091
+ return { count: result.length, success: result.length > 0 };
1092
+ }
1093
+ async deleteMany(where, options) {
1094
+ const { database, table } = await this.context();
1095
+ const bulkWhere = this.readFilter(where, true);
1096
+ const bulkPredicate = this.where(table, bulkWhere, true);
1097
+ const extraPredicate = this.where(table, this.readFilter(options?.where, true), true);
1098
+ if (this.descriptor.beforeDelete === undefined && this.descriptor.afterDelete === undefined) {
1099
+ const rows = RowsSchema.parse(await database.delete(table).where(and(bulkPredicate, extraPredicate)).returning());
1100
+ for (const row of rows)
1101
+ this.emitLifecycle('afterDelete', row);
1102
+ return { count: rows.length, success: rows.length > 0 };
1103
+ }
1104
+ const result = await this.list({ where });
1105
+ let count = 0;
1106
+ for (const record of result.items) {
1107
+ const deleted = await this.deleteWithConditions(this.readPrimaryKey(record), bulkWhere, options);
1108
+ count += deleted.count;
1109
+ }
1110
+ return { count, success: count > 0 };
1111
+ }
1112
+ async restore() { return this.unsupported('record-restore-unsupported', 'storage.drizzle restore requires an owner soft-delete policy.'); }
1113
+ async aggregate(options) {
1114
+ const values = RowsSchema.parse((await this.list({ where: options.where })).items);
1115
+ if (options.function === 'count')
1116
+ return [{ value: values.length }];
1117
+ const field = isText(options.field) ? options.field : '';
1118
+ const numbers = values.map((value) => Number(value[field])).filter(Number.isFinite);
1119
+ if (!numbers.length)
1120
+ return [{ value: 0 }];
1121
+ const value = options.function === 'sum' ? numbers.reduce((a, b) => a + b, 0)
1122
+ : options.function === 'avg' ? numbers.reduce((a, b) => a + b, 0) / numbers.length
1123
+ : options.function === 'min' ? Math.min(...numbers) : Math.max(...numbers);
1124
+ return [{ value }];
1125
+ }
1126
+ async transaction(fn) {
1127
+ if (!this.supportsTransactions) {
1128
+ throw new Error(`${this.adapterId} does not support interactive transactions.`);
1129
+ }
1130
+ const { database } = await this.context();
1131
+ return database.transaction(() => fn({ id: crypto.randomUUID(), startTime: Date.now(), isActive: true }));
1132
+ }
1133
+ async *stream(options) {
1134
+ for (const item of (await this.list(options)).items)
1135
+ yield item;
1136
+ }
1137
+ async batch(operations) {
1138
+ const results = [];
1139
+ for (const operation of operations) {
1140
+ if (operation.type === 'create')
1141
+ results.push(await this.insertRow(this.readInput(operation.data)));
1142
+ if (operation.type === 'update') {
1143
+ const updated = await this.updateWithConditions(String(operation.id), this.readInput(operation.data));
1144
+ if (updated instanceof OptimisticLockError)
1145
+ throw updated;
1146
+ results.push(updated);
1147
+ }
1148
+ if (operation.type === 'delete')
1149
+ results.push(await this.delete(String(operation.id)));
1150
+ }
1151
+ return results;
1152
+ }
1153
+ async raw() { return this.unsupported('record-raw-query-unsupported', 'Use the typed host database context for raw Drizzle queries.'); }
1154
+ async queryRaw() { return this.unsupported('record-raw-query-unsupported', 'Use the typed host database context for raw Drizzle queries.'); }
1155
+ async validate(data) {
1156
+ const result = this.schema.safeParse(data);
1157
+ return result.success ? { success: true, data: result.data } : { success: false, errors: result.error };
1158
+ }
1159
+ async initialize() { await this.context(); }
1160
+ getAdapterId() { return this.adapterId; }
1161
+ async close() { }
1162
+ }
1163
+ //# sourceMappingURL=drizzle.adapter.impl.js.map