@vibesdotdev/storage 0.0.1

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 (423) hide show
  1. package/README.md +75 -0
  2. package/SPEC.md +60 -0
  3. package/dist/adapters/index.d.ts +14 -0
  4. package/dist/adapters/index.d.ts.map +1 -0
  5. package/dist/adapters/index.js +15 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/bridge/index.d.ts +3 -0
  8. package/dist/bridge/index.d.ts.map +1 -0
  9. package/dist/bridge/index.js +2 -0
  10. package/dist/bridge/index.js.map +1 -0
  11. package/dist/bridge/storage-kind-bridge.d.ts +27 -0
  12. package/dist/bridge/storage-kind-bridge.d.ts.map +1 -0
  13. package/dist/bridge/storage-kind-bridge.js +110 -0
  14. package/dist/bridge/storage-kind-bridge.js.map +1 -0
  15. package/dist/bridge/types.d.ts +45 -0
  16. package/dist/bridge/types.d.ts.map +1 -0
  17. package/dist/bridge/types.js +8 -0
  18. package/dist/bridge/types.js.map +1 -0
  19. package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts +4 -0
  20. package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts.map +1 -0
  21. package/dist/cli/commands/list/storage.list.cli-command.descriptor.js +18 -0
  22. package/dist/cli/commands/list/storage.list.cli-command.descriptor.js.map +1 -0
  23. package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts +11 -0
  24. package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts.map +1 -0
  25. package/dist/cli/commands/list/storage.list.cli-command.impl.js +48 -0
  26. package/dist/cli/commands/list/storage.list.cli-command.impl.js.map +1 -0
  27. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts +4 -0
  28. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts.map +1 -0
  29. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.js +26 -0
  30. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.js.map +1 -0
  31. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts +13 -0
  32. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts.map +1 -0
  33. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js +136 -0
  34. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js.map +1 -0
  35. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts +4 -0
  36. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts.map +1 -0
  37. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.js +26 -0
  38. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.js.map +1 -0
  39. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts +13 -0
  40. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts.map +1 -0
  41. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js +165 -0
  42. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js.map +1 -0
  43. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts +4 -0
  44. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts.map +1 -0
  45. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js +20 -0
  46. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js.map +1 -0
  47. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts +12 -0
  48. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts.map +1 -0
  49. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js +95 -0
  50. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js.map +1 -0
  51. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts +4 -0
  52. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts.map +1 -0
  53. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.js +15 -0
  54. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.js.map +1 -0
  55. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts +13 -0
  56. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts.map +1 -0
  57. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js +150 -0
  58. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js.map +1 -0
  59. package/dist/cli/context.consumer.d.ts +26 -0
  60. package/dist/cli/context.consumer.d.ts.map +1 -0
  61. package/dist/cli/context.consumer.js +164 -0
  62. package/dist/cli/context.consumer.js.map +1 -0
  63. package/dist/cli/storage.cli-group.descriptor.d.ts +4 -0
  64. package/dist/cli/storage.cli-group.descriptor.d.ts.map +1 -0
  65. package/dist/cli/storage.cli-group.descriptor.js +11 -0
  66. package/dist/cli/storage.cli-group.descriptor.js.map +1 -0
  67. package/dist/cli/storage.sync.cli-group.descriptor.d.ts +4 -0
  68. package/dist/cli/storage.sync.cli-group.descriptor.d.ts.map +1 -0
  69. package/dist/cli/storage.sync.cli-group.descriptor.js +12 -0
  70. package/dist/cli/storage.sync.cli-group.descriptor.js.map +1 -0
  71. package/dist/cli/types.d.ts +26 -0
  72. package/dist/cli/types.d.ts.map +1 -0
  73. package/dist/cli/types.js +11 -0
  74. package/dist/cli/types.js.map +1 -0
  75. package/dist/client/index.d.ts +10 -0
  76. package/dist/client/index.d.ts.map +1 -0
  77. package/dist/client/index.js +10 -0
  78. package/dist/client/index.js.map +1 -0
  79. package/dist/client/list-browsable-adapters.d.ts +31 -0
  80. package/dist/client/list-browsable-adapters.d.ts.map +1 -0
  81. package/dist/client/list-browsable-adapters.js +40 -0
  82. package/dist/client/list-browsable-adapters.js.map +1 -0
  83. package/dist/daemon/commands/sync.d.ts +23 -0
  84. package/dist/daemon/commands/sync.d.ts.map +1 -0
  85. package/dist/daemon/commands/sync.js +169 -0
  86. package/dist/daemon/commands/sync.js.map +1 -0
  87. package/dist/docs/adapters.docs.descriptor.d.ts +4 -0
  88. package/dist/docs/adapters.docs.descriptor.d.ts.map +1 -0
  89. package/dist/docs/adapters.docs.descriptor.js +223 -0
  90. package/dist/docs/adapters.docs.descriptor.js.map +1 -0
  91. package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
  92. package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
  93. package/dist/docs/manifests.docs.descriptor.js +316 -0
  94. package/dist/docs/manifests.docs.descriptor.js.map +1 -0
  95. package/dist/docs/records.docs.descriptor.d.ts +4 -0
  96. package/dist/docs/records.docs.descriptor.d.ts.map +1 -0
  97. package/dist/docs/records.docs.descriptor.js +269 -0
  98. package/dist/docs/records.docs.descriptor.js.map +1 -0
  99. package/dist/docs/sync.docs.descriptor.d.ts +4 -0
  100. package/dist/docs/sync.docs.descriptor.d.ts.map +1 -0
  101. package/dist/docs/sync.docs.descriptor.js +279 -0
  102. package/dist/docs/sync.docs.descriptor.js.map +1 -0
  103. package/dist/index.d.ts +27 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +29 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/interfaces/adapter.d.ts +382 -0
  108. package/dist/interfaces/adapter.d.ts.map +1 -0
  109. package/dist/interfaces/adapter.js +11 -0
  110. package/dist/interfaces/adapter.js.map +1 -0
  111. package/dist/interfaces/document-store.d.ts +62 -0
  112. package/dist/interfaces/document-store.d.ts.map +1 -0
  113. package/dist/interfaces/document-store.js +8 -0
  114. package/dist/interfaces/document-store.js.map +1 -0
  115. package/dist/interfaces/index.d.ts +17 -0
  116. package/dist/interfaces/index.d.ts.map +1 -0
  117. package/dist/interfaces/index.js +24 -0
  118. package/dist/interfaces/index.js.map +1 -0
  119. package/dist/interfaces/key-value.d.ts +95 -0
  120. package/dist/interfaces/key-value.d.ts.map +1 -0
  121. package/dist/interfaces/key-value.js +8 -0
  122. package/dist/interfaces/key-value.js.map +1 -0
  123. package/dist/interfaces/query-builder.d.ts +31 -0
  124. package/dist/interfaces/query-builder.d.ts.map +1 -0
  125. package/dist/interfaces/query-builder.js +11 -0
  126. package/dist/interfaces/query-builder.js.map +1 -0
  127. package/dist/interfaces/record/index.d.ts +7 -0
  128. package/dist/interfaces/record/index.d.ts.map +1 -0
  129. package/dist/interfaces/record/index.js +7 -0
  130. package/dist/interfaces/record/index.js.map +1 -0
  131. package/dist/interfaces/record/interface.d.ts +593 -0
  132. package/dist/interfaces/record/interface.d.ts.map +1 -0
  133. package/dist/interfaces/record/interface.js +49 -0
  134. package/dist/interfaces/record/interface.js.map +1 -0
  135. package/dist/interfaces/repository.d.ts +262 -0
  136. package/dist/interfaces/repository.d.ts.map +1 -0
  137. package/dist/interfaces/repository.js +8 -0
  138. package/dist/interfaces/repository.js.map +1 -0
  139. package/dist/interfaces/schema/index.d.ts +8 -0
  140. package/dist/interfaces/schema/index.d.ts.map +1 -0
  141. package/dist/interfaces/schema/index.js +10 -0
  142. package/dist/interfaces/schema/index.js.map +1 -0
  143. package/dist/interfaces/schema/schema-interface.d.ts +516 -0
  144. package/dist/interfaces/schema/schema-interface.d.ts.map +1 -0
  145. package/dist/interfaces/schema/schema-interface.js +31 -0
  146. package/dist/interfaces/schema/schema-interface.js.map +1 -0
  147. package/dist/interfaces/schema/table-interface.d.ts +250 -0
  148. package/dist/interfaces/schema/table-interface.d.ts.map +1 -0
  149. package/dist/interfaces/schema/table-interface.js +31 -0
  150. package/dist/interfaces/schema/table-interface.js.map +1 -0
  151. package/dist/interfaces/storage-consumer-fs.d.ts +40 -0
  152. package/dist/interfaces/storage-consumer-fs.d.ts.map +1 -0
  153. package/dist/interfaces/storage-consumer-fs.js +42 -0
  154. package/dist/interfaces/storage-consumer-fs.js.map +1 -0
  155. package/dist/manifest/base.d.ts +187 -0
  156. package/dist/manifest/base.d.ts.map +1 -0
  157. package/dist/manifest/base.js +516 -0
  158. package/dist/manifest/base.js.map +1 -0
  159. package/dist/manifest/cloud-sync.consumer.d.ts +7 -0
  160. package/dist/manifest/cloud-sync.consumer.d.ts.map +1 -0
  161. package/dist/manifest/cloud-sync.consumer.js +82 -0
  162. package/dist/manifest/cloud-sync.consumer.js.map +1 -0
  163. package/dist/manifest/index.d.ts +7 -0
  164. package/dist/manifest/index.d.ts.map +1 -0
  165. package/dist/manifest/index.js +7 -0
  166. package/dist/manifest/index.js.map +1 -0
  167. package/dist/manifest/source-policy.d.ts +8 -0
  168. package/dist/manifest/source-policy.d.ts.map +1 -0
  169. package/dist/manifest/source-policy.js +62 -0
  170. package/dist/manifest/source-policy.js.map +1 -0
  171. package/dist/paths.d.ts +6 -0
  172. package/dist/paths.d.ts.map +1 -0
  173. package/dist/paths.js +152 -0
  174. package/dist/paths.js.map +1 -0
  175. package/dist/policy/context.d.ts +9 -0
  176. package/dist/policy/context.d.ts.map +1 -0
  177. package/dist/policy/context.js +29 -0
  178. package/dist/policy/context.js.map +1 -0
  179. package/dist/policy/index.d.ts +4 -0
  180. package/dist/policy/index.d.ts.map +1 -0
  181. package/dist/policy/index.js +4 -0
  182. package/dist/policy/index.js.map +1 -0
  183. package/dist/policy/overrides.d.ts +40 -0
  184. package/dist/policy/overrides.d.ts.map +1 -0
  185. package/dist/policy/overrides.js +37 -0
  186. package/dist/policy/overrides.js.map +1 -0
  187. package/dist/policy/persistence.d.ts +38 -0
  188. package/dist/policy/persistence.d.ts.map +1 -0
  189. package/dist/policy/persistence.js +65 -0
  190. package/dist/policy/persistence.js.map +1 -0
  191. package/dist/policy/types.d.ts +21 -0
  192. package/dist/policy/types.d.ts.map +1 -0
  193. package/dist/policy/types.js +7 -0
  194. package/dist/policy/types.js.map +1 -0
  195. package/dist/record/base.d.ts +186 -0
  196. package/dist/record/base.d.ts.map +1 -0
  197. package/dist/record/base.js +1437 -0
  198. package/dist/record/base.js.map +1 -0
  199. package/dist/record/events.d.ts +71 -0
  200. package/dist/record/events.d.ts.map +1 -0
  201. package/dist/record/events.js +52 -0
  202. package/dist/record/events.js.map +1 -0
  203. package/dist/record/extensions.d.ts +51 -0
  204. package/dist/record/extensions.d.ts.map +1 -0
  205. package/dist/record/extensions.js +222 -0
  206. package/dist/record/extensions.js.map +1 -0
  207. package/dist/record/index.d.ts +7 -0
  208. package/dist/record/index.d.ts.map +1 -0
  209. package/dist/record/index.js +7 -0
  210. package/dist/record/index.js.map +1 -0
  211. package/dist/resolver/storage-backed-resolver.d.ts +23 -0
  212. package/dist/resolver/storage-backed-resolver.d.ts.map +1 -0
  213. package/dist/resolver/storage-backed-resolver.js +187 -0
  214. package/dist/resolver/storage-backed-resolver.js.map +1 -0
  215. package/dist/schemas/adapter-descriptor.d.ts +108 -0
  216. package/dist/schemas/adapter-descriptor.d.ts.map +1 -0
  217. package/dist/schemas/adapter-descriptor.js +101 -0
  218. package/dist/schemas/adapter-descriptor.js.map +1 -0
  219. package/dist/schemas/index.d.ts +14 -0
  220. package/dist/schemas/index.d.ts.map +1 -0
  221. package/dist/schemas/index.js +12 -0
  222. package/dist/schemas/index.js.map +1 -0
  223. package/dist/schemas/manifest-descriptor.d.ts +110 -0
  224. package/dist/schemas/manifest-descriptor.d.ts.map +1 -0
  225. package/dist/schemas/manifest-descriptor.js +114 -0
  226. package/dist/schemas/manifest-descriptor.js.map +1 -0
  227. package/dist/schemas/record/descriptor.d.ts +570 -0
  228. package/dist/schemas/record/descriptor.d.ts.map +1 -0
  229. package/dist/schemas/record/descriptor.js +389 -0
  230. package/dist/schemas/record/descriptor.js.map +1 -0
  231. package/dist/schemas/record/index.d.ts +8 -0
  232. package/dist/schemas/record/index.d.ts.map +1 -0
  233. package/dist/schemas/record/index.js +7 -0
  234. package/dist/schemas/record/index.js.map +1 -0
  235. package/dist/schemas/record/relation.d.ts +36 -0
  236. package/dist/schemas/record/relation.d.ts.map +1 -0
  237. package/dist/schemas/record/relation.js +37 -0
  238. package/dist/schemas/record/relation.js.map +1 -0
  239. package/dist/schemas/schema/descriptor.d.ts +231 -0
  240. package/dist/schemas/schema/descriptor.d.ts.map +1 -0
  241. package/dist/schemas/schema/descriptor.js +205 -0
  242. package/dist/schemas/schema/descriptor.js.map +1 -0
  243. package/dist/schemas/schema/index.d.ts +7 -0
  244. package/dist/schemas/schema/index.d.ts.map +1 -0
  245. package/dist/schemas/schema/index.js +7 -0
  246. package/dist/schemas/schema/index.js.map +1 -0
  247. package/dist/schemas/sync-bridge-descriptor.d.ts +124 -0
  248. package/dist/schemas/sync-bridge-descriptor.d.ts.map +1 -0
  249. package/dist/schemas/sync-bridge-descriptor.js +67 -0
  250. package/dist/schemas/sync-bridge-descriptor.js.map +1 -0
  251. package/dist/server/manifest-route.d.ts +92 -0
  252. package/dist/server/manifest-route.d.ts.map +1 -0
  253. package/dist/server/manifest-route.js +226 -0
  254. package/dist/server/manifest-route.js.map +1 -0
  255. package/dist/storage-policy.context.descriptor.d.ts +16 -0
  256. package/dist/storage-policy.context.descriptor.d.ts.map +1 -0
  257. package/dist/storage-policy.context.descriptor.js +16 -0
  258. package/dist/storage-policy.context.descriptor.js.map +1 -0
  259. package/dist/storage-policy.context.server.d.ts +14 -0
  260. package/dist/storage-policy.context.server.d.ts.map +1 -0
  261. package/dist/storage-policy.context.server.js +27 -0
  262. package/dist/storage-policy.context.server.js.map +1 -0
  263. package/dist/storage.plugin.d.ts +38 -0
  264. package/dist/storage.plugin.d.ts.map +1 -0
  265. package/dist/storage.plugin.js +204 -0
  266. package/dist/storage.plugin.js.map +1 -0
  267. package/dist/sync/cloud-pull.d.ts +15 -0
  268. package/dist/sync/cloud-pull.d.ts.map +1 -0
  269. package/dist/sync/cloud-pull.js +130 -0
  270. package/dist/sync/cloud-pull.js.map +1 -0
  271. package/dist/sync/cloud-record-crud-config.d.ts +19 -0
  272. package/dist/sync/cloud-record-crud-config.d.ts.map +1 -0
  273. package/dist/sync/cloud-record-crud-config.js +22 -0
  274. package/dist/sync/cloud-record-crud-config.js.map +1 -0
  275. package/dist/sync/record-sync-bridge.d.ts +5 -0
  276. package/dist/sync/record-sync-bridge.d.ts.map +1 -0
  277. package/dist/sync/record-sync-bridge.js +121 -0
  278. package/dist/sync/record-sync-bridge.js.map +1 -0
  279. package/dist/sync/resolve-sync-target.d.ts +23 -0
  280. package/dist/sync/resolve-sync-target.d.ts.map +1 -0
  281. package/dist/sync/resolve-sync-target.js +45 -0
  282. package/dist/sync/resolve-sync-target.js.map +1 -0
  283. package/dist/sync/schemas/cloud-pull.d.ts +25 -0
  284. package/dist/sync/schemas/cloud-pull.d.ts.map +1 -0
  285. package/dist/sync/schemas/cloud-pull.js +7 -0
  286. package/dist/sync/schemas/cloud-pull.js.map +1 -0
  287. package/dist/sync/schemas/index.d.ts +9 -0
  288. package/dist/sync/schemas/index.d.ts.map +1 -0
  289. package/dist/sync/schemas/index.js +9 -0
  290. package/dist/sync/schemas/index.js.map +1 -0
  291. package/dist/sync/schemas/sync-helpers.d.ts +17 -0
  292. package/dist/sync/schemas/sync-helpers.d.ts.map +1 -0
  293. package/dist/sync/schemas/sync-helpers.js +7 -0
  294. package/dist/sync/schemas/sync-helpers.js.map +1 -0
  295. package/dist/sync/schemas/sync-state.d.ts +65 -0
  296. package/dist/sync/schemas/sync-state.d.ts.map +1 -0
  297. package/dist/sync/schemas/sync-state.js +32 -0
  298. package/dist/sync/schemas/sync-state.js.map +1 -0
  299. package/dist/sync/sync-bridge.d.ts +80 -0
  300. package/dist/sync/sync-bridge.d.ts.map +1 -0
  301. package/dist/sync/sync-bridge.js +617 -0
  302. package/dist/sync/sync-bridge.js.map +1 -0
  303. package/dist/sync/sync-manifest.d.ts +20 -0
  304. package/dist/sync/sync-manifest.d.ts.map +1 -0
  305. package/dist/sync/sync-manifest.js +140 -0
  306. package/dist/sync/sync-manifest.js.map +1 -0
  307. package/dist/sync/sync-state.consumer.d.ts +23 -0
  308. package/dist/sync/sync-state.consumer.d.ts.map +1 -0
  309. package/dist/sync/sync-state.consumer.js +111 -0
  310. package/dist/sync/sync-state.consumer.js.map +1 -0
  311. package/dist/transform/index.d.ts +75 -0
  312. package/dist/transform/index.d.ts.map +1 -0
  313. package/dist/transform/index.js +81 -0
  314. package/dist/transform/index.js.map +1 -0
  315. package/dist/transform/transform-descriptor.d.ts +51 -0
  316. package/dist/transform/transform-descriptor.d.ts.map +1 -0
  317. package/dist/transform/transform-descriptor.js +30 -0
  318. package/dist/transform/transform-descriptor.js.map +1 -0
  319. package/dist/tui/storage-explorer.descriptor.d.ts +14 -0
  320. package/dist/tui/storage-explorer.descriptor.d.ts.map +1 -0
  321. package/dist/tui/storage-explorer.descriptor.js +29 -0
  322. package/dist/tui/storage-explorer.descriptor.js.map +1 -0
  323. package/dist/tui/storage-explorer.impl.consumer.d.ts +11 -0
  324. package/dist/tui/storage-explorer.impl.consumer.d.ts.map +1 -0
  325. package/dist/tui/storage-explorer.impl.consumer.js +13 -0
  326. package/dist/tui/storage-explorer.impl.consumer.js.map +1 -0
  327. package/dist/tui/storage-open.descriptor.d.ts +14 -0
  328. package/dist/tui/storage-open.descriptor.d.ts.map +1 -0
  329. package/dist/tui/storage-open.descriptor.js +28 -0
  330. package/dist/tui/storage-open.descriptor.js.map +1 -0
  331. package/dist/tui/storage-open.impl.consumer.d.ts +11 -0
  332. package/dist/tui/storage-open.impl.consumer.d.ts.map +1 -0
  333. package/dist/tui/storage-open.impl.consumer.js +13 -0
  334. package/dist/tui/storage-open.impl.consumer.js.map +1 -0
  335. package/dist/utils/error-context.d.ts +2 -0
  336. package/dist/utils/error-context.d.ts.map +1 -0
  337. package/dist/utils/error-context.js +17 -0
  338. package/dist/utils/error-context.js.map +1 -0
  339. package/package.json +241 -0
  340. package/src/adapters/index.ts +13 -0
  341. package/src/bridge/index.ts +2 -0
  342. package/src/bridge/storage-kind-bridge.ts +131 -0
  343. package/src/bridge/types.ts +46 -0
  344. package/src/cli/commands/list/storage.list.cli-command.descriptor.ts +20 -0
  345. package/src/cli/commands/list/storage.list.cli-command.impl.ts +72 -0
  346. package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.ts +28 -0
  347. package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.ts +171 -0
  348. package/src/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.ts +28 -0
  349. package/src/cli/commands/sync/push/storage.sync.push.cli-command.impl.ts +213 -0
  350. package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.ts +22 -0
  351. package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.ts +129 -0
  352. package/src/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.ts +17 -0
  353. package/src/cli/commands/sync/status/storage.sync.status.cli-command.impl.ts +192 -0
  354. package/src/cli/context.consumer.ts +195 -0
  355. package/src/cli/storage.cli-group.descriptor.ts +13 -0
  356. package/src/cli/storage.sync.cli-group.descriptor.ts +14 -0
  357. package/src/cli/types.ts +25 -0
  358. package/src/client/index.ts +10 -0
  359. package/src/client/list-browsable-adapters.ts +42 -0
  360. package/src/daemon/commands/sync.ts +225 -0
  361. package/src/docs/adapters.docs.descriptor.ts +225 -0
  362. package/src/docs/manifests.docs.descriptor.ts +318 -0
  363. package/src/docs/records.docs.descriptor.ts +271 -0
  364. package/src/docs/sync.docs.descriptor.ts +281 -0
  365. package/src/index.ts +109 -0
  366. package/src/interfaces/adapter.ts +451 -0
  367. package/src/interfaces/document-store.ts +74 -0
  368. package/src/interfaces/index.ts +117 -0
  369. package/src/interfaces/key-value.ts +112 -0
  370. package/src/interfaces/query-builder.ts +31 -0
  371. package/src/interfaces/record/index.ts +58 -0
  372. package/src/interfaces/record/interface.ts +723 -0
  373. package/src/interfaces/repository.ts +300 -0
  374. package/src/interfaces/schema/index.ts +37 -0
  375. package/src/interfaces/schema/schema-interface.ts +586 -0
  376. package/src/interfaces/schema/table-interface.ts +314 -0
  377. package/src/interfaces/storage-consumer-fs.ts +66 -0
  378. package/src/manifest/base.ts +594 -0
  379. package/src/manifest/cloud-sync.consumer.ts +120 -0
  380. package/src/manifest/index.ts +7 -0
  381. package/src/manifest/source-policy.ts +74 -0
  382. package/src/paths.ts +171 -0
  383. package/src/policy/context.ts +30 -0
  384. package/src/policy/index.ts +20 -0
  385. package/src/policy/overrides.ts +46 -0
  386. package/src/policy/persistence.ts +117 -0
  387. package/src/policy/types.ts +28 -0
  388. package/src/record/base.ts +1872 -0
  389. package/src/record/events.ts +56 -0
  390. package/src/record/extensions.ts +308 -0
  391. package/src/record/index.ts +7 -0
  392. package/src/resolver/storage-backed-resolver.ts +255 -0
  393. package/src/schemas/adapter-descriptor.ts +128 -0
  394. package/src/schemas/index.ts +104 -0
  395. package/src/schemas/manifest-descriptor.ts +143 -0
  396. package/src/schemas/record/descriptor.ts +621 -0
  397. package/src/schemas/record/index.ts +60 -0
  398. package/src/schemas/record/relation.ts +49 -0
  399. package/src/schemas/schema/descriptor.ts +278 -0
  400. package/src/schemas/schema/index.ts +14 -0
  401. package/src/schemas/sync-bridge-descriptor.ts +143 -0
  402. package/src/server/manifest-route.ts +319 -0
  403. package/src/storage-policy.context.descriptor.ts +17 -0
  404. package/src/storage-policy.context.server.ts +34 -0
  405. package/src/storage.plugin.ts +264 -0
  406. package/src/sync/cloud-pull.ts +202 -0
  407. package/src/sync/cloud-record-crud-config.ts +41 -0
  408. package/src/sync/record-sync-bridge.ts +183 -0
  409. package/src/sync/resolve-sync-target.ts +57 -0
  410. package/src/sync/schemas/cloud-pull.ts +26 -0
  411. package/src/sync/schemas/index.ts +18 -0
  412. package/src/sync/schemas/sync-helpers.ts +18 -0
  413. package/src/sync/schemas/sync-state.ts +41 -0
  414. package/src/sync/sync-bridge.ts +763 -0
  415. package/src/sync/sync-manifest.ts +212 -0
  416. package/src/sync/sync-state.consumer.ts +144 -0
  417. package/src/transform/index.ts +130 -0
  418. package/src/transform/transform-descriptor.ts +53 -0
  419. package/src/tui/storage-explorer.descriptor.ts +32 -0
  420. package/src/tui/storage-explorer.impl.consumer.ts +14 -0
  421. package/src/tui/storage-open.descriptor.ts +31 -0
  422. package/src/tui/storage-open.impl.consumer.ts +14 -0
  423. package/src/utils/error-context.ts +19 -0
