@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.
- package/README.md +400 -0
- package/dist/ai/embeddings.d.ts +129 -0
- package/dist/ai/embeddings.d.ts.map +1 -0
- package/dist/ai/embeddings.js +217 -0
- package/dist/ai/embeddings.js.map +1 -0
- package/dist/ai/gateway.d.ts +139 -0
- package/dist/ai/gateway.d.ts.map +1 -0
- package/dist/ai/gateway.js +179 -0
- package/dist/ai/gateway.js.map +1 -0
- package/dist/ai/image.d.ts +140 -0
- package/dist/ai/image.d.ts.map +1 -0
- package/dist/ai/image.js +199 -0
- package/dist/ai/image.js.map +1 -0
- package/dist/ai/index.d.ts +98 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +223 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/models.d.ts +81 -0
- package/dist/ai/models.d.ts.map +1 -0
- package/dist/ai/models.js +537 -0
- package/dist/ai/models.js.map +1 -0
- package/dist/ai/text.d.ts +176 -0
- package/dist/ai/text.d.ts.map +1 -0
- package/dist/ai/text.js +253 -0
- package/dist/ai/text.js.map +1 -0
- package/dist/ai/voice/agents.d.ts +224 -0
- package/dist/ai/voice/agents.d.ts.map +1 -0
- package/dist/ai/voice/agents.js +375 -0
- package/dist/ai/voice/agents.js.map +1 -0
- package/dist/ai/voice/campaigns.d.ts +307 -0
- package/dist/ai/voice/campaigns.d.ts.map +1 -0
- package/dist/ai/voice/campaigns.js +739 -0
- package/dist/ai/voice/campaigns.js.map +1 -0
- package/dist/ai/voice/index.d.ts +21 -0
- package/dist/ai/voice/index.d.ts.map +1 -0
- package/dist/ai/voice/index.js +42 -0
- package/dist/ai/voice/index.js.map +1 -0
- package/dist/ai/voice/providers.d.ts +283 -0
- package/dist/ai/voice/providers.d.ts.map +1 -0
- package/dist/ai/voice/providers.js +286 -0
- package/dist/ai/voice/providers.js.map +1 -0
- package/dist/ai/voice/sessions.d.ts +294 -0
- package/dist/ai/voice/sessions.d.ts.map +1 -0
- package/dist/ai/voice/sessions.js +531 -0
- package/dist/ai/voice/sessions.js.map +1 -0
- package/dist/ai/voice/tools.d.ts +242 -0
- package/dist/ai/voice/tools.d.ts.map +1 -0
- package/dist/ai/voice/tools.js +370 -0
- package/dist/ai/voice/tools.js.map +1 -0
- package/dist/ai/voice/tts.d.ts +173 -0
- package/dist/ai/voice/tts.d.ts.map +1 -0
- package/dist/ai/voice/tts.js +252 -0
- package/dist/ai/voice/tts.js.map +1 -0
- package/dist/ai/voice/webrtc.d.ts +228 -0
- package/dist/ai/voice/webrtc.d.ts.map +1 -0
- package/dist/ai/voice/webrtc.js +372 -0
- package/dist/ai/voice/webrtc.js.map +1 -0
- package/dist/api/index.d.ts +103 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +191 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/mcp/handlers.d.ts +25 -0
- package/dist/api/mcp/handlers.d.ts.map +1 -0
- package/dist/api/mcp/handlers.js +422 -0
- package/dist/api/mcp/handlers.js.map +1 -0
- package/dist/api/mcp/index.d.ts +113 -0
- package/dist/api/mcp/index.d.ts.map +1 -0
- package/dist/api/mcp/index.js +141 -0
- package/dist/api/mcp/index.js.map +1 -0
- package/dist/api/middleware/auth.d.ts +65 -0
- package/dist/api/middleware/auth.d.ts.map +1 -0
- package/dist/api/middleware/auth.js +271 -0
- package/dist/api/middleware/auth.js.map +1 -0
- package/dist/api/middleware/cors.d.ts +62 -0
- package/dist/api/middleware/cors.d.ts.map +1 -0
- package/dist/api/middleware/cors.js +225 -0
- package/dist/api/middleware/cors.js.map +1 -0
- package/dist/api/middleware/index.d.ts +60 -0
- package/dist/api/middleware/index.d.ts.map +1 -0
- package/dist/api/middleware/index.js +175 -0
- package/dist/api/middleware/index.js.map +1 -0
- package/dist/api/middleware/rateLimit.d.ts +84 -0
- package/dist/api/middleware/rateLimit.d.ts.map +1 -0
- package/dist/api/middleware/rateLimit.js +321 -0
- package/dist/api/middleware/rateLimit.js.map +1 -0
- package/dist/api/routes/ai.d.ts +17 -0
- package/dist/api/routes/ai.d.ts.map +1 -0
- package/dist/api/routes/ai.js +430 -0
- package/dist/api/routes/ai.js.map +1 -0
- package/dist/api/routes/do.d.ts +17 -0
- package/dist/api/routes/do.d.ts.map +1 -0
- package/dist/api/routes/do.js +458 -0
- package/dist/api/routes/do.js.map +1 -0
- package/dist/api/routes/functions.d.ts +111 -0
- package/dist/api/routes/functions.d.ts.map +1 -0
- package/dist/api/routes/functions.js +548 -0
- package/dist/api/routes/functions.js.map +1 -0
- package/dist/api/routes/health.d.ts +16 -0
- package/dist/api/routes/health.d.ts.map +1 -0
- package/dist/api/routes/health.js +163 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/index.d.ts +41 -0
- package/dist/api/routes/index.d.ts.map +1 -0
- package/dist/api/routes/index.js +275 -0
- package/dist/api/routes/index.js.map +1 -0
- package/dist/api/routes/nouns.d.ts +26 -0
- package/dist/api/routes/nouns.d.ts.map +1 -0
- package/dist/api/routes/nouns.js +456 -0
- package/dist/api/routes/nouns.js.map +1 -0
- package/dist/api/routes/orgs.d.ts +17 -0
- package/dist/api/routes/orgs.d.ts.map +1 -0
- package/dist/api/routes/orgs.js +560 -0
- package/dist/api/routes/orgs.js.map +1 -0
- package/dist/api/routes/relationships.d.ts +30 -0
- package/dist/api/routes/relationships.d.ts.map +1 -0
- package/dist/api/routes/relationships.js +360 -0
- package/dist/api/routes/relationships.js.map +1 -0
- package/dist/api/routes/roles.d.ts +17 -0
- package/dist/api/routes/roles.d.ts.map +1 -0
- package/dist/api/routes/roles.js +721 -0
- package/dist/api/routes/roles.js.map +1 -0
- package/dist/api/routes/things.d.ts +27 -0
- package/dist/api/routes/things.d.ts.map +1 -0
- package/dist/api/routes/things.js +568 -0
- package/dist/api/routes/things.js.map +1 -0
- package/dist/api/routes/users.d.ts +17 -0
- package/dist/api/routes/users.d.ts.map +1 -0
- package/dist/api/routes/users.js +401 -0
- package/dist/api/routes/users.js.map +1 -0
- package/dist/api/routes/verbs.d.ts +31 -0
- package/dist/api/routes/verbs.d.ts.map +1 -0
- package/dist/api/routes/verbs.js +505 -0
- package/dist/api/routes/verbs.js.map +1 -0
- package/dist/api/routes/workflows.d.ts +44 -0
- package/dist/api/routes/workflows.d.ts.map +1 -0
- package/dist/api/routes/workflows.js +521 -0
- package/dist/api/routes/workflows.js.map +1 -0
- package/dist/api/types.d.ts +370 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +11 -0
- package/dist/api/types.js.map +1 -0
- package/dist/db/cdc/events.d.ts +201 -0
- package/dist/db/cdc/events.d.ts.map +1 -0
- package/dist/db/cdc/events.js +271 -0
- package/dist/db/cdc/events.js.map +1 -0
- package/dist/db/cdc/index.d.ts +13 -0
- package/dist/db/cdc/index.d.ts.map +1 -0
- package/dist/db/cdc/index.js +16 -0
- package/dist/db/cdc/index.js.map +1 -0
- package/dist/db/cdc/replay.d.ts +388 -0
- package/dist/db/cdc/replay.d.ts.map +1 -0
- package/dist/db/cdc/replay.js +469 -0
- package/dist/db/cdc/replay.js.map +1 -0
- package/dist/db/cdc/storage.d.ts +567 -0
- package/dist/db/cdc/storage.d.ts.map +1 -0
- package/dist/db/cdc/storage.js +856 -0
- package/dist/db/cdc/storage.js.map +1 -0
- package/dist/db/cdc/streaming.d.ts +459 -0
- package/dist/db/cdc/streaming.d.ts.map +1 -0
- package/dist/db/cdc/streaming.js +636 -0
- package/dist/db/cdc/streaming.js.map +1 -0
- package/dist/db/collections/actions.d.ts +440 -0
- package/dist/db/collections/actions.d.ts.map +1 -0
- package/dist/db/collections/actions.js +631 -0
- package/dist/db/collections/actions.js.map +1 -0
- package/dist/db/collections/base.d.ts +342 -0
- package/dist/db/collections/base.d.ts.map +1 -0
- package/dist/db/collections/base.js +510 -0
- package/dist/db/collections/base.js.map +1 -0
- package/dist/db/collections/index.d.ts +50 -0
- package/dist/db/collections/index.d.ts.map +1 -0
- package/dist/db/collections/index.js +48 -0
- package/dist/db/collections/index.js.map +1 -0
- package/dist/db/collections/nouns.d.ts +260 -0
- package/dist/db/collections/nouns.d.ts.map +1 -0
- package/dist/db/collections/nouns.js +273 -0
- package/dist/db/collections/nouns.js.map +1 -0
- package/dist/db/collections/relationships.d.ts +484 -0
- package/dist/db/collections/relationships.d.ts.map +1 -0
- package/dist/db/collections/relationships.js +815 -0
- package/dist/db/collections/relationships.js.map +1 -0
- package/dist/db/collections/things.d.ts +439 -0
- package/dist/db/collections/things.d.ts.map +1 -0
- package/dist/db/collections/things.js +603 -0
- package/dist/db/collections/things.js.map +1 -0
- package/dist/db/collections/verbs.d.ts +308 -0
- package/dist/db/collections/verbs.d.ts.map +1 -0
- package/dist/db/collections/verbs.js +480 -0
- package/dist/db/collections/verbs.js.map +1 -0
- package/dist/db/index.d.ts +14 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +23 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/storage/cold.d.ts +313 -0
- package/dist/db/storage/cold.d.ts.map +1 -0
- package/dist/db/storage/cold.js +319 -0
- package/dist/db/storage/cold.js.map +1 -0
- package/dist/db/storage/hot.d.ts +340 -0
- package/dist/db/storage/hot.d.ts.map +1 -0
- package/dist/db/storage/hot.js +333 -0
- package/dist/db/storage/hot.js.map +1 -0
- package/dist/db/storage/index.d.ts +242 -0
- package/dist/db/storage/index.d.ts.map +1 -0
- package/dist/db/storage/index.js +109 -0
- package/dist/db/storage/index.js.map +1 -0
- package/dist/db/storage/snapshots.d.ts +342 -0
- package/dist/db/storage/snapshots.d.ts.map +1 -0
- package/dist/db/storage/snapshots.js +298 -0
- package/dist/db/storage/snapshots.js.map +1 -0
- package/dist/db/storage/vortex.d.ts +324 -0
- package/dist/db/storage/vortex.d.ts.map +1 -0
- package/dist/db/storage/vortex.js +365 -0
- package/dist/db/storage/vortex.js.map +1 -0
- package/dist/db/storage/warm.d.ts +306 -0
- package/dist/db/storage/warm.d.ts.map +1 -0
- package/dist/db/storage/warm.js +339 -0
- package/dist/db/storage/warm.js.map +1 -0
- package/dist/do/DigitalObject.d.ts +595 -0
- package/dist/do/DigitalObject.d.ts.map +1 -0
- package/dist/do/DigitalObject.js +971 -0
- package/dist/do/DigitalObject.js.map +1 -0
- package/dist/do/business/financial/accounting.d.ts +436 -0
- package/dist/do/business/financial/accounting.d.ts.map +1 -0
- package/dist/do/business/financial/accounting.js +476 -0
- package/dist/do/business/financial/accounting.js.map +1 -0
- package/dist/do/business/financial/index.d.ts +15 -0
- package/dist/do/business/financial/index.d.ts.map +1 -0
- package/dist/do/business/financial/index.js +20 -0
- package/dist/do/business/financial/index.js.map +1 -0
- package/dist/do/business/financial/metrics.d.ts +370 -0
- package/dist/do/business/financial/metrics.d.ts.map +1 -0
- package/dist/do/business/financial/metrics.js +376 -0
- package/dist/do/business/financial/metrics.js.map +1 -0
- package/dist/do/business/financial/payments.d.ts +397 -0
- package/dist/do/business/financial/payments.d.ts.map +1 -0
- package/dist/do/business/financial/payments.js +395 -0
- package/dist/do/business/financial/payments.js.map +1 -0
- package/dist/do/business/financial/reports.d.ts +284 -0
- package/dist/do/business/financial/reports.d.ts.map +1 -0
- package/dist/do/business/financial/reports.js +347 -0
- package/dist/do/business/financial/reports.js.map +1 -0
- package/dist/do/business/financial/stripe.d.ts +254 -0
- package/dist/do/business/financial/stripe.d.ts.map +1 -0
- package/dist/do/business/financial/stripe.js +261 -0
- package/dist/do/business/financial/stripe.js.map +1 -0
- package/dist/do/business/financial/subscriptions.d.ts +402 -0
- package/dist/do/business/financial/subscriptions.d.ts.map +1 -0
- package/dist/do/business/financial/subscriptions.js +349 -0
- package/dist/do/business/financial/subscriptions.js.map +1 -0
- package/dist/do/business/index.d.ts +9 -0
- package/dist/do/business/index.d.ts.map +1 -0
- package/dist/do/business/index.js +10 -0
- package/dist/do/business/index.js.map +1 -0
- package/dist/do/colo/followers.d.ts +194 -0
- package/dist/do/colo/followers.d.ts.map +1 -0
- package/dist/do/colo/followers.js +224 -0
- package/dist/do/colo/followers.js.map +1 -0
- package/dist/do/colo/fork.d.ts +103 -0
- package/dist/do/colo/fork.d.ts.map +1 -0
- package/dist/do/colo/fork.js +143 -0
- package/dist/do/colo/fork.js.map +1 -0
- package/dist/do/colo/index.d.ts +181 -0
- package/dist/do/colo/index.d.ts.map +1 -0
- package/dist/do/colo/index.js +145 -0
- package/dist/do/colo/index.js.map +1 -0
- package/dist/do/colo/info.d.ts +106 -0
- package/dist/do/colo/info.d.ts.map +1 -0
- package/dist/do/colo/info.js +196 -0
- package/dist/do/colo/info.js.map +1 -0
- package/dist/do/colo/migrate.d.ts +161 -0
- package/dist/do/colo/migrate.d.ts.map +1 -0
- package/dist/do/colo/migrate.js +190 -0
- package/dist/do/colo/migrate.js.map +1 -0
- package/dist/do/colo/routing.d.ts +182 -0
- package/dist/do/colo/routing.d.ts.map +1 -0
- package/dist/do/colo/routing.js +254 -0
- package/dist/do/colo/routing.js.map +1 -0
- package/dist/do/domains/dns.d.ts +269 -0
- package/dist/do/domains/dns.d.ts.map +1 -0
- package/dist/do/domains/dns.js +215 -0
- package/dist/do/domains/dns.js.map +1 -0
- package/dist/do/domains/index.d.ts +40 -0
- package/dist/do/domains/index.d.ts.map +1 -0
- package/dist/do/domains/index.js +61 -0
- package/dist/do/domains/index.js.map +1 -0
- package/dist/do/domains/routing.d.ts +263 -0
- package/dist/do/domains/routing.d.ts.map +1 -0
- package/dist/do/domains/routing.js +362 -0
- package/dist/do/domains/routing.js.map +1 -0
- package/dist/do/domains/ssl.d.ts +217 -0
- package/dist/do/domains/ssl.d.ts.map +1 -0
- package/dist/do/domains/ssl.js +231 -0
- package/dist/do/domains/ssl.js.map +1 -0
- package/dist/do/domains/subdomains.d.ts +207 -0
- package/dist/do/domains/subdomains.d.ts.map +1 -0
- package/dist/do/domains/subdomains.js +223 -0
- package/dist/do/domains/subdomains.js.map +1 -0
- package/dist/do/domains/tlds.d.ts +175 -0
- package/dist/do/domains/tlds.d.ts.map +1 -0
- package/dist/do/domains/tlds.js +188 -0
- package/dist/do/domains/tlds.js.map +1 -0
- package/dist/do/domains/validation.d.ts +164 -0
- package/dist/do/domains/validation.d.ts.map +1 -0
- package/dist/do/domains/validation.js +290 -0
- package/dist/do/domains/validation.js.map +1 -0
- package/dist/do/hibernation.d.ts +385 -0
- package/dist/do/hibernation.d.ts.map +1 -0
- package/dist/do/hibernation.js +518 -0
- package/dist/do/hibernation.js.map +1 -0
- package/dist/do/index.d.ts +19 -0
- package/dist/do/index.d.ts.map +1 -0
- package/dist/do/index.js +23 -0
- package/dist/do/index.js.map +1 -0
- package/dist/do/state.d.ts +336 -0
- package/dist/do/state.d.ts.map +1 -0
- package/dist/do/state.js +290 -0
- package/dist/do/state.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -0
- package/dist/rpc/client.d.ts +426 -0
- package/dist/rpc/client.d.ts.map +1 -0
- package/dist/rpc/client.js +826 -0
- package/dist/rpc/client.js.map +1 -0
- package/dist/rpc/index.d.ts +19 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +23 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/rpc/methods.d.ts +364 -0
- package/dist/rpc/methods.d.ts.map +1 -0
- package/dist/rpc/methods.js +557 -0
- package/dist/rpc/methods.js.map +1 -0
- package/dist/rpc/protocol.d.ts +310 -0
- package/dist/rpc/protocol.d.ts.map +1 -0
- package/dist/rpc/protocol.js +672 -0
- package/dist/rpc/protocol.js.map +1 -0
- package/dist/rpc/routes.d.ts +332 -0
- package/dist/rpc/routes.d.ts.map +1 -0
- package/dist/rpc/routes.js +633 -0
- package/dist/rpc/routes.js.map +1 -0
- package/dist/rpc/server.d.ts +380 -0
- package/dist/rpc/server.d.ts.map +1 -0
- package/dist/rpc/server.js +850 -0
- package/dist/rpc/server.js.map +1 -0
- package/dist/sdk/auth.d.ts +201 -0
- package/dist/sdk/auth.d.ts.map +1 -0
- package/dist/sdk/auth.js +343 -0
- package/dist/sdk/auth.js.map +1 -0
- package/dist/sdk/client.d.ts +123 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +403 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/index.d.ts +123 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +230 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/rpc.d.ts +275 -0
- package/dist/sdk/rpc.d.ts.map +1 -0
- package/dist/sdk/rpc.js +249 -0
- package/dist/sdk/rpc.js.map +1 -0
- package/dist/sdk/transport.d.ts +283 -0
- package/dist/sdk/transport.d.ts.map +1 -0
- package/dist/sdk/transport.js +661 -0
- package/dist/sdk/transport.js.map +1 -0
- package/dist/sdk/types.d.ts +265 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +27 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/types/ai.d.ts +533 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js +18 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/app.d.ts +371 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +151 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/business.d.ts +482 -0
- package/dist/types/business.d.ts.map +1 -0
- package/dist/types/business.js +60 -0
- package/dist/types/business.js.map +1 -0
- package/dist/types/cascade.d.ts +323 -0
- package/dist/types/cascade.d.ts.map +1 -0
- package/dist/types/cascade.js +82 -0
- package/dist/types/cascade.js.map +1 -0
- package/dist/types/collections.d.ts +704 -0
- package/dist/types/collections.d.ts.map +1 -0
- package/dist/types/collections.js +23 -0
- package/dist/types/collections.js.map +1 -0
- package/dist/types/colo.d.ts +171 -0
- package/dist/types/colo.d.ts.map +1 -0
- package/dist/types/colo.js +63 -0
- package/dist/types/colo.js.map +1 -0
- package/dist/types/communication.d.ts +595 -0
- package/dist/types/communication.d.ts.map +1 -0
- package/dist/types/communication.js +16 -0
- package/dist/types/communication.js.map +1 -0
- package/dist/types/content.d.ts +286 -0
- package/dist/types/content.d.ts.map +1 -0
- package/dist/types/content.js +8 -0
- package/dist/types/content.js.map +1 -0
- package/dist/types/context.d.ts +407 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +36 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/databases.d.ts +377 -0
- package/dist/types/databases.d.ts.map +1 -0
- package/dist/types/databases.js +14 -0
- package/dist/types/databases.js.map +1 -0
- package/dist/types/domains.d.ts +132 -0
- package/dist/types/domains.d.ts.map +1 -0
- package/dist/types/domains.js +107 -0
- package/dist/types/domains.js.map +1 -0
- package/dist/types/execution.d.ts +381 -0
- package/dist/types/execution.d.ts.map +1 -0
- package/dist/types/execution.js +40 -0
- package/dist/types/execution.js.map +1 -0
- package/dist/types/financial.d.ts +608 -0
- package/dist/types/financial.d.ts.map +1 -0
- package/dist/types/financial.js +12 -0
- package/dist/types/financial.js.map +1 -0
- package/dist/types/functions.d.ts +215 -0
- package/dist/types/functions.d.ts.map +1 -0
- package/dist/types/functions.js +15 -0
- package/dist/types/functions.js.map +1 -0
- package/dist/types/git.d.ts +299 -0
- package/dist/types/git.d.ts.map +1 -0
- package/dist/types/git.js +17 -0
- package/dist/types/git.js.map +1 -0
- package/dist/types/identity.d.ts +141 -0
- package/dist/types/identity.d.ts.map +1 -0
- package/dist/types/identity.js +54 -0
- package/dist/types/identity.js.map +1 -0
- package/dist/types/index.d.ts +40 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +65 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/integrations.d.ts +356 -0
- package/dist/types/integrations.d.ts.map +1 -0
- package/dist/types/integrations.js +19 -0
- package/dist/types/integrations.js.map +1 -0
- package/dist/types/mdxui.d.ts +1955 -0
- package/dist/types/mdxui.d.ts.map +1 -0
- package/dist/types/mdxui.js +751 -0
- package/dist/types/mdxui.js.map +1 -0
- package/dist/types/observability.d.ts +315 -0
- package/dist/types/observability.d.ts.map +1 -0
- package/dist/types/observability.js +13 -0
- package/dist/types/observability.js.map +1 -0
- package/dist/types/rpc.d.ts +339 -0
- package/dist/types/rpc.d.ts.map +1 -0
- package/dist/types/rpc.js +24 -0
- package/dist/types/rpc.js.map +1 -0
- package/dist/types/saas.d.ts +678 -0
- package/dist/types/saas.d.ts.map +1 -0
- package/dist/types/saas.js +59 -0
- package/dist/types/saas.js.map +1 -0
- package/dist/types/service.d.ts +676 -0
- package/dist/types/service.d.ts.map +1 -0
- package/dist/types/service.js +69 -0
- package/dist/types/service.js.map +1 -0
- package/dist/types/site.d.ts +317 -0
- package/dist/types/site.d.ts.map +1 -0
- package/dist/types/site.js +203 -0
- package/dist/types/site.js.map +1 -0
- package/dist/types/startup.d.ts +576 -0
- package/dist/types/startup.d.ts.map +1 -0
- package/dist/types/startup.js +59 -0
- package/dist/types/startup.js.map +1 -0
- package/dist/types/storage.d.ts +276 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +35 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/telephony.d.ts +458 -0
- package/dist/types/telephony.d.ts.map +1 -0
- package/dist/types/telephony.js +19 -0
- package/dist/types/telephony.js.map +1 -0
- package/dist/types/tenant.d.ts +708 -0
- package/dist/types/tenant.d.ts.map +1 -0
- package/dist/types/tenant.js +103 -0
- package/dist/types/tenant.js.map +1 -0
- package/dist/types/voice-ai.d.ts +459 -0
- package/dist/types/voice-ai.d.ts.map +1 -0
- package/dist/types/voice-ai.js +32 -0
- package/dist/types/voice-ai.js.map +1 -0
- 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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"}
|
package/dist/do/state.js
ADDED
|
@@ -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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"}
|