@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,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscription Management
|
|
3
|
+
*
|
|
4
|
+
* Handles recurring revenue including:
|
|
5
|
+
* - Subscription creation and lifecycle
|
|
6
|
+
* - Trials and promotions
|
|
7
|
+
* - Upgrades and downgrades
|
|
8
|
+
* - Cancellations and pauses
|
|
9
|
+
* - Invoice generation
|
|
10
|
+
*
|
|
11
|
+
* @module financial/subscriptions
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Subscription manager for Digital Objects
|
|
15
|
+
*
|
|
16
|
+
* Manages the full subscription lifecycle including creation,
|
|
17
|
+
* modifications, and cancellation with support for trials and promotions.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const subscriptions = new SubscriptionManager({
|
|
22
|
+
* secretKey: env.STRIPE_SECRET_KEY,
|
|
23
|
+
* defaultTrialDays: 14
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* // Create a subscription with trial
|
|
27
|
+
* const sub = await subscriptions.create(customerRef, 'price_pro_monthly', {
|
|
28
|
+
* trialPeriodDays: 14
|
|
29
|
+
* })
|
|
30
|
+
*
|
|
31
|
+
* // Upgrade to annual plan
|
|
32
|
+
* await subscriptions.update(sub.id, {
|
|
33
|
+
* priceId: 'price_pro_annual',
|
|
34
|
+
* prorationBehavior: 'create_prorations'
|
|
35
|
+
* })
|
|
36
|
+
*
|
|
37
|
+
* // Cancel at period end
|
|
38
|
+
* await subscriptions.cancel(sub.id, { atPeriodEnd: true })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export class SubscriptionManager {
|
|
42
|
+
config;
|
|
43
|
+
/**
|
|
44
|
+
* Create a new SubscriptionManager instance
|
|
45
|
+
*
|
|
46
|
+
* @param config - Subscription manager configuration
|
|
47
|
+
*/
|
|
48
|
+
constructor(config) {
|
|
49
|
+
this.config = config;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a new subscription
|
|
53
|
+
*
|
|
54
|
+
* @param customerRef - Reference to the customer DO
|
|
55
|
+
* @param priceId - Stripe price ID
|
|
56
|
+
* @param options - Additional subscription options
|
|
57
|
+
* @returns The created subscription
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Basic subscription
|
|
62
|
+
* const sub = await subscriptions.create(customerRef, 'price_pro_monthly')
|
|
63
|
+
*
|
|
64
|
+
* // Subscription with trial and quantity
|
|
65
|
+
* const sub = await subscriptions.create(customerRef, 'price_team_monthly', {
|
|
66
|
+
* trialPeriodDays: 14,
|
|
67
|
+
* quantity: 5 // 5 seats
|
|
68
|
+
* })
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
async create(customerRef, priceId, options) {
|
|
72
|
+
// TODO: Implement Stripe API call
|
|
73
|
+
throw new Error('Not implemented');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retrieve a subscription by ID
|
|
77
|
+
*
|
|
78
|
+
* @param subscriptionId - The subscription ID
|
|
79
|
+
* @returns The subscription or null if not found
|
|
80
|
+
*/
|
|
81
|
+
async get(subscriptionId) {
|
|
82
|
+
// TODO: Implement Stripe API call
|
|
83
|
+
throw new Error('Not implemented');
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Update a subscription
|
|
87
|
+
*
|
|
88
|
+
* Used for upgrades, downgrades, quantity changes, and other modifications.
|
|
89
|
+
*
|
|
90
|
+
* @param subscriptionId - The subscription ID
|
|
91
|
+
* @param options - Update options
|
|
92
|
+
* @returns The updated subscription
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* // Upgrade plan
|
|
97
|
+
* await subscriptions.update(subId, {
|
|
98
|
+
* priceId: 'price_enterprise_monthly',
|
|
99
|
+
* prorationBehavior: 'create_prorations'
|
|
100
|
+
* })
|
|
101
|
+
*
|
|
102
|
+
* // Change quantity
|
|
103
|
+
* await subscriptions.update(subId, { quantity: 10 })
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
async update(subscriptionId, options) {
|
|
107
|
+
// TODO: Implement Stripe API call
|
|
108
|
+
throw new Error('Not implemented');
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Cancel a subscription
|
|
112
|
+
*
|
|
113
|
+
* @param subscriptionId - The subscription ID
|
|
114
|
+
* @param options - Cancellation options
|
|
115
|
+
* @returns The canceled subscription
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Cancel at end of period (graceful)
|
|
120
|
+
* await subscriptions.cancel(subId, { atPeriodEnd: true })
|
|
121
|
+
*
|
|
122
|
+
* // Cancel immediately with feedback
|
|
123
|
+
* await subscriptions.cancel(subId, {
|
|
124
|
+
* atPeriodEnd: false,
|
|
125
|
+
* cancellationDetails: {
|
|
126
|
+
* feedback: 'too_expensive',
|
|
127
|
+
* comment: 'Budget constraints'
|
|
128
|
+
* }
|
|
129
|
+
* })
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
async cancel(subscriptionId, options) {
|
|
133
|
+
// TODO: Implement Stripe API call
|
|
134
|
+
throw new Error('Not implemented');
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Resume a canceled subscription
|
|
138
|
+
*
|
|
139
|
+
* Only works if subscription was canceled with atPeriodEnd: true
|
|
140
|
+
* and the period hasn't ended yet.
|
|
141
|
+
*
|
|
142
|
+
* @param subscriptionId - The subscription ID
|
|
143
|
+
* @returns The resumed subscription
|
|
144
|
+
*/
|
|
145
|
+
async resume(subscriptionId) {
|
|
146
|
+
// TODO: Implement Stripe API call
|
|
147
|
+
throw new Error('Not implemented');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Pause a subscription
|
|
151
|
+
*
|
|
152
|
+
* Pauses collection on the subscription. The subscription
|
|
153
|
+
* remains active but billing is suspended.
|
|
154
|
+
*
|
|
155
|
+
* @param subscriptionId - The subscription ID
|
|
156
|
+
* @param resumesAt - Timestamp when to resume billing
|
|
157
|
+
* @returns The paused subscription
|
|
158
|
+
*/
|
|
159
|
+
async pause(subscriptionId, resumesAt) {
|
|
160
|
+
// TODO: Implement Stripe API call
|
|
161
|
+
throw new Error('Not implemented');
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Unpause a subscription
|
|
165
|
+
*
|
|
166
|
+
* @param subscriptionId - The subscription ID
|
|
167
|
+
* @returns The resumed subscription
|
|
168
|
+
*/
|
|
169
|
+
async unpause(subscriptionId) {
|
|
170
|
+
// TODO: Implement Stripe API call
|
|
171
|
+
throw new Error('Not implemented');
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* List subscriptions with filtering
|
|
175
|
+
*
|
|
176
|
+
* @param options - Filter and pagination options
|
|
177
|
+
* @returns List of subscriptions
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* // Get all active subscriptions
|
|
182
|
+
* const subs = await subscriptions.list({ status: 'active' })
|
|
183
|
+
*
|
|
184
|
+
* // Get subscriptions for a customer
|
|
185
|
+
* const subs = await subscriptions.list({ customerRef })
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
async list(options) {
|
|
189
|
+
// TODO: Implement Stripe API call
|
|
190
|
+
throw new Error('Not implemented');
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get upcoming invoice for a subscription
|
|
194
|
+
*
|
|
195
|
+
* Preview what the next invoice will look like, including
|
|
196
|
+
* any pending proration items.
|
|
197
|
+
*
|
|
198
|
+
* @param subscriptionId - The subscription ID
|
|
199
|
+
* @param options - Preview options for simulating changes
|
|
200
|
+
* @returns The upcoming invoice preview
|
|
201
|
+
*/
|
|
202
|
+
async getUpcomingInvoice(subscriptionId, options) {
|
|
203
|
+
// TODO: Implement Stripe API call
|
|
204
|
+
throw new Error('Not implemented');
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create an invoice for a subscription
|
|
208
|
+
*
|
|
209
|
+
* Manually creates an invoice for pending invoice items.
|
|
210
|
+
*
|
|
211
|
+
* @param subscriptionId - The subscription ID
|
|
212
|
+
* @param options - Invoice options
|
|
213
|
+
* @returns The created invoice
|
|
214
|
+
*/
|
|
215
|
+
async createInvoice(subscriptionId, options) {
|
|
216
|
+
// TODO: Implement Stripe API call
|
|
217
|
+
throw new Error('Not implemented');
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Retrieve an invoice
|
|
221
|
+
*
|
|
222
|
+
* @param invoiceId - The invoice ID
|
|
223
|
+
* @returns The invoice or null if not found
|
|
224
|
+
*/
|
|
225
|
+
async getInvoice(invoiceId) {
|
|
226
|
+
// TODO: Implement Stripe API call
|
|
227
|
+
throw new Error('Not implemented');
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Pay an invoice
|
|
231
|
+
*
|
|
232
|
+
* @param invoiceId - The invoice ID
|
|
233
|
+
* @param paymentMethodId - Payment method to use
|
|
234
|
+
* @returns The paid invoice
|
|
235
|
+
*/
|
|
236
|
+
async payInvoice(invoiceId, paymentMethodId) {
|
|
237
|
+
// TODO: Implement Stripe API call
|
|
238
|
+
throw new Error('Not implemented');
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Void an invoice
|
|
242
|
+
*
|
|
243
|
+
* @param invoiceId - The invoice ID
|
|
244
|
+
* @returns The voided invoice
|
|
245
|
+
*/
|
|
246
|
+
async voidInvoice(invoiceId) {
|
|
247
|
+
// TODO: Implement Stripe API call
|
|
248
|
+
throw new Error('Not implemented');
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Mark an invoice as uncollectible
|
|
252
|
+
*
|
|
253
|
+
* @param invoiceId - The invoice ID
|
|
254
|
+
* @returns The updated invoice
|
|
255
|
+
*/
|
|
256
|
+
async markUncollectible(invoiceId) {
|
|
257
|
+
// TODO: Implement Stripe API call
|
|
258
|
+
throw new Error('Not implemented');
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* List invoices with filtering
|
|
262
|
+
*
|
|
263
|
+
* @param options - Filter and pagination options
|
|
264
|
+
* @returns List of invoices
|
|
265
|
+
*/
|
|
266
|
+
async listInvoices(options) {
|
|
267
|
+
// TODO: Implement Stripe API call
|
|
268
|
+
throw new Error('Not implemented');
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Send an invoice to the customer
|
|
272
|
+
*
|
|
273
|
+
* @param invoiceId - The invoice ID
|
|
274
|
+
* @returns The sent invoice
|
|
275
|
+
*/
|
|
276
|
+
async sendInvoice(invoiceId) {
|
|
277
|
+
// TODO: Implement Stripe API call
|
|
278
|
+
throw new Error('Not implemented');
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Add an invoice item
|
|
282
|
+
*
|
|
283
|
+
* @param customerRef - Customer reference
|
|
284
|
+
* @param options - Invoice item options
|
|
285
|
+
* @returns The created invoice line item
|
|
286
|
+
*/
|
|
287
|
+
async addInvoiceItem(customerRef, options) {
|
|
288
|
+
// TODO: Implement Stripe API call
|
|
289
|
+
throw new Error('Not implemented');
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Apply a coupon to a subscription
|
|
293
|
+
*
|
|
294
|
+
* @param subscriptionId - The subscription ID
|
|
295
|
+
* @param couponId - The coupon ID
|
|
296
|
+
* @returns The updated subscription
|
|
297
|
+
*/
|
|
298
|
+
async applyCoupon(subscriptionId, couponId) {
|
|
299
|
+
// TODO: Implement Stripe API call
|
|
300
|
+
throw new Error('Not implemented');
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Remove a coupon from a subscription
|
|
304
|
+
*
|
|
305
|
+
* @param subscriptionId - The subscription ID
|
|
306
|
+
* @returns The updated subscription
|
|
307
|
+
*/
|
|
308
|
+
async removeCoupon(subscriptionId) {
|
|
309
|
+
// TODO: Implement Stripe API call
|
|
310
|
+
throw new Error('Not implemented');
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Handle a Stripe webhook event for subscriptions
|
|
314
|
+
*
|
|
315
|
+
* @param payload - Raw webhook payload
|
|
316
|
+
* @param signature - Stripe-Signature header value
|
|
317
|
+
* @returns Processed event data
|
|
318
|
+
*/
|
|
319
|
+
async handleWebhook(payload, signature) {
|
|
320
|
+
// TODO: Implement webhook verification and handling
|
|
321
|
+
throw new Error('Not implemented');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Subscription error codes
|
|
326
|
+
*/
|
|
327
|
+
export const SubscriptionErrorCodes = {
|
|
328
|
+
SUBSCRIPTION_NOT_FOUND: 'SUBSCRIPTION_NOT_FOUND',
|
|
329
|
+
ALREADY_CANCELED: 'ALREADY_CANCELED',
|
|
330
|
+
CANNOT_RESUME: 'CANNOT_RESUME',
|
|
331
|
+
INVALID_PRICE: 'INVALID_PRICE',
|
|
332
|
+
INVOICE_NOT_FOUND: 'INVOICE_NOT_FOUND',
|
|
333
|
+
PAYMENT_FAILED: 'PAYMENT_FAILED',
|
|
334
|
+
CUSTOMER_NOT_FOUND: 'CUSTOMER_NOT_FOUND',
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* Subscription error
|
|
338
|
+
*/
|
|
339
|
+
export class SubscriptionError extends Error {
|
|
340
|
+
code;
|
|
341
|
+
details;
|
|
342
|
+
constructor(code, message, details) {
|
|
343
|
+
super(message);
|
|
344
|
+
this.code = code;
|
|
345
|
+
this.details = details;
|
|
346
|
+
this.name = 'SubscriptionError';
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../../do/business/financial/subscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../do/business/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../do/business/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uBAAuB;AACvB,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Follower Management
|
|
3
|
+
*
|
|
4
|
+
* Manage follower DOs for leader-follower replication topology.
|
|
5
|
+
* Followers receive replicated data from the leader for read performance.
|
|
6
|
+
*
|
|
7
|
+
* @module colo/followers
|
|
8
|
+
*/
|
|
9
|
+
import type { ReplicationConfig, ReplicationStatus } from '../../types/colo';
|
|
10
|
+
import type { DigitalObjectRef } from '../../types/identity';
|
|
11
|
+
/**
|
|
12
|
+
* Follower health check result
|
|
13
|
+
*/
|
|
14
|
+
export interface FollowerHealthCheck {
|
|
15
|
+
/** Reference to the follower */
|
|
16
|
+
ref: DigitalObjectRef;
|
|
17
|
+
/** Whether follower is reachable */
|
|
18
|
+
reachable: boolean;
|
|
19
|
+
/** Current replication lag in ms */
|
|
20
|
+
lag: number;
|
|
21
|
+
/** Last successful heartbeat timestamp */
|
|
22
|
+
lastHeartbeat: number;
|
|
23
|
+
/** Error message if unhealthy */
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Add a follower DO for replication
|
|
28
|
+
*
|
|
29
|
+
* Adds a DO as a follower in leader-follower replication topology.
|
|
30
|
+
* The follower will receive replicated data from this DO (the leader).
|
|
31
|
+
*
|
|
32
|
+
* @param state - The DurableObjectState instance (leader)
|
|
33
|
+
* @param ref - Reference to the follower DO
|
|
34
|
+
* @throws ColoError if follower already exists or cannot be reached
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Add a follower in Europe
|
|
39
|
+
* await addFollower(state, 'https://my-app.workers.dev/do/europe-replica')
|
|
40
|
+
*
|
|
41
|
+
* // Add multiple followers
|
|
42
|
+
* await addFollower(state, 'https://my-app.workers.dev/do/asia-replica')
|
|
43
|
+
* await addFollower(state, 'https://my-app.workers.dev/do/latam-replica')
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function addFollower(state: DurableObjectState, ref: DigitalObjectRef): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Remove a follower DO
|
|
49
|
+
*
|
|
50
|
+
* Removes a DO from the followers list. The follower will stop receiving
|
|
51
|
+
* replicated data but will retain its current state.
|
|
52
|
+
*
|
|
53
|
+
* @param state - The DurableObjectState instance (leader)
|
|
54
|
+
* @param ref - Reference to the follower DO to remove
|
|
55
|
+
* @throws ColoError if follower not found
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* await removeFollower(state, 'https://my-app.workers.dev/do/europe-replica')
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function removeFollower(state: DurableObjectState, ref: DigitalObjectRef): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* List all followers
|
|
65
|
+
*
|
|
66
|
+
* Returns the list of all follower DO references.
|
|
67
|
+
*
|
|
68
|
+
* @param state - The DurableObjectState instance (leader)
|
|
69
|
+
* @returns Array of follower references
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const followers = await listFollowers(state)
|
|
74
|
+
* // ['https://...', 'https://...']
|
|
75
|
+
*
|
|
76
|
+
* console.log(`${followers.length} followers configured`)
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function listFollowers(state: DurableObjectState): Promise<DigitalObjectRef[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Get replication status for all followers
|
|
82
|
+
*
|
|
83
|
+
* Returns detailed status information about the replication topology,
|
|
84
|
+
* including lag and health for each follower.
|
|
85
|
+
*
|
|
86
|
+
* @param state - The DurableObjectState instance
|
|
87
|
+
* @returns Full replication status
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const status = await getReplicationStatus(state)
|
|
92
|
+
* // {
|
|
93
|
+
* // mode: 'leader-follower',
|
|
94
|
+
* // role: 'leader',
|
|
95
|
+
* // followers: [
|
|
96
|
+
* // { ref: '...', colo: 'fra', lag: 45, healthy: true },
|
|
97
|
+
* // { ref: '...', colo: 'sin', lag: 120, healthy: true },
|
|
98
|
+
* // ],
|
|
99
|
+
* // lastSyncTimestamp: 1706000000000,
|
|
100
|
+
* // lag: 0,
|
|
101
|
+
* // healthy: true,
|
|
102
|
+
* // }
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export declare function getReplicationStatus(state: DurableObjectState): Promise<ReplicationStatus>;
|
|
106
|
+
/**
|
|
107
|
+
* Check health of a specific follower
|
|
108
|
+
*
|
|
109
|
+
* Performs a health check on a follower to verify reachability and measure lag.
|
|
110
|
+
*
|
|
111
|
+
* @param state - The DurableObjectState instance (leader)
|
|
112
|
+
* @param ref - Reference to the follower to check
|
|
113
|
+
* @returns Health check result
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* const health = await checkFollowerHealth(state, followerRef)
|
|
118
|
+
* if (!health.reachable) {
|
|
119
|
+
* console.warn(`Follower unreachable: ${health.error}`)
|
|
120
|
+
* } else if (health.lag > 1000) {
|
|
121
|
+
* console.warn(`Follower lag high: ${health.lag}ms`)
|
|
122
|
+
* }
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function checkFollowerHealth(state: DurableObjectState, ref: DigitalObjectRef): Promise<FollowerHealthCheck>;
|
|
126
|
+
/**
|
|
127
|
+
* Replicate a change to all followers
|
|
128
|
+
*
|
|
129
|
+
* Sends a change to all followers. Used internally when writes occur on the leader.
|
|
130
|
+
*
|
|
131
|
+
* @param state - The DurableObjectState instance (leader)
|
|
132
|
+
* @param change - The change to replicate
|
|
133
|
+
* @returns Results for each follower
|
|
134
|
+
*/
|
|
135
|
+
export declare function replicateToFollowers(state: DurableObjectState, change: ReplicationChange): Promise<Map<DigitalObjectRef, ReplicationResult>>;
|
|
136
|
+
/**
|
|
137
|
+
* A change to be replicated
|
|
138
|
+
*/
|
|
139
|
+
export interface ReplicationChange {
|
|
140
|
+
/** Sequence number for ordering */
|
|
141
|
+
sequence: number;
|
|
142
|
+
/** Timestamp of the change */
|
|
143
|
+
timestamp: number;
|
|
144
|
+
/** Type of change */
|
|
145
|
+
type: 'put' | 'delete' | 'transaction';
|
|
146
|
+
/** Storage key affected */
|
|
147
|
+
key?: string;
|
|
148
|
+
/** New value (for put) */
|
|
149
|
+
value?: unknown;
|
|
150
|
+
/** Multiple operations (for transaction) */
|
|
151
|
+
operations?: Array<{
|
|
152
|
+
type: 'put' | 'delete';
|
|
153
|
+
key: string;
|
|
154
|
+
value?: unknown;
|
|
155
|
+
}>;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Result of replicating to a single follower
|
|
159
|
+
*/
|
|
160
|
+
export interface ReplicationResult {
|
|
161
|
+
/** Whether replication succeeded */
|
|
162
|
+
success: boolean;
|
|
163
|
+
/** Replication latency in ms */
|
|
164
|
+
latency: number;
|
|
165
|
+
/** Error message if failed */
|
|
166
|
+
error?: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Configure replication settings
|
|
170
|
+
*
|
|
171
|
+
* Sets the replication configuration for this DO.
|
|
172
|
+
*
|
|
173
|
+
* @param state - The DurableObjectState instance
|
|
174
|
+
* @param config - Replication configuration
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* await configureReplication(state, {
|
|
179
|
+
* mode: 'leader-follower',
|
|
180
|
+
* maxLag: 1000,
|
|
181
|
+
* conflictResolution: { strategy: 'last-write-wins' },
|
|
182
|
+
* collections: ['users', 'orders'],
|
|
183
|
+
* })
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
export declare function configureReplication(state: DurableObjectState, config: Partial<ReplicationConfig>): Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Get the current replication configuration
|
|
189
|
+
*
|
|
190
|
+
* @param state - The DurableObjectState instance
|
|
191
|
+
* @returns Current replication config
|
|
192
|
+
*/
|
|
193
|
+
export declare function getReplicationConfig(state: DurableObjectState): Promise<ReplicationConfig>;
|
|
194
|
+
//# sourceMappingURL=followers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"followers.d.ts","sourceRoot":"","sources":["../../../do/colo/followers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAGlB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAG5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,GAAG,EAAE,gBAAgB,CAAA;IACrB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAA;IAClB,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAO7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAU5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAU9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAWnD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,aAAa,CAAA;IACtC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAO5B"}
|