dotdo 0.0.1 → 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 (667) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +446 -315
  3. package/cli/README.md +238 -0
  4. package/cli/agent.ts +72 -0
  5. package/cli/bin.js +44 -0
  6. package/cli/bin.ts +38 -0
  7. package/cli/build.ts +157 -0
  8. package/cli/commands/auth/login.ts +14 -0
  9. package/cli/commands/auth/logout.ts +6 -0
  10. package/cli/commands/auth/whoami.ts +16 -0
  11. package/cli/commands/deploy-multi.ts +245 -0
  12. package/cli/commands/dev/deploy.ts +100 -0
  13. package/cli/commands/dev/dev.ts +95 -0
  14. package/cli/commands/dev/logs.ts +91 -0
  15. package/cli/commands/dev-local.ts +88 -0
  16. package/cli/commands/do-ops.ts +314 -0
  17. package/cli/commands/index.ts +100 -0
  18. package/cli/commands/init.ts +247 -0
  19. package/cli/commands/introspect/emitter.ts +315 -0
  20. package/cli/commands/introspect/index.ts +193 -0
  21. package/cli/commands/link.ts +598 -0
  22. package/cli/commands/snippets.ts +415 -0
  23. package/cli/commands/tunnel.ts +239 -0
  24. package/cli/device-auth.ts +289 -0
  25. package/cli/fallback.ts +12 -0
  26. package/cli/index.ts +121 -0
  27. package/cli/main.ts +246 -0
  28. package/cli/mcp-stdio.ts +790 -0
  29. package/cli/package.json +62 -0
  30. package/cli/runtime/do-registry.ts +193 -0
  31. package/cli/runtime/embedded-db.ts +344 -0
  32. package/cli/runtime/index.ts +9 -0
  33. package/cli/runtime/miniflare-adapter.ts +162 -0
  34. package/cli/sandbox.ts +82 -0
  35. package/cli/src/args.ts +174 -0
  36. package/cli/src/auth.ts +55 -0
  37. package/cli/src/commands/call.ts +84 -0
  38. package/cli/src/commands/charge.ts +96 -0
  39. package/cli/src/commands/config.ts +115 -0
  40. package/cli/src/commands/email.ts +112 -0
  41. package/cli/src/commands/llm.ts +115 -0
  42. package/cli/src/commands/queue.ts +134 -0
  43. package/cli/src/commands/text.ts +86 -0
  44. package/cli/src/config.ts +185 -0
  45. package/cli/src/output.ts +246 -0
  46. package/cli/src/rpc.ts +192 -0
  47. package/cli/utils/config.ts +282 -0
  48. package/cli/utils/detect.ts +73 -0
  49. package/cli/utils/index.ts +15 -0
  50. package/cli/utils/logger.ts +232 -0
  51. package/dist/ai/index.js +19 -0
  52. package/dist/ai/index.js.map +1 -0
  53. package/dist/ai/template-literals.js +852 -0
  54. package/dist/ai/template-literals.js.map +1 -0
  55. package/dist/api/middleware/auth-federation.js +573 -0
  56. package/dist/api/middleware/auth-federation.js.map +1 -0
  57. package/dist/api/middleware/auth.js +545 -0
  58. package/dist/api/middleware/auth.js.map +1 -0
  59. package/dist/db/actions.js +212 -0
  60. package/dist/db/actions.js.map +1 -0
  61. package/dist/db/auth.js +506 -0
  62. package/dist/db/auth.js.map +1 -0
  63. package/dist/db/branches.js +65 -0
  64. package/dist/db/branches.js.map +1 -0
  65. package/dist/db/clickhouse.js +1074 -0
  66. package/dist/db/clickhouse.js.map +1 -0
  67. package/dist/db/dlq.js +39 -0
  68. package/dist/db/dlq.js.map +1 -0
  69. package/dist/db/events.js +28 -0
  70. package/dist/db/events.js.map +1 -0
  71. package/dist/db/exec.js +64 -0
  72. package/dist/db/exec.js.map +1 -0
  73. package/dist/db/files.js +85 -0
  74. package/dist/db/files.js.map +1 -0
  75. package/dist/db/flags.js +24 -0
  76. package/dist/db/flags.js.map +1 -0
  77. package/dist/db/git.js +116 -0
  78. package/dist/db/git.js.map +1 -0
  79. package/dist/db/iceberg/inverted-index.js +862 -0
  80. package/dist/db/iceberg/inverted-index.js.map +1 -0
  81. package/dist/db/iceberg/puffin.js +878 -0
  82. package/dist/db/iceberg/puffin.js.map +1 -0
  83. package/dist/db/iceberg/search-manifest.js +422 -0
  84. package/dist/db/iceberg/search-manifest.js.map +1 -0
  85. package/dist/db/iceberg/types.js +8 -0
  86. package/dist/db/iceberg/types.js.map +1 -0
  87. package/dist/db/index.js +121 -0
  88. package/dist/db/index.js.map +1 -0
  89. package/dist/db/integrations.js +368 -0
  90. package/dist/db/integrations.js.map +1 -0
  91. package/dist/db/json-indexes.js +332 -0
  92. package/dist/db/json-indexes.js.map +1 -0
  93. package/dist/db/linked-accounts.js +287 -0
  94. package/dist/db/linked-accounts.js.map +1 -0
  95. package/dist/db/nouns.js +183 -0
  96. package/dist/db/nouns.js.map +1 -0
  97. package/dist/db/objects.js +170 -0
  98. package/dist/db/objects.js.map +1 -0
  99. package/dist/db/primitives/dag-scheduler/index.js +869 -0
  100. package/dist/db/primitives/dag-scheduler/index.js.map +1 -0
  101. package/dist/db/primitives/exactly-once-context.js +237 -0
  102. package/dist/db/primitives/exactly-once-context.js.map +1 -0
  103. package/dist/db/primitives/index.js +62 -0
  104. package/dist/db/primitives/index.js.map +1 -0
  105. package/dist/db/primitives/keyed-router.js +145 -0
  106. package/dist/db/primitives/keyed-router.js.map +1 -0
  107. package/dist/db/primitives/observability.js +162 -0
  108. package/dist/db/primitives/observability.js.map +1 -0
  109. package/dist/db/primitives/schema-evolution.js +643 -0
  110. package/dist/db/primitives/schema-evolution.js.map +1 -0
  111. package/dist/db/primitives/stateful-operator/index.js +770 -0
  112. package/dist/db/primitives/stateful-operator/index.js.map +1 -0
  113. package/dist/db/primitives/temporal-store.js +306 -0
  114. package/dist/db/primitives/temporal-store.js.map +1 -0
  115. package/dist/db/primitives/typed-column-store.js +1229 -0
  116. package/dist/db/primitives/typed-column-store.js.map +1 -0
  117. package/dist/db/primitives/utils/duration.js +162 -0
  118. package/dist/db/primitives/utils/duration.js.map +1 -0
  119. package/dist/db/primitives/utils/murmur3.js +116 -0
  120. package/dist/db/primitives/utils/murmur3.js.map +1 -0
  121. package/dist/db/primitives/watermark-service.js +136 -0
  122. package/dist/db/primitives/watermark-service.js.map +1 -0
  123. package/dist/db/primitives/window-manager.js +764 -0
  124. package/dist/db/primitives/window-manager.js.map +1 -0
  125. package/dist/db/relationships.js +66 -0
  126. package/dist/db/relationships.js.map +1 -0
  127. package/dist/db/schema-minimal.js +61 -0
  128. package/dist/db/schema-minimal.js.map +1 -0
  129. package/dist/db/search.js +28 -0
  130. package/dist/db/search.js.map +1 -0
  131. package/dist/db/stores.js +1665 -0
  132. package/dist/db/stores.js.map +1 -0
  133. package/dist/db/things.js +297 -0
  134. package/dist/db/things.js.map +1 -0
  135. package/dist/db/vault.js +171 -0
  136. package/dist/db/vault.js.map +1 -0
  137. package/dist/db/verbs.js +102 -0
  138. package/dist/db/verbs.js.map +1 -0
  139. package/dist/do/base.js +48 -0
  140. package/dist/do/base.js.map +1 -0
  141. package/dist/do/tiny.js +31 -0
  142. package/dist/do/tiny.js.map +1 -0
  143. package/dist/lib/DOAuth.js +261 -0
  144. package/dist/lib/DOAuth.js.map +1 -0
  145. package/dist/lib/DODispatcher.js +72 -0
  146. package/dist/lib/DODispatcher.js.map +1 -0
  147. package/dist/lib/Modifier.js +189 -0
  148. package/dist/lib/Modifier.js.map +1 -0
  149. package/dist/lib/StateStorage.js +403 -0
  150. package/dist/lib/StateStorage.js.map +1 -0
  151. package/dist/lib/TypeRegistry.js +122 -0
  152. package/dist/lib/TypeRegistry.js.map +1 -0
  153. package/dist/lib/ai/gateway.js +247 -0
  154. package/dist/lib/ai/gateway.js.map +1 -0
  155. package/dist/lib/ai/tool-loop-agent.js +591 -0
  156. package/dist/lib/ai/tool-loop-agent.js.map +1 -0
  157. package/dist/lib/auto-wiring.js +439 -0
  158. package/dist/lib/auto-wiring.js.map +1 -0
  159. package/dist/lib/browse/browserbase.js +163 -0
  160. package/dist/lib/browse/browserbase.js.map +1 -0
  161. package/dist/lib/browse/cloudflare.js +144 -0
  162. package/dist/lib/browse/cloudflare.js.map +1 -0
  163. package/dist/lib/browse/index.js +62 -0
  164. package/dist/lib/browse/index.js.map +1 -0
  165. package/dist/lib/browse/types.js +13 -0
  166. package/dist/lib/browse/types.js.map +1 -0
  167. package/dist/lib/cache/index.js +37 -0
  168. package/dist/lib/cache/index.js.map +1 -0
  169. package/dist/lib/cache/visibility.js +638 -0
  170. package/dist/lib/cache/visibility.js.map +1 -0
  171. package/dist/lib/capabilities.js +268 -0
  172. package/dist/lib/capabilities.js.map +1 -0
  173. package/dist/lib/channels/base.js +106 -0
  174. package/dist/lib/channels/base.js.map +1 -0
  175. package/dist/lib/channels/discord.js +94 -0
  176. package/dist/lib/channels/discord.js.map +1 -0
  177. package/dist/lib/channels/email.js +204 -0
  178. package/dist/lib/channels/email.js.map +1 -0
  179. package/dist/lib/channels/index.js +90 -0
  180. package/dist/lib/channels/index.js.map +1 -0
  181. package/dist/lib/channels/mdxui-chat.js +95 -0
  182. package/dist/lib/channels/mdxui-chat.js.map +1 -0
  183. package/dist/lib/channels/slack-blockkit.js +121 -0
  184. package/dist/lib/channels/slack-blockkit.js.map +1 -0
  185. package/dist/lib/channels/types.js +7 -0
  186. package/dist/lib/channels/types.js.map +1 -0
  187. package/dist/lib/cloudflare/ai.js +654 -0
  188. package/dist/lib/cloudflare/ai.js.map +1 -0
  189. package/dist/lib/cloudflare/index.js +88 -0
  190. package/dist/lib/cloudflare/index.js.map +1 -0
  191. package/dist/lib/cloudflare/kv.js +342 -0
  192. package/dist/lib/cloudflare/kv.js.map +1 -0
  193. package/dist/lib/cloudflare/queues.js +434 -0
  194. package/dist/lib/cloudflare/queues.js.map +1 -0
  195. package/dist/lib/cloudflare/r2.js +604 -0
  196. package/dist/lib/cloudflare/r2.js.map +1 -0
  197. package/dist/lib/cloudflare/vectorize.js +494 -0
  198. package/dist/lib/cloudflare/vectorize.js.map +1 -0
  199. package/dist/lib/cloudflare/workflows.js +569 -0
  200. package/dist/lib/cloudflare/workflows.js.map +1 -0
  201. package/dist/lib/colo/caching.js +196 -0
  202. package/dist/lib/colo/caching.js.map +1 -0
  203. package/dist/lib/colo/detection.js +194 -0
  204. package/dist/lib/colo/detection.js.map +1 -0
  205. package/dist/lib/colo/external-data.js +219 -0
  206. package/dist/lib/colo/external-data.js.map +1 -0
  207. package/dist/lib/colo/globe-data.js +179 -0
  208. package/dist/lib/colo/globe-data.js.map +1 -0
  209. package/dist/lib/colo/index.js +16 -0
  210. package/dist/lib/colo/index.js.map +1 -0
  211. package/dist/lib/decorators.js +37 -0
  212. package/dist/lib/decorators.js.map +1 -0
  213. package/dist/lib/discovery.js +81 -0
  214. package/dist/lib/discovery.js.map +1 -0
  215. package/dist/lib/executors/AgenticFunctionExecutor.js +619 -0
  216. package/dist/lib/executors/AgenticFunctionExecutor.js.map +1 -0
  217. package/dist/lib/executors/BaseFunctionExecutor.js +328 -0
  218. package/dist/lib/executors/BaseFunctionExecutor.js.map +1 -0
  219. package/dist/lib/executors/CascadeExecutor.js +418 -0
  220. package/dist/lib/executors/CascadeExecutor.js.map +1 -0
  221. package/dist/lib/executors/CodeFunctionExecutor.js +904 -0
  222. package/dist/lib/executors/CodeFunctionExecutor.js.map +1 -0
  223. package/dist/lib/executors/GenerativeFunctionExecutor.js +904 -0
  224. package/dist/lib/executors/GenerativeFunctionExecutor.js.map +1 -0
  225. package/dist/lib/executors/HumanFunctionExecutor.js +884 -0
  226. package/dist/lib/executors/HumanFunctionExecutor.js.map +1 -0
  227. package/dist/lib/executors/ParallelStepExecutor.js +308 -0
  228. package/dist/lib/executors/ParallelStepExecutor.js.map +1 -0
  229. package/dist/lib/executors/types.js +12 -0
  230. package/dist/lib/executors/types.js.map +1 -0
  231. package/dist/lib/experiments.js +89 -0
  232. package/dist/lib/experiments.js.map +1 -0
  233. package/dist/lib/flags/store.js +262 -0
  234. package/dist/lib/flags/store.js.map +1 -0
  235. package/dist/lib/functions/FunctionComposition.js +467 -0
  236. package/dist/lib/functions/FunctionComposition.js.map +1 -0
  237. package/dist/lib/functions/FunctionMiddleware.js +457 -0
  238. package/dist/lib/functions/FunctionMiddleware.js.map +1 -0
  239. package/dist/lib/functions/FunctionRegistry.js +426 -0
  240. package/dist/lib/functions/FunctionRegistry.js.map +1 -0
  241. package/dist/lib/functions/createFunction.js +1048 -0
  242. package/dist/lib/functions/createFunction.js.map +1 -0
  243. package/dist/lib/humans/index.js +68 -0
  244. package/dist/lib/humans/index.js.map +1 -0
  245. package/dist/lib/humans/templates.js +117 -0
  246. package/dist/lib/humans/templates.js.map +1 -0
  247. package/dist/lib/identity.js +98 -0
  248. package/dist/lib/identity.js.map +1 -0
  249. package/dist/lib/index.js +9 -0
  250. package/dist/lib/index.js.map +1 -0
  251. package/dist/lib/logging/error-logger.js +163 -0
  252. package/dist/lib/logging/error-logger.js.map +1 -0
  253. package/dist/lib/logging/index.js +160 -0
  254. package/dist/lib/logging/index.js.map +1 -0
  255. package/dist/lib/mixins/bash.js +753 -0
  256. package/dist/lib/mixins/bash.js.map +1 -0
  257. package/dist/lib/mixins/fs.js +648 -0
  258. package/dist/lib/mixins/fs.js.map +1 -0
  259. package/dist/lib/mixins/git.js +1006 -0
  260. package/dist/lib/mixins/git.js.map +1 -0
  261. package/dist/lib/mixins/npm.js +662 -0
  262. package/dist/lib/mixins/npm.js.map +1 -0
  263. package/dist/lib/noun-id.js +278 -0
  264. package/dist/lib/noun-id.js.map +1 -0
  265. package/dist/lib/rate-limit/sliding-window.js +148 -0
  266. package/dist/lib/rate-limit/sliding-window.js.map +1 -0
  267. package/dist/lib/rate-limit.js +110 -0
  268. package/dist/lib/rate-limit.js.map +1 -0
  269. package/dist/lib/rpc/bindings.js +548 -0
  270. package/dist/lib/rpc/bindings.js.map +1 -0
  271. package/dist/lib/rpc/index.js +64 -0
  272. package/dist/lib/rpc/index.js.map +1 -0
  273. package/dist/lib/safe-stringify.js +223 -0
  274. package/dist/lib/safe-stringify.js.map +1 -0
  275. package/dist/lib/sandbox/miniflare-sandbox.js +1007 -0
  276. package/dist/lib/sandbox/miniflare-sandbox.js.map +1 -0
  277. package/dist/lib/sqids.js +110 -0
  278. package/dist/lib/sqids.js.map +1 -0
  279. package/dist/lib/sql/adapters/index.js +10 -0
  280. package/dist/lib/sql/adapters/index.js.map +1 -0
  281. package/dist/lib/sql/adapters/node-sql-parser.js +552 -0
  282. package/dist/lib/sql/adapters/node-sql-parser.js.map +1 -0
  283. package/dist/lib/sql/adapters/pgsql-parser.js +1190 -0
  284. package/dist/lib/sql/adapters/pgsql-parser.js.map +1 -0
  285. package/dist/lib/sql/index.js +277 -0
  286. package/dist/lib/sql/index.js.map +1 -0
  287. package/dist/lib/sql/types.js +56 -0
  288. package/dist/lib/sql/types.js.map +1 -0
  289. package/dist/lib/type-classifier.js +126 -0
  290. package/dist/lib/type-classifier.js.map +1 -0
  291. package/dist/lib/utils/html.js +47 -0
  292. package/dist/lib/utils/html.js.map +1 -0
  293. package/dist/lib/validation.js +48 -0
  294. package/dist/lib/validation.js.map +1 -0
  295. package/dist/lib/vault/store.js +411 -0
  296. package/dist/lib/vault/store.js.map +1 -0
  297. package/dist/metrics/hunch.js +739 -0
  298. package/dist/metrics/hunch.js.map +1 -0
  299. package/dist/objects/API.js +302 -0
  300. package/dist/objects/API.js.map +1 -0
  301. package/dist/objects/Agent.js +179 -0
  302. package/dist/objects/Agent.js.map +1 -0
  303. package/dist/objects/AgenticFunctionExecutor.js +8 -0
  304. package/dist/objects/AgenticFunctionExecutor.js.map +1 -0
  305. package/dist/objects/App.js +83 -0
  306. package/dist/objects/App.js.map +1 -0
  307. package/dist/objects/Browser.js +884 -0
  308. package/dist/objects/Browser.js.map +1 -0
  309. package/dist/objects/Business.js +107 -0
  310. package/dist/objects/Business.js.map +1 -0
  311. package/dist/objects/CLI.js +221 -0
  312. package/dist/objects/CLI.js.map +1 -0
  313. package/dist/objects/CodeFunctionExecutor.js +8 -0
  314. package/dist/objects/CodeFunctionExecutor.js.map +1 -0
  315. package/dist/objects/Collection.js +161 -0
  316. package/dist/objects/Collection.js.map +1 -0
  317. package/dist/objects/DO.js +41 -0
  318. package/dist/objects/DO.js.map +1 -0
  319. package/dist/objects/DOBase.js +2309 -0
  320. package/dist/objects/DOBase.js.map +1 -0
  321. package/dist/objects/DOCache.js +153 -0
  322. package/dist/objects/DOCache.js.map +1 -0
  323. package/dist/objects/DOFull.js +1676 -0
  324. package/dist/objects/DOFull.js.map +1 -0
  325. package/dist/objects/DOTiny.js +207 -0
  326. package/dist/objects/DOTiny.js.map +1 -0
  327. package/dist/objects/Directory.js +199 -0
  328. package/dist/objects/Directory.js.map +1 -0
  329. package/dist/objects/Entity.js +413 -0
  330. package/dist/objects/Entity.js.map +1 -0
  331. package/dist/objects/Function.js +116 -0
  332. package/dist/objects/Function.js.map +1 -0
  333. package/dist/objects/Human.js +231 -0
  334. package/dist/objects/Human.js.map +1 -0
  335. package/dist/objects/HumanFunctionExecutor.js +8 -0
  336. package/dist/objects/HumanFunctionExecutor.js.map +1 -0
  337. package/dist/objects/IcebergMetadataDO.js +938 -0
  338. package/dist/objects/IcebergMetadataDO.js.map +1 -0
  339. package/dist/objects/IntegrationsDO.js +1174 -0
  340. package/dist/objects/IntegrationsDO.js.map +1 -0
  341. package/dist/objects/ObservabilityBroadcaster.js +149 -0
  342. package/dist/objects/ObservabilityBroadcaster.js.map +1 -0
  343. package/dist/objects/Package.js +154 -0
  344. package/dist/objects/Package.js.map +1 -0
  345. package/dist/objects/Product.js +193 -0
  346. package/dist/objects/Product.js.map +1 -0
  347. package/dist/objects/SDK.js +152 -0
  348. package/dist/objects/SDK.js.map +1 -0
  349. package/dist/objects/SaaS.js +235 -0
  350. package/dist/objects/SaaS.js.map +1 -0
  351. package/dist/objects/SandboxDO.js +759 -0
  352. package/dist/objects/SandboxDO.js.map +1 -0
  353. package/dist/objects/Service.js +337 -0
  354. package/dist/objects/Service.js.map +1 -0
  355. package/dist/objects/Site.js +80 -0
  356. package/dist/objects/Site.js.map +1 -0
  357. package/dist/objects/Startup.js +479 -0
  358. package/dist/objects/Startup.js.map +1 -0
  359. package/dist/objects/ThingsDO.js +170 -0
  360. package/dist/objects/ThingsDO.js.map +1 -0
  361. package/dist/objects/VectorShardDO.js +650 -0
  362. package/dist/objects/VectorShardDO.js.map +1 -0
  363. package/dist/objects/Worker.js +144 -0
  364. package/dist/objects/Worker.js.map +1 -0
  365. package/dist/objects/Workflow.js +196 -0
  366. package/dist/objects/Workflow.js.map +1 -0
  367. package/dist/objects/WorkflowFactory.js +313 -0
  368. package/dist/objects/WorkflowFactory.js.map +1 -0
  369. package/dist/objects/WorkflowRuntime.js +863 -0
  370. package/dist/objects/WorkflowRuntime.js.map +1 -0
  371. package/dist/objects/circuit-breaker-bulkhead.js +178 -0
  372. package/dist/objects/circuit-breaker-bulkhead.js.map +1 -0
  373. package/dist/objects/createFunction.js +934 -0
  374. package/dist/objects/createFunction.js.map +1 -0
  375. package/dist/objects/index.js +80 -0
  376. package/dist/objects/index.js.map +1 -0
  377. package/dist/objects/lifecycle/Branch.js +275 -0
  378. package/dist/objects/lifecycle/Branch.js.map +1 -0
  379. package/dist/objects/lifecycle/Clone.js +1499 -0
  380. package/dist/objects/lifecycle/Clone.js.map +1 -0
  381. package/dist/objects/lifecycle/Compact.js +237 -0
  382. package/dist/objects/lifecycle/Compact.js.map +1 -0
  383. package/dist/objects/lifecycle/Promote.js +476 -0
  384. package/dist/objects/lifecycle/Promote.js.map +1 -0
  385. package/dist/objects/lifecycle/Shard.js +560 -0
  386. package/dist/objects/lifecycle/Shard.js.map +1 -0
  387. package/dist/objects/lifecycle/index.js +15 -0
  388. package/dist/objects/lifecycle/index.js.map +1 -0
  389. package/dist/objects/lifecycle/types.js +33 -0
  390. package/dist/objects/lifecycle/types.js.map +1 -0
  391. package/dist/objects/mixins/infrastructure.js +171 -0
  392. package/dist/objects/mixins/infrastructure.js.map +1 -0
  393. package/dist/objects/modules/StoresModule.js +153 -0
  394. package/dist/objects/modules/StoresModule.js.map +1 -0
  395. package/dist/objects/persistence/checkpoint-manager.js +606 -0
  396. package/dist/objects/persistence/checkpoint-manager.js.map +1 -0
  397. package/dist/objects/persistence/index.js +72 -0
  398. package/dist/objects/persistence/index.js.map +1 -0
  399. package/dist/objects/persistence/migration-runner.js +562 -0
  400. package/dist/objects/persistence/migration-runner.js.map +1 -0
  401. package/dist/objects/persistence/replication-manager.js +501 -0
  402. package/dist/objects/persistence/replication-manager.js.map +1 -0
  403. package/dist/objects/persistence/tiered-storage-manager.js +595 -0
  404. package/dist/objects/persistence/tiered-storage-manager.js.map +1 -0
  405. package/dist/objects/persistence/types.js +14 -0
  406. package/dist/objects/persistence/types.js.map +1 -0
  407. package/dist/objects/persistence/wal-manager.js +653 -0
  408. package/dist/objects/persistence/wal-manager.js.map +1 -0
  409. package/dist/objects/presets/index.js +20 -0
  410. package/dist/objects/presets/index.js.map +1 -0
  411. package/dist/objects/presets/primitives.js +188 -0
  412. package/dist/objects/presets/primitives.js.map +1 -0
  413. package/dist/objects/primitives/alarm-adapter.js +141 -0
  414. package/dist/objects/primitives/alarm-adapter.js.map +1 -0
  415. package/dist/objects/primitives/index.js +337 -0
  416. package/dist/objects/primitives/index.js.map +1 -0
  417. package/dist/objects/primitives/storage-adapter.js +182 -0
  418. package/dist/objects/primitives/storage-adapter.js.map +1 -0
  419. package/dist/objects/primitives/with-primitives.js +102 -0
  420. package/dist/objects/primitives/with-primitives.js.map +1 -0
  421. package/dist/objects/services/StoreManager.js +227 -0
  422. package/dist/objects/services/StoreManager.js.map +1 -0
  423. package/dist/objects/services/index.js +13 -0
  424. package/dist/objects/services/index.js.map +1 -0
  425. package/dist/objects/transport/auth-layer.js +1451 -0
  426. package/dist/objects/transport/auth-layer.js.map +1 -0
  427. package/dist/objects/transport/capnweb-target.js +355 -0
  428. package/dist/objects/transport/capnweb-target.js.map +1 -0
  429. package/dist/objects/transport/chain.js +441 -0
  430. package/dist/objects/transport/chain.js.map +1 -0
  431. package/dist/objects/transport/handler.js +58 -0
  432. package/dist/objects/transport/handler.js.map +1 -0
  433. package/dist/objects/transport/index.js +53 -0
  434. package/dist/objects/transport/index.js.map +1 -0
  435. package/dist/objects/transport/mcp-server.js +691 -0
  436. package/dist/objects/transport/mcp-server.js.map +1 -0
  437. package/dist/objects/transport/rest-autowire.js +1508 -0
  438. package/dist/objects/transport/rest-autowire.js.map +1 -0
  439. package/dist/objects/transport/rest-router.js +440 -0
  440. package/dist/objects/transport/rest-router.js.map +1 -0
  441. package/dist/objects/transport/rpc-server.js +1539 -0
  442. package/dist/objects/transport/rpc-server.js.map +1 -0
  443. package/dist/objects/transport/shared.js +576 -0
  444. package/dist/objects/transport/shared.js.map +1 -0
  445. package/dist/objects/transport/sync-engine.js +291 -0
  446. package/dist/objects/transport/sync-engine.js.map +1 -0
  447. package/dist/objects/transport/types.js +8 -0
  448. package/dist/objects/transport/types.js.map +1 -0
  449. package/dist/sandbox/index.js +258 -0
  450. package/dist/sandbox/index.js.map +1 -0
  451. package/dist/snippets/artifacts-config.js +241 -0
  452. package/dist/snippets/artifacts-config.js.map +1 -0
  453. package/dist/snippets/artifacts-ingest.js +832 -0
  454. package/dist/snippets/artifacts-ingest.js.map +1 -0
  455. package/dist/snippets/artifacts-serve.js +1035 -0
  456. package/dist/snippets/artifacts-serve.js.map +1 -0
  457. package/dist/snippets/artifacts-types.js +161 -0
  458. package/dist/snippets/artifacts-types.js.map +1 -0
  459. package/dist/snippets/cache-probe.js +376 -0
  460. package/dist/snippets/cache-probe.js.map +1 -0
  461. package/dist/snippets/cache.js +10 -0
  462. package/dist/snippets/cache.js.map +1 -0
  463. package/dist/snippets/events.js +469 -0
  464. package/dist/snippets/events.js.map +1 -0
  465. package/dist/snippets/index.js +7 -0
  466. package/dist/snippets/index.js.map +1 -0
  467. package/dist/snippets/proxy.js +495 -0
  468. package/dist/snippets/proxy.js.map +1 -0
  469. package/dist/snippets/search.js +1759 -0
  470. package/dist/snippets/search.js.map +1 -0
  471. package/dist/streams/index.js +30 -0
  472. package/dist/streams/index.js.map +1 -0
  473. package/dist/streams/observability.js +68 -0
  474. package/dist/streams/observability.js.map +1 -0
  475. package/dist/types/AI.js +92 -0
  476. package/dist/types/AI.js.map +1 -0
  477. package/dist/types/AIFunction.js +171 -0
  478. package/dist/types/AIFunction.js.map +1 -0
  479. package/dist/types/BrowseVerb.js +89 -0
  480. package/dist/types/BrowseVerb.js.map +1 -0
  481. package/dist/types/Browser.js +31 -0
  482. package/dist/types/Browser.js.map +1 -0
  483. package/dist/types/Chaos.js +15 -0
  484. package/dist/types/Chaos.js.map +1 -0
  485. package/dist/types/CloudflareBindings.js +109 -0
  486. package/dist/types/CloudflareBindings.js.map +1 -0
  487. package/dist/types/Collection.js +50 -0
  488. package/dist/types/Collection.js.map +1 -0
  489. package/dist/types/DO.js +2 -0
  490. package/dist/types/DO.js.map +1 -0
  491. package/dist/types/DOLocation.js +63 -0
  492. package/dist/types/DOLocation.js.map +1 -0
  493. package/dist/types/EventHandler.js +57 -0
  494. package/dist/types/EventHandler.js.map +1 -0
  495. package/dist/types/Experiment.js +33 -0
  496. package/dist/types/Experiment.js.map +1 -0
  497. package/dist/types/Flag.js +57 -0
  498. package/dist/types/Flag.js.map +1 -0
  499. package/dist/types/Lifecycle.js +13 -0
  500. package/dist/types/Lifecycle.js.map +1 -0
  501. package/dist/types/Location.js +169 -0
  502. package/dist/types/Location.js.map +1 -0
  503. package/dist/types/Noun.js +66 -0
  504. package/dist/types/Noun.js.map +1 -0
  505. package/dist/types/SessionEvent.js +194 -0
  506. package/dist/types/SessionEvent.js.map +1 -0
  507. package/dist/types/Thing.js +55 -0
  508. package/dist/types/Thing.js.map +1 -0
  509. package/dist/types/ThingDO.js +153 -0
  510. package/dist/types/ThingDO.js.map +1 -0
  511. package/dist/types/Things.js +2 -0
  512. package/dist/types/Things.js.map +1 -0
  513. package/dist/types/Verb.js +119 -0
  514. package/dist/types/Verb.js.map +1 -0
  515. package/dist/types/WorkflowContext.js +70 -0
  516. package/dist/types/WorkflowContext.js.map +1 -0
  517. package/dist/types/analytics-api.js +13 -0
  518. package/dist/types/analytics-api.js.map +1 -0
  519. package/dist/types/capabilities.js +135 -0
  520. package/dist/types/capabilities.js.map +1 -0
  521. package/dist/types/drizzle.js +12 -0
  522. package/dist/types/drizzle.js.map +1 -0
  523. package/dist/types/event.js +201 -0
  524. package/dist/types/event.js.map +1 -0
  525. package/dist/types/fn.js +12 -0
  526. package/dist/types/fn.js.map +1 -0
  527. package/dist/types/iceberg.js +48 -0
  528. package/dist/types/iceberg.js.map +1 -0
  529. package/dist/types/ids.js +170 -0
  530. package/dist/types/ids.js.map +1 -0
  531. package/dist/types/index.js +41 -0
  532. package/dist/types/index.js.map +1 -0
  533. package/dist/types/introspect.js +54 -0
  534. package/dist/types/introspect.js.map +1 -0
  535. package/dist/types/observability.js +124 -0
  536. package/dist/types/observability.js.map +1 -0
  537. package/dist/types/sync-protocol.js +175 -0
  538. package/dist/types/sync-protocol.js.map +1 -0
  539. package/dist/types/vector.js +13 -0
  540. package/dist/types/vector.js.map +1 -0
  541. package/dist/workflows/ScheduleManager.js +473 -0
  542. package/dist/workflows/ScheduleManager.js.map +1 -0
  543. package/dist/workflows/StepDOBridge.js +149 -0
  544. package/dist/workflows/StepDOBridge.js.map +1 -0
  545. package/dist/workflows/StepResultStorage.js +232 -0
  546. package/dist/workflows/StepResultStorage.js.map +1 -0
  547. package/dist/workflows/WaitForEventManager.js +461 -0
  548. package/dist/workflows/WaitForEventManager.js.map +1 -0
  549. package/dist/workflows/analyzer.js +332 -0
  550. package/dist/workflows/analyzer.js.map +1 -0
  551. package/dist/workflows/compat/activity-router.js +484 -0
  552. package/dist/workflows/compat/activity-router.js.map +1 -0
  553. package/dist/workflows/compat/backends/cloudflare-workflows.js +431 -0
  554. package/dist/workflows/compat/backends/cloudflare-workflows.js.map +1 -0
  555. package/dist/workflows/compat/backends/index.js +14 -0
  556. package/dist/workflows/compat/backends/index.js.map +1 -0
  557. package/dist/workflows/compat/errors/index.js +375 -0
  558. package/dist/workflows/compat/errors/index.js.map +1 -0
  559. package/dist/workflows/compat/index.js +79 -0
  560. package/dist/workflows/compat/index.js.map +1 -0
  561. package/dist/workflows/compat/inngest/index.js +989 -0
  562. package/dist/workflows/compat/inngest/index.js.map +1 -0
  563. package/dist/workflows/compat/qstash/index.js +1263 -0
  564. package/dist/workflows/compat/qstash/index.js.map +1 -0
  565. package/dist/workflows/compat/temporal/activities.js +739 -0
  566. package/dist/workflows/compat/temporal/activities.js.map +1 -0
  567. package/dist/workflows/compat/temporal/child-workflows.js +154 -0
  568. package/dist/workflows/compat/temporal/child-workflows.js.map +1 -0
  569. package/dist/workflows/compat/temporal/client.js +381 -0
  570. package/dist/workflows/compat/temporal/client.js.map +1 -0
  571. package/dist/workflows/compat/temporal/context.js +309 -0
  572. package/dist/workflows/compat/temporal/context.js.map +1 -0
  573. package/dist/workflows/compat/temporal/determinism.js +216 -0
  574. package/dist/workflows/compat/temporal/determinism.js.map +1 -0
  575. package/dist/workflows/compat/temporal/errors.js +128 -0
  576. package/dist/workflows/compat/temporal/errors.js.map +1 -0
  577. package/dist/workflows/compat/temporal/index.js +2464 -0
  578. package/dist/workflows/compat/temporal/index.js.map +1 -0
  579. package/dist/workflows/compat/temporal/saga.js +504 -0
  580. package/dist/workflows/compat/temporal/saga.js.map +1 -0
  581. package/dist/workflows/compat/temporal/signals.js +364 -0
  582. package/dist/workflows/compat/temporal/signals.js.map +1 -0
  583. package/dist/workflows/compat/temporal/storage.js +271 -0
  584. package/dist/workflows/compat/temporal/storage.js.map +1 -0
  585. package/dist/workflows/compat/temporal/timers.js +347 -0
  586. package/dist/workflows/compat/temporal/timers.js.map +1 -0
  587. package/dist/workflows/compat/temporal/types.js +7 -0
  588. package/dist/workflows/compat/temporal/types.js.map +1 -0
  589. package/dist/workflows/compat/temporal/unified-primitives.js +339 -0
  590. package/dist/workflows/compat/temporal/unified-primitives.js.map +1 -0
  591. package/dist/workflows/compat/trigger/index.js +468 -0
  592. package/dist/workflows/compat/trigger/index.js.map +1 -0
  593. package/dist/workflows/compat/utils/index.js +69 -0
  594. package/dist/workflows/compat/utils/index.js.map +1 -0
  595. package/dist/workflows/context/correlation-capability.js +266 -0
  596. package/dist/workflows/context/correlation-capability.js.map +1 -0
  597. package/dist/workflows/context/correlation.js +484 -0
  598. package/dist/workflows/context/correlation.js.map +1 -0
  599. package/dist/workflows/context/experiment.js +289 -0
  600. package/dist/workflows/context/experiment.js.map +1 -0
  601. package/dist/workflows/context/flag.js +244 -0
  602. package/dist/workflows/context/flag.js.map +1 -0
  603. package/dist/workflows/context/foundation.js +648 -0
  604. package/dist/workflows/context/foundation.js.map +1 -0
  605. package/dist/workflows/context/human-base.js +106 -0
  606. package/dist/workflows/context/human-base.js.map +1 -0
  607. package/dist/workflows/context/human.js +368 -0
  608. package/dist/workflows/context/human.js.map +1 -0
  609. package/dist/workflows/context/measure.js +354 -0
  610. package/dist/workflows/context/measure.js.map +1 -0
  611. package/dist/workflows/context/rate-limit.js +358 -0
  612. package/dist/workflows/context/rate-limit.js.map +1 -0
  613. package/dist/workflows/context/user.js +117 -0
  614. package/dist/workflows/context/user.js.map +1 -0
  615. package/dist/workflows/context/vault.js +360 -0
  616. package/dist/workflows/context/vault.js.map +1 -0
  617. package/dist/workflows/data/entity-events/entity-events.js +489 -0
  618. package/dist/workflows/data/entity-events/entity-events.js.map +1 -0
  619. package/dist/workflows/data/experiment/index.js +599 -0
  620. package/dist/workflows/data/experiment/index.js.map +1 -0
  621. package/dist/workflows/data/goal/context.js +558 -0
  622. package/dist/workflows/data/goal/context.js.map +1 -0
  623. package/dist/workflows/data/goal/index.js +32 -0
  624. package/dist/workflows/data/goal/index.js.map +1 -0
  625. package/dist/workflows/data/measure/index.js +840 -0
  626. package/dist/workflows/data/measure/index.js.map +1 -0
  627. package/dist/workflows/data/stream/index.js +1149 -0
  628. package/dist/workflows/data/stream/index.js.map +1 -0
  629. package/dist/workflows/data/track/context.js +883 -0
  630. package/dist/workflows/data/track/context.js.map +1 -0
  631. package/dist/workflows/data/track/index.js +15 -0
  632. package/dist/workflows/data/track/index.js.map +1 -0
  633. package/dist/workflows/data/view/context.js +864 -0
  634. package/dist/workflows/data/view/context.js.map +1 -0
  635. package/dist/workflows/domain.js +93 -0
  636. package/dist/workflows/domain.js.map +1 -0
  637. package/dist/workflows/flag.js +176 -0
  638. package/dist/workflows/flag.js.map +1 -0
  639. package/dist/workflows/flags.js +217 -0
  640. package/dist/workflows/flags.js.map +1 -0
  641. package/dist/workflows/hash.js +209 -0
  642. package/dist/workflows/hash.js.map +1 -0
  643. package/dist/workflows/index.js +50 -0
  644. package/dist/workflows/index.js.map +1 -0
  645. package/dist/workflows/on.js +378 -0
  646. package/dist/workflows/on.js.map +1 -0
  647. package/dist/workflows/pipeline-promise.js +481 -0
  648. package/dist/workflows/pipeline-promise.js.map +1 -0
  649. package/dist/workflows/pipeline-types.js +20 -0
  650. package/dist/workflows/pipeline-types.js.map +1 -0
  651. package/dist/workflows/proxy.js +76 -0
  652. package/dist/workflows/proxy.js.map +1 -0
  653. package/dist/workflows/runtime.js +310 -0
  654. package/dist/workflows/runtime.js.map +1 -0
  655. package/dist/workflows/schedule-builder.js +327 -0
  656. package/dist/workflows/schedule-builder.js.map +1 -0
  657. package/dist/workflows/visibility/index.js +146 -0
  658. package/dist/workflows/visibility/index.js.map +1 -0
  659. package/dist/workflows/visibility/query-parser.js +150 -0
  660. package/dist/workflows/visibility/query-parser.js.map +1 -0
  661. package/dist/workflows/visibility/store.js +223 -0
  662. package/dist/workflows/visibility/store.js.map +1 -0
  663. package/dist/workflows/visibility/types.js +30 -0
  664. package/dist/workflows/visibility/types.js.map +1 -0
  665. package/dist/workflows/workflow.js +53 -0
  666. package/dist/workflows/workflow.js.map +1 -0
  667. package/package.json +294 -46