@@ -0,0 +1,586 @@
1
+ /**
2
+ * Storage Schema Interface
3
+ *
4
+ * Defines the interface for multi-table schemas with relations.
5
+ * This is what gets resolved when you query for a storage/schema descriptor.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const schema = await runtime
10
+ * .query('storage/schema')
11
+ * .withId('session')
12
+ * .resolve();
13
+ *
14
+ * // Access individual tables
15
+ * const sessions = schema.table('sessions');
16
+ * const todos = schema.table('todos');
17
+ *
18
+ * // Cross-table operations
19
+ * const sessionWithTodos = await schema.getTransaction(async (tx) => {
20
+ * const session = await sessions.create({ ... });
21
+ * await todos.create({ sessionId: session.id, title: 'First todo' });
22
+ * return session;
23
+ * });
24
+ *
25
+ * // Schema-level operations
26
+ * await schema.migrate();
27
+ * await schema.backup();
28
+ * ```
29
+ */
30
+
31
+ import type { z } from 'zod/v4';
32
+ import type { StorageRelation } from '../../schemas/record';
33
+ import type { StorageTableDefinition } from '../../schemas/schema';
34
+ import type { StorageTableInterface } from './table-interface';
35
+ import type { TransactionFn, TransactionContext } from '../record';
36
+
37
+ // MIGRATION TYPES
38
+
39
+ /**
40
+ * Migration status
41
+ */
42
+ export interface MigrationStatus {
43
+ /** Current schema version */
44
+ currentVersion: number;
45
+ /** Latest available version */
46
+ latestVersion: number;
47
+ /** Whether migrations are pending */
48
+ pending: boolean;
49
+ /** List of applied migrations */
50
+ applied: Array<{
51
+ version: number;
52
+ name?: string;
53
+ appliedAt: Date;
54
+ }>;
55
+ /** List of pending migrations */
56
+ pendingMigrations: Array<{
57
+ version: number;
58
+ name?: string;
59
+ }>;
60
+ }
61
+
62
+ /**
63
+ * Migration options
64
+ */
65
+ export interface MigrationOptions {
66
+ /** Target version (default: latest) */
67
+ targetVersion?: number;
68
+ /** Dry run (don't actually apply migrations) */
69
+ dryRun?: boolean;
70
+ /** Skip migrations that fail */
71
+ skipFailures?: boolean;
72
+ /** Force apply even if already applied */
73
+ force?: boolean;
74
+ }
75
+
76
+ /**
77
+ * Migration result
78
+ */
79
+ export interface MigrationResult {
80
+ /** Whether migration was successful */
81
+ success: boolean;
82
+ /** Applied migrations */
83
+ applied: Array<{
84
+ version: number;
85
+ name?: string;
86
+ duration: number;
87
+ }>;
88
+ /** Failed migrations */
89
+ failed: Array<{
90
+ version: number;
91
+ name?: string;
92
+ error: Error;
93
+ }>;
94
+ /** Total duration */
95
+ duration: number;
96
+ }
97
+
98
+ // BACKUP TYPES
99
+
100
+ /**
101
+ * Backup options
102
+ */
103
+ export interface BackupOptions {
104
+ /** Backup name/identifier */
105
+ name?: string;
106
+ /** Tables to include (default: all) */
107
+ tables?: string[];
108
+ /** Tables to exclude */
109
+ excludeTables?: string[];
110
+ /** Include schema definition */
111
+ includeSchema?: boolean;
112
+ /** Compression algorithm */
113
+ compression?: 'none' | 'gzip' | 'brotli';
114
+ /** Output path */
115
+ path?: string;
116
+ }
117
+
118
+ /**
119
+ * Backup result
120
+ */
121
+ export interface BackupResult {
122
+ /** Backup ID */
123
+ id: string;
124
+ /** Backup name */
125
+ name: string;
126
+ /** Backup path */
127
+ path: string;
128
+ /** Backup size in bytes */
129
+ size: number;
130
+ /** Tables included */
131
+ tables: string[];
132
+ /** Backup timestamp */
133
+ createdAt: Date;
134
+ /** Checksum for verification */
135
+ checksum: string;
136
+ }
137
+
138
+ /**
139
+ * Restore options
140
+ */
141
+ export interface RestoreOptions {
142
+ /** Backup ID or path */
143
+ backup: string;
144
+ /** Tables to restore (default: all in backup) */
145
+ tables?: string[];
146
+ /** Drop existing tables before restore */
147
+ dropExisting?: boolean;
148
+ /** Verify checksum before restore */
149
+ verifyChecksum?: boolean;
150
+ /** Continue on errors */
151
+ continueOnError?: boolean;
152
+ }
153
+
154
+ /**
155
+ * Restore result
156
+ */
157
+ export interface RestoreResult {
158
+ /** Whether restore was successful */
159
+ success: boolean;
160
+ /** Restored tables */
161
+ tables: string[];
162
+ /** Number of records restored per table */
163
+ recordCounts: Record<string, number>;
164
+ /** Errors encountered */
165
+ errors: Array<{ table: string; error: Error }>;
166
+ /** Duration in milliseconds */
167
+ duration: number;
168
+ }
169
+
170
+ // SYNC TYPES
171
+
172
+ /**
173
+ * Sync status
174
+ */
175
+ export interface SyncStatus {
176
+ /** Whether sync is enabled */
177
+ enabled: boolean;
178
+ /** Last sync time */
179
+ lastSync?: Date;
180
+ /** Sync direction */
181
+ direction: 'bidirectional' | 'to-cloud' | 'from-cloud';
182
+ /** Whether sync is in progress */
183
+ inProgress: boolean;
184
+ /** Number of pending changes */
185
+ pendingChanges: number;
186
+ /** Sync errors */
187
+ errors: Array<{ table: string; error: Error; timestamp: Date }>;
188
+ }
189
+
190
+ /**
191
+ * Sync options
192
+ */
193
+ export interface SyncOptions {
194
+ /** Force sync even if already in progress */
195
+ force?: boolean;
196
+ /** Tables to sync (default: all) */
197
+ tables?: string[];
198
+ /** Direction override */
199
+ direction?: 'bidirectional' | 'to-cloud' | 'from-cloud';
200
+ /** Dry run (don't actually sync) */
201
+ dryRun?: boolean;
202
+ }
203
+
204
+ /**
205
+ * Sync result
206
+ */
207
+ export interface SyncResult {
208
+ /** Whether sync was successful */
209
+ success: boolean;
210
+ /** Number of changes pushed */
211
+ pushed: number;
212
+ /** Number of changes pulled */
213
+ pulled: number;
214
+ /** Conflicts detected */
215
+ conflicts: Array<{
216
+ table: string;
217
+ id: string;
218
+ local: unknown;
219
+ remote: unknown;
220
+ }>;
221
+ /** Duration in milliseconds */
222
+ duration: number;
223
+ }
224
+
225
+ // QUERY TYPES
226
+
227
+ /**
228
+ * Cross-table query options
229
+ */
230
+ export interface CrossTableQueryOptions {
231
+ /** Tables to include */
232
+ tables: string[];
233
+ /** Join conditions */
234
+ joins: Array<{
235
+ from: { table: string; field: string };
236
+ to: { table: string; field: string };
237
+ type?: 'inner' | 'left' | 'right' | 'full';
238
+ }>;
239
+ /** Filter conditions */
240
+ where?: Record<string, unknown>;
241
+ /** Order by */
242
+ orderBy?: Array<{ table: string; field: string; direction: 'asc' | 'desc' }>;
243
+ /** Limit */
244
+ limit?: number;
245
+ /** Offset */
246
+ offset?: number;
247
+ }
248
+
249
+ // SCHEMA METADATA
250
+
251
+ /**
252
+ * Schema statistics
253
+ */
254
+ export interface SchemaStatistics {
255
+ /** Table statistics */
256
+ tables: Record<
257
+ string,
258
+ {
259
+ /** Number of records */
260
+ recordCount: number;
261
+ /** Table size in bytes */
262
+ size: number;
263
+ /** Index size in bytes */
264
+ indexSize: number;
265
+ /** Last modified */
266
+ lastModified?: Date;
267
+ }
268
+ >;
269
+ /** Total database size */
270
+ totalSize: number;
271
+ /** Database file path */
272
+ path: string;
273
+ }
274
+
275
+ /**
276
+ * Schema health status
277
+ */
278
+ export interface SchemaHealthStatus {
279
+ /** Whether schema is healthy */
280
+ healthy: boolean;
281
+ /** Database connection status */
282
+ connected: boolean;
283
+ /** Migration status */
284
+ migrations: MigrationStatus;
285
+ /** Integrity check result */
286
+ integrity: {
287
+ valid: boolean;
288
+ errors: string[];
289
+ };
290
+ /** Performance metrics */
291
+ performance: {
292
+ averageQueryTime: number;
293
+ slowQueries: number;
294
+ cacheHitRate: number;
295
+ };
296
+ }
297
+
298
+ // STORAGE SCHEMA INTERFACE
299
+
300
+ /**
301
+ * Storage Schema Interface
302
+ *
303
+ * Provides access to multiple tables with cross-table operations.
304
+ */
305
+ export interface StorageSchemaInterface<
306
+ TTables extends Record<string, StorageTableDefinition> = Record<string, StorageTableDefinition>
307
+ > {
308
+ // METADATA
309
+
310
+ /** Schema ID */
311
+ readonly id: string;
312
+
313
+ /** Schema name */
314
+ readonly name: string;
315
+
316
+ /** Database name */
317
+ readonly dbName: string;
318
+
319
+ /** Available table names */
320
+ readonly tableNames: Extract<keyof TTables, string>[];
321
+
322
+ /** Zod schemas for all tables */
323
+ readonly schemas: { [K in keyof TTables]: z.ZodType };
324
+
325
+ /** Relations between tables */
326
+ readonly relations: Record<string, Record<string, StorageRelation>>;
327
+
328
+ // TABLE ACCESS
329
+
330
+ /**
331
+ * Get a table interface for operations
332
+ *
333
+ * @param tableName - Table name
334
+ * @returns Table interface
335
+ */
336
+ table<K extends Extract<keyof TTables, string>>(
337
+ tableName: K
338
+ ): StorageTableInterface<
339
+ z.infer<TTables[K]['schema']>,
340
+ TTables[K]['relations'] extends Record<string, StorageRelation>
341
+ ? TTables[K]['relations']
342
+ : Record<string, StorageRelation>
343
+ >;
344
+
345
+ /**
346
+ * Check if table exists
347
+ *
348
+ * @param tableName - Table name
349
+ * @returns True if table exists
350
+ */
351
+ hasTable(tableName: string): boolean;
352
+
353
+ /**
354
+ * Get all table interfaces
355
+ *
356
+ * @returns Map of table name to interface
357
+ */
358
+ getTables(): Map<string, StorageTableInterface>;
359
+
360
+ // TRANSACTIONS
361
+
362
+ /**
363
+ * Execute operations in a transaction
364
+ *
365
+ * @param fn - Transaction function
366
+ * @returns Transaction result
367
+ */
368
+ transaction<T>(fn: TransactionFn<T>): Promise<T>;
369
+
370
+ /**
371
+ * Begin a transaction explicitly
372
+ *
373
+ * @returns Transaction context
374
+ */
375
+ beginTransaction(): Promise<TransactionContext>;
376
+
377
+ /**
378
+ * Commit a transaction
379
+ *
380
+ * @param tx - Transaction context
381
+ */
382
+ commitTransaction(tx: TransactionContext): Promise<void>;
383
+
384
+ /**
385
+ * Rollback a transaction
386
+ *
387
+ * @param tx - Transaction context
388
+ */
389
+ rollbackTransaction(tx: TransactionContext): Promise<void>;
390
+
391
+ // CROSS-TABLE OPERATIONS
392
+
393
+ /**
394
+ * Execute a cross-table query with joins
395
+ *
396
+ * @param options - Query options
397
+ * @returns Query results
398
+ */
399
+ query(options: CrossTableQueryOptions): Promise<Record<string, unknown>[]>;
400
+
401
+ /**
402
+ * Batch operations across multiple tables
403
+ *
404
+ * @param operations - Array of operations
405
+ * @returns Array of results
406
+ */
407
+ batch(
408
+ operations: Array<{
409
+ table: string;
410
+ operation: 'create' | 'update' | 'delete';
411
+ data?: unknown;
412
+ id?: string;
413
+ }>
414
+ ): Promise<unknown[]>;
415
+
416
+ /**
417
+ * Truncate multiple tables
418
+ *
419
+ * @param tables - Table names (default: all tables)
420
+ * @param options - Truncate options
421
+ */
422
+ truncate(
423
+ tables?: string[],
424
+ options?: { restartIdentity?: boolean; cascade?: boolean }
425
+ ): Promise<void>;
426
+
427
+ // MIGRATIONS
428
+
429
+ /**
430
+ * Run migrations
431
+ *
432
+ * @param options - Migration options
433
+ * @returns Migration result
434
+ */
435
+ migrate(options?: MigrationOptions): Promise<MigrationResult>;
436
+
437
+ /**
438
+ * Rollback migrations
439
+ *
440
+ * @param steps - Number of migrations to rollback (default: 1)
441
+ * @returns Migration result
442
+ */
443
+ rollback(steps?: number): Promise<MigrationResult>;
444
+
445
+ /**
446
+ * Get migration status
447
+ *
448
+ * @returns Migration status
449
+ */
450
+ getMigrationStatus(): Promise<MigrationStatus>;
451
+
452
+ /**
453
+ * Reset schema (drop all tables and re-run migrations)
454
+ *
455
+ * @param options - Reset options
456
+ */
457
+ reset(options?: { seed?: boolean }): Promise<void>;
458
+
459
+ // BACKUP & RESTORE
460
+
461
+ /**
462
+ * Create a backup
463
+ *
464
+ * @param options - Backup options
465
+ * @returns Backup result
466
+ */
467
+ backup(options?: BackupOptions): Promise<BackupResult>;
468
+
469
+ /**
470
+ * Restore from a backup
471
+ *
472
+ * @param options - Restore options
473
+ * @returns Restore result
474
+ */
475
+ restore(options: RestoreOptions): Promise<RestoreResult>;
476
+
477
+ /**
478
+ * List available backups
479
+ *
480
+ * @returns List of backups
481
+ */
482
+ listBackups(): Promise<
483
+ Array<{
484
+ id: string;
485
+ name: string;
486
+ createdAt: Date;
487
+ size: number;
488
+ tables: string[];
489
+ }>
490
+ >;
491
+
492
+ /**
493
+ * Delete a backup
494
+ *
495
+ * @param backupId - Backup ID
496
+ */
497
+ deleteBackup(backupId: string): Promise<void>;
498
+
499
+ // SYNC & REPLICATION
500
+
501
+ /**
502
+ * Sync with remote storage
503
+ *
504
+ * @param options - Sync options
505
+ * @returns Sync result
506
+ */
507
+ sync(options?: SyncOptions): Promise<SyncResult>;
508
+
509
+ /**
510
+ * Get sync status
511
+ *
512
+ * @returns Sync status
513
+ */
514
+ getSyncStatus(): Promise<SyncStatus>;
515
+
516
+ /**
517
+ * Enable sync
518
+ */
519
+ enableSync(): Promise<void>;
520
+
521
+ /**
522
+ * Disable sync
523
+ */
524
+ disableSync(): Promise<void>;
525
+
526
+ // STATISTICS & MONITORING
527
+
528
+ /**
529
+ * Get schema statistics
530
+ *
531
+ * @returns Schema statistics
532
+ */
533
+ getStatistics(): Promise<SchemaStatistics>;
534
+
535
+ /**
536
+ * Get health status
537
+ *
538
+ * @returns Health status
539
+ */
540
+ getHealth(): Promise<SchemaHealthStatus>;
541
+
542
+ /**
543
+ * Check database integrity
544
+ *
545
+ * @returns Integrity check result
546
+ */
547
+ checkIntegrity(): Promise<{ valid: boolean; errors: string[] }>;
548
+
549
+ /**
550
+ * Optimize database (vacuum, analyze, etc.)
551
+ */
552
+ optimize(): Promise<void>;
553
+
554
+ // UTILITIES
555
+
556
+ /**
557
+ * Get adapter ID
558
+ *
559
+ * @returns Adapter ID
560
+ */
561
+ getAdapterId(): string;
562
+
563
+ /**
564
+ * Export schema definition
565
+ *
566
+ * @returns Schema definition
567
+ */
568
+ exportSchema(): Record<string, unknown>;
569
+
570
+ /**
571
+ * Validate data against table schema
572
+ *
573
+ * @param tableName - Table name
574
+ * @param data - Data to validate
575
+ * @returns Validation result
576
+ */
577
+ validate<K extends Extract<keyof TTables, string>>(
578
+ tableName: K,
579
+ data: unknown
580
+ ): Promise<{ success: boolean; data?: unknown; errors?: z.ZodError }>;
581
+
582
+ /**
583
+ * Close all connections and cleanup
584
+ */
585
+ close(): Promise<void>;
586
+ }