@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,279 @@
1
+ const descriptor = {
2
+ kind: 'docs/topic',
3
+ id: 'storage.sync',
4
+ title: 'Storage Sync',
5
+ summary: 'Cross-app synchronization, cloud-api adapter, and ownerApp pattern',
6
+ body: {
7
+ type: 'markdown',
8
+ sourceType: 'raw',
9
+ source: `---
10
+ title: Storage Sync
11
+ summary: Cross-app synchronization, cloud-api adapter, and ownerApp pattern
12
+ tags: [storage, sync, cloud-api, ownerApp, synchronization]
13
+ parent: storage
14
+ order: 3
15
+ surfaces: [cli, web, in-app]
16
+ hardware: [consumer, cloud]
17
+ ---
18
+
19
+ # Storage Sync
20
+
21
+ Storage sync enables bidirectional synchronization of data between local storage and remote cloud storage. The \`storage/sync-bridge\` runtime kind declares which manifests should sync and how conflicts are resolved.
22
+
23
+ ## Sync Architecture
24
+
25
+ \`\`\`
26
+ ┌─────────────────┐ ┌──────────────────┐
27
+ │ Local Storage │◄───────►│ Cloud Storage │
28
+ │ (libsql/D1) │ sync │ (cloud-api) │
29
+ └─────────────────┘ └──────────────────┘
30
+ │ │
31
+ │ │
32
+ ┌─────────────────┐ ┌──────────────────┐
33
+ │ App A │ │ App B │
34
+ │ (consumer) │ │ (cloud) │
35
+ └─────────────────┘ └──────────────────┘
36
+ \`\`\`
37
+
38
+ ## Sync Bridge Declaration
39
+
40
+ Declare which manifests should sync:
41
+
42
+ \`\`\`ts
43
+ import type { SyncBridgeDescriptor } from '@vibesdotdev/storage';
44
+
45
+ const syncBridge: SyncBridgeDescriptor = {
46
+ kind: 'storage/sync-bridge',
47
+ id: 'app.settings.sync',
48
+ title: 'App Settings Sync',
49
+ manifests: [
50
+ 'app/settings',
51
+ 'app/preferences',
52
+ 'app/theme'
53
+ ],
54
+ ownerApp: 'settings-web',
55
+ conflictResolution: 'local-wins',
56
+ schedule: {
57
+ type: 'interval',
58
+ intervalMs: 300_000 // 5 minutes
59
+ }
60
+ };
61
+ \`\`\`
62
+
63
+ ## Sync State
64
+
65
+ Sync state tracks the synchronization status:
66
+
67
+ \`\`\`ts
68
+ interface SyncState {
69
+ manifests: {
70
+ [manifestId: string]: {
71
+ localHash: string | null;
72
+ remoteHash: string | null;
73
+ lastSyncedAt: string;
74
+ syncStatus: 'in-sync' | 'local-ahead' | 'remote-ahead' | 'conflict' | 'error';
75
+ errorMessage?: string;
76
+ };
77
+ };
78
+ lastSyncAt: string;
79
+ syncStatus: 'idle' | 'syncing' | 'error';
80
+ }
81
+ \`\`\`
82
+
83
+ ## Manual Sync Operations
84
+
85
+ ### Pull from Cloud
86
+
87
+ \`\`\`bash
88
+ vibes storage sync pull --manifest app/settings
89
+ \`\`\`
90
+
91
+ **Behavior:**
92
+ - Fetches remote data
93
+ - Validates against local schema
94
+ - Overwrites local data if remote is newer
95
+ - Handles conflicts based on resolution strategy
96
+
97
+ ### Push to Cloud
98
+
99
+ \`\`\`bash
100
+ vibes storage sync push --manifest app/settings
101
+ \`\`\`
102
+
103
+ **Behavior:**
104
+ - Serializes local data
105
+ - Uploads to cloud-api endpoint
106
+ - Updates sync state with remote hash
107
+ - Handles upload errors gracefully
108
+
109
+ ### Check Sync Status
110
+
111
+ \`\`\`bash
112
+ vibes storage sync status
113
+ \`\`\`
114
+
115
+ **Output:**
116
+ \`\`\`
117
+ Manifest Status Last Synced
118
+ ─────────────────────────────────────────────
119
+ app/settings in-sync 2 minutes ago
120
+ app/preferences local-ahead 1 hour ago
121
+ app/theme conflict 3 hours ago
122
+ \`\`\`
123
+
124
+ ### Resolve Conflicts
125
+
126
+ \`\`\`bash
127
+ vibes storage sync resolve --manifest app/theme --strategy local-wins
128
+ \`\`\`
129
+
130
+ **Conflict strategies:**
131
+ - \`local-wins\` — Keep local data, overwrite remote
132
+ - \`remote-wins\` — Keep remote data, overwrite local
133
+ - \`merge\` — Attempt automatic merge (if possible)
134
+ - \`manual\` — Mark for manual resolution
135
+
136
+ ## Cloud-API Adapter
137
+
138
+ The cloud-api adapter enables remote storage access:
139
+
140
+ \`\`\`ts
141
+ import { storageAdapterCloudApiPlugin } from '@vibesdotdev/storage-adapter-cloud-api';
142
+
143
+ await runtime.registerPlugin(storageAdapterCloudApiPlugin({
144
+ baseUrl: 'https://storage.vibes.dev',
145
+ authToken: process.env.CLOUD_AUTH_TOKEN,
146
+ endpoints: {
147
+ 'app/settings': 'https://storage.vibes.dev/app/settings',
148
+ 'app/preferences': 'https://storage.vibes.dev/app/preferences'
149
+ }
150
+ }));
151
+ \`\`\`
152
+
153
+ ### Endpoint Registration
154
+
155
+ Manifests can declare their own cloud endpoints:
156
+
157
+ \`\`\`ts
158
+ const settingsManifest: StorageManifestDescriptor = {
159
+ kind: 'storage/manifest',
160
+ id: 'app/settings',
161
+ namespace: 'app',
162
+ adapterConfig: {
163
+ 'storage.cloud-api': {
164
+ endpoint: 'https://storage.vibes.dev/app/settings'
165
+ }
166
+ }
167
+ };
168
+ \`\`\`
169
+
170
+ ## OwnerApp Pattern
171
+
172
+ The \`ownerApp\` field declares which app owns the canonical data:
173
+
174
+ \`\`\`ts
175
+ {
176
+ ownerApp: 'settings-web' // This app's data is canonical
177
+ }
178
+ \`\`\`
179
+
180
+ **Implications:**
181
+ - Owner app's data is the source of truth
182
+ - Conflicts default to owner's version
183
+ - Other apps sync from owner
184
+ - Owner app handles conflict resolution
185
+
186
+ ## Sync Scheduling
187
+
188
+ ### Interval-Based Sync
189
+
190
+ \`\`\`ts
191
+ {
192
+ schedule: {
193
+ type: 'interval',
194
+ intervalMs: 300_000 // 5 minutes
195
+ }
196
+ }
197
+ \`\`\`
198
+
199
+ ### Event-Triggered Sync
200
+
201
+ \`\`\`ts
202
+ {
203
+ schedule: {
204
+ type: 'on-change',
205
+ debounceMs: 5000 // wait 5s after last change
206
+ }
207
+ }
208
+ \`\`\`
209
+
210
+ ### Manual Sync Only
211
+
212
+ \`\`\`ts
213
+ {
214
+ schedule: {
215
+ type: 'manual' // only sync when explicitly triggered
216
+ }
217
+ }
218
+ \`\`\`
219
+
220
+ ## Dry-Run Mode
221
+
222
+ Test sync behavior without making changes:
223
+
224
+ \`\`\`bash
225
+ vibes storage sync pull --manifest app/settings --dry-run
226
+ \`\`\`
227
+
228
+ **Output:**
229
+ \`\`\`
230
+ [dry-run] Would pull 3 manifests from cloud
231
+ - app/settings: 1.2 KB (remote newer)
232
+ - app/preferences: 0.8 KB (already in sync)
233
+ - app/theme: 0.5 KB (conflict detected)
234
+ \`\`\`
235
+
236
+ ## Error Handling
237
+
238
+ Sync errors are tracked in sync state:
239
+
240
+ \`\`\`ts
241
+ interface SyncError {
242
+ manifestId: string;
243
+ error: 'network' | 'schema' | 'conflict' | 'auth';
244
+ message: string;
245
+ retryable: boolean;
246
+ retryAfter?: number; // milliseconds
247
+ }
248
+ \`\`\`
249
+
250
+ **Common errors:**
251
+ - \`network\` — Cloud API unreachable (retryable)
252
+ - \`schema\` — Remote data fails validation (not retryable)
253
+ - \`conflict\` — Both local and remote changed (requires resolution)
254
+ - \`auth\` — Authentication failed (refresh token)
255
+
256
+ ## Best Practices
257
+
258
+ 1. **Sync small, focused manifests** — Don't sync entire databases
259
+ 2. **Use appropriate conflict resolution** — Match strategy to data semantics
260
+ 3. **Monitor sync state** — Check \`vibes storage sync status\` regularly
261
+ 4. **Handle schema migrations** — Version your schemas for backward compatibility
262
+ 5. **Test with dry-run** — Always dry-run before production sync
263
+
264
+ :::card{title="See also"}
265
+ - [\`storage.adapters\`](storage.adapters) — Adapter implementations
266
+ - [\`storage.manifests\`](storage.manifests) — Manifest declarations
267
+ - [\`config.environment\`](config.environment) — Environment configuration
268
+ :::
269
+ `
270
+ },
271
+ parent: 'storage',
272
+ order: 3,
273
+ tags: ['storage', 'sync', 'cloud-api', 'ownerApp', 'synchronization'],
274
+ surfaces: ['cli', 'web', 'in-app'],
275
+ hardware: ['consumer', 'cloud'],
276
+ enabled: true
277
+ };
278
+ export default descriptor;
279
+ //# sourceMappingURL=sync.docs.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/sync.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,oEAAoE;IAC7E,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQT;KACC;IACD,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Storage Module
3
+ *
4
+ * Interface-driven storage providers for document and repository-style storage.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { getVibesRuntime } from '@vibesdotdev/runtime';
9
+ * import storagePlugin, { StorageManifest } from '@vibesdotdev/storage';
10
+ *
11
+ * // Register the storage plugin
12
+ * await getVibesRuntime().registerPlugin(storagePlugin);
13
+ *
14
+ * // Use storage manifest
15
+ * const storage = new StorageManifest<MyData>('my.data');
16
+ * const data = await storage.load();
17
+ * ```
18
+ */
19
+ export { default as storagePlugin } from './storage.plugin';
20
+ export { StorageProtocolSchema, StorageCapabilitySchema, StorageAdapterDescriptorSchema, StorageDriveSchema, StorageEntrySchema, StorageScopeSchema, StorageDataTypeSchema, StorageCloudApiAdapterConfigSchema, StorageManifestDescriptorSchema, StorageRecordDescriptorSchema, StorageSyncConfigSchema, StorageRemoteCrudSchema, StorageRemoteConfigSchema, StoragePersistenceModeSchema, StoragePersistencePolicySchema, StorageOwnershipFilterSchema } from './schemas';
21
+ export type { StorageProtocol, StorageCapability, StorageAdapterDescriptor, StorageDrive, StorageEntry, StorageScope, StorageDataType, StorageCloudApiAdapterConfig, StorageManifestDescriptor, StorageRecordDescriptor, StorageRecordDescriptorInput, StorageSyncConfig, StorageRemoteCrud, StorageRemoteConfig, StoragePersistenceMode, StoragePersistencePolicy, StorageOwnershipFilter, StorageSyncContext, StorageRecordLocalSyncContext, StorageRecordRemoteSyncContext, StorageRecordSyncHooks } from './schemas';
22
+ export { StorageManifest } from './manifest/base';
23
+ export type { StorageAdapterInterface, StorageAdapterCapabilities, StorageHealthStatus, StorageDocumentStoreInterface, KeyValueSetOptions, StorageRepositoryInterface, RepositoryOptions, RepositoryCreateInput, RepositoryUpdateInput, RepositoryQuery, RepositoryListOptions, RepositoryFindOptions, RepositoryOrderBy, RepositoryPage, RepositoryMeta, StorageRecordInterface, FileBasedAdapterConfig, LocalDBAdapterConfig, JSONAdapterConfig, MemoryAdapterConfig, CloudAPIAdapterConfig, QueryBuilderDatabase } from './interfaces';
24
+ export { bridgeStorageKinds } from './bridge';
25
+ export type { StorageKindBridgeConfig } from './bridge';
26
+ export { listBrowsableStorageAdapters } from './client';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI5D,OAAO,EACN,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kCAAkC,EAClC,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAC5B,MAAM,WAAW,CAAC;AAEnB,YAAY,EACX,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,YAAY,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EAEtB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EAErB,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Storage Module
3
+ *
4
+ * Interface-driven storage providers for document and repository-style storage.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { getVibesRuntime } from '@vibesdotdev/runtime';
9
+ * import storagePlugin, { StorageManifest } from '@vibesdotdev/storage';
10
+ *
11
+ * // Register the storage plugin
12
+ * await getVibesRuntime().registerPlugin(storagePlugin);
13
+ *
14
+ * // Use storage manifest
15
+ * const storage = new StorageManifest<MyData>('my.data');
16
+ * const data = await storage.load();
17
+ * ```
18
+ */
19
+ // Plugin
20
+ export { default as storagePlugin } from './storage.plugin.js';
21
+ // Schemas
22
+ export { StorageProtocolSchema, StorageCapabilitySchema, StorageAdapterDescriptorSchema, StorageDriveSchema, StorageEntrySchema, StorageScopeSchema, StorageDataTypeSchema, StorageCloudApiAdapterConfigSchema, StorageManifestDescriptorSchema, StorageRecordDescriptorSchema, StorageSyncConfigSchema, StorageRemoteCrudSchema, StorageRemoteConfigSchema, StoragePersistenceModeSchema, StoragePersistencePolicySchema, StorageOwnershipFilterSchema } from './schemas';
23
+ // Base Classes
24
+ export { StorageManifest } from './manifest/base.js';
25
+ // Bridge (storage → runtime kind hydration)
26
+ export { bridgeStorageKinds } from './bridge';
27
+ // Client surface (consumer-facing query helpers)
28
+ export { listBrowsableStorageAdapters } from './client';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,SAAS;AAET,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D,UAAU;AAEV,OAAO,EACN,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kCAAkC,EAClC,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAC5B,MAAM,WAAW,CAAC;AA0BnB,eAAe;AAEf,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA+BlD,4CAA4C;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,iDAAiD;AAEjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC"}