@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,336 @@
1
+ /**
2
+ * State Management for Digital Objects
3
+ *
4
+ * Provides persistent state storage backed by Durable Object SQLite.
5
+ * Supports:
6
+ * - Key-value operations (get, set, delete)
7
+ * - Batch operations (getMany, setMany, deleteMany)
8
+ * - Transactional updates with ACID guarantees
9
+ * - CDC (Change Data Capture) event emission
10
+ * - Versioning for optimistic concurrency
11
+ *
12
+ * @example Basic usage
13
+ * ```typescript
14
+ * // Get and set values
15
+ * const value = await state.get<User>('user:123')
16
+ * await state.set('user:123', { name: 'Alice', email: 'alice@example.com' })
17
+ *
18
+ * // Delete a value
19
+ * const deleted = await state.delete('user:123')
20
+ * ```
21
+ *
22
+ * @example Transactional updates
23
+ * ```typescript
24
+ * await state.transaction(async (tx) => {
25
+ * const user = await tx.get<User>('user:123')
26
+ * await tx.set('user:123', { ...user, balance: user.balance - 100 })
27
+ * await tx.set('user:456', { ...otherUser, balance: otherUser.balance + 100 })
28
+ * // Both updates succeed or both fail
29
+ * })
30
+ * ```
31
+ *
32
+ * @module do/state
33
+ */
34
+ import type { DurableObjectState } from '@cloudflare/workers-types';
35
+ import type { CDCEvent, CDCCursor } from '../types/storage';
36
+ /**
37
+ * State mutation handler callback
38
+ *
39
+ * @callback MutationHandler
40
+ * @param event - The CDC event describing the mutation
41
+ */
42
+ export type MutationHandler = (event: CDCEvent) => void | Promise<void>;
43
+ /**
44
+ * Options for state operations
45
+ *
46
+ * @interface StateOptions
47
+ */
48
+ export interface StateOptions {
49
+ /** Whether to emit CDC events (default: true) */
50
+ emitCDC?: boolean;
51
+ /** Whether to allow concurrent writes (default: false - uses optimistic locking) */
52
+ allowConcurrent?: boolean;
53
+ /** TTL in milliseconds for the value (optional) */
54
+ ttl?: number;
55
+ }
56
+ /**
57
+ * Transaction interface for atomic operations
58
+ *
59
+ * All operations within a transaction are executed atomically.
60
+ * If any operation fails, all changes are rolled back.
61
+ *
62
+ * @interface DOStateTransaction
63
+ */
64
+ export interface DOStateTransaction {
65
+ /**
66
+ * Get a value within the transaction
67
+ *
68
+ * @param key - The key to retrieve
69
+ * @returns The value or null if not found
70
+ */
71
+ get<T>(key: string): Promise<T | null>;
72
+ /**
73
+ * Set a value within the transaction
74
+ *
75
+ * @param key - The key to set
76
+ * @param value - The value to store
77
+ */
78
+ set<T>(key: string, value: T): Promise<void>;
79
+ /**
80
+ * Delete a value within the transaction
81
+ *
82
+ * @param key - The key to delete
83
+ * @returns True if the key existed and was deleted
84
+ */
85
+ delete(key: string): Promise<boolean>;
86
+ /**
87
+ * Get multiple values within the transaction
88
+ *
89
+ * @param keys - The keys to retrieve
90
+ * @returns Map of key to value (only includes keys that exist)
91
+ */
92
+ getMany<T>(keys: string[]): Promise<Map<string, T>>;
93
+ /**
94
+ * Set multiple values within the transaction
95
+ *
96
+ * @param entries - Map of key to value
97
+ */
98
+ setMany(entries: Map<string, unknown>): Promise<void>;
99
+ /**
100
+ * Delete multiple values within the transaction
101
+ *
102
+ * @param keys - The keys to delete
103
+ * @returns Number of keys that were deleted
104
+ */
105
+ deleteMany(keys: string[]): Promise<number>;
106
+ }
107
+ /**
108
+ * State management interface for Digital Objects
109
+ *
110
+ * Provides all state operations including CDC event emission.
111
+ *
112
+ * @interface DOState
113
+ */
114
+ export interface DOState {
115
+ /**
116
+ * Get a value by key
117
+ *
118
+ * @param key - The key to retrieve
119
+ * @returns The value or null if not found
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const user = await state.get<User>('user:123')
124
+ * if (user) {
125
+ * console.log(user.name)
126
+ * }
127
+ * ```
128
+ */
129
+ get<T>(key: string): Promise<T | null>;
130
+ /**
131
+ * Set a value by key
132
+ *
133
+ * @param key - The key to set
134
+ * @param value - The value to store
135
+ * @param options - Optional configuration
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * await state.set('user:123', { name: 'Alice', email: 'alice@example.com' })
140
+ *
141
+ * // With TTL
142
+ * await state.set('session:abc', { userId: '123' }, { ttl: 3600000 })
143
+ * ```
144
+ */
145
+ set<T>(key: string, value: T, options?: StateOptions): Promise<void>;
146
+ /**
147
+ * Delete a value by key
148
+ *
149
+ * @param key - The key to delete
150
+ * @returns True if the key existed and was deleted
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * const deleted = await state.delete('user:123')
155
+ * console.log(`Deleted: ${deleted}`)
156
+ * ```
157
+ */
158
+ delete(key: string): Promise<boolean>;
159
+ /**
160
+ * Get multiple values by keys
161
+ *
162
+ * @param keys - The keys to retrieve
163
+ * @returns Map of key to value (only includes keys that exist)
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const users = await state.getMany<User>(['user:123', 'user:456'])
168
+ * for (const [key, user] of users) {
169
+ * console.log(user.name)
170
+ * }
171
+ * ```
172
+ */
173
+ getMany<T>(keys: string[]): Promise<Map<string, T>>;
174
+ /**
175
+ * Set multiple values
176
+ *
177
+ * @param entries - Map of key to value
178
+ * @param options - Optional configuration
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * const entries = new Map([
183
+ * ['user:123', { name: 'Alice' }],
184
+ * ['user:456', { name: 'Bob' }]
185
+ * ])
186
+ * await state.setMany(entries)
187
+ * ```
188
+ */
189
+ setMany(entries: Map<string, unknown>, options?: StateOptions): Promise<void>;
190
+ /**
191
+ * Delete multiple values by keys
192
+ *
193
+ * @param keys - The keys to delete
194
+ * @returns Number of keys that were deleted
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * const count = await state.deleteMany(['user:123', 'user:456'])
199
+ * console.log(`Deleted ${count} users`)
200
+ * ```
201
+ */
202
+ deleteMany(keys: string[]): Promise<number>;
203
+ /**
204
+ * List keys with optional prefix filter
205
+ *
206
+ * @param options - List options
207
+ * @returns Array of keys matching the filter
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * // List all user keys
212
+ * const userKeys = await state.list({ prefix: 'user:' })
213
+ *
214
+ * // List with pagination
215
+ * const page = await state.list({ prefix: 'user:', limit: 10, cursor: 'abc' })
216
+ * ```
217
+ */
218
+ list(options?: ListOptions): Promise<ListResult>;
219
+ /**
220
+ * Execute operations in a transaction
221
+ *
222
+ * All operations within the transaction are executed atomically.
223
+ * If any operation fails, all changes are rolled back.
224
+ *
225
+ * @param fn - The transaction function
226
+ * @returns The result of the transaction function
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * await state.transaction(async (tx) => {
231
+ * const sender = await tx.get<Account>('account:sender')
232
+ * const receiver = await tx.get<Account>('account:receiver')
233
+ *
234
+ * await tx.set('account:sender', { ...sender, balance: sender.balance - 100 })
235
+ * await tx.set('account:receiver', { ...receiver, balance: receiver.balance + 100 })
236
+ * })
237
+ * ```
238
+ */
239
+ transaction<T>(fn: (tx: DOStateTransaction) => Promise<T>): Promise<T>;
240
+ /**
241
+ * Get the current version number
242
+ *
243
+ * Version is incremented on each mutation.
244
+ *
245
+ * @returns Current version number
246
+ */
247
+ getVersion(): number;
248
+ /**
249
+ * Get the current CDC cursor
250
+ *
251
+ * The cursor represents the position in the CDC event stream.
252
+ *
253
+ * @returns Current CDC cursor
254
+ */
255
+ getCursor(): CDCCursor;
256
+ /**
257
+ * Register a handler for mutation events
258
+ *
259
+ * @param handler - Function to call on each mutation
260
+ * @returns Unsubscribe function
261
+ *
262
+ * @example
263
+ * ```typescript
264
+ * const unsubscribe = state.onMutation((event) => {
265
+ * console.log(`${event.operation} on ${event.collection}:${event.documentId}`)
266
+ * // Forward to parent context
267
+ * await sendToParent(event)
268
+ * })
269
+ *
270
+ * // Later: unsubscribe()
271
+ * ```
272
+ */
273
+ onMutation(handler: MutationHandler): () => void;
274
+ /**
275
+ * Get CDC events since a cursor
276
+ *
277
+ * @param cursor - Starting cursor (exclusive)
278
+ * @param limit - Maximum events to return
279
+ * @returns Array of CDC events
280
+ */
281
+ getChangesSince(cursor: CDCCursor, limit?: number): Promise<CDCEvent[]>;
282
+ /**
283
+ * Flush pending writes to storage
284
+ *
285
+ * Normally writes are automatically flushed.
286
+ * Call this to force immediate persistence.
287
+ */
288
+ flush(): Promise<void>;
289
+ }
290
+ /**
291
+ * Options for listing keys
292
+ *
293
+ * @interface ListOptions
294
+ */
295
+ export interface ListOptions {
296
+ /** Key prefix filter */
297
+ prefix?: string;
298
+ /** Start key (exclusive) */
299
+ start?: string;
300
+ /** End key (exclusive) */
301
+ end?: string;
302
+ /** Maximum number of keys to return */
303
+ limit?: number;
304
+ /** Cursor for pagination */
305
+ cursor?: string;
306
+ /** Whether to return keys in reverse order */
307
+ reverse?: boolean;
308
+ }
309
+ /**
310
+ * Result of listing keys
311
+ *
312
+ * @interface ListResult
313
+ */
314
+ export interface ListResult {
315
+ /** Array of keys */
316
+ keys: string[];
317
+ /** Cursor for next page (undefined if no more) */
318
+ cursor?: string;
319
+ /** Whether there are more results */
320
+ hasMore: boolean;
321
+ }
322
+ /**
323
+ * Create a DOState instance from Durable Object state
324
+ *
325
+ * @param ctx - Durable Object state from Cloudflare runtime
326
+ * @returns DOState instance
327
+ *
328
+ * @example
329
+ * ```typescript
330
+ * const state = createDOState(ctx)
331
+ * await state.set('key', 'value')
332
+ * ```
333
+ */
334
+ export declare function createDOState(ctx: DurableObjectState): DOState;
335
+ export default createDOState;
336
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../do/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * State Management for Digital Objects
3
+ *
4
+ * Provides persistent state storage backed by Durable Object SQLite.
5
+ * Supports:
6
+ * - Key-value operations (get, set, delete)
7
+ * - Batch operations (getMany, setMany, deleteMany)
8
+ * - Transactional updates with ACID guarantees
9
+ * - CDC (Change Data Capture) event emission
10
+ * - Versioning for optimistic concurrency
11
+ *
12
+ * @example Basic usage
13
+ * ```typescript
14
+ * // Get and set values
15
+ * const value = await state.get<User>('user:123')
16
+ * await state.set('user:123', { name: 'Alice', email: 'alice@example.com' })
17
+ *
18
+ * // Delete a value
19
+ * const deleted = await state.delete('user:123')
20
+ * ```
21
+ *
22
+ * @example Transactional updates
23
+ * ```typescript
24
+ * await state.transaction(async (tx) => {
25
+ * const user = await tx.get<User>('user:123')
26
+ * await tx.set('user:123', { ...user, balance: user.balance - 100 })
27
+ * await tx.set('user:456', { ...otherUser, balance: otherUser.balance + 100 })
28
+ * // Both updates succeed or both fail
29
+ * })
30
+ * ```
31
+ *
32
+ * @module do/state
33
+ */
34
+ /**
35
+ * Create a DOState instance from Durable Object state
36
+ *
37
+ * @param ctx - Durable Object state from Cloudflare runtime
38
+ * @returns DOState instance
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const state = createDOState(ctx)
43
+ * await state.set('key', 'value')
44
+ * ```
45
+ */
46
+ export function createDOState(ctx) {
47
+ return new DOStateImpl(ctx);
48
+ }
49
+ /**
50
+ * Implementation of DOState interface
51
+ *
52
+ * @internal
53
+ */
54
+ class DOStateImpl {
55
+ ctx;
56
+ storage;
57
+ version = 0;
58
+ sequence = 0;
59
+ handlers = new Set();
60
+ constructor(ctx) {
61
+ this.ctx = ctx;
62
+ this.storage = ctx.storage;
63
+ }
64
+ async get(key) {
65
+ const stored = await this.storage.get(key);
66
+ if (!stored)
67
+ return null;
68
+ // Check expiration
69
+ if (stored.expiresAt && stored.expiresAt < Date.now()) {
70
+ await this.storage.delete(key);
71
+ return null;
72
+ }
73
+ return stored.value;
74
+ }
75
+ async set(key, value, options) {
76
+ const now = Date.now();
77
+ const existing = await this.storage.get(key);
78
+ // Increment version
79
+ this.version++;
80
+ const stored = {
81
+ value,
82
+ version: this.version,
83
+ createdAt: existing?.createdAt ?? now,
84
+ updatedAt: now,
85
+ expiresAt: options?.ttl ? now + options.ttl : undefined,
86
+ };
87
+ await this.storage.put(key, stored);
88
+ // Emit CDC event if enabled
89
+ if (options?.emitCDC !== false) {
90
+ await this.emitCDCEvent({
91
+ operation: existing ? 'UPDATE' : 'INSERT',
92
+ key,
93
+ before: existing?.value,
94
+ after: value,
95
+ });
96
+ }
97
+ }
98
+ async delete(key) {
99
+ const existing = await this.storage.get(key);
100
+ if (!existing)
101
+ return false;
102
+ await this.storage.delete(key);
103
+ // Emit CDC event
104
+ await this.emitCDCEvent({
105
+ operation: 'DELETE',
106
+ key,
107
+ before: existing.value,
108
+ after: undefined,
109
+ });
110
+ return true;
111
+ }
112
+ async getMany(keys) {
113
+ const results = await this.storage.get(keys);
114
+ const output = new Map();
115
+ const now = Date.now();
116
+ for (const [key, stored] of results) {
117
+ // Skip expired values
118
+ if (stored.expiresAt && stored.expiresAt < now) {
119
+ await this.storage.delete(key);
120
+ continue;
121
+ }
122
+ output.set(key, stored.value);
123
+ }
124
+ return output;
125
+ }
126
+ async setMany(entries, options) {
127
+ const now = Date.now();
128
+ const toStore = new Map();
129
+ // Get existing values for CDC
130
+ const existingKeys = Array.from(entries.keys());
131
+ const existing = await this.storage.get(existingKeys);
132
+ for (const [key, value] of entries) {
133
+ this.version++;
134
+ const existingValue = existing.get(key);
135
+ toStore.set(key, {
136
+ value,
137
+ version: this.version,
138
+ createdAt: existingValue?.createdAt ?? now,
139
+ updatedAt: now,
140
+ expiresAt: options?.ttl ? now + options.ttl : undefined,
141
+ });
142
+ // Emit CDC event
143
+ if (options?.emitCDC !== false) {
144
+ await this.emitCDCEvent({
145
+ operation: existingValue ? 'UPDATE' : 'INSERT',
146
+ key,
147
+ before: existingValue?.value,
148
+ after: value,
149
+ });
150
+ }
151
+ }
152
+ await this.storage.put(Object.fromEntries(toStore));
153
+ }
154
+ async deleteMany(keys) {
155
+ const existing = await this.storage.get(keys);
156
+ let count = 0;
157
+ for (const [key, stored] of existing) {
158
+ await this.emitCDCEvent({
159
+ operation: 'DELETE',
160
+ key,
161
+ before: stored.value,
162
+ after: undefined,
163
+ });
164
+ count++;
165
+ }
166
+ await this.storage.delete(keys);
167
+ return count;
168
+ }
169
+ async list(options) {
170
+ const listOptions = {};
171
+ if (options?.prefix)
172
+ listOptions.prefix = options.prefix;
173
+ if (options?.start)
174
+ listOptions.start = options.start;
175
+ if (options?.end)
176
+ listOptions.end = options.end;
177
+ if (options?.limit)
178
+ listOptions.limit = options.limit + 1; // Fetch one extra to check hasMore
179
+ if (options?.reverse)
180
+ listOptions.reverse = options.reverse;
181
+ const results = await this.storage.list(listOptions);
182
+ const keys = Array.from(results.keys());
183
+ const hasMore = options?.limit ? keys.length > options.limit : false;
184
+ if (hasMore)
185
+ keys.pop(); // Remove the extra item
186
+ return {
187
+ keys,
188
+ hasMore,
189
+ cursor: hasMore ? keys[keys.length - 1] : undefined,
190
+ };
191
+ }
192
+ async transaction(fn) {
193
+ // Cloudflare DO storage transactions are automatic within blockConcurrencyWhile
194
+ return this.ctx.blockConcurrencyWhile(async () => {
195
+ const tx = new TransactionImpl(this);
196
+ return fn(tx);
197
+ });
198
+ }
199
+ getVersion() {
200
+ return this.version;
201
+ }
202
+ getCursor() {
203
+ return {
204
+ sequence: this.sequence,
205
+ timestamp: Date.now(),
206
+ };
207
+ }
208
+ onMutation(handler) {
209
+ this.handlers.add(handler);
210
+ return () => this.handlers.delete(handler);
211
+ }
212
+ async getChangesSince(cursor, limit = 100) {
213
+ // TODO: Implement CDC event storage and retrieval
214
+ return [];
215
+ }
216
+ async flush() {
217
+ // Cloudflare DO storage automatically flushes
218
+ // This is a no-op but can be overridden for testing
219
+ }
220
+ /**
221
+ * Emit a CDC event to all registered handlers
222
+ *
223
+ * @internal
224
+ */
225
+ async emitCDCEvent(params) {
226
+ this.sequence++;
227
+ const event = {
228
+ id: `${this.sequence}-${Date.now()}`,
229
+ operation: params.operation,
230
+ collection: this.extractCollection(params.key),
231
+ documentId: params.key,
232
+ timestamp: Date.now(),
233
+ sequence: this.sequence,
234
+ before: params.before,
235
+ after: params.after,
236
+ };
237
+ // Notify all handlers
238
+ for (const handler of this.handlers) {
239
+ try {
240
+ await handler(event);
241
+ }
242
+ catch (error) {
243
+ console.error('CDC handler error:', error);
244
+ }
245
+ }
246
+ }
247
+ /**
248
+ * Extract collection name from key
249
+ *
250
+ * Keys are expected to be in format: collection:id
251
+ * e.g., "user:123" -> "user"
252
+ *
253
+ * @internal
254
+ */
255
+ extractCollection(key) {
256
+ const colonIndex = key.indexOf(':');
257
+ return colonIndex > 0 ? key.slice(0, colonIndex) : 'default';
258
+ }
259
+ }
260
+ /**
261
+ * Transaction implementation
262
+ *
263
+ * @internal
264
+ */
265
+ class TransactionImpl {
266
+ state;
267
+ constructor(state) {
268
+ this.state = state;
269
+ }
270
+ get(key) {
271
+ return this.state.get(key);
272
+ }
273
+ set(key, value) {
274
+ return this.state.set(key, value);
275
+ }
276
+ delete(key) {
277
+ return this.state.delete(key);
278
+ }
279
+ getMany(keys) {
280
+ return this.state.getMany(keys);
281
+ }
282
+ setMany(entries) {
283
+ return this.state.setMany(entries);
284
+ }
285
+ deleteMany(keys) {
286
+ return this.state.deleteMany(keys);
287
+ }
288
+ }
289
+ export default createDOState;
290
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../do/state.ts"],"names":[],"mappings":"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"}