@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,365 @@
1
+ /**
2
+ * Vortex Blob Format
3
+ *
4
+ * Columnar blob encoding optimized for DO SQLite storage.
5
+ * Provides efficient storage and column-selective reads for analytical queries.
6
+ *
7
+ * Format structure:
8
+ * - Header: magic, version, column count, row count
9
+ * - Column data: per-column compressed data
10
+ * - Column index: column metadata and offsets
11
+ * - Footer: checksum, index offset
12
+ *
13
+ * @module @do/core/storage/vortex
14
+ */
15
+ /**
16
+ * Vortex format magic bytes ("VRTX")
17
+ */
18
+ export const VORTEX_MAGIC = new Uint8Array([0x56, 0x52, 0x54, 0x58]);
19
+ /**
20
+ * Current Vortex format version
21
+ */
22
+ export const VORTEX_VERSION = 1;
23
+ /**
24
+ * Vortex encoder for creating columnar blobs
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const schema: VortexSchema = {
29
+ * columns: [
30
+ * { name: 'id', type: 'string', nullable: false },
31
+ * { name: 'name', type: 'string', nullable: false },
32
+ * { name: 'age', type: 'int32', nullable: true },
33
+ * ],
34
+ * }
35
+ *
36
+ * const encoder = new VortexEncoder(schema)
37
+ *
38
+ * // Add rows
39
+ * encoder.addRow({ id: '1', name: 'Alice', age: 30 })
40
+ * encoder.addRow({ id: '2', name: 'Bob', age: null })
41
+ *
42
+ * // Or add many at once
43
+ * encoder.addRows(moreUsers)
44
+ *
45
+ * // Finish and get blob
46
+ * const blob = encoder.finish()
47
+ *
48
+ * // Store in SQLite
49
+ * await db.exec('INSERT INTO vortex (data) VALUES (?)', [blob])
50
+ * ```
51
+ */
52
+ export class VortexEncoder {
53
+ schema;
54
+ options;
55
+ rows = [];
56
+ finished = false;
57
+ /**
58
+ * Create a new Vortex encoder
59
+ *
60
+ * @param schema - Column schema
61
+ * @param options - Encoder options
62
+ */
63
+ constructor(schema, options) {
64
+ this.schema = schema;
65
+ this.options = options;
66
+ }
67
+ /**
68
+ * Add a single row
69
+ *
70
+ * @param row - Row data (must match schema)
71
+ * @throws {Error} If encoder is already finished
72
+ */
73
+ addRow(row) {
74
+ if (this.finished) {
75
+ throw new Error('Encoder is already finished');
76
+ }
77
+ this.rows.push(row);
78
+ }
79
+ /**
80
+ * Add multiple rows
81
+ *
82
+ * @param rows - Array of row data
83
+ * @throws {Error} If encoder is already finished
84
+ */
85
+ addRows(rows) {
86
+ if (this.finished) {
87
+ throw new Error('Encoder is already finished');
88
+ }
89
+ this.rows.push(...rows);
90
+ }
91
+ /**
92
+ * Get current row count
93
+ */
94
+ get rowCount() {
95
+ return this.rows.length;
96
+ }
97
+ /**
98
+ * Finish encoding and return the blob
99
+ *
100
+ * @returns Vortex blob as ArrayBuffer
101
+ */
102
+ finish() {
103
+ if (this.finished) {
104
+ throw new Error('Encoder is already finished');
105
+ }
106
+ this.finished = true;
107
+ // TODO: Implement Vortex encoding
108
+ // 1. Transpose rows to columns
109
+ // 2. Choose optimal encoding per column
110
+ // 3. Encode and compress each column
111
+ // 4. Build column index
112
+ // 5. Assemble blob with header and footer
113
+ throw new Error('Not implemented');
114
+ }
115
+ /**
116
+ * Reset encoder for reuse
117
+ */
118
+ reset() {
119
+ this.rows = [];
120
+ this.finished = false;
121
+ }
122
+ /**
123
+ * Get estimated blob size
124
+ *
125
+ * @returns Estimated size in bytes
126
+ */
127
+ estimateSize() {
128
+ // TODO: Implement size estimation
129
+ throw new Error('Not implemented');
130
+ }
131
+ }
132
+ /**
133
+ * Vortex decoder for reading columnar blobs
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * // Read blob from SQLite
138
+ * const blob = await db.query('SELECT data FROM vortex WHERE id = ?', [id])
139
+ *
140
+ * // Create decoder
141
+ * const decoder = new VortexDecoder(blob)
142
+ *
143
+ * // Read metadata
144
+ * const meta = decoder.getMetadata()
145
+ * console.log(`Rows: ${meta.rowCount}, Columns: ${meta.columnCount}`)
146
+ *
147
+ * // Read specific columns only (efficient)
148
+ * const names = decoder.readColumn<string>('name')
149
+ * const ages = decoder.readColumn<number>('age')
150
+ *
151
+ * // Or read all data
152
+ * const rows = decoder.readAll()
153
+ * ```
154
+ */
155
+ export class VortexDecoder {
156
+ blob;
157
+ options;
158
+ metadata = null;
159
+ /**
160
+ * Create a new Vortex decoder
161
+ *
162
+ * @param blob - Vortex blob data
163
+ * @param options - Decoder options
164
+ */
165
+ constructor(blob, options) {
166
+ this.blob = blob;
167
+ this.options = options;
168
+ }
169
+ /**
170
+ * Get blob metadata
171
+ *
172
+ * @returns Vortex metadata
173
+ */
174
+ getMetadata() {
175
+ if (!this.metadata) {
176
+ this.metadata = this.parseMetadata();
177
+ }
178
+ return this.metadata;
179
+ }
180
+ /**
181
+ * Get schema from blob
182
+ *
183
+ * @returns Column schema
184
+ */
185
+ getSchema() {
186
+ // TODO: Implement schema extraction
187
+ throw new Error('Not implemented');
188
+ }
189
+ /**
190
+ * Read a single column
191
+ *
192
+ * Efficiently reads only the requested column without
193
+ * decoding the entire blob.
194
+ *
195
+ * @param name - Column name
196
+ * @returns Column data
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const emails = decoder.readColumn<string>('email')
201
+ * console.log(emails.values) // ['alice@example.com', ...]
202
+ * console.log(emails.stats.nullCount)
203
+ * ```
204
+ */
205
+ readColumn(name) {
206
+ // TODO: Implement column-selective read
207
+ throw new Error('Not implemented');
208
+ }
209
+ /**
210
+ * Read multiple columns
211
+ *
212
+ * @param names - Column names to read
213
+ * @returns Map of column name to column data
214
+ */
215
+ readColumns(names) {
216
+ // TODO: Implement multi-column read
217
+ throw new Error('Not implemented');
218
+ }
219
+ /**
220
+ * Read all data as rows
221
+ *
222
+ * @returns Array of row objects
223
+ */
224
+ readAll() {
225
+ // TODO: Implement full blob read
226
+ throw new Error('Not implemented');
227
+ }
228
+ /**
229
+ * Read rows in a range
230
+ *
231
+ * @param start - Start row index
232
+ * @param count - Number of rows to read
233
+ * @returns Array of row objects
234
+ */
235
+ readRange(start, count) {
236
+ // TODO: Implement range read
237
+ throw new Error('Not implemented');
238
+ }
239
+ /**
240
+ * Get column statistics without reading data
241
+ *
242
+ * @param name - Column name
243
+ * @returns Column statistics
244
+ */
245
+ getColumnStats(name) {
246
+ // TODO: Implement stats extraction
247
+ throw new Error('Not implemented');
248
+ }
249
+ /**
250
+ * Validate blob checksum
251
+ *
252
+ * @returns True if checksum is valid
253
+ */
254
+ validate() {
255
+ // TODO: Implement checksum validation
256
+ throw new Error('Not implemented');
257
+ }
258
+ /**
259
+ * Parse metadata from blob header
260
+ */
261
+ parseMetadata() {
262
+ // TODO: Implement metadata parsing
263
+ throw new Error('Not implemented');
264
+ }
265
+ }
266
+ /**
267
+ * Infer schema from sample rows
268
+ *
269
+ * @param rows - Sample row data
270
+ * @returns Inferred schema
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * const schema = inferVortexSchema([
275
+ * { id: '1', name: 'Alice', age: 30 },
276
+ * { id: '2', name: 'Bob', age: null },
277
+ * ])
278
+ * // { columns: [
279
+ * // { name: 'id', type: 'string', nullable: false },
280
+ * // { name: 'name', type: 'string', nullable: false },
281
+ * // { name: 'age', type: 'int32', nullable: true },
282
+ * // ]}
283
+ * ```
284
+ */
285
+ export function inferVortexSchema(rows) {
286
+ if (rows.length === 0) {
287
+ return { columns: [] };
288
+ }
289
+ const columnInfo = new Map();
290
+ for (const row of rows) {
291
+ for (const [key, value] of Object.entries(row)) {
292
+ let info = columnInfo.get(key);
293
+ if (!info) {
294
+ info = { types: new Set(), hasNull: false };
295
+ columnInfo.set(key, info);
296
+ }
297
+ if (value === null || value === undefined) {
298
+ info.hasNull = true;
299
+ }
300
+ else {
301
+ info.types.add(inferVortexType(value));
302
+ }
303
+ }
304
+ }
305
+ const columns = [];
306
+ for (const [name, info] of columnInfo) {
307
+ const types = Array.from(info.types);
308
+ const type = types.length > 0 ? types[0] : 'string';
309
+ columns.push({
310
+ name,
311
+ type,
312
+ nullable: info.hasNull,
313
+ encoding: chooseEncoding(type),
314
+ });
315
+ }
316
+ return { columns };
317
+ }
318
+ /**
319
+ * Infer Vortex type from JavaScript value
320
+ */
321
+ function inferVortexType(value) {
322
+ if (typeof value === 'string')
323
+ return 'string';
324
+ if (typeof value === 'number') {
325
+ if (Number.isInteger(value)) {
326
+ return value >= -2147483648 && value <= 2147483647 ? 'int32' : 'int64';
327
+ }
328
+ return 'float64';
329
+ }
330
+ if (typeof value === 'boolean')
331
+ return 'boolean';
332
+ if (value instanceof Date)
333
+ return 'timestamp';
334
+ if (value instanceof ArrayBuffer || value instanceof Uint8Array)
335
+ return 'binary';
336
+ return 'json';
337
+ }
338
+ /**
339
+ * Choose optimal encoding for a column type
340
+ */
341
+ function chooseEncoding(type) {
342
+ switch (type) {
343
+ case 'string':
344
+ return 'dictionary';
345
+ case 'int32':
346
+ case 'int64':
347
+ case 'timestamp':
348
+ return 'delta';
349
+ case 'boolean':
350
+ return 'boolean';
351
+ default:
352
+ return 'plain';
353
+ }
354
+ }
355
+ /**
356
+ * Calculate compression ratio
357
+ *
358
+ * @param original - Original size in bytes
359
+ * @param compressed - Compressed size in bytes
360
+ * @returns Compression ratio (e.g., 5.0 means 5x smaller)
361
+ */
362
+ export function compressionRatio(original, compressed) {
363
+ return compressed > 0 ? original / compressed : 0;
364
+ }
365
+ //# sourceMappingURL=vortex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vortex.js","sourceRoot":"","sources":["../../../db/storage/vortex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAwH/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,aAAa;IAWL;IACA;IAXX,IAAI,GAA8B,EAAE,CAAA;IACpC,QAAQ,GAAG,KAAK,CAAA;IAExB;;;;;OAKG;IACH,YACmB,MAAoB,EACpB,OAAwB;QADxB,WAAM,GAAN,MAAM,CAAc;QACpB,YAAO,GAAP,OAAO,CAAiB;IACxC,CAAC;IAEJ;;;;;OAKG;IACH,MAAM,CAAC,GAA4B;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAA+B;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEpB,kCAAkC;QAClC,+BAA+B;QAC/B,wCAAwC;QACxC,qCAAqC;QACrC,wBAAwB;QACxB,0CAA0C;QAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,kCAAkC;QAClC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,aAAa;IAUL;IACA;IAVX,QAAQ,GAA0B,IAAI,CAAA;IAE9C;;;;;OAKG;IACH,YACmB,IAAiB,EACjB,OAAwB;QADxB,SAAI,GAAJ,IAAI,CAAa;QACjB,YAAO,GAAP,OAAO,CAAiB;IACxC,CAAC;IAEJ;;;;OAIG;IACH,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,oCAAoC;QACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAI,IAAY;QACxB,wCAAwC;QACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAe;QACzB,oCAAoC;QACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,iCAAiC;QACjC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAA8B,KAAa,EAAE,KAAa;QACjE,6BAA6B;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,IAAY;QACzB,mCAAmC;QACnC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,sCAAsC;QACtC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,mCAAmC;QACnC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA+B;IAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACxB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoD,CAAA;IAE9E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;gBAC3C,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC3B,CAAC;YAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAe,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEjE,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;SAC/B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;QACxE,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,WAAW,CAAA;IAC7C,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,QAAQ,CAAA;IAChF,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAgB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,YAAY,CAAA;QACrB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,OAAO,OAAO,CAAA;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAA;QAClB;YACE,OAAO,OAAO,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,UAAkB;IACnE,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC"}
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Warm Storage - Edge Cache API
3
+ *
4
+ * Caching tier using Cloudflare's Cache API for frequently accessed data.
5
+ * Provides ~10ms latency with zero additional cost.
6
+ *
7
+ * Features:
8
+ * - Automatic cache key generation
9
+ * - TTL management
10
+ * - Pattern-based invalidation
11
+ * - Cache-aside pattern support
12
+ *
13
+ * @module @do/core/storage/warm
14
+ */
15
+ /**
16
+ * Warm storage configuration
17
+ */
18
+ export interface WarmStorageConfig {
19
+ /** Default TTL in seconds */
20
+ defaultTTL?: number;
21
+ /** Cache key prefix */
22
+ keyPrefix?: string;
23
+ /** Maximum serialized value size in bytes */
24
+ maxValueSize?: number;
25
+ /** Enable compression for large values */
26
+ compression?: boolean;
27
+ }
28
+ /**
29
+ * Cache options for individual operations
30
+ */
31
+ export interface CacheOptions {
32
+ /** TTL in seconds (overrides default) */
33
+ ttl?: number;
34
+ /** Cache tags for invalidation */
35
+ tags?: string[];
36
+ /** Skip compression even if enabled globally */
37
+ skipCompression?: boolean;
38
+ }
39
+ /**
40
+ * Cache entry metadata
41
+ */
42
+ export interface CacheEntry<T> {
43
+ /** Cached value */
44
+ value: T;
45
+ /** When the entry was cached */
46
+ cachedAt: number;
47
+ /** When the entry expires */
48
+ expiresAt: number;
49
+ /** Cache tags */
50
+ tags: string[];
51
+ /** Size in bytes */
52
+ sizeBytes: number;
53
+ }
54
+ /**
55
+ * Cache statistics
56
+ */
57
+ export interface CacheStats {
58
+ /** Number of cache hits */
59
+ hits: number;
60
+ /** Number of cache misses */
61
+ misses: number;
62
+ /** Hit rate percentage */
63
+ hitRate: number;
64
+ /** Number of invalidations */
65
+ invalidations: number;
66
+ /** Total cached entries (estimated) */
67
+ entries: number;
68
+ }
69
+ /**
70
+ * Warm storage implementation using Edge Cache API
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const warm = new WarmStorage(caches.default)
75
+ *
76
+ * // Cache a value
77
+ * await warm.set('users:123', user, { ttl: 300 })
78
+ *
79
+ * // Get cached value
80
+ * const cached = await warm.get<User>('users:123')
81
+ *
82
+ * // Cache-aside pattern
83
+ * const user = await warm.getOrSet('users:123', async () => {
84
+ * return await hot.get('users', '123')
85
+ * }, { ttl: 300 })
86
+ *
87
+ * // Invalidate by pattern
88
+ * await warm.invalidate('users:*')
89
+ * ```
90
+ */
91
+ export declare class WarmStorage {
92
+ private readonly cache;
93
+ private config;
94
+ private stats;
95
+ /**
96
+ * Create a new warm storage instance
97
+ *
98
+ * @param cache - Cloudflare Cache API instance
99
+ * @param config - Cache configuration
100
+ */
101
+ constructor(cache: Cache, config?: WarmStorageConfig);
102
+ /**
103
+ * Get a value from cache
104
+ *
105
+ * @param key - Cache key
106
+ * @returns Cached value or null if not found/expired
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const user = await warm.get<User>('users:123')
111
+ * if (user) {
112
+ * console.log('Cache hit:', user.name)
113
+ * } else {
114
+ * console.log('Cache miss')
115
+ * }
116
+ * ```
117
+ */
118
+ get<T>(key: string): Promise<T | null>;
119
+ /**
120
+ * Get a value with metadata
121
+ *
122
+ * @param key - Cache key
123
+ * @returns Cache entry with metadata or null
124
+ */
125
+ getEntry<T>(key: string): Promise<CacheEntry<T> | null>;
126
+ /**
127
+ * Set a value in cache
128
+ *
129
+ * @param key - Cache key
130
+ * @param value - Value to cache
131
+ * @param options - Cache options
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * await warm.set('users:123', user, {
136
+ * ttl: 600, // 10 minutes
137
+ * tags: ['users', 'user:123'],
138
+ * })
139
+ * ```
140
+ */
141
+ set<T>(key: string, value: T, options?: CacheOptions): Promise<void>;
142
+ /**
143
+ * Get or set a cached value (cache-aside pattern)
144
+ *
145
+ * If the key exists in cache, returns cached value.
146
+ * Otherwise, calls the factory function, caches the result, and returns it.
147
+ *
148
+ * @param key - Cache key
149
+ * @param factory - Function to generate value on cache miss
150
+ * @param options - Cache options
151
+ * @returns Cached or generated value
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const user = await warm.getOrSet('users:123', async () => {
156
+ * return await db.query('SELECT * FROM users WHERE id = ?', [123])
157
+ * }, { ttl: 300 })
158
+ * ```
159
+ */
160
+ getOrSet<T>(key: string, factory: () => Promise<T>, options?: CacheOptions): Promise<T>;
161
+ /**
162
+ * Delete a specific key from cache
163
+ *
164
+ * @param key - Cache key
165
+ * @returns True if key was deleted
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * await warm.delete('users:123')
170
+ * ```
171
+ */
172
+ delete(key: string): Promise<boolean>;
173
+ /**
174
+ * Invalidate cache entries by pattern
175
+ *
176
+ * Supports glob-style patterns:
177
+ * - `users:*` - All keys starting with "users:"
178
+ * - `*:123` - All keys ending with ":123"
179
+ * - `users:*:orders` - Keys matching pattern
180
+ *
181
+ * @param pattern - Glob pattern for keys to invalidate
182
+ * @returns Number of entries invalidated
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * // Invalidate all user cache entries
187
+ * await warm.invalidate('users:*')
188
+ *
189
+ * // Invalidate specific user's related caches
190
+ * await warm.invalidate('*:user:123:*')
191
+ * ```
192
+ */
193
+ invalidate(pattern: string): Promise<number>;
194
+ /**
195
+ * Invalidate cache entries by tag
196
+ *
197
+ * @param tag - Tag to invalidate
198
+ * @returns Number of entries invalidated
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * // Invalidate all entries tagged with 'user:123'
203
+ * await warm.invalidateByTag('user:123')
204
+ * ```
205
+ */
206
+ invalidateByTag(tag: string): Promise<number>;
207
+ /**
208
+ * Check if a key exists in cache
209
+ *
210
+ * @param key - Cache key
211
+ * @returns True if key exists and is not expired
212
+ */
213
+ has(key: string): Promise<boolean>;
214
+ /**
215
+ * Get multiple values from cache
216
+ *
217
+ * @param keys - Array of cache keys
218
+ * @returns Map of key to value (missing keys omitted)
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * const users = await warm.getMany(['users:1', 'users:2', 'users:3'])
223
+ * for (const [key, user] of users) {
224
+ * console.log(key, user.name)
225
+ * }
226
+ * ```
227
+ */
228
+ getMany<T>(keys: string[]): Promise<Map<string, T>>;
229
+ /**
230
+ * Set multiple values in cache
231
+ *
232
+ * @param entries - Map of key to value
233
+ * @param options - Cache options (applied to all entries)
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * await warm.setMany(new Map([
238
+ * ['users:1', user1],
239
+ * ['users:2', user2],
240
+ * ]), { ttl: 300 })
241
+ * ```
242
+ */
243
+ setMany<T>(entries: Map<string, T>, options?: CacheOptions): Promise<void>;
244
+ /**
245
+ * Get cache statistics
246
+ *
247
+ * @returns Cache statistics
248
+ */
249
+ getStats(): CacheStats;
250
+ /**
251
+ * Reset cache statistics
252
+ */
253
+ resetStats(): void;
254
+ /**
255
+ * Build full cache key with prefix
256
+ *
257
+ * @param key - User-provided key
258
+ * @returns Full cache key
259
+ */
260
+ private buildKey;
261
+ /**
262
+ * Convert cache key to Request object
263
+ *
264
+ * Cache API requires Request objects as keys.
265
+ *
266
+ * @param key - Cache key
267
+ * @returns Request object for cache operations
268
+ */
269
+ private toRequest;
270
+ /**
271
+ * Create Response object for caching
272
+ *
273
+ * @param value - Value to cache
274
+ * @param options - Cache options
275
+ * @returns Response object with proper headers
276
+ */
277
+ private toResponse;
278
+ }
279
+ /**
280
+ * Cache key builder utility
281
+ *
282
+ * Builds consistent cache keys from components.
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * const key = cacheKey('users', userId, 'orders')
287
+ * // Returns: 'users:abc123:orders'
288
+ * ```
289
+ */
290
+ export declare function cacheKey(...parts: (string | number)[]): string;
291
+ /**
292
+ * Parse cache key into components
293
+ *
294
+ * @param key - Cache key
295
+ * @returns Array of key components
296
+ */
297
+ export declare function parseCacheKey(key: string): string[];
298
+ /**
299
+ * Check if a key matches a glob pattern
300
+ *
301
+ * @param key - Cache key to check
302
+ * @param pattern - Glob pattern
303
+ * @returns True if key matches pattern
304
+ */
305
+ export declare function matchesCachePattern(key: string, pattern: string): boolean;
306
+ //# sourceMappingURL=warm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warm.d.ts","sourceRoot":"","sources":["../../../db/storage/warm.ts"],"names":[],"mappings":"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"}