@@ -0,0 +1,337 @@
1
+ /**
2
+ * DO Primitives Integration
3
+ *
4
+ * Integrates the unified primitives (TemporalStore, WindowManager,
5
+ * ExactlyOnceContext, TypedColumnStore) into the Durable Object architecture.
6
+ *
7
+ * Provides a factory that creates DO-backed primitives with:
8
+ * - Automatic persistence to DO storage
9
+ * - Alarm integration for time-based triggers
10
+ * - Proper initialization and cleanup
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * class MyDO extends DO {
15
+ * async handleRequest(req: Request) {
16
+ * // Get primitives via factory
17
+ * const primitives = createDOPrimitiveFactory(this.ctx, this.env)
18
+ *
19
+ * // Create a temporal store for events
20
+ * const eventStore = primitives.temporal<Event>('events')
21
+ * await eventStore.put('event-1', event, Date.now())
22
+ *
23
+ * // Create a window manager for aggregation
24
+ * const windowMgr = primitives.window('tumbling', { size: { minutes: 5 } })
25
+ * windowMgr.process(metric, Date.now())
26
+ * }
27
+ * }
28
+ * ```
29
+ */
30
+ import { createTemporalStore, WindowManager, hours, minutes, seconds, milliseconds, createExactlyOnceContext, createColumnStore, EventTimeTrigger, CountTrigger, ProcessingTimeTrigger, } from '../../db/primitives';
31
+ import { createDOStorageAdapter, createTemporalStorageAdapter, createExactlyOnceStorageAdapter, } from './storage-adapter';
32
+ import { createDOAlarmAdapter, createWindowAlarmIntegration, } from './alarm-adapter';
33
+ // Re-export adapters for direct usage
34
+ export * from './storage-adapter';
35
+ export * from './alarm-adapter';
36
+ // ============================================================================
37
+ // Implementation
38
+ // ============================================================================
39
+ /**
40
+ * Convert DurationSpec to duration object
41
+ */
42
+ function toDuration(spec) {
43
+ if (spec.hours)
44
+ return hours(spec.hours);
45
+ if (spec.minutes)
46
+ return minutes(spec.minutes);
47
+ if (spec.seconds)
48
+ return seconds(spec.seconds);
49
+ if (spec.milliseconds)
50
+ return milliseconds(spec.milliseconds);
51
+ throw new Error('Invalid duration spec: must specify hours, minutes, seconds, or milliseconds');
52
+ }
53
+ /**
54
+ * DO Primitive Factory implementation
55
+ */
56
+ class DOPrimitiveFactoryImpl {
57
+ ctx;
58
+ env;
59
+ storageAdapter;
60
+ alarmAdapter;
61
+ windowIntegration;
62
+ // Instance caches for lazy initialization and reuse
63
+ temporalStores = new Map();
64
+ columnStores = new Map();
65
+ exactlyOnceCtx = null;
66
+ constructor(ctx, env) {
67
+ this.ctx = ctx;
68
+ this.env = env;
69
+ this.storageAdapter = createDOStorageAdapter(ctx.storage);
70
+ this.alarmAdapter = createDOAlarmAdapter(ctx);
71
+ this.windowIntegration = createWindowAlarmIntegration(this.alarmAdapter, ctx.storage);
72
+ }
73
+ temporal(name, options) {
74
+ const cached = this.temporalStores.get(name);
75
+ if (cached)
76
+ return cached;
77
+ // Create DO-backed temporal store
78
+ const storageAdapter = createTemporalStorageAdapter(this.ctx.storage, name);
79
+ const store = createDOBackedTemporalStore(storageAdapter, options);
80
+ this.temporalStores.set(name, store);
81
+ return store;
82
+ }
83
+ window(type, config) {
84
+ // Create window assigner based on type
85
+ let assigner;
86
+ switch (type) {
87
+ case 'tumbling':
88
+ if (!config.size)
89
+ throw new Error('Tumbling windows require a size');
90
+ assigner = WindowManager.tumbling(toDuration(config.size));
91
+ break;
92
+ case 'sliding':
93
+ if (!config.size || !config.slide)
94
+ throw new Error('Sliding windows require both size and slide');
95
+ assigner = WindowManager.sliding(toDuration(config.size), toDuration(config.slide));
96
+ break;
97
+ case 'session':
98
+ if (!config.gap)
99
+ throw new Error('Session windows require a gap');
100
+ assigner = WindowManager.session(toDuration(config.gap));
101
+ break;
102
+ case 'global':
103
+ assigner = WindowManager.global();
104
+ break;
105
+ default:
106
+ throw new Error(`Unknown window type: ${type}`);
107
+ }
108
+ const windowManager = new WindowManager(assigner);
109
+ // Configure trigger
110
+ if (config.trigger) {
111
+ let trigger;
112
+ if (config.trigger === 'eventTime') {
113
+ trigger = new EventTimeTrigger();
114
+ }
115
+ else if (config.trigger === 'count') {
116
+ trigger = new CountTrigger(1);
117
+ }
118
+ else if (config.trigger === 'processingTime') {
119
+ trigger = new ProcessingTimeTrigger(minutes(1));
120
+ }
121
+ else if ('count' in config.trigger) {
122
+ trigger = new CountTrigger(config.trigger.count);
123
+ }
124
+ else if ('interval' in config.trigger) {
125
+ trigger = new ProcessingTimeTrigger(toDuration(config.trigger.interval));
126
+ }
127
+ else {
128
+ trigger = new EventTimeTrigger();
129
+ }
130
+ windowManager.withTrigger(trigger);
131
+ }
132
+ else {
133
+ // Default to event time trigger
134
+ windowManager.withTrigger(new EventTimeTrigger());
135
+ }
136
+ // Configure key extractor
137
+ if (config.keyBy) {
138
+ windowManager.withKeyExtractor(config.keyBy);
139
+ }
140
+ // Integrate with DO alarms for automatic watermark advancement
141
+ const originalProcess = windowManager.process.bind(windowManager);
142
+ windowManager.process = (element, timestamp) => {
143
+ originalProcess(element, timestamp);
144
+ // Schedule alarm for any new windows that will need to trigger
145
+ const windows = windowManager.assign(element, timestamp);
146
+ for (const window of windows) {
147
+ // Schedule alarm slightly after window end
148
+ this.windowIntegration.scheduleWindowTrigger(window.end + 1);
149
+ }
150
+ };
151
+ // Register alarm handler for window triggers
152
+ this.alarmAdapter.onAlarm('window-trigger', async () => {
153
+ await this.windowIntegration.handleWindowAlarm((timestamp) => {
154
+ windowManager.advanceWatermark(timestamp);
155
+ });
156
+ });
157
+ return windowManager;
158
+ }
159
+ exactlyOnce(options) {
160
+ if (this.exactlyOnceCtx)
161
+ return this.exactlyOnceCtx;
162
+ // Create DO-backed exactly-once context
163
+ const storageAdapter = createExactlyOnceStorageAdapter(this.ctx.storage, 'default');
164
+ this.exactlyOnceCtx = createDOBackedExactlyOnceContext(storageAdapter, options);
165
+ return this.exactlyOnceCtx;
166
+ }
167
+ columns(name) {
168
+ const cached = this.columnStores.get(name);
169
+ if (cached)
170
+ return cached;
171
+ // Create column store (currently in-memory, persistence can be added later)
172
+ const store = createColumnStore();
173
+ this.columnStores.set(name, store);
174
+ return store;
175
+ }
176
+ alarms() {
177
+ return this.alarmAdapter;
178
+ }
179
+ storage() {
180
+ return this.storageAdapter;
181
+ }
182
+ async handleAlarm() {
183
+ await this.alarmAdapter.handleAlarm();
184
+ }
185
+ }
186
+ /**
187
+ * Create a DO-backed temporal store
188
+ */
189
+ function createDOBackedTemporalStore(storageAdapter, options) {
190
+ // Create the base in-memory temporal store
191
+ const memStore = createTemporalStore(options);
192
+ // Wrap with persistence layer
193
+ const store = {
194
+ async put(key, value, timestamp, opts) {
195
+ // Store in memory first
196
+ await memStore.put(key, value, timestamp, opts);
197
+ // Persist to DO storage
198
+ const versions = await storageAdapter.loadVersions(key);
199
+ const version = versions.length + 1;
200
+ await storageAdapter.saveVersion(key, value, timestamp, version, opts?.ttl ? timestamp + opts.ttl : undefined);
201
+ },
202
+ async get(key) {
203
+ // Try memory first
204
+ const memResult = await memStore.get(key);
205
+ if (memResult !== null)
206
+ return memResult;
207
+ // Fall back to storage
208
+ const versions = await storageAdapter.loadVersions(key);
209
+ if (versions.length === 0)
210
+ return null;
211
+ const lastVersion = versions[versions.length - 1];
212
+ return lastVersion ? lastVersion.value : null;
213
+ },
214
+ async getAsOf(key, timestamp) {
215
+ // Try memory first
216
+ const memResult = await memStore.getAsOf(key, timestamp);
217
+ if (memResult !== null)
218
+ return memResult;
219
+ // Fall back to storage
220
+ const versions = await storageAdapter.loadVersions(key);
221
+ for (let i = versions.length - 1; i >= 0; i--) {
222
+ const version = versions[i];
223
+ if (version && version.timestamp <= timestamp) {
224
+ return version.value;
225
+ }
226
+ }
227
+ return null;
228
+ },
229
+ range(prefix, timeRange) {
230
+ // Delegate to memory store for now
231
+ return memStore.range(prefix, timeRange);
232
+ },
233
+ async snapshot() {
234
+ return memStore.snapshot();
235
+ },
236
+ async restoreSnapshot(id) {
237
+ return memStore.restoreSnapshot(id);
238
+ },
239
+ async listSnapshots() {
240
+ return memStore.listSnapshots();
241
+ },
242
+ async prune(policy) {
243
+ return memStore.prune(policy);
244
+ },
245
+ async compact(policy) {
246
+ return memStore.compact(policy);
247
+ },
248
+ getRetentionPolicy() {
249
+ return memStore.getRetentionPolicy();
250
+ },
251
+ setRetentionPolicy(policy) {
252
+ memStore.setRetentionPolicy(policy);
253
+ },
254
+ };
255
+ return store;
256
+ }
257
+ /**
258
+ * Create a DO-backed exactly-once context
259
+ */
260
+ function createDOBackedExactlyOnceContext(storageAdapter, options) {
261
+ // Create the base in-memory context
262
+ const memCtx = createExactlyOnceContext(options);
263
+ // Wrap with persistence layer
264
+ const ctx = {
265
+ async processOnce(eventId, fn) {
266
+ // Check storage for already processed
267
+ const processed = await storageAdapter.loadProcessedIds();
268
+ if (processed.has(eventId)) {
269
+ return processed.get(eventId).result;
270
+ }
271
+ // Process using memory context
272
+ const result = await memCtx.processOnce(eventId, fn);
273
+ // Persist to storage
274
+ await storageAdapter.markProcessed(eventId, Date.now(), result);
275
+ return result;
276
+ },
277
+ async isProcessed(eventId) {
278
+ // Check memory first
279
+ const memResult = await memCtx.isProcessed(eventId);
280
+ if (memResult)
281
+ return true;
282
+ // Check storage
283
+ const processed = await storageAdapter.loadProcessedIds();
284
+ return processed.has(eventId);
285
+ },
286
+ async transaction(fn) {
287
+ // Use memory context for transactions
288
+ const result = await memCtx.transaction(fn);
289
+ // Persist state changes
290
+ const state = (await memCtx.getCheckpointState()).state;
291
+ await storageAdapter.saveState(state);
292
+ return result;
293
+ },
294
+ emit(event) {
295
+ memCtx.emit(event);
296
+ },
297
+ async flush() {
298
+ return memCtx.flush();
299
+ },
300
+ async onBarrier(barrier) {
301
+ return memCtx.onBarrier(barrier);
302
+ },
303
+ async getCheckpointState() {
304
+ return memCtx.getCheckpointState();
305
+ },
306
+ async restoreFromCheckpoint(state) {
307
+ return memCtx.restoreFromCheckpoint(state);
308
+ },
309
+ getEpoch() {
310
+ return memCtx.getEpoch();
311
+ },
312
+ getBufferedEventCount() {
313
+ return memCtx.getBufferedEventCount();
314
+ },
315
+ async clear() {
316
+ return memCtx.clear();
317
+ },
318
+ };
319
+ return ctx;
320
+ }
321
+ /**
322
+ * Create a DO primitive factory
323
+ *
324
+ * @param ctx - Durable Object state
325
+ * @param env - Environment bindings
326
+ * @returns Primitive factory instance
327
+ *
328
+ * @example
329
+ * ```typescript
330
+ * const primitives = createDOPrimitiveFactory(this.ctx, this.env)
331
+ * const eventStore = primitives.temporal<Event>('events')
332
+ * ```
333
+ */
334
+ export function createDOPrimitiveFactory(ctx, env) {
335
+ return new DOPrimitiveFactoryImpl(ctx, env);
336
+ }
337
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../objects/primitives/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * DO Storage Adapter
3
+ *
4
+ * Adapts Durable Object storage to work with the unified primitives.
5
+ * Provides a consistent interface for primitives to persist their state
6
+ * using DO's built-in storage mechanisms.
7
+ *
8
+ * Key features:
9
+ * - Namespaced key storage to avoid collisions
10
+ * - Batch operations for efficiency
11
+ * - Serialization/deserialization handling
12
+ * - SQL storage support for complex queries
13
+ */
14
+ /**
15
+ * Internal prefix for DO storage keys
16
+ */
17
+ const DEFAULT_NAMESPACE = 'primitives';
18
+ /**
19
+ * DO Storage Adapter implementation
20
+ */
21
+ class DOStorageAdapterImpl {
22
+ storage;
23
+ namespace;
24
+ useSql;
25
+ constructor(storage, options) {
26
+ this.storage = storage;
27
+ this.namespace = options?.namespace ?? DEFAULT_NAMESPACE;
28
+ this.useSql = options?.useSql ?? false;
29
+ }
30
+ /**
31
+ * Get the prefixed key for DO storage
32
+ */
33
+ prefixKey(key) {
34
+ return `${this.namespace}:${key}`;
35
+ }
36
+ /**
37
+ * Remove prefix from key
38
+ */
39
+ unprefixKey(prefixedKey) {
40
+ const prefix = `${this.namespace}:`;
41
+ return prefixedKey.startsWith(prefix) ? prefixedKey.slice(prefix.length) : prefixedKey;
42
+ }
43
+ async get(key) {
44
+ return this.storage.get(this.prefixKey(key));
45
+ }
46
+ async put(key, value) {
47
+ await this.storage.put(this.prefixKey(key), value);
48
+ }
49
+ async delete(key) {
50
+ return this.storage.delete(this.prefixKey(key));
51
+ }
52
+ async list(prefix) {
53
+ const fullPrefix = prefix ? this.prefixKey(prefix) : `${this.namespace}:`;
54
+ const entries = await this.storage.list({ prefix: fullPrefix });
55
+ // Convert to Map with unprefixed keys
56
+ const result = new Map();
57
+ for (const [key, value] of entries) {
58
+ result.set(this.unprefixKey(key), value);
59
+ }
60
+ return result;
61
+ }
62
+ async putMany(entries) {
63
+ if (entries.length === 0)
64
+ return;
65
+ // Convert to object for batch put
66
+ const batch = {};
67
+ for (const { key, value } of entries) {
68
+ batch[this.prefixKey(key)] = value;
69
+ }
70
+ await this.storage.put(batch);
71
+ }
72
+ async deleteMany(keys) {
73
+ if (keys.length === 0)
74
+ return;
75
+ await this.storage.delete(keys.map((k) => this.prefixKey(k)));
76
+ }
77
+ }
78
+ /**
79
+ * Create a storage adapter for DO primitives
80
+ *
81
+ * @param storage - Durable Object storage instance
82
+ * @param options - Adapter configuration options
83
+ * @returns Storage adapter compatible with primitives
84
+ */
85
+ export function createDOStorageAdapter(storage, options) {
86
+ return new DOStorageAdapterImpl(storage, options);
87
+ }
88
+ /**
89
+ * Create a temporal storage adapter
90
+ */
91
+ export function createTemporalStorageAdapter(storage, storeName) {
92
+ const prefix = `primitives:temporal:${storeName}:`;
93
+ return {
94
+ async loadVersions(key) {
95
+ const entries = await storage.list({ prefix: `${prefix}versions:${key}:` });
96
+ const versions = [];
97
+ for (const [, entry] of entries) {
98
+ versions.push({
99
+ value: entry.value,
100
+ timestamp: entry.timestamp,
101
+ version: entry.version,
102
+ });
103
+ }
104
+ // Sort by timestamp
105
+ versions.sort((a, b) => a.timestamp - b.timestamp);
106
+ return versions;
107
+ },
108
+ async saveVersion(key, value, timestamp, version, expiresAt) {
109
+ await storage.put(`${prefix}versions:${key}:${version}`, {
110
+ value,
111
+ timestamp,
112
+ version,
113
+ expiresAt,
114
+ });
115
+ },
116
+ async pruneVersions(key, olderThan) {
117
+ const entries = await storage.list({ prefix: `${prefix}versions:${key}:` });
118
+ const keysToDelete = [];
119
+ for (const [storageKey, entry] of entries) {
120
+ if (entry.timestamp < olderThan) {
121
+ keysToDelete.push(storageKey);
122
+ }
123
+ }
124
+ if (keysToDelete.length > 0) {
125
+ await storage.delete(keysToDelete);
126
+ }
127
+ return keysToDelete.length;
128
+ },
129
+ async loadSnapshots() {
130
+ return storage.list({ prefix: `${prefix}snapshots:` });
131
+ },
132
+ async saveSnapshot(id, snapshot) {
133
+ await storage.put(`${prefix}snapshots:${id}`, snapshot);
134
+ },
135
+ async deleteSnapshot(id) {
136
+ await storage.delete(`${prefix}snapshots:${id}`);
137
+ },
138
+ };
139
+ }
140
+ /**
141
+ * Create an exactly-once storage adapter
142
+ */
143
+ export function createExactlyOnceStorageAdapter(storage, contextName) {
144
+ const prefix = `primitives:exactlyonce:${contextName}:`;
145
+ return {
146
+ async loadProcessedIds() {
147
+ const entries = await storage.list({
148
+ prefix: `${prefix}processed:`,
149
+ });
150
+ const result = new Map();
151
+ for (const [key, value] of entries) {
152
+ const eventId = key.slice(`${prefix}processed:`.length);
153
+ result.set(eventId, value);
154
+ }
155
+ return result;
156
+ },
157
+ async markProcessed(eventId, timestamp, result) {
158
+ await storage.put(`${prefix}processed:${eventId}`, { timestamp, result });
159
+ },
160
+ async pruneExpired(olderThan) {
161
+ const entries = await storage.list({ prefix: `${prefix}processed:` });
162
+ const keysToDelete = [];
163
+ for (const [key, value] of entries) {
164
+ if (value.timestamp < olderThan) {
165
+ keysToDelete.push(key);
166
+ }
167
+ }
168
+ if (keysToDelete.length > 0) {
169
+ await storage.delete(keysToDelete);
170
+ }
171
+ return keysToDelete.length;
172
+ },
173
+ async loadState() {
174
+ const state = await storage.get(`${prefix}state`);
175
+ return new Map(Object.entries(state ?? {}));
176
+ },
177
+ async saveState(state) {
178
+ await storage.put(`${prefix}state`, Object.fromEntries(state));
179
+ },
180
+ };
181
+ }
182
+ //# sourceMappingURL=storage-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-adapter.js","sourceRoot":"","sources":["../../../objects/primitives/storage-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * With Primitives Mixin
3
+ *
4
+ * A capability mixin that adds the unified primitives to any Durable Object class.
5
+ * Provides zero-config access to:
6
+ * - TemporalStore: Time-aware key-value storage
7
+ * - WindowManager: Stream windowing and aggregation
8
+ * - ExactlyOnceContext: Idempotent event processing
9
+ * - TypedColumnStore: Columnar analytical storage
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { DO } from 'dotdo'
14
+ * import { withPrimitives } from 'dotdo/primitives'
15
+ *
16
+ * class MyDO extends withPrimitives(DO) {
17
+ * async handleRequest(req: Request) {
18
+ * // Access primitives via $.primitives
19
+ * const eventStore = this.$.primitives.temporal<Event>('events')
20
+ * await eventStore.put('event-1', event, Date.now())
21
+ *
22
+ * // Process events exactly once
23
+ * await this.$.primitives.exactlyOnce().processOnce(event.id, async () => {
24
+ * // Process event
25
+ * })
26
+ * }
27
+ * }
28
+ * ```
29
+ */
30
+ import { createCapabilityMixin, } from '../mixins/infrastructure';
31
+ import { createDOPrimitiveFactory, } from './index';
32
+ import { WindowManager } from '../../db/primitives';
33
+ export { WindowManager };
34
+ /**
35
+ * Create the primitives capability
36
+ */
37
+ function createPrimitivesCapability(ctx) {
38
+ // Create the factory lazily on first access
39
+ let factory = null;
40
+ const getFactory = () => {
41
+ if (!factory) {
42
+ factory = createDOPrimitiveFactory(ctx.state, ctx.env);
43
+ }
44
+ return factory;
45
+ };
46
+ return {
47
+ temporal(name, options) {
48
+ return getFactory().temporal(name, options);
49
+ },
50
+ window(type, config) {
51
+ return getFactory().window(type, config);
52
+ },
53
+ exactlyOnce(options) {
54
+ return getFactory().exactlyOnce(options);
55
+ },
56
+ columns(name) {
57
+ return getFactory().columns(name);
58
+ },
59
+ async handleAlarm() {
60
+ return getFactory().handleAlarm();
61
+ },
62
+ };
63
+ }
64
+ /**
65
+ * Primitives mixin
66
+ *
67
+ * Adds unified primitives capability to a Durable Object class.
68
+ *
69
+ * @param Base - Base DO class to extend
70
+ * @returns Extended class with primitives capability
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * import { DO } from 'dotdo'
75
+ * import { withPrimitives } from 'dotdo/primitives'
76
+ *
77
+ * // Add primitives to DO
78
+ * class MyDO extends withPrimitives(DO) {
79
+ * async fetch(request: Request) {
80
+ * // Use primitives via $.primitives
81
+ * const store = this.$.primitives.temporal('events')
82
+ * // ...
83
+ * }
84
+ * }
85
+ *
86
+ * // Compose with other mixins
87
+ * import { withFs } from 'dotdo/mixins'
88
+ * class FullDO extends withFs(withPrimitives(DO)) {
89
+ * // Has both $.primitives and $.fs
90
+ * }
91
+ * ```
92
+ */
93
+ export const withPrimitives = createCapabilityMixin('primitives', createPrimitivesCapability);
94
+ /**
95
+ * Convenience re-export of primitive utilities
96
+ */
97
+ export {
98
+ // Duration helpers from WindowManager
99
+ hours, minutes, seconds, milliseconds,
100
+ // Trigger types
101
+ EventTimeTrigger, CountTrigger, ProcessingTimeTrigger, PurgingTrigger, Trigger, } from '../../db/primitives';
102
+ //# sourceMappingURL=with-primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-primitives.js","sourceRoot":"","sources":["../../../objects/primitives/with-primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,qBAAqB,GAGtB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,wBAAwB,GAKzB,MAAM,SAAS,CAAA;AAUhB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenD,OAAO,EAAE,aAAa,EAAE,CAAA;AAqHxB;;GAEG;AACH,SAAS,0BAA0B,CAAC,GAAsB;IACxD,4CAA4C;IAC5C,IAAI,OAAO,GAA8B,IAAI,CAAA;IAE7C,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,OAAO;QACL,QAAQ,CAAI,IAAY,EAAE,OAA8B;YACtD,OAAO,UAAU,EAAE,CAAC,QAAQ,CAAI,IAAI,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;QAED,MAAM,CAAI,IAAgB,EAAE,MAAoB;YAC9C,OAAO,UAAU,EAAE,CAAC,MAAM,CAAI,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC;QAED,WAAW,CAAC,OAAmC;YAC7C,OAAO,UAAU,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC;QAED,OAAO,CAAC,IAAY;YAClB,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;QAED,KAAK,CAAC,WAAW;YACf,OAAO,UAAU,EAAE,CAAC,WAAW,EAAE,CAAA;QACnC,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAA;AAwB7F;;GAEG;AACH,OAAO;AACL,sCAAsC;AACtC,KAAK,EACL,OAAO,EACP,OAAO,EACP,YAAY;AACZ,gBAAgB;AAChB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,OAAO,GACR,MAAM,qBAAqB,CAAA"}