@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 @@
1
+ {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/schemas/record/descriptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Storage Record Descriptor Schema
3
+ *
4
+ * Defines a record type that provides CRUD operations on a single table.
5
+ * Used for modules that need structured storage with relations and queries.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const todoDescriptor: StorageRecordDescriptor = {
10
+ * kind: 'storage/record',
11
+ * id: 'session.todos',
12
+ * name: 'Session Todos',
13
+ * description: 'Todo items within sessions',
14
+ * schema: TodoSchema,
15
+ * tableName: 'todos',
16
+ * primaryKey: 'id',
17
+ * relations: {
18
+ * session: {
19
+ * type: 'belongs_to',
20
+ * target: 'session.sessions',
21
+ * foreignKey: 'sessionId'
22
+ * }
23
+ * },
24
+ * fts: {
25
+ * fields: ['content', 'activeForm']
26
+ * },
27
+ * hierarchy: {
28
+ * parentField: 'parentId'
29
+ * },
30
+ * allowedAdapters: ['storage.localdb'],
31
+ * defaultAdapter: 'storage.localdb'
32
+ * };
33
+ * ```
34
+ */
35
+ import * as z from 'zod/v4';
36
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
37
+ import { StorageScopeSchema } from '../manifest-descriptor.js';
38
+ import { ConflictStrategySchema } from '../sync-bridge-descriptor.js';
39
+ // RELATION TYPES
40
+ export { StorageRelationSchema, StorageRelationTypeSchema } from './relation.js';
41
+ import { StorageRelationSchema } from './relation.js';
42
+ // INDEX TYPES
43
+ /**
44
+ * Index definition for a storage record
45
+ */
46
+ export const StorageIndexSchema = z.object({
47
+ /** Index name (auto-generated if not provided) */
48
+ name: z.string().optional(),
49
+ /** Fields to index */
50
+ fields: z.array(z.string()).min(1),
51
+ /** Whether this is a unique index */
52
+ unique: z.boolean().default(false),
53
+ /** Custom index type (e.g., 'btree', 'hash') */
54
+ type: z.string().optional(),
55
+ /** Index condition (partial index) */
56
+ where: z.string().optional()
57
+ });
58
+ // MIGRATION TYPES
59
+ /**
60
+ * Migration definition for storage records
61
+ */
62
+ export const StorageMigrationSchema = z.object({
63
+ /** Migration version number */
64
+ version: z.number().int().positive(),
65
+ /** Migration name/description */
66
+ name: z.string().optional(),
67
+ /** Up migration SQL or function */
68
+ up: z.union([z.string(), z.unknown()]),
69
+ /** Down migration SQL or function */
70
+ down: z.union([z.string(), z.unknown()]).optional()
71
+ });
72
+ // FIELD CONFIG TYPES
73
+ /**
74
+ * Field configuration for auto-managed fields
75
+ */
76
+ export const StorageFieldConfigSchema = z.object({
77
+ /** Enable auto-increment */
78
+ autoIncrement: z.boolean().optional(),
79
+ /** Custom ID generator function */
80
+ generator: z.optional(z.unknown()),
81
+ /** Field type override */
82
+ type: z.string().optional(),
83
+ /** Default value */
84
+ default: z.unknown().optional()
85
+ });
86
+ // FTS (FULL-TEXT SEARCH) TYPES
87
+ /**
88
+ * FTS configuration for storage records
89
+ */
90
+ export const StorageFtsConfigSchema = z.object({
91
+ /** Fields to index for search */
92
+ fields: z.array(z.string()).min(1),
93
+ /** FTS tokenizer (SQLite: 'unicode61', 'porter', etc.) */
94
+ tokenizer: z.string().optional(),
95
+ /** Custom FTS table name (default: {tableName}_fts) */
96
+ tableName: z.string().optional(),
97
+ /** Additional FTS options */
98
+ options: z.record(z.string(), z.unknown()).optional()
99
+ });
100
+ // COMPUTED FIELD TYPES
101
+ /**
102
+ * Computed field definition
103
+ */
104
+ export const StorageComputedFieldSchema = z.object({
105
+ /** Aggregation type */
106
+ type: z.enum(['count', 'sum', 'avg', 'min', 'max', 'exists']),
107
+ /** Relation to aggregate over */
108
+ relation: z.string(),
109
+ /** Field on related table to aggregate (for sum/avg/min/max) */
110
+ field: z.string().optional(),
111
+ /** Filter conditions on related records */
112
+ where: z.record(z.string(), z.unknown()).optional(),
113
+ /** Custom SQL expression (overrides type/relation) */
114
+ expression: z.string().optional(),
115
+ /** Cache the computed value in database */
116
+ cached: z.boolean().default(false),
117
+ /** Cache invalidation strategy */
118
+ cacheStrategy: z.enum(['on_write', 'manual', 'ttl']).optional(),
119
+ /** Cache TTL in seconds (for ttl strategy) */
120
+ cacheTtl: z.number().int().positive().optional()
121
+ });
122
+ // HIERARCHY TYPES
123
+ /**
124
+ * Hierarchy configuration for recursive data
125
+ */
126
+ export const StorageHierarchyConfigSchema = z.object({
127
+ /** Field that references parent (e.g., 'parentId') */
128
+ parentField: z.string(),
129
+ /** Relation name for children (default: derived from tableName) */
130
+ childrenRelation: z.string().optional(),
131
+ /** Include depth in recursive query results */
132
+ includeDepth: z.boolean().default(true),
133
+ /** Include path from root in results */
134
+ includePath: z.boolean().default(false),
135
+ /** Maximum recursion depth (default: unlimited) */
136
+ maxDepth: z.number().int().positive().optional()
137
+ });
138
+ // REMOTE ADAPTER CONFIGURATION
139
+ /**
140
+ * Remote CRUD configuration for cloud sync
141
+ */
142
+ export const StorageRemoteCrudSchema = z.object({
143
+ /** Base API path for list operations */
144
+ apiPath: z.string(),
145
+ /** API path for single entity operations (:id placeholder) */
146
+ entityPath: z.string().optional(),
147
+ /** Remote list response field (defaults to items) */
148
+ listField: z.string().optional(),
149
+ /** Remote total response field */
150
+ totalField: z.string().optional(),
151
+ /** HTTP method for updates (PUT, PATCH, etc.) */
152
+ updateMethod: z.enum(['PUT', 'PATCH']).default('PUT'),
153
+ /** HTTP method for creates (POST, PUT) */
154
+ createMethod: z.enum(['POST', 'PUT']).default('POST'),
155
+ /** HTTP method for deletes (DELETE) */
156
+ deleteMethod: z.literal('DELETE').default('DELETE')
157
+ });
158
+ /**
159
+ * Remote adapter configuration
160
+ */
161
+ export const StorageRemoteConfigSchema = z.object({
162
+ /** Remote adapter ID (typically 'storage.cloud-api') */
163
+ adapter: z.string().default('storage.cloud-api'),
164
+ /** CRUD endpoint configuration */
165
+ crud: StorageRemoteCrudSchema.optional()
166
+ });
167
+ // PERSISTENCE POLICY
168
+ /**
169
+ * Persistence mode for data storage
170
+ */
171
+ export const StoragePersistenceModeSchema = z.enum([
172
+ 'local-only', // Store only locally
173
+ 'remote-only', // Store only in cloud
174
+ 'local-first', // Local primary, sync to cloud
175
+ 'remote-first', // Cloud primary, cache locally
176
+ 'auto' // Auto-detect based on connectivity
177
+ ]);
178
+ /**
179
+ * Persistence policy configuration
180
+ */
181
+ export const StoragePersistencePolicySchema = z.object({
182
+ /** Persistence mode */
183
+ mode: StoragePersistenceModeSchema,
184
+ /** Adapters for local storage */
185
+ localAdapters: z.array(z.string()).optional(),
186
+ /** Adapters for remote storage */
187
+ remoteAdapters: z.array(z.string()).optional()
188
+ });
189
+ // SYNC CONFIGURATION
190
+ /**
191
+ * Ownership filter for sync operations
192
+ */
193
+ export const StorageOwnershipFilterSchema = z.enum([
194
+ 'all', // Sync all records
195
+ 'user-only', // Only user-created records
196
+ 'system-only' // Only system records
197
+ ]);
198
+ /**
199
+ * Sync configuration for storage records
200
+ */
201
+ export const StorageSyncConfigSchema = z.object({
202
+ /** Ownership filter */
203
+ ownershipFilter: StorageOwnershipFilterSchema.default('all'),
204
+ /** Optional field used as canonical ID for sync matching */
205
+ idField: z.string().optional(),
206
+ /** Strategy used when both local and remote diverge */
207
+ conflictStrategy: ConflictStrategySchema.default('local-wins'),
208
+ /** Fields to strip before pushing to remote */
209
+ sensitiveFields: z.array(z.string()).default([]),
210
+ /** Function to collect local items for sync */
211
+ collect: z.optional(z.unknown()),
212
+ /** Function to transform local record before sync */
213
+ toRemote: z.optional(z.unknown()),
214
+ /** Function to transform remote record into local shape */
215
+ fromRemote: z.optional(z.unknown()),
216
+ /** Hook called before pushing to remote */
217
+ beforePush: z.optional(z.unknown()),
218
+ /** Hook called to delete remote row */
219
+ deleteRemote: z.optional(z.unknown()),
220
+ /** Hook for writing pulled remote rows locally */
221
+ writePulled: z.optional(z.unknown())
222
+ });
223
+ /**
224
+ * Side effect operation types
225
+ */
226
+ export const StorageSideEffectOperationSchema = z.enum([
227
+ 'update', // Update field(s) on target
228
+ 'touch', // Update timestamp field on target
229
+ 'increment', // Increment numeric field
230
+ 'decrement', // Decrement numeric field
231
+ 'refresh' // Refresh computed field
232
+ ]);
233
+ /**
234
+ * Side effect definition
235
+ */
236
+ export const StorageSideEffectSchema = z.object({
237
+ /** Target storage record ID */
238
+ target: z.string(),
239
+ /** Operation to perform */
240
+ operation: StorageSideEffectOperationSchema,
241
+ /** Field to update on target (for update/touch) */
242
+ field: z.string().optional(),
243
+ /** Value to set (for update) or expression */
244
+ value: z.unknown().optional(),
245
+ /** Value generator function (receives source record) */
246
+ valueFn: z.optional(z.unknown()),
247
+ /** Foreign key field to find target record */
248
+ foreignKey: z.string().optional(),
249
+ /** Whether to execute in same transaction */
250
+ sameTransaction: z.boolean().default(true),
251
+ /** Whether to continue if target not found */
252
+ ignoreMissing: z.boolean().default(true)
253
+ });
254
+ /**
255
+ * Side effects configuration by operation
256
+ */
257
+ export const StorageSideEffectsConfigSchema = z.object({
258
+ /** Side effects on create */
259
+ onCreate: z.array(StorageSideEffectSchema).optional(),
260
+ /** Side effects on update */
261
+ onUpdate: z.array(StorageSideEffectSchema).optional(),
262
+ /** Side effects on delete */
263
+ onDelete: z.array(StorageSideEffectSchema).optional()
264
+ });
265
+ // STORAGE RECORD DESCRIPTOR
266
+ /**
267
+ * Storage record descriptor schema
268
+ */
269
+ export const StorageRecordDescriptorSchema = RuntimeDescriptorSchema.extend({
270
+ kind: z.literal('storage/record'),
271
+ // DATA DEFINITION
272
+ /** Human-readable name */
273
+ name: z.string().min(1),
274
+ /** Human-readable description */
275
+ description: z.string().optional(),
276
+ /** Zod schema for the record data (stored as unknown, validated at runtime) */
277
+ schema: z.unknown(),
278
+ /** Table name in the database */
279
+ tableName: z.string().min(1),
280
+ /** Primary key field name (default: 'id') */
281
+ primaryKey: z.string().default('id'),
282
+ // RELATIONS
283
+ /** Relations to other storage records */
284
+ relations: z.record(z.string(), StorageRelationSchema).optional(),
285
+ // INDEXES
286
+ /** Database indexes for this table */
287
+ indexes: z.array(StorageIndexSchema).default([]),
288
+ // FULL-TEXT SEARCH
289
+ /** Full-text search configuration */
290
+ fts: StorageFtsConfigSchema.optional(),
291
+ // COMPUTED FIELDS
292
+ /** Computed fields from aggregations or relations */
293
+ computedFields: z.record(z.string(), StorageComputedFieldSchema).optional(),
294
+ // HIERARCHY (RECURSIVE)
295
+ /** Hierarchical/recursive configuration */
296
+ hierarchy: StorageHierarchyConfigSchema.optional(),
297
+ // SIDE EFFECTS
298
+ /** Side effects triggered by operations on this record */
299
+ sideEffects: StorageSideEffectsConfigSchema.optional(),
300
+ // MIGRATIONS
301
+ /** Inline migration definitions */
302
+ migrations: z.array(StorageMigrationSchema).optional(),
303
+ /** Migration key for external migrations (e.g., 'session.todos') */
304
+ migrationKey: z.string().optional(),
305
+ /** Current schema version (default: 1) */
306
+ version: z.number().int().positive().default(1),
307
+ // AUTO-MANAGED FIELDS
308
+ /** Auto-manage timestamps (createdAt, updatedAt) */
309
+ timestamps: z
310
+ .union([
311
+ z.boolean(),
312
+ z.object({
313
+ createdAt: z.union([z.boolean(), z.string()]).optional(),
314
+ updatedAt: z.union([z.boolean(), z.string()]).optional()
315
+ })
316
+ ])
317
+ .default(true),
318
+ /** Auto-generate IDs */
319
+ autoId: z
320
+ .union([
321
+ z.boolean(),
322
+ z.object({
323
+ field: z.string().optional(),
324
+ strategy: z.enum(['uuid', 'nanoid', 'custom']).optional(),
325
+ generator: z.optional(z.unknown())
326
+ })
327
+ ])
328
+ .default(true),
329
+ /** Soft delete field (e.g., 'deletedAt') */
330
+ softDelete: z.union([z.boolean(), z.string()]).optional(),
331
+ /** Field-specific configurations */
332
+ fieldConfig: z.record(z.string(), StorageFieldConfigSchema).optional(),
333
+ // ADAPTER SELECTION
334
+ /** Allowed adapter IDs (e.g., ['storage.localdb', 'storage.drizzle']) */
335
+ allowedAdapters: z.array(z.string()).min(1),
336
+ /** Default adapter to use when not specified */
337
+ defaultAdapter: z.string().optional(),
338
+ /** Adapter-specific configuration */
339
+ adapterConfig: z.record(z.string(), z.unknown()).optional(),
340
+ // SCOPE & STORAGE
341
+ /** Storage scope for path resolution */
342
+ scope: StorageScopeSchema.default('project'),
343
+ /** Custom database name (overrides default) */
344
+ dbName: z.string().optional(),
345
+ /** Database schema name (for Postgres) */
346
+ dbSchema: z.string().optional(),
347
+ // FEATURES
348
+ /** Enable record versioning for optimistic locking */
349
+ versioning: z.boolean().default(false),
350
+ /** Enable audit trail (createdBy, updatedBy) */
351
+ audit: z.boolean().default(false),
352
+ /** Enable change tracking for sync */
353
+ changeTracking: z.boolean().default(false),
354
+ // VALIDATION
355
+ /** Custom validation function */
356
+ validate: z.optional(z.unknown()),
357
+ /** Enable schema validation on write */
358
+ validateOnWrite: z.boolean().default(true),
359
+ /** Enable schema validation on read */
360
+ validateOnRead: z.boolean().default(false),
361
+ // HOOKS
362
+ /** Before create hook */
363
+ beforeCreate: z.optional(z.unknown()),
364
+ /** After create hook */
365
+ afterCreate: z.optional(z.unknown()),
366
+ /** Before update hook */
367
+ beforeUpdate: z.optional(z.unknown()),
368
+ /** After update hook */
369
+ afterUpdate: z.optional(z.unknown()),
370
+ /** Before delete hook */
371
+ beforeDelete: z.optional(z.unknown()),
372
+ /** After delete hook */
373
+ afterDelete: z.optional(z.unknown()),
374
+ // METADATA
375
+ /** Whether this record is internal (not user-editable) */
376
+ internal: z.boolean().default(false),
377
+ /** Record namespace (e.g., 'session.todos') */
378
+ namespace: z.string().optional(),
379
+ /** Tags for categorization */
380
+ tags: z.array(z.string()).default([]),
381
+ // REMOTE & SYNC CONFIGURATION
382
+ /** Remote adapter configuration for cloud sync */
383
+ remote: StorageRemoteConfigSchema.optional(),
384
+ /** Persistence policy for local/remote storage */
385
+ persistence: StoragePersistencePolicySchema.optional(),
386
+ /** Sync configuration for bidirectional sync */
387
+ sync: StorageSyncConfigSchema.optional()
388
+ });
389
+ //# sourceMappingURL=descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/schemas/record/descriptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Storage Record Schema Exports
3
+ *
4
+ * Exports all types and schemas for storage/record descriptors.
5
+ */
6
+ export { StorageRecordDescriptorSchema, StorageRelationTypeSchema, StorageRelationSchema, StorageSyncConfigSchema, StorageIndexSchema, StorageMigrationSchema, StorageRemoteCrudSchema, StorageRemoteConfigSchema, StoragePersistenceModeSchema, StoragePersistencePolicySchema, StorageOwnershipFilterSchema, StorageFieldConfigSchema, StorageFtsConfigSchema, StorageComputedFieldSchema, StorageHierarchyConfigSchema, StorageSideEffectOperationSchema, StorageSideEffectSchema, StorageSideEffectsConfigSchema } from './descriptor';
7
+ export type { StorageRecordDescriptor, StorageRecordDescriptorInput, StorageSyncConfig, StorageRemoteCrud, StorageRemoteConfig, StoragePersistenceMode, StoragePersistencePolicy, StorageOwnershipFilter, StorageRelationType, StorageRelation, StorageIndex, StorageIndexInput, StorageMigration, StorageMigrationInput, StorageSyncContext, StorageRecordLocalSyncContext, StorageRecordRemoteSyncContext, StorageRecordSyncHooks, StorageFieldConfig, StorageFieldConfigInput, StorageFtsConfig, StorageFtsConfigInput, StorageComputedField, StorageComputedFieldInput, StorageHierarchyConfig, StorageHierarchyConfigInput, StorageSideEffectOperation, StorageSideEffect, StorageSideEffectInput, StorageSideEffectsConfig, StorageSideEffectsConfigInput } from './descriptor';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/record/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,6BAA6B,EAC7B,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,cAAc,CAAC;AAEtB,YAAY,EACX,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Storage Record Schema Exports
3
+ *
4
+ * Exports all types and schemas for storage/record descriptors.
5
+ */
6
+ export { StorageRecordDescriptorSchema, StorageRelationTypeSchema, StorageRelationSchema, StorageSyncConfigSchema, StorageIndexSchema, StorageMigrationSchema, StorageRemoteCrudSchema, StorageRemoteConfigSchema, StoragePersistenceModeSchema, StoragePersistencePolicySchema, StorageOwnershipFilterSchema, StorageFieldConfigSchema, StorageFtsConfigSchema, StorageComputedFieldSchema, StorageHierarchyConfigSchema, StorageSideEffectOperationSchema, StorageSideEffectSchema, StorageSideEffectsConfigSchema } from './descriptor.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/record/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,6BAA6B,EAC7B,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,EAChC,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Storage record relation schemas / types.
3
+ *
4
+ * Extracted from `./descriptor.ts` so the record interface module
5
+ * (`../../interfaces/record/interface.ts`) can reference `StorageRelation`
6
+ * without forming a cycle (descriptor.ts itself imports
7
+ * `StorageRecordInterface` from the interface module for its sync /
8
+ * remote context types).
9
+ */
10
+ import * as z from 'zod/v4';
11
+ /** Relation types for storage records. */
12
+ export declare const StorageRelationTypeSchema: z.ZodEnum<{
13
+ belongs_to: "belongs_to";
14
+ has_one: "has_one";
15
+ has_many: "has_many";
16
+ many_to_many: "many_to_many";
17
+ }>;
18
+ /** Relation definition for a storage record. */
19
+ export declare const StorageRelationSchema: z.ZodObject<{
20
+ type: z.ZodEnum<{
21
+ belongs_to: "belongs_to";
22
+ has_one: "has_one";
23
+ has_many: "has_many";
24
+ many_to_many: "many_to_many";
25
+ }>;
26
+ target: z.ZodString;
27
+ foreignKey: z.ZodOptional<z.ZodString>;
28
+ foreignKeyTarget: z.ZodOptional<z.ZodString>;
29
+ through: z.ZodOptional<z.ZodString>;
30
+ optional: z.ZodDefault<z.ZodBoolean>;
31
+ cascadeDelete: z.ZodDefault<z.ZodBoolean>;
32
+ as: z.ZodOptional<z.ZodString>;
33
+ }, z.core.$strip>;
34
+ export type StorageRelationType = z.infer<typeof StorageRelationTypeSchema>;
35
+ export type StorageRelation = z.infer<typeof StorageRelationSchema>;
36
+ //# sourceMappingURL=relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../../src/schemas/record/relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB;;;;;EAKpC,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAwBhC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Storage record relation schemas / types.
3
+ *
4
+ * Extracted from `./descriptor.ts` so the record interface module
5
+ * (`../../interfaces/record/interface.ts`) can reference `StorageRelation`
6
+ * without forming a cycle (descriptor.ts itself imports
7
+ * `StorageRecordInterface` from the interface module for its sync /
8
+ * remote context types).
9
+ */
10
+ import * as z from 'zod/v4';
11
+ /** Relation types for storage records. */
12
+ export const StorageRelationTypeSchema = z.enum([
13
+ 'belongs_to', // Many-to-one (e.g., todo belongs to session)
14
+ 'has_one', // One-to-one (e.g., session has one config)
15
+ 'has_many', // One-to-many (e.g., session has many todos)
16
+ 'many_to_many' // Many-to-many (e.g., user has many roles)
17
+ ]);
18
+ /** Relation definition for a storage record. */
19
+ export const StorageRelationSchema = z.object({
20
+ /** Relation type */
21
+ type: StorageRelationTypeSchema,
22
+ /** Target record descriptor ID (e.g., 'session.sessions') */
23
+ target: z.string(),
24
+ /** Foreign key field in this table (for belongs_to) */
25
+ foreignKey: z.string().optional(),
26
+ /** Foreign key field in target table (for has_one/has_many) */
27
+ foreignKeyTarget: z.string().optional(),
28
+ /** Junction table for many_to_many relations */
29
+ through: z.string().optional(),
30
+ /** Whether this relation is optional */
31
+ optional: z.boolean().default(false),
32
+ /** Cascade delete when parent is deleted */
33
+ cascadeDelete: z.boolean().default(false),
34
+ /** Custom relation name (defaults to property key) */
35
+ as: z.string().optional()
36
+ });
37
+ //# sourceMappingURL=relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../src/schemas/record/relation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,0CAA0C;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,YAAY,EAAE,8CAA8C;IAC5D,SAAS,EAAE,4CAA4C;IACvD,UAAU,EAAE,6CAA6C;IACzD,cAAc,CAAC,2CAA2C;CAC1D,CAAC,CAAC;AAEH,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,oBAAoB;IACpB,IAAI,EAAE,yBAAyB;IAE/B,6DAA6D;IAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,uDAAuD;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,+DAA+D;IAC/D,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEvC,gDAAgD;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B,wCAAwC;IACxC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpC,4CAA4C;IAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEzC,sDAAsD;IACtD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzB,CAAC,CAAC"}