@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,31 @@
1
+ /**
2
+ * Query-builder database interface for Drizzle-ORM-style consumers.
3
+ *
4
+ * Feature packages must NOT import concrete storage adapter types.
5
+ * This structural interface lets them type db parameters without
6
+ * pulling in adapter-specific dependencies. Any Drizzle database
7
+ * instance satisfies it.
8
+ */
9
+ export interface QueryBuilderDatabase {
10
+ select: (...args: any[]) => any;
11
+ selectDistinct: (...args: any[]) => any;
12
+ insert: (into: any) => any;
13
+ update: (table: any) => any;
14
+ delete: (from: any) => any;
15
+ run: (query: any) => any;
16
+ all: <T = unknown>(query: any) => Promise<T[]>;
17
+ get: <T = unknown>(query: any) => Promise<T | undefined>;
18
+ values: <T extends unknown[] = unknown[]>(query: any) => Promise<T[]>;
19
+ transaction: (transaction: (tx: any) => any, config?: any) => any;
20
+ $count: (source: any, filters?: any) => any;
21
+ /** Raw SQL execution — present on Postgres-style drivers, optional on SQLite-style. */
22
+ execute?: (query: any) => any;
23
+ /** Relational query builder – present when a schema was provided to drizzle(). */
24
+ query: Record<string, any>;
25
+ _: {
26
+ fullSchema: Record<string, any>;
27
+ schema: any;
28
+ tableNamesMap: Record<string, string>;
29
+ };
30
+ }
31
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAChC,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACxC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACzB,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/C,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAClE,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAC5C,uFAAuF;IACvF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9B,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAC3F"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Query-builder database interface for Drizzle-ORM-style consumers.
3
+ *
4
+ * Feature packages must NOT import concrete storage adapter types.
5
+ * This structural interface lets them type db parameters without
6
+ * pulling in adapter-specific dependencies. Any Drizzle database
7
+ * instance satisfies it.
8
+ */
9
+ export {};
10
+ /* eslint-enable @typescript-eslint/no-explicit-any */
11
+ //# sourceMappingURL=query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/interfaces/query-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AAuBH,sDAAsD"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Storage Record Interface Exports
3
+ *
4
+ * Exports all types and interfaces for storage/record operations.
5
+ */
6
+ export { type WhereFilter, type OrderBy, type IncludeRelations, type PaginationOptions, type QueryOptions, type QueryResult, type SearchOptions, type SearchResult, type TreeNode, type HierarchyOptions, type CreateInput, type CreateManyOptions, type UpdateInput, type UpdateOptions, type UpdateResult, type DeleteOptions, type DeleteResult, type LoadedRelation, type RecordWithRelations, type TransactionContext, type TransactionFn, type AggregationFunction, type AggregationOptions, type AggregationResult, type StreamOptions, type RawQueryOptions, type StorageRecordInterface } from './interface';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/record/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,WAAW,EAGhB,KAAK,aAAa,EAClB,KAAK,YAAY,EAGjB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAGtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAGjB,KAAK,aAAa,EAClB,KAAK,YAAY,EAGjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAGxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAGlB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAGtB,KAAK,aAAa,EAGlB,KAAK,eAAe,EAGpB,KAAK,sBAAsB,EAC3B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Storage Record Interface Exports
3
+ *
4
+ * Exports all types and interfaces for storage/record operations.
5
+ */
6
+ export {} from './interface.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/record/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAmDN,MAAM,aAAa,CAAC"}
@@ -0,0 +1,593 @@
1
+ /**
2
+ * Storage Record Interface
3
+ *
4
+ * Defines the interface for CRUD operations on a single table.
5
+ * This is what gets resolved when you query for a storage/record descriptor.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const todos = await runtime
10
+ * .query('storage/record')
11
+ * .withId('session.todos')
12
+ * .resolve();
13
+ *
14
+ * // Create
15
+ * const todo = await todos.create({
16
+ * sessionId: 'session-123',
17
+ * title: 'Implement storage',
18
+ * status: 'in_progress'
19
+ * });
20
+ *
21
+ * // Get
22
+ * const todo = await todos.get('todo-123');
23
+ *
24
+ * // List with filters
25
+ * const todos = await todos.list({
26
+ * where: { sessionId: 'session-123', status: 'pending' },
27
+ * include: { session: true },
28
+ * orderBy: { createdAt: 'desc' },
29
+ * limit: 50
30
+ * });
31
+ *
32
+ * // Full-text search
33
+ * const results = await todos.search('implement storage', {
34
+ * where: { sessionId: 'session-123' },
35
+ * highlight: true
36
+ * });
37
+ *
38
+ * // Get todo tree
39
+ * const tree = await todos.getTree({ where: { sessionId: 'session-123' } });
40
+ *
41
+ * // Update
42
+ * await todos.update('todo-123', { status: 'completed' });
43
+ *
44
+ * // Delete
45
+ * await todos.delete('todo-123');
46
+ * ```
47
+ */
48
+ import type { z } from 'zod/v4';
49
+ import type { StorageRelation } from '../../schemas/record/relation';
50
+ /**
51
+ * Filter conditions for queries
52
+ */
53
+ export type WhereFilter<T> = {
54
+ [P in keyof T]?: T[P] | {
55
+ eq?: T[P];
56
+ ne?: T[P];
57
+ gt?: T[P];
58
+ gte?: T[P];
59
+ lt?: T[P];
60
+ lte?: T[P];
61
+ in?: T[P][];
62
+ notIn?: T[P][];
63
+ like?: string;
64
+ ilike?: string;
65
+ contains?: string;
66
+ startsWith?: string;
67
+ endsWith?: string;
68
+ isNull?: boolean;
69
+ isNotNull?: boolean;
70
+ between?: [T[P], T[P]];
71
+ };
72
+ };
73
+ /**
74
+ * Order by specification
75
+ */
76
+ export type OrderBy<T> = {
77
+ [P in keyof T]?: 'asc' | 'desc';
78
+ } | {
79
+ field: keyof T;
80
+ direction: 'asc' | 'desc';
81
+ }[];
82
+ /**
83
+ * Relation include specification
84
+ */
85
+ export type IncludeRelations<R extends string = string> = R | R[] | {
86
+ [K in R]?: boolean | IncludeRelations;
87
+ };
88
+ /**
89
+ * Pagination options
90
+ */
91
+ export interface PaginationOptions {
92
+ /** Number of items to return */
93
+ limit?: number;
94
+ /** Number of items to skip */
95
+ offset?: number;
96
+ /** Cursor for cursor-based pagination */
97
+ cursor?: string;
98
+ /** Cursor field (default: primaryKey) */
99
+ cursorField?: string;
100
+ }
101
+ /**
102
+ * Query options for list operations
103
+ */
104
+ export interface QueryOptions<T, R extends string = string> extends PaginationOptions {
105
+ /** Filter conditions */
106
+ where?: WhereFilter<T>;
107
+ /** Relations to include */
108
+ include?: IncludeRelations<R>;
109
+ /** Order by fields */
110
+ orderBy?: OrderBy<T>;
111
+ /** Fields to select */
112
+ select?: (keyof T)[];
113
+ /** Whether to include soft-deleted records */
114
+ includeDeleted?: boolean;
115
+ /** Distinct fields */
116
+ distinct?: keyof T | (keyof T)[];
117
+ /** Group by fields */
118
+ groupBy?: keyof T | (keyof T)[];
119
+ /** Having conditions (for groupBy) */
120
+ having?: Record<string, unknown>;
121
+ /** Include computed fields in results */
122
+ includeComputed?: (keyof T)[] | boolean;
123
+ }
124
+ /**
125
+ * Query result with pagination metadata
126
+ */
127
+ export interface QueryResult<T> {
128
+ /** Result items */
129
+ items: T[];
130
+ /** Total count (without pagination) */
131
+ total?: number;
132
+ /** Whether there are more items */
133
+ hasMore?: boolean;
134
+ /** Next cursor (for cursor-based pagination) */
135
+ nextCursor?: string;
136
+ /** Previous cursor (for cursor-based pagination) */
137
+ prevCursor?: string;
138
+ }
139
+ /**
140
+ * Full-text search options
141
+ */
142
+ export interface SearchOptions<T, R extends string = string> extends QueryOptions<T, R> {
143
+ /** Highlight matches in results */
144
+ highlight?: boolean;
145
+ /** Fields to search (default: all fts fields) */
146
+ fields?: (keyof T)[];
147
+ /** Rank by relevance score */
148
+ rankByRelevance?: boolean;
149
+ /** Minimum relevance score (0-1) */
150
+ minScore?: number;
151
+ /** Highlight tag prefix (default: <mark>) */
152
+ highlightPrefix?: string;
153
+ /** Highlight tag suffix (default: </mark>) */
154
+ highlightSuffix?: string;
155
+ }
156
+ /**
157
+ * Search result with relevance score
158
+ */
159
+ export interface SearchResult<T> extends QueryResult<T> {
160
+ /** Relevance scores per item */
161
+ scores?: number[];
162
+ /** Highlighted snippets per item */
163
+ highlights?: Map<string, string[]>;
164
+ }
165
+ /**
166
+ * Tree node for hierarchical data
167
+ */
168
+ export interface TreeNode<T> {
169
+ /** The record data */
170
+ record: T;
171
+ /** Child nodes */
172
+ children: TreeNode<T>[];
173
+ /** Depth in tree (0 = root) */
174
+ depth: number;
175
+ /** Path from root (array of IDs) */
176
+ path?: string[];
177
+ }
178
+ /**
179
+ * Hierarchy query options
180
+ */
181
+ export interface HierarchyOptions<T, R extends string = string> extends QueryOptions<T, R> {
182
+ /** Maximum depth to traverse (default: unlimited) */
183
+ maxDepth?: number;
184
+ /** Include depth in results */
185
+ includeDepth?: boolean;
186
+ /** Include path from root */
187
+ includePath?: boolean;
188
+ }
189
+ /**
190
+ * Create input (excludes auto-managed fields)
191
+ */
192
+ export type CreateInput<T> = Omit<T, 'id' | 'createdAt' | 'updatedAt'> & {
193
+ /** Override auto-generated ID */
194
+ id?: string;
195
+ /** Override auto-generated createdAt */
196
+ createdAt?: string | Date;
197
+ /** Override auto-generated updatedAt */
198
+ updatedAt?: string | Date;
199
+ /** Override deletedAt when importing tombstones */
200
+ deletedAt?: string | Date | null;
201
+ };
202
+ /**
203
+ * Create many options
204
+ */
205
+ export interface CreateManyOptions {
206
+ /** Skip duplicate IDs */
207
+ skipDuplicates?: boolean;
208
+ /** Batch size for bulk insert */
209
+ batchSize?: number;
210
+ }
211
+ /**
212
+ * Update input (partial with conditions)
213
+ */
214
+ export type UpdateInput<T> = Partial<Omit<T, 'id' | 'createdAt'>>;
215
+ /**
216
+ * Update options
217
+ */
218
+ export interface UpdateOptions {
219
+ /** Update only if conditions match */
220
+ where?: Record<string, unknown>;
221
+ /** Increment fields */
222
+ increment?: Record<string, number>;
223
+ /** Decrement fields */
224
+ decrement?: Record<string, number>;
225
+ /** Set fields to null */
226
+ unset?: string[];
227
+ /** Push to array fields */
228
+ push?: Record<string, unknown | unknown[]>;
229
+ /** Pull from array fields */
230
+ pull?: Record<string, unknown | unknown[]>;
231
+ }
232
+ /**
233
+ * Update result
234
+ */
235
+ export interface UpdateResult {
236
+ /** Number of records updated */
237
+ count: number;
238
+ /** Whether any records were updated */
239
+ success: boolean;
240
+ }
241
+ /**
242
+ * Delete options
243
+ */
244
+ export interface DeleteOptions {
245
+ /** Force delete (even with soft delete enabled) */
246
+ force?: boolean;
247
+ /** Delete only if conditions match */
248
+ where?: Record<string, unknown>;
249
+ }
250
+ /**
251
+ * Delete result
252
+ */
253
+ export interface DeleteResult {
254
+ /** Number of records deleted */
255
+ count: number;
256
+ /** Whether any records were deleted */
257
+ success: boolean;
258
+ }
259
+ /**
260
+ * Loaded relation data
261
+ */
262
+ export type LoadedRelation<T, R extends StorageRelation> = R extends {
263
+ type: 'belongs_to' | 'has_one';
264
+ } ? T | null : R extends {
265
+ type: 'has_many' | 'many_to_many';
266
+ } ? T[] : never;
267
+ /**
268
+ * Record with loaded relations
269
+ */
270
+ export type RecordWithRelations<T, R extends Record<string, StorageRelation>> = T & {
271
+ [K in keyof R]?: LoadedRelation<unknown, R[K]>;
272
+ };
273
+ /**
274
+ * Transaction context
275
+ */
276
+ export interface TransactionContext {
277
+ /** Transaction ID */
278
+ id: string;
279
+ /** Transaction start time */
280
+ startTime: number;
281
+ /** Whether transaction is active */
282
+ isActive: boolean;
283
+ }
284
+ /**
285
+ * Transaction function
286
+ */
287
+ export type TransactionFn<T> = (tx: TransactionContext) => Promise<T>;
288
+ /**
289
+ * Aggregation functions
290
+ */
291
+ export type AggregationFunction = 'count' | 'sum' | 'avg' | 'min' | 'max';
292
+ /**
293
+ * Aggregation options
294
+ */
295
+ export interface AggregationOptions<T> {
296
+ /** Field to aggregate (not needed for count) */
297
+ field?: keyof T;
298
+ /** Filter conditions */
299
+ where?: WhereFilter<T>;
300
+ /** Group by fields */
301
+ groupBy?: keyof T | (keyof T)[];
302
+ /** Having conditions */
303
+ having?: Record<string, unknown>;
304
+ /** Multiple aggregations in one query */
305
+ aggregations?: {
306
+ [alias: string]: {
307
+ function: AggregationFunction;
308
+ field?: keyof T;
309
+ };
310
+ };
311
+ /** Include grouped values in result */
312
+ includeGroups?: boolean;
313
+ }
314
+ /**
315
+ * Aggregation result
316
+ */
317
+ export interface AggregationResult {
318
+ /** Aggregation value */
319
+ value: number;
320
+ /** Group values (if grouped) */
321
+ group?: Record<string, unknown>;
322
+ /** Multiple aggregation values when using aggregations */
323
+ values?: Record<string, number>;
324
+ }
325
+ /**
326
+ * Stream options
327
+ */
328
+ export interface StreamOptions<T> extends QueryOptions<T> {
329
+ /** Batch size for streaming */
330
+ batchSize?: number;
331
+ /** High water mark for backpressure */
332
+ highWaterMark?: number;
333
+ }
334
+ /**
335
+ * Raw query options
336
+ */
337
+ export interface RawQueryOptions<R = unknown> {
338
+ /** SQL query with placeholders */
339
+ sql: string;
340
+ /** Query parameters */
341
+ params?: unknown[];
342
+ /** Schema for result validation */
343
+ schema?: z.ZodType<R>;
344
+ }
345
+ /**
346
+ * Storage Record Interface
347
+ *
348
+ * Provides CRUD operations on a single table with relations.
349
+ */
350
+ export interface StorageRecordInterface<T = unknown, R extends Record<string, StorageRelation> = Record<string, StorageRelation>> {
351
+ /** Table name */
352
+ readonly tableName: string;
353
+ /** Primary key field */
354
+ readonly primaryKey: string;
355
+ /** Zod schema for validation */
356
+ readonly schema: z.ZodType<T>;
357
+ /** Available relations */
358
+ readonly relations: R;
359
+ /**
360
+ * Create a new record
361
+ *
362
+ * @param data - Record data
363
+ * @returns Created record
364
+ */
365
+ create(data: CreateInput<T>): Promise<T>;
366
+ /**
367
+ * Create multiple records
368
+ *
369
+ * @param data - Array of record data
370
+ * @param options - Create many options
371
+ * @returns Created records
372
+ */
373
+ createMany(data: CreateInput<T>[], options?: CreateManyOptions): Promise<T[]>;
374
+ /**
375
+ * Get a single record by ID
376
+ *
377
+ * @param id - Record ID
378
+ * @param options - Query options (include relations, select fields)
379
+ * @returns Record or null if not found
380
+ */
381
+ get(id: string, options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select' | 'includeComputed'>): Promise<T | null>;
382
+ /**
383
+ * Get a single record or throw if not found
384
+ *
385
+ * @param id - Record ID
386
+ * @param options - Query options
387
+ * @returns Record
388
+ * @throws Error if record not found
389
+ */
390
+ getOrThrow(id: string, options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select' | 'includeComputed'>): Promise<T>;
391
+ /**
392
+ * Get many records by IDs
393
+ *
394
+ * @param ids - Record IDs
395
+ * @param options - Query options
396
+ * @returns Records (may be fewer than requested if some not found)
397
+ */
398
+ getMany(ids: string[], options?: Pick<QueryOptions<T, string & keyof R>, 'include' | 'select' | 'includeComputed'>): Promise<T[]>;
399
+ /**
400
+ * List records with filtering, pagination, and relations
401
+ *
402
+ * @param options - Query options
403
+ * @returns Query result with items and pagination metadata
404
+ */
405
+ list(options?: QueryOptions<T, string & keyof R>): Promise<QueryResult<T>>;
406
+ /**
407
+ * Find first record matching conditions
408
+ *
409
+ * @param options - Query options
410
+ * @returns First matching record or null
411
+ */
412
+ findFirst(options?: QueryOptions<T, string & keyof R>): Promise<T | null>;
413
+ /**
414
+ * Find first record or throw if not found
415
+ *
416
+ * @param options - Query options
417
+ * @returns First matching record
418
+ * @throws Error if no record found
419
+ */
420
+ findFirstOrThrow(options?: QueryOptions<T, string & keyof R>): Promise<T>;
421
+ /**
422
+ * Check if record exists
423
+ *
424
+ * @param id - Record ID
425
+ * @returns True if record exists
426
+ */
427
+ exists(id: string): Promise<boolean>;
428
+ /**
429
+ * Count records matching conditions
430
+ *
431
+ * @param where - Filter conditions
432
+ * @returns Number of matching records
433
+ */
434
+ count(where?: WhereFilter<T>): Promise<number>;
435
+ /**
436
+ * Full-text search on indexed fields
437
+ *
438
+ * @param query - Search query (FTS5 syntax supported)
439
+ * @param options - Search options
440
+ * @returns Search results with relevance scores
441
+ */
442
+ search(query: string, options?: SearchOptions<T, string & keyof R>): Promise<SearchResult<T>>;
443
+ /**
444
+ * Get all descendants of a record
445
+ *
446
+ * @param id - Root record ID
447
+ * @param options - Hierarchy options
448
+ * @returns Query result with depth information
449
+ */
450
+ getDescendants(id: string, options?: HierarchyOptions<T, string & keyof R>): Promise<QueryResult<T & {
451
+ depth: number;
452
+ path?: string[];
453
+ }>>;
454
+ /**
455
+ * Get all ancestors of a record
456
+ *
457
+ * @param id - Leaf record ID
458
+ * @param options - Query options
459
+ * @returns Ancestor records from root to parent
460
+ */
461
+ getAncestors(id: string, options?: QueryOptions<T, string & keyof R>): Promise<T[]>;
462
+ /**
463
+ * Get full tree starting from matching roots
464
+ *
465
+ * @param options - Query options for root selection
466
+ * @returns Tree structure with nested children
467
+ */
468
+ getTree(options?: HierarchyOptions<T, string & keyof R>): Promise<TreeNode<T>[]>;
469
+ /**
470
+ * Update a record by ID
471
+ *
472
+ * @param id - Record ID
473
+ * @param data - Update data
474
+ * @param options - Update options
475
+ * @returns Updated record
476
+ * @throws Error if record not found
477
+ */
478
+ update(id: string, data: UpdateInput<T>, options?: UpdateOptions): Promise<T>;
479
+ /**
480
+ * Update many records matching conditions
481
+ *
482
+ * @param where - Filter conditions
483
+ * @param data - Update data
484
+ * @param options - Update options
485
+ * @returns Update result with count
486
+ */
487
+ updateMany(where: WhereFilter<T>, data: UpdateInput<T>, options?: UpdateOptions): Promise<UpdateResult>;
488
+ /**
489
+ * Update or create a record
490
+ *
491
+ * @param id - Record ID
492
+ * @param create - Data to use if creating
493
+ * @param update - Data to use if updating
494
+ * @returns Created or updated record
495
+ */
496
+ upsert(id: string, create: CreateInput<T>, update: UpdateInput<T>): Promise<T>;
497
+ /**
498
+ * Delete a record by ID
499
+ *
500
+ * @param id - Record ID
501
+ * @param options - Delete options
502
+ * @returns Delete result
503
+ */
504
+ delete(id: string, options?: DeleteOptions): Promise<DeleteResult>;
505
+ /**
506
+ * Delete many records matching conditions
507
+ *
508
+ * @param where - Filter conditions
509
+ * @param options - Delete options
510
+ * @returns Delete result with count
511
+ */
512
+ deleteMany(where: WhereFilter<T>, options?: DeleteOptions): Promise<DeleteResult>;
513
+ /**
514
+ * Restore a soft-deleted record
515
+ *
516
+ * @param id - Record ID
517
+ * @returns Restored record
518
+ * @throws Error if record not found or not soft-deleted
519
+ */
520
+ restore(id: string): Promise<T>;
521
+ /**
522
+ * Aggregate records
523
+ *
524
+ * @param options - Aggregation options with function
525
+ * @returns Aggregation results
526
+ */
527
+ aggregate(options: AggregationOptions<T> & {
528
+ function: AggregationFunction;
529
+ }): Promise<AggregationResult[]>;
530
+ /**
531
+ * Execute operations in a transaction
532
+ *
533
+ * @param fn - Transaction function
534
+ * @returns Transaction result
535
+ */
536
+ transaction<U>(fn: TransactionFn<U>): Promise<U>;
537
+ /**
538
+ * Stream records as async iterable
539
+ *
540
+ * @param options - Stream options
541
+ * @returns Async iterable of records
542
+ */
543
+ stream(options?: StreamOptions<T>): AsyncIterable<T>;
544
+ /**
545
+ * Execute multiple operations in batch
546
+ *
547
+ * @param operations - Array of operations
548
+ * @returns Array of results
549
+ */
550
+ batch(operations: Array<{
551
+ type: 'create' | 'update' | 'delete';
552
+ data?: unknown;
553
+ id?: string;
554
+ }>): Promise<unknown[]>;
555
+ /**
556
+ * Execute raw SQL query (adapter-specific)
557
+ * Use sparingly - breaks adapter portability
558
+ *
559
+ * @param sql - SQL query with placeholders
560
+ * @param params - Query parameters
561
+ * @returns Raw result rows
562
+ */
563
+ raw<R = unknown>(sql: string, ...params: unknown[]): Promise<R[]>;
564
+ /**
565
+ * Execute raw query with typed result
566
+ *
567
+ * @param options - Raw query options
568
+ * @returns Typed result rows
569
+ */
570
+ queryRaw<R>(options: RawQueryOptions<R>): Promise<R[]>;
571
+ /**
572
+ * Validate record data against schema
573
+ *
574
+ * @param data - Record data
575
+ * @returns Validation result
576
+ */
577
+ validate(data: unknown): Promise<{
578
+ success: boolean;
579
+ data?: T;
580
+ errors?: z.ZodError;
581
+ }>;
582
+ /**
583
+ * Get database adapter being used
584
+ *
585
+ * @returns Adapter ID
586
+ */
587
+ getAdapterId(): string;
588
+ /**
589
+ * Close connections and cleanup
590
+ */
591
+ close(): Promise<void>;
592
+ }
593
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/record/interface.ts"],"names":[],"mappings":"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"}