@dotdo/do 0.1.0

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 (486) hide show
  1. package/README.md +400 -0
  2. package/dist/ai/embeddings.d.ts +129 -0
  3. package/dist/ai/embeddings.d.ts.map +1 -0
  4. package/dist/ai/embeddings.js +217 -0
  5. package/dist/ai/embeddings.js.map +1 -0
  6. package/dist/ai/gateway.d.ts +139 -0
  7. package/dist/ai/gateway.d.ts.map +1 -0
  8. package/dist/ai/gateway.js +179 -0
  9. package/dist/ai/gateway.js.map +1 -0
  10. package/dist/ai/image.d.ts +140 -0
  11. package/dist/ai/image.d.ts.map +1 -0
  12. package/dist/ai/image.js +199 -0
  13. package/dist/ai/image.js.map +1 -0
  14. package/dist/ai/index.d.ts +98 -0
  15. package/dist/ai/index.d.ts.map +1 -0
  16. package/dist/ai/index.js +223 -0
  17. package/dist/ai/index.js.map +1 -0
  18. package/dist/ai/models.d.ts +81 -0
  19. package/dist/ai/models.d.ts.map +1 -0
  20. package/dist/ai/models.js +537 -0
  21. package/dist/ai/models.js.map +1 -0
  22. package/dist/ai/text.d.ts +176 -0
  23. package/dist/ai/text.d.ts.map +1 -0
  24. package/dist/ai/text.js +253 -0
  25. package/dist/ai/text.js.map +1 -0
  26. package/dist/ai/voice/agents.d.ts +224 -0
  27. package/dist/ai/voice/agents.d.ts.map +1 -0
  28. package/dist/ai/voice/agents.js +375 -0
  29. package/dist/ai/voice/agents.js.map +1 -0
  30. package/dist/ai/voice/campaigns.d.ts +307 -0
  31. package/dist/ai/voice/campaigns.d.ts.map +1 -0
  32. package/dist/ai/voice/campaigns.js +739 -0
  33. package/dist/ai/voice/campaigns.js.map +1 -0
  34. package/dist/ai/voice/index.d.ts +21 -0
  35. package/dist/ai/voice/index.d.ts.map +1 -0
  36. package/dist/ai/voice/index.js +42 -0
  37. package/dist/ai/voice/index.js.map +1 -0
  38. package/dist/ai/voice/providers.d.ts +283 -0
  39. package/dist/ai/voice/providers.d.ts.map +1 -0
  40. package/dist/ai/voice/providers.js +286 -0
  41. package/dist/ai/voice/providers.js.map +1 -0
  42. package/dist/ai/voice/sessions.d.ts +294 -0
  43. package/dist/ai/voice/sessions.d.ts.map +1 -0
  44. package/dist/ai/voice/sessions.js +531 -0
  45. package/dist/ai/voice/sessions.js.map +1 -0
  46. package/dist/ai/voice/tools.d.ts +242 -0
  47. package/dist/ai/voice/tools.d.ts.map +1 -0
  48. package/dist/ai/voice/tools.js +370 -0
  49. package/dist/ai/voice/tools.js.map +1 -0
  50. package/dist/ai/voice/tts.d.ts +173 -0
  51. package/dist/ai/voice/tts.d.ts.map +1 -0
  52. package/dist/ai/voice/tts.js +252 -0
  53. package/dist/ai/voice/tts.js.map +1 -0
  54. package/dist/ai/voice/webrtc.d.ts +228 -0
  55. package/dist/ai/voice/webrtc.d.ts.map +1 -0
  56. package/dist/ai/voice/webrtc.js +372 -0
  57. package/dist/ai/voice/webrtc.js.map +1 -0
  58. package/dist/api/index.d.ts +103 -0
  59. package/dist/api/index.d.ts.map +1 -0
  60. package/dist/api/index.js +191 -0
  61. package/dist/api/index.js.map +1 -0
  62. package/dist/api/mcp/handlers.d.ts +25 -0
  63. package/dist/api/mcp/handlers.d.ts.map +1 -0
  64. package/dist/api/mcp/handlers.js +422 -0
  65. package/dist/api/mcp/handlers.js.map +1 -0
  66. package/dist/api/mcp/index.d.ts +113 -0
  67. package/dist/api/mcp/index.d.ts.map +1 -0
  68. package/dist/api/mcp/index.js +141 -0
  69. package/dist/api/mcp/index.js.map +1 -0
  70. package/dist/api/middleware/auth.d.ts +65 -0
  71. package/dist/api/middleware/auth.d.ts.map +1 -0
  72. package/dist/api/middleware/auth.js +271 -0
  73. package/dist/api/middleware/auth.js.map +1 -0
  74. package/dist/api/middleware/cors.d.ts +62 -0
  75. package/dist/api/middleware/cors.d.ts.map +1 -0
  76. package/dist/api/middleware/cors.js +225 -0
  77. package/dist/api/middleware/cors.js.map +1 -0
  78. package/dist/api/middleware/index.d.ts +60 -0
  79. package/dist/api/middleware/index.d.ts.map +1 -0
  80. package/dist/api/middleware/index.js +175 -0
  81. package/dist/api/middleware/index.js.map +1 -0
  82. package/dist/api/middleware/rateLimit.d.ts +84 -0
  83. package/dist/api/middleware/rateLimit.d.ts.map +1 -0
  84. package/dist/api/middleware/rateLimit.js +321 -0
  85. package/dist/api/middleware/rateLimit.js.map +1 -0
  86. package/dist/api/routes/ai.d.ts +17 -0
  87. package/dist/api/routes/ai.d.ts.map +1 -0
  88. package/dist/api/routes/ai.js +430 -0
  89. package/dist/api/routes/ai.js.map +1 -0
  90. package/dist/api/routes/do.d.ts +17 -0
  91. package/dist/api/routes/do.d.ts.map +1 -0
  92. package/dist/api/routes/do.js +458 -0
  93. package/dist/api/routes/do.js.map +1 -0
  94. package/dist/api/routes/functions.d.ts +111 -0
  95. package/dist/api/routes/functions.d.ts.map +1 -0
  96. package/dist/api/routes/functions.js +548 -0
  97. package/dist/api/routes/functions.js.map +1 -0
  98. package/dist/api/routes/health.d.ts +16 -0
  99. package/dist/api/routes/health.d.ts.map +1 -0
  100. package/dist/api/routes/health.js +163 -0
  101. package/dist/api/routes/health.js.map +1 -0
  102. package/dist/api/routes/index.d.ts +41 -0
  103. package/dist/api/routes/index.d.ts.map +1 -0
  104. package/dist/api/routes/index.js +275 -0
  105. package/dist/api/routes/index.js.map +1 -0
  106. package/dist/api/routes/nouns.d.ts +26 -0
  107. package/dist/api/routes/nouns.d.ts.map +1 -0
  108. package/dist/api/routes/nouns.js +456 -0
  109. package/dist/api/routes/nouns.js.map +1 -0
  110. package/dist/api/routes/orgs.d.ts +17 -0
  111. package/dist/api/routes/orgs.d.ts.map +1 -0
  112. package/dist/api/routes/orgs.js +560 -0
  113. package/dist/api/routes/orgs.js.map +1 -0
  114. package/dist/api/routes/relationships.d.ts +30 -0
  115. package/dist/api/routes/relationships.d.ts.map +1 -0
  116. package/dist/api/routes/relationships.js +360 -0
  117. package/dist/api/routes/relationships.js.map +1 -0
  118. package/dist/api/routes/roles.d.ts +17 -0
  119. package/dist/api/routes/roles.d.ts.map +1 -0
  120. package/dist/api/routes/roles.js +721 -0
  121. package/dist/api/routes/roles.js.map +1 -0
  122. package/dist/api/routes/things.d.ts +27 -0
  123. package/dist/api/routes/things.d.ts.map +1 -0
  124. package/dist/api/routes/things.js +568 -0
  125. package/dist/api/routes/things.js.map +1 -0
  126. package/dist/api/routes/users.d.ts +17 -0
  127. package/dist/api/routes/users.d.ts.map +1 -0
  128. package/dist/api/routes/users.js +401 -0
  129. package/dist/api/routes/users.js.map +1 -0
  130. package/dist/api/routes/verbs.d.ts +31 -0
  131. package/dist/api/routes/verbs.d.ts.map +1 -0
  132. package/dist/api/routes/verbs.js +505 -0
  133. package/dist/api/routes/verbs.js.map +1 -0
  134. package/dist/api/routes/workflows.d.ts +44 -0
  135. package/dist/api/routes/workflows.d.ts.map +1 -0
  136. package/dist/api/routes/workflows.js +521 -0
  137. package/dist/api/routes/workflows.js.map +1 -0
  138. package/dist/api/types.d.ts +370 -0
  139. package/dist/api/types.d.ts.map +1 -0
  140. package/dist/api/types.js +11 -0
  141. package/dist/api/types.js.map +1 -0
  142. package/dist/db/cdc/events.d.ts +201 -0
  143. package/dist/db/cdc/events.d.ts.map +1 -0
  144. package/dist/db/cdc/events.js +271 -0
  145. package/dist/db/cdc/events.js.map +1 -0
  146. package/dist/db/cdc/index.d.ts +13 -0
  147. package/dist/db/cdc/index.d.ts.map +1 -0
  148. package/dist/db/cdc/index.js +16 -0
  149. package/dist/db/cdc/index.js.map +1 -0
  150. package/dist/db/cdc/replay.d.ts +388 -0
  151. package/dist/db/cdc/replay.d.ts.map +1 -0
  152. package/dist/db/cdc/replay.js +469 -0
  153. package/dist/db/cdc/replay.js.map +1 -0
  154. package/dist/db/cdc/storage.d.ts +567 -0
  155. package/dist/db/cdc/storage.d.ts.map +1 -0
  156. package/dist/db/cdc/storage.js +856 -0
  157. package/dist/db/cdc/storage.js.map +1 -0
  158. package/dist/db/cdc/streaming.d.ts +459 -0
  159. package/dist/db/cdc/streaming.d.ts.map +1 -0
  160. package/dist/db/cdc/streaming.js +636 -0
  161. package/dist/db/cdc/streaming.js.map +1 -0
  162. package/dist/db/collections/actions.d.ts +440 -0
  163. package/dist/db/collections/actions.d.ts.map +1 -0
  164. package/dist/db/collections/actions.js +631 -0
  165. package/dist/db/collections/actions.js.map +1 -0
  166. package/dist/db/collections/base.d.ts +342 -0
  167. package/dist/db/collections/base.d.ts.map +1 -0
  168. package/dist/db/collections/base.js +510 -0
  169. package/dist/db/collections/base.js.map +1 -0
  170. package/dist/db/collections/index.d.ts +50 -0
  171. package/dist/db/collections/index.d.ts.map +1 -0
  172. package/dist/db/collections/index.js +48 -0
  173. package/dist/db/collections/index.js.map +1 -0
  174. package/dist/db/collections/nouns.d.ts +260 -0
  175. package/dist/db/collections/nouns.d.ts.map +1 -0
  176. package/dist/db/collections/nouns.js +273 -0
  177. package/dist/db/collections/nouns.js.map +1 -0
  178. package/dist/db/collections/relationships.d.ts +484 -0
  179. package/dist/db/collections/relationships.d.ts.map +1 -0
  180. package/dist/db/collections/relationships.js +815 -0
  181. package/dist/db/collections/relationships.js.map +1 -0
  182. package/dist/db/collections/things.d.ts +439 -0
  183. package/dist/db/collections/things.d.ts.map +1 -0
  184. package/dist/db/collections/things.js +603 -0
  185. package/dist/db/collections/things.js.map +1 -0
  186. package/dist/db/collections/verbs.d.ts +308 -0
  187. package/dist/db/collections/verbs.d.ts.map +1 -0
  188. package/dist/db/collections/verbs.js +480 -0
  189. package/dist/db/collections/verbs.js.map +1 -0
  190. package/dist/db/index.d.ts +14 -0
  191. package/dist/db/index.d.ts.map +1 -0
  192. package/dist/db/index.js +23 -0
  193. package/dist/db/index.js.map +1 -0
  194. package/dist/db/storage/cold.d.ts +313 -0
  195. package/dist/db/storage/cold.d.ts.map +1 -0
  196. package/dist/db/storage/cold.js +319 -0
  197. package/dist/db/storage/cold.js.map +1 -0
  198. package/dist/db/storage/hot.d.ts +340 -0
  199. package/dist/db/storage/hot.d.ts.map +1 -0
  200. package/dist/db/storage/hot.js +333 -0
  201. package/dist/db/storage/hot.js.map +1 -0
  202. package/dist/db/storage/index.d.ts +242 -0
  203. package/dist/db/storage/index.d.ts.map +1 -0
  204. package/dist/db/storage/index.js +109 -0
  205. package/dist/db/storage/index.js.map +1 -0
  206. package/dist/db/storage/snapshots.d.ts +342 -0
  207. package/dist/db/storage/snapshots.d.ts.map +1 -0
  208. package/dist/db/storage/snapshots.js +298 -0
  209. package/dist/db/storage/snapshots.js.map +1 -0
  210. package/dist/db/storage/vortex.d.ts +324 -0
  211. package/dist/db/storage/vortex.d.ts.map +1 -0
  212. package/dist/db/storage/vortex.js +365 -0
  213. package/dist/db/storage/vortex.js.map +1 -0
  214. package/dist/db/storage/warm.d.ts +306 -0
  215. package/dist/db/storage/warm.d.ts.map +1 -0
  216. package/dist/db/storage/warm.js +339 -0
  217. package/dist/db/storage/warm.js.map +1 -0
  218. package/dist/do/DigitalObject.d.ts +595 -0
  219. package/dist/do/DigitalObject.d.ts.map +1 -0
  220. package/dist/do/DigitalObject.js +971 -0
  221. package/dist/do/DigitalObject.js.map +1 -0
  222. package/dist/do/business/financial/accounting.d.ts +436 -0
  223. package/dist/do/business/financial/accounting.d.ts.map +1 -0
  224. package/dist/do/business/financial/accounting.js +476 -0
  225. package/dist/do/business/financial/accounting.js.map +1 -0
  226. package/dist/do/business/financial/index.d.ts +15 -0
  227. package/dist/do/business/financial/index.d.ts.map +1 -0
  228. package/dist/do/business/financial/index.js +20 -0
  229. package/dist/do/business/financial/index.js.map +1 -0
  230. package/dist/do/business/financial/metrics.d.ts +370 -0
  231. package/dist/do/business/financial/metrics.d.ts.map +1 -0
  232. package/dist/do/business/financial/metrics.js +376 -0
  233. package/dist/do/business/financial/metrics.js.map +1 -0
  234. package/dist/do/business/financial/payments.d.ts +397 -0
  235. package/dist/do/business/financial/payments.d.ts.map +1 -0
  236. package/dist/do/business/financial/payments.js +395 -0
  237. package/dist/do/business/financial/payments.js.map +1 -0
  238. package/dist/do/business/financial/reports.d.ts +284 -0
  239. package/dist/do/business/financial/reports.d.ts.map +1 -0
  240. package/dist/do/business/financial/reports.js +347 -0
  241. package/dist/do/business/financial/reports.js.map +1 -0
  242. package/dist/do/business/financial/stripe.d.ts +254 -0
  243. package/dist/do/business/financial/stripe.d.ts.map +1 -0
  244. package/dist/do/business/financial/stripe.js +261 -0
  245. package/dist/do/business/financial/stripe.js.map +1 -0
  246. package/dist/do/business/financial/subscriptions.d.ts +402 -0
  247. package/dist/do/business/financial/subscriptions.d.ts.map +1 -0
  248. package/dist/do/business/financial/subscriptions.js +349 -0
  249. package/dist/do/business/financial/subscriptions.js.map +1 -0
  250. package/dist/do/business/index.d.ts +9 -0
  251. package/dist/do/business/index.d.ts.map +1 -0
  252. package/dist/do/business/index.js +10 -0
  253. package/dist/do/business/index.js.map +1 -0
  254. package/dist/do/colo/followers.d.ts +194 -0
  255. package/dist/do/colo/followers.d.ts.map +1 -0
  256. package/dist/do/colo/followers.js +224 -0
  257. package/dist/do/colo/followers.js.map +1 -0
  258. package/dist/do/colo/fork.d.ts +103 -0
  259. package/dist/do/colo/fork.d.ts.map +1 -0
  260. package/dist/do/colo/fork.js +143 -0
  261. package/dist/do/colo/fork.js.map +1 -0
  262. package/dist/do/colo/index.d.ts +181 -0
  263. package/dist/do/colo/index.d.ts.map +1 -0
  264. package/dist/do/colo/index.js +145 -0
  265. package/dist/do/colo/index.js.map +1 -0
  266. package/dist/do/colo/info.d.ts +106 -0
  267. package/dist/do/colo/info.d.ts.map +1 -0
  268. package/dist/do/colo/info.js +196 -0
  269. package/dist/do/colo/info.js.map +1 -0
  270. package/dist/do/colo/migrate.d.ts +161 -0
  271. package/dist/do/colo/migrate.d.ts.map +1 -0
  272. package/dist/do/colo/migrate.js +190 -0
  273. package/dist/do/colo/migrate.js.map +1 -0
  274. package/dist/do/colo/routing.d.ts +182 -0
  275. package/dist/do/colo/routing.d.ts.map +1 -0
  276. package/dist/do/colo/routing.js +254 -0
  277. package/dist/do/colo/routing.js.map +1 -0
  278. package/dist/do/domains/dns.d.ts +269 -0
  279. package/dist/do/domains/dns.d.ts.map +1 -0
  280. package/dist/do/domains/dns.js +215 -0
  281. package/dist/do/domains/dns.js.map +1 -0
  282. package/dist/do/domains/index.d.ts +40 -0
  283. package/dist/do/domains/index.d.ts.map +1 -0
  284. package/dist/do/domains/index.js +61 -0
  285. package/dist/do/domains/index.js.map +1 -0
  286. package/dist/do/domains/routing.d.ts +263 -0
  287. package/dist/do/domains/routing.d.ts.map +1 -0
  288. package/dist/do/domains/routing.js +362 -0
  289. package/dist/do/domains/routing.js.map +1 -0
  290. package/dist/do/domains/ssl.d.ts +217 -0
  291. package/dist/do/domains/ssl.d.ts.map +1 -0
  292. package/dist/do/domains/ssl.js +231 -0
  293. package/dist/do/domains/ssl.js.map +1 -0
  294. package/dist/do/domains/subdomains.d.ts +207 -0
  295. package/dist/do/domains/subdomains.d.ts.map +1 -0
  296. package/dist/do/domains/subdomains.js +223 -0
  297. package/dist/do/domains/subdomains.js.map +1 -0
  298. package/dist/do/domains/tlds.d.ts +175 -0
  299. package/dist/do/domains/tlds.d.ts.map +1 -0
  300. package/dist/do/domains/tlds.js +188 -0
  301. package/dist/do/domains/tlds.js.map +1 -0
  302. package/dist/do/domains/validation.d.ts +164 -0
  303. package/dist/do/domains/validation.d.ts.map +1 -0
  304. package/dist/do/domains/validation.js +290 -0
  305. package/dist/do/domains/validation.js.map +1 -0
  306. package/dist/do/hibernation.d.ts +385 -0
  307. package/dist/do/hibernation.d.ts.map +1 -0
  308. package/dist/do/hibernation.js +518 -0
  309. package/dist/do/hibernation.js.map +1 -0
  310. package/dist/do/index.d.ts +19 -0
  311. package/dist/do/index.d.ts.map +1 -0
  312. package/dist/do/index.js +23 -0
  313. package/dist/do/index.js.map +1 -0
  314. package/dist/do/state.d.ts +336 -0
  315. package/dist/do/state.d.ts.map +1 -0
  316. package/dist/do/state.js +290 -0
  317. package/dist/do/state.js.map +1 -0
  318. package/dist/index.d.ts +44 -0
  319. package/dist/index.d.ts.map +1 -0
  320. package/dist/index.js +89 -0
  321. package/dist/index.js.map +1 -0
  322. package/dist/rpc/client.d.ts +426 -0
  323. package/dist/rpc/client.d.ts.map +1 -0
  324. package/dist/rpc/client.js +826 -0
  325. package/dist/rpc/client.js.map +1 -0
  326. package/dist/rpc/index.d.ts +19 -0
  327. package/dist/rpc/index.d.ts.map +1 -0
  328. package/dist/rpc/index.js +23 -0
  329. package/dist/rpc/index.js.map +1 -0
  330. package/dist/rpc/methods.d.ts +364 -0
  331. package/dist/rpc/methods.d.ts.map +1 -0
  332. package/dist/rpc/methods.js +557 -0
  333. package/dist/rpc/methods.js.map +1 -0
  334. package/dist/rpc/protocol.d.ts +310 -0
  335. package/dist/rpc/protocol.d.ts.map +1 -0
  336. package/dist/rpc/protocol.js +672 -0
  337. package/dist/rpc/protocol.js.map +1 -0
  338. package/dist/rpc/routes.d.ts +332 -0
  339. package/dist/rpc/routes.d.ts.map +1 -0
  340. package/dist/rpc/routes.js +633 -0
  341. package/dist/rpc/routes.js.map +1 -0
  342. package/dist/rpc/server.d.ts +380 -0
  343. package/dist/rpc/server.d.ts.map +1 -0
  344. package/dist/rpc/server.js +850 -0
  345. package/dist/rpc/server.js.map +1 -0
  346. package/dist/sdk/auth.d.ts +201 -0
  347. package/dist/sdk/auth.d.ts.map +1 -0
  348. package/dist/sdk/auth.js +343 -0
  349. package/dist/sdk/auth.js.map +1 -0
  350. package/dist/sdk/client.d.ts +123 -0
  351. package/dist/sdk/client.d.ts.map +1 -0
  352. package/dist/sdk/client.js +403 -0
  353. package/dist/sdk/client.js.map +1 -0
  354. package/dist/sdk/index.d.ts +123 -0
  355. package/dist/sdk/index.d.ts.map +1 -0
  356. package/dist/sdk/index.js +230 -0
  357. package/dist/sdk/index.js.map +1 -0
  358. package/dist/sdk/rpc.d.ts +275 -0
  359. package/dist/sdk/rpc.d.ts.map +1 -0
  360. package/dist/sdk/rpc.js +249 -0
  361. package/dist/sdk/rpc.js.map +1 -0
  362. package/dist/sdk/transport.d.ts +283 -0
  363. package/dist/sdk/transport.d.ts.map +1 -0
  364. package/dist/sdk/transport.js +661 -0
  365. package/dist/sdk/transport.js.map +1 -0
  366. package/dist/sdk/types.d.ts +265 -0
  367. package/dist/sdk/types.d.ts.map +1 -0
  368. package/dist/sdk/types.js +27 -0
  369. package/dist/sdk/types.js.map +1 -0
  370. package/dist/types/ai.d.ts +533 -0
  371. package/dist/types/ai.d.ts.map +1 -0
  372. package/dist/types/ai.js +18 -0
  373. package/dist/types/ai.js.map +1 -0
  374. package/dist/types/app.d.ts +371 -0
  375. package/dist/types/app.d.ts.map +1 -0
  376. package/dist/types/app.js +151 -0
  377. package/dist/types/app.js.map +1 -0
  378. package/dist/types/business.d.ts +482 -0
  379. package/dist/types/business.d.ts.map +1 -0
  380. package/dist/types/business.js +60 -0
  381. package/dist/types/business.js.map +1 -0
  382. package/dist/types/cascade.d.ts +323 -0
  383. package/dist/types/cascade.d.ts.map +1 -0
  384. package/dist/types/cascade.js +82 -0
  385. package/dist/types/cascade.js.map +1 -0
  386. package/dist/types/collections.d.ts +704 -0
  387. package/dist/types/collections.d.ts.map +1 -0
  388. package/dist/types/collections.js +23 -0
  389. package/dist/types/collections.js.map +1 -0
  390. package/dist/types/colo.d.ts +171 -0
  391. package/dist/types/colo.d.ts.map +1 -0
  392. package/dist/types/colo.js +63 -0
  393. package/dist/types/colo.js.map +1 -0
  394. package/dist/types/communication.d.ts +595 -0
  395. package/dist/types/communication.d.ts.map +1 -0
  396. package/dist/types/communication.js +16 -0
  397. package/dist/types/communication.js.map +1 -0
  398. package/dist/types/content.d.ts +286 -0
  399. package/dist/types/content.d.ts.map +1 -0
  400. package/dist/types/content.js +8 -0
  401. package/dist/types/content.js.map +1 -0
  402. package/dist/types/context.d.ts +407 -0
  403. package/dist/types/context.d.ts.map +1 -0
  404. package/dist/types/context.js +36 -0
  405. package/dist/types/context.js.map +1 -0
  406. package/dist/types/databases.d.ts +377 -0
  407. package/dist/types/databases.d.ts.map +1 -0
  408. package/dist/types/databases.js +14 -0
  409. package/dist/types/databases.js.map +1 -0
  410. package/dist/types/domains.d.ts +132 -0
  411. package/dist/types/domains.d.ts.map +1 -0
  412. package/dist/types/domains.js +107 -0
  413. package/dist/types/domains.js.map +1 -0
  414. package/dist/types/execution.d.ts +381 -0
  415. package/dist/types/execution.d.ts.map +1 -0
  416. package/dist/types/execution.js +40 -0
  417. package/dist/types/execution.js.map +1 -0
  418. package/dist/types/financial.d.ts +608 -0
  419. package/dist/types/financial.d.ts.map +1 -0
  420. package/dist/types/financial.js +12 -0
  421. package/dist/types/financial.js.map +1 -0
  422. package/dist/types/functions.d.ts +215 -0
  423. package/dist/types/functions.d.ts.map +1 -0
  424. package/dist/types/functions.js +15 -0
  425. package/dist/types/functions.js.map +1 -0
  426. package/dist/types/git.d.ts +299 -0
  427. package/dist/types/git.d.ts.map +1 -0
  428. package/dist/types/git.js +17 -0
  429. package/dist/types/git.js.map +1 -0
  430. package/dist/types/identity.d.ts +141 -0
  431. package/dist/types/identity.d.ts.map +1 -0
  432. package/dist/types/identity.js +54 -0
  433. package/dist/types/identity.js.map +1 -0
  434. package/dist/types/index.d.ts +40 -0
  435. package/dist/types/index.d.ts.map +1 -0
  436. package/dist/types/index.js +65 -0
  437. package/dist/types/index.js.map +1 -0
  438. package/dist/types/integrations.d.ts +356 -0
  439. package/dist/types/integrations.d.ts.map +1 -0
  440. package/dist/types/integrations.js +19 -0
  441. package/dist/types/integrations.js.map +1 -0
  442. package/dist/types/mdxui.d.ts +1955 -0
  443. package/dist/types/mdxui.d.ts.map +1 -0
  444. package/dist/types/mdxui.js +751 -0
  445. package/dist/types/mdxui.js.map +1 -0
  446. package/dist/types/observability.d.ts +315 -0
  447. package/dist/types/observability.d.ts.map +1 -0
  448. package/dist/types/observability.js +13 -0
  449. package/dist/types/observability.js.map +1 -0
  450. package/dist/types/rpc.d.ts +339 -0
  451. package/dist/types/rpc.d.ts.map +1 -0
  452. package/dist/types/rpc.js +24 -0
  453. package/dist/types/rpc.js.map +1 -0
  454. package/dist/types/saas.d.ts +678 -0
  455. package/dist/types/saas.d.ts.map +1 -0
  456. package/dist/types/saas.js +59 -0
  457. package/dist/types/saas.js.map +1 -0
  458. package/dist/types/service.d.ts +676 -0
  459. package/dist/types/service.d.ts.map +1 -0
  460. package/dist/types/service.js +69 -0
  461. package/dist/types/service.js.map +1 -0
  462. package/dist/types/site.d.ts +317 -0
  463. package/dist/types/site.d.ts.map +1 -0
  464. package/dist/types/site.js +203 -0
  465. package/dist/types/site.js.map +1 -0
  466. package/dist/types/startup.d.ts +576 -0
  467. package/dist/types/startup.d.ts.map +1 -0
  468. package/dist/types/startup.js +59 -0
  469. package/dist/types/startup.js.map +1 -0
  470. package/dist/types/storage.d.ts +276 -0
  471. package/dist/types/storage.d.ts.map +1 -0
  472. package/dist/types/storage.js +35 -0
  473. package/dist/types/storage.js.map +1 -0
  474. package/dist/types/telephony.d.ts +458 -0
  475. package/dist/types/telephony.d.ts.map +1 -0
  476. package/dist/types/telephony.js +19 -0
  477. package/dist/types/telephony.js.map +1 -0
  478. package/dist/types/tenant.d.ts +708 -0
  479. package/dist/types/tenant.d.ts.map +1 -0
  480. package/dist/types/tenant.js +103 -0
  481. package/dist/types/tenant.js.map +1 -0
  482. package/dist/types/voice-ai.d.ts +459 -0
  483. package/dist/types/voice-ai.d.ts.map +1 -0
  484. package/dist/types/voice-ai.js +32 -0
  485. package/dist/types/voice-ai.js.map +1 -0
  486. package/package.json +143 -0
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Storage Layer
3
+ *
4
+ * Three-tier storage architecture for Digital Objects:
5
+ * - Hot: DO SQLite + Vortex columnar (~4ms)
6
+ * - Warm: Edge Cache API (~10ms, free)
7
+ * - Cold: R2 + Iceberg (~69ms, $0.015/GB/mo)
8
+ *
9
+ * @module @do/core/storage
10
+ */
11
+ import type { StorageTier, StorageTierInfo, CDCEvent, SyncState, SyncOptions, SyncResult } from '../../types/storage';
12
+ import { HotStorage } from './hot';
13
+ import { WarmStorage } from './warm';
14
+ import { ColdStorage } from './cold';
15
+ import { SnapshotManager } from './snapshots';
16
+ export { HotStorage } from './hot';
17
+ export { WarmStorage } from './warm';
18
+ export { ColdStorage } from './cold';
19
+ export { VortexEncoder, VortexDecoder } from './vortex';
20
+ export { SnapshotManager } from './snapshots';
21
+ /**
22
+ * Storage configuration options
23
+ */
24
+ export interface StorageConfig {
25
+ /** DO SQLite storage binding */
26
+ sqlite?: SqlStorage;
27
+ /** Cloudflare Cache API */
28
+ cache?: CacheStorage;
29
+ /** R2 bucket binding */
30
+ r2?: R2Bucket;
31
+ /** CDC event emitter */
32
+ onCDC?: (event: CDCEvent) => void | Promise<void>;
33
+ /** Hot tier configuration */
34
+ hot?: HotStorageConfig;
35
+ /** Warm tier configuration */
36
+ warm?: WarmStorageConfig;
37
+ /** Cold tier configuration */
38
+ cold?: ColdStorageConfig;
39
+ /** Sync configuration */
40
+ sync?: SyncConfig;
41
+ }
42
+ /**
43
+ * Hot storage configuration
44
+ */
45
+ export interface HotStorageConfig {
46
+ /** Enable hot storage (default: true) */
47
+ enabled?: boolean;
48
+ /** Maximum storage size in bytes */
49
+ maxSize?: number;
50
+ /** Row count threshold for Vortex conversion */
51
+ vortexThreshold?: number;
52
+ }
53
+ /**
54
+ * Warm storage configuration
55
+ */
56
+ export interface WarmStorageConfig {
57
+ /** Enable warm storage (default: true if cache available) */
58
+ enabled?: boolean;
59
+ /** Default TTL in seconds */
60
+ defaultTTL?: number;
61
+ /** Maximum cached entries */
62
+ maxEntries?: number;
63
+ }
64
+ /**
65
+ * Cold storage configuration
66
+ */
67
+ export interface ColdStorageConfig {
68
+ /** Enable cold storage (default: true if R2 available) */
69
+ enabled?: boolean;
70
+ /** R2 key prefix */
71
+ prefix?: string;
72
+ /** Partition fields */
73
+ partitionBy?: string[];
74
+ /** Compression codec */
75
+ compressionCodec?: 'none' | 'zstd' | 'snappy' | 'gzip';
76
+ }
77
+ /**
78
+ * Sync configuration
79
+ */
80
+ export interface SyncConfig {
81
+ /** Batch size for sync operations */
82
+ batchSize?: number;
83
+ /** Sync interval in milliseconds */
84
+ interval?: number;
85
+ /** Auto-sync enabled */
86
+ autoSync?: boolean;
87
+ }
88
+ /**
89
+ * Unified storage interface across all tiers
90
+ */
91
+ export interface UnifiedStorage {
92
+ /** Hot tier storage */
93
+ readonly hot: HotStorage;
94
+ /** Warm tier storage (optional) */
95
+ readonly warm?: WarmStorage;
96
+ /** Cold tier storage (optional) */
97
+ readonly cold?: ColdStorage;
98
+ /** Snapshot manager */
99
+ readonly snapshots: SnapshotManager;
100
+ /**
101
+ * Insert a document (writes to hot, invalidates warm)
102
+ * @param collection - Collection name
103
+ * @param document - Document to insert
104
+ */
105
+ insert<T extends {
106
+ id: string;
107
+ }>(collection: string, document: T): Promise<void>;
108
+ /**
109
+ * Query documents (checks warm cache first, falls back to hot)
110
+ * @param collection - Collection name
111
+ * @param query - Query parameters
112
+ */
113
+ query<T>(collection: string, query?: QueryOptions): Promise<T[]>;
114
+ /**
115
+ * Update a document
116
+ * @param collection - Collection name
117
+ * @param id - Document ID
118
+ * @param updates - Partial document updates
119
+ */
120
+ update<T>(collection: string, id: string, updates: Partial<T>): Promise<void>;
121
+ /**
122
+ * Delete a document
123
+ * @param collection - Collection name
124
+ * @param id - Document ID
125
+ */
126
+ delete(collection: string, id: string): Promise<void>;
127
+ /**
128
+ * Archive data to cold storage
129
+ * @param collection - Collection name
130
+ * @param options - Archive options
131
+ */
132
+ archive(collection: string, options?: ArchiveOptions): Promise<SyncResult>;
133
+ /**
134
+ * Get current sync state
135
+ */
136
+ getSyncState(): Promise<SyncState>;
137
+ /**
138
+ * Sync data between tiers
139
+ * @param options - Sync options
140
+ */
141
+ sync(options?: SyncOptions): Promise<SyncResult>;
142
+ /**
143
+ * Subscribe to CDC events
144
+ * @param callback - Event handler
145
+ */
146
+ onCDC(callback: (event: CDCEvent) => void | Promise<void>): () => void;
147
+ }
148
+ /**
149
+ * Query options for storage operations
150
+ */
151
+ export interface QueryOptions {
152
+ /** Filter conditions */
153
+ where?: Record<string, unknown>;
154
+ /** Sort order */
155
+ orderBy?: {
156
+ field: string;
157
+ direction: 'asc' | 'desc';
158
+ }[];
159
+ /** Maximum results */
160
+ limit?: number;
161
+ /** Offset for pagination */
162
+ offset?: number;
163
+ /** Cache TTL override (warm tier) */
164
+ cacheTTL?: number;
165
+ /** Skip cache lookup */
166
+ skipCache?: boolean;
167
+ }
168
+ /**
169
+ * Archive options for cold storage
170
+ */
171
+ export interface ArchiveOptions {
172
+ /** Archive records older than this timestamp */
173
+ olderThan?: number;
174
+ /** Delete archived records from hot */
175
+ deleteAfterArchive?: boolean;
176
+ /** Partition configuration */
177
+ partition?: Record<string, string | number>;
178
+ }
179
+ /**
180
+ * Storage event types
181
+ */
182
+ export type StorageEventType = 'insert' | 'update' | 'delete' | 'sync' | 'archive';
183
+ /**
184
+ * Storage event
185
+ */
186
+ export interface StorageEvent {
187
+ type: StorageEventType;
188
+ tier: StorageTier;
189
+ collection: string;
190
+ documentId?: string;
191
+ timestamp: number;
192
+ metadata?: Record<string, unknown>;
193
+ }
194
+ /**
195
+ * Create a unified storage instance
196
+ *
197
+ * @param config - Storage configuration
198
+ * @returns Unified storage interface
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * const storage = createStorage({
203
+ * sqlite: env.DO_STORAGE,
204
+ * cache: caches,
205
+ * r2: env.R2_BUCKET,
206
+ * })
207
+ *
208
+ * await storage.insert('users', { id: '1', name: 'Alice' })
209
+ * const users = await storage.query('users', { where: { name: 'Alice' } })
210
+ * ```
211
+ */
212
+ export declare function createStorage(config: StorageConfig): UnifiedStorage;
213
+ /**
214
+ * Storage error class
215
+ */
216
+ export declare class StorageError extends Error {
217
+ readonly tier: StorageTier;
218
+ readonly operation: string;
219
+ readonly cause?: Error | undefined;
220
+ constructor(message: string, tier: StorageTier, operation: string, cause?: Error | undefined);
221
+ }
222
+ /**
223
+ * Check if a tier is available
224
+ *
225
+ * @param tier - Storage tier to check
226
+ * @param config - Storage configuration
227
+ * @returns Whether the tier is available
228
+ */
229
+ export declare function isTierAvailable(tier: StorageTier, config: StorageConfig): boolean;
230
+ /**
231
+ * Get tier info
232
+ *
233
+ * @param tier - Storage tier
234
+ * @returns Tier information
235
+ */
236
+ export declare function getTierInfo(tier: StorageTier): StorageTierInfo;
237
+ declare global {
238
+ interface SqlStorage {
239
+ exec(query: string, params?: unknown[]): Promise<unknown>;
240
+ }
241
+ }
242
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../db/storage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Storage Layer
3
+ *
4
+ * Three-tier storage architecture for Digital Objects:
5
+ * - Hot: DO SQLite + Vortex columnar (~4ms)
6
+ * - Warm: Edge Cache API (~10ms, free)
7
+ * - Cold: R2 + Iceberg (~69ms, $0.015/GB/mo)
8
+ *
9
+ * @module @do/core/storage
10
+ */
11
+ // Re-export tier implementations
12
+ export { HotStorage } from './hot';
13
+ export { WarmStorage } from './warm';
14
+ export { ColdStorage } from './cold';
15
+ export { VortexEncoder, VortexDecoder } from './vortex';
16
+ export { SnapshotManager } from './snapshots';
17
+ /**
18
+ * Create a unified storage instance
19
+ *
20
+ * @param config - Storage configuration
21
+ * @returns Unified storage interface
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const storage = createStorage({
26
+ * sqlite: env.DO_STORAGE,
27
+ * cache: caches,
28
+ * r2: env.R2_BUCKET,
29
+ * })
30
+ *
31
+ * await storage.insert('users', { id: '1', name: 'Alice' })
32
+ * const users = await storage.query('users', { where: { name: 'Alice' } })
33
+ * ```
34
+ */
35
+ export function createStorage(config) {
36
+ // TODO: Implement unified storage factory
37
+ throw new Error('Not implemented');
38
+ }
39
+ /**
40
+ * Storage error class
41
+ */
42
+ export class StorageError extends Error {
43
+ tier;
44
+ operation;
45
+ cause;
46
+ constructor(message, tier, operation, cause) {
47
+ super(message);
48
+ this.tier = tier;
49
+ this.operation = operation;
50
+ this.cause = cause;
51
+ this.name = 'StorageError';
52
+ }
53
+ }
54
+ /**
55
+ * Check if a tier is available
56
+ *
57
+ * @param tier - Storage tier to check
58
+ * @param config - Storage configuration
59
+ * @returns Whether the tier is available
60
+ */
61
+ export function isTierAvailable(tier, config) {
62
+ switch (tier) {
63
+ case 'Hot':
64
+ return config.sqlite !== undefined;
65
+ case 'Warm':
66
+ return config.cache !== undefined;
67
+ case 'Cold':
68
+ return config.r2 !== undefined;
69
+ default:
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Get tier info
75
+ *
76
+ * @param tier - Storage tier
77
+ * @returns Tier information
78
+ */
79
+ export function getTierInfo(tier) {
80
+ // Import from types to avoid duplication
81
+ const tiers = {
82
+ Hot: {
83
+ tier: 'Hot',
84
+ name: 'Hot Storage',
85
+ description: 'DO SQLite + Vortex columnar',
86
+ latency: '~4ms',
87
+ cost: 'Included in DO pricing',
88
+ technology: 'SQLite + Vortex',
89
+ },
90
+ Warm: {
91
+ tier: 'Warm',
92
+ name: 'Warm Storage',
93
+ description: 'Edge Cache API',
94
+ latency: '~10ms',
95
+ cost: 'Free',
96
+ technology: 'Cloudflare Cache API',
97
+ },
98
+ Cold: {
99
+ tier: 'Cold',
100
+ name: 'Cold Storage',
101
+ description: 'R2 + Iceberg/Parquet',
102
+ latency: '~69ms',
103
+ cost: '$0.015/GB/month',
104
+ technology: 'R2 + Apache Iceberg',
105
+ },
106
+ };
107
+ return tiers[tier];
108
+ }
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../db/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH,iCAAiC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AA4L7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,0CAA0C;IAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IACA;IAJlB,YACE,OAAe,EACC,IAAiB,EACjB,SAAiB,EACjB,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAA;QAJE,SAAI,GAAJ,IAAI,CAAa;QACjB,cAAS,GAAT,SAAS,CAAQ;QACjB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC5B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAiB,EAAE,MAAqB;IACtE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAA;QACpC,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAAA;QACnC,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,EAAE,KAAK,SAAS,CAAA;QAChC;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,yCAAyC;IACzC,MAAM,KAAK,GAAyC;QAClD,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,wBAAwB;YAC9B,UAAU,EAAE,iBAAiB;SAC9B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,sBAAsB;SACnC;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,qBAAqB;SAClC;KACF,CAAA;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC"}
@@ -0,0 +1,342 @@
1
+ /**
2
+ * Snapshot Management
3
+ *
4
+ * Manages DO state snapshots for persistence, recovery, and archival.
5
+ * Supports full and incremental snapshots with tier promotion.
6
+ *
7
+ * Features:
8
+ * - Full and incremental snapshot types
9
+ * - Vortex encoding for efficient storage
10
+ * - Automatic tier promotion (hot -> cold)
11
+ * - Retention policy enforcement
12
+ *
13
+ * @module @do/core/storage/snapshots
14
+ */
15
+ import type { Snapshot, CDCEvent } from '../../types/storage';
16
+ import { HotStorage } from './hot';
17
+ import { ColdStorage } from './cold';
18
+ /**
19
+ * Snapshot manager configuration
20
+ */
21
+ export interface SnapshotManagerConfig {
22
+ /** Hot storage instance */
23
+ hot?: HotStorage;
24
+ /** Cold storage instance */
25
+ cold?: ColdStorage;
26
+ /** Retention policy */
27
+ retention?: RetentionPolicy;
28
+ /** Automatic promotion settings */
29
+ autoPromote?: AutoPromoteConfig;
30
+ }
31
+ /**
32
+ * Retention policy configuration
33
+ */
34
+ export interface RetentionPolicy {
35
+ /** Hot tier retention */
36
+ hot?: {
37
+ /** Maximum age in milliseconds */
38
+ maxAge?: number;
39
+ /** Maximum snapshot count */
40
+ maxCount?: number;
41
+ };
42
+ /** Cold tier retention */
43
+ cold?: {
44
+ /** Maximum age in milliseconds */
45
+ maxAge?: number;
46
+ /** Maximum snapshot count (null = unlimited) */
47
+ maxCount?: number | null;
48
+ };
49
+ /** Maximum incremental chain length before forcing full snapshot */
50
+ incrementalChainLength?: number;
51
+ }
52
+ /**
53
+ * Auto-promotion configuration
54
+ */
55
+ export interface AutoPromoteConfig {
56
+ /** Enable automatic promotion */
57
+ enabled: boolean;
58
+ /** Promote snapshots older than this (ms) */
59
+ olderThan: number;
60
+ /** Run promotion check interval (ms) */
61
+ interval?: number;
62
+ }
63
+ /**
64
+ * Snapshot creation options
65
+ */
66
+ export interface CreateSnapshotOptions {
67
+ /** DO ID */
68
+ doId: string;
69
+ /** DO type */
70
+ doType: string;
71
+ /** Table data to snapshot */
72
+ tables: Record<string, unknown[]>;
73
+ /** Parent snapshot ID (for incremental) */
74
+ parentId?: string;
75
+ /** CDC events since parent (for incremental) */
76
+ changes?: CDCEvent[];
77
+ /** Custom metadata */
78
+ metadata?: Record<string, string>;
79
+ }
80
+ /**
81
+ * Snapshot list options
82
+ */
83
+ export interface ListSnapshotsOptions {
84
+ /** Filter by DO ID */
85
+ doId?: string;
86
+ /** Filter by DO type */
87
+ doType?: string;
88
+ /** Filter by snapshot type */
89
+ type?: 'full' | 'incremental';
90
+ /** Maximum results */
91
+ limit?: number;
92
+ /** Offset for pagination */
93
+ offset?: number;
94
+ /** Sort order */
95
+ orderBy?: 'timestamp' | 'version';
96
+ /** Sort direction */
97
+ orderDirection?: 'asc' | 'desc';
98
+ }
99
+ /**
100
+ * Snapshot promotion options
101
+ */
102
+ export interface PromoteOptions {
103
+ /** Promote snapshots older than this timestamp */
104
+ olderThan?: number;
105
+ /** Target tier */
106
+ targetTier: 'cold';
107
+ /** Delete from source tier after promotion */
108
+ deleteAfterPromote?: boolean;
109
+ /** Maximum snapshots to promote in one batch */
110
+ batchSize?: number;
111
+ }
112
+ /**
113
+ * Snapshot restoration options
114
+ */
115
+ export interface RestoreOptions {
116
+ /** Target tables to restore (null = all) */
117
+ tables?: string[];
118
+ /** Validate checksum before restore */
119
+ validateChecksum?: boolean;
120
+ }
121
+ /**
122
+ * Snapshot manager for DO state persistence
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * const manager = new SnapshotManager({
127
+ * hot: hotStorage,
128
+ * cold: coldStorage,
129
+ * retention: {
130
+ * hot: { maxAge: days(7), maxCount: 100 },
131
+ * cold: { maxAge: years(7) },
132
+ * },
133
+ * })
134
+ *
135
+ * // Create full snapshot
136
+ * const snapshot = await manager.create('full', {
137
+ * doId: 'do_123',
138
+ * doType: 'UserStore',
139
+ * tables: { users: [...], orders: [...] },
140
+ * })
141
+ *
142
+ * // Create incremental snapshot
143
+ * const incremental = await manager.create('incremental', {
144
+ * doId: 'do_123',
145
+ * doType: 'UserStore',
146
+ * tables: { users: [...] },
147
+ * parentId: snapshot.id,
148
+ * changes: cdcEvents,
149
+ * })
150
+ *
151
+ * // Restore from snapshot
152
+ * const data = await manager.restore(snapshot.id)
153
+ *
154
+ * // Promote old snapshots to cold storage
155
+ * await manager.promote({ olderThan: days(30), targetTier: 'cold' })
156
+ *
157
+ * // Cleanup expired snapshots
158
+ * await manager.cleanup()
159
+ * ```
160
+ */
161
+ export declare class SnapshotManager {
162
+ private config;
163
+ /**
164
+ * Create a new snapshot manager
165
+ *
166
+ * @param config - Manager configuration
167
+ */
168
+ constructor(config?: SnapshotManagerConfig);
169
+ /**
170
+ * Create a new snapshot
171
+ *
172
+ * @param type - Snapshot type (full or incremental)
173
+ * @param options - Snapshot data and options
174
+ * @returns Created snapshot
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * // Full snapshot
179
+ * const full = await manager.create('full', {
180
+ * doId: 'do_123',
181
+ * doType: 'Store',
182
+ * tables: { items: allItems },
183
+ * })
184
+ *
185
+ * // Incremental snapshot (only changes)
186
+ * const incr = await manager.create('incremental', {
187
+ * doId: 'do_123',
188
+ * doType: 'Store',
189
+ * tables: { items: changedItems },
190
+ * parentId: full.id,
191
+ * changes: recentCDCEvents,
192
+ * })
193
+ * ```
194
+ */
195
+ create(type: 'full' | 'incremental', options: CreateSnapshotOptions): Promise<Snapshot>;
196
+ /**
197
+ * Restore data from a snapshot
198
+ *
199
+ * @param snapshotId - Snapshot ID to restore
200
+ * @param options - Restoration options
201
+ * @returns Restored snapshot data
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * const data = await manager.restore(snapshotId)
206
+ * for (const [table, rows] of Object.entries(data.tables)) {
207
+ * await hot.bulkInsert(table, rows)
208
+ * }
209
+ * ```
210
+ */
211
+ restore(snapshotId: string, options?: RestoreOptions): Promise<Snapshot>;
212
+ /**
213
+ * Get a snapshot by ID
214
+ *
215
+ * @param snapshotId - Snapshot ID
216
+ * @returns Snapshot or null if not found
217
+ */
218
+ get(snapshotId: string): Promise<Snapshot | null>;
219
+ /**
220
+ * List snapshots
221
+ *
222
+ * @param options - List options
223
+ * @returns Array of snapshots
224
+ */
225
+ list(options?: ListSnapshotsOptions): Promise<Snapshot[]>;
226
+ /**
227
+ * Get the latest snapshot for a DO
228
+ *
229
+ * @param doId - DO ID
230
+ * @param type - Optional type filter
231
+ * @returns Latest snapshot or null
232
+ */
233
+ getLatest(doId: string, type?: 'full' | 'incremental'): Promise<Snapshot | null>;
234
+ /**
235
+ * Delete a snapshot
236
+ *
237
+ * @param snapshotId - Snapshot ID to delete
238
+ * @returns True if deleted
239
+ */
240
+ delete(snapshotId: string): Promise<boolean>;
241
+ /**
242
+ * Promote snapshots to cold storage
243
+ *
244
+ * Moves old snapshots from hot to cold tier for cost efficiency.
245
+ *
246
+ * @param options - Promotion options
247
+ * @returns Promotion result
248
+ *
249
+ * @example
250
+ * ```typescript
251
+ * const result = await manager.promote({
252
+ * olderThan: days(30),
253
+ * targetTier: 'cold',
254
+ * deleteAfterPromote: true,
255
+ * })
256
+ * console.log(`Promoted ${result.count} snapshots`)
257
+ * ```
258
+ */
259
+ promote(options: PromoteOptions): Promise<{
260
+ count: number;
261
+ bytesPromoted: number;
262
+ errors: Array<{
263
+ snapshotId: string;
264
+ error: string;
265
+ }>;
266
+ }>;
267
+ /**
268
+ * Cleanup expired snapshots according to retention policy
269
+ *
270
+ * @returns Cleanup result
271
+ */
272
+ cleanup(): Promise<{
273
+ hotDeleted: number;
274
+ coldDeleted: number;
275
+ bytesReclaimed: number;
276
+ }>;
277
+ /**
278
+ * Get the incremental chain for a snapshot
279
+ *
280
+ * Returns all snapshots in the chain from the base full snapshot
281
+ * to the specified snapshot.
282
+ *
283
+ * @param snapshotId - Target snapshot ID
284
+ * @returns Chain of snapshots (oldest first)
285
+ */
286
+ getChain(snapshotId: string): Promise<Snapshot[]>;
287
+ /**
288
+ * Consolidate incremental chain into a new full snapshot
289
+ *
290
+ * Creates a new full snapshot by applying all incrementals,
291
+ * reducing restore time for long chains.
292
+ *
293
+ * @param snapshotId - Latest incremental snapshot ID
294
+ * @returns New full snapshot
295
+ */
296
+ consolidate(snapshotId: string): Promise<Snapshot>;
297
+ /**
298
+ * Get next version number for a DO
299
+ *
300
+ * @param doId - DO ID
301
+ * @returns Next version number
302
+ */
303
+ private nextVersion;
304
+ /**
305
+ * Calculate snapshot size
306
+ *
307
+ * @param tables - Table data
308
+ * @returns Size in bytes
309
+ */
310
+ private calculateSize;
311
+ /**
312
+ * Count total rows across tables
313
+ *
314
+ * @param tables - Table data
315
+ * @returns Total row count
316
+ */
317
+ private countRows;
318
+ /**
319
+ * Generate checksum for snapshot data
320
+ *
321
+ * @param data - Data to checksum
322
+ * @returns Checksum string
323
+ */
324
+ private generateChecksum;
325
+ }
326
+ /**
327
+ * Helper: Convert milliseconds to days
328
+ */
329
+ export declare function days(n: number): number;
330
+ /**
331
+ * Helper: Convert milliseconds to years
332
+ */
333
+ export declare function years(n: number): number;
334
+ /**
335
+ * Helper: Check if snapshot is expired
336
+ */
337
+ export declare function isExpired(snapshot: Snapshot, maxAge: number): boolean;
338
+ /**
339
+ * Helper: Get snapshot type from metadata
340
+ */
341
+ export declare function getSnapshotType(snapshot: Snapshot): 'Full' | 'Incremental';
342
+ //# sourceMappingURL=snapshots.d.ts.map