@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,224 @@
|
|
|
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
|
+
/**
|
|
10
|
+
* Add a follower DO for replication
|
|
11
|
+
*
|
|
12
|
+
* Adds a DO as a follower in leader-follower replication topology.
|
|
13
|
+
* The follower will receive replicated data from this DO (the leader).
|
|
14
|
+
*
|
|
15
|
+
* @param state - The DurableObjectState instance (leader)
|
|
16
|
+
* @param ref - Reference to the follower DO
|
|
17
|
+
* @throws ColoError if follower already exists or cannot be reached
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Add a follower in Europe
|
|
22
|
+
* await addFollower(state, 'https://my-app.workers.dev/do/europe-replica')
|
|
23
|
+
*
|
|
24
|
+
* // Add multiple followers
|
|
25
|
+
* await addFollower(state, 'https://my-app.workers.dev/do/asia-replica')
|
|
26
|
+
* await addFollower(state, 'https://my-app.workers.dev/do/latam-replica')
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export async function addFollower(state, ref) {
|
|
30
|
+
// TODO: Implement addFollower
|
|
31
|
+
//
|
|
32
|
+
// 1. Get current followers list from storage
|
|
33
|
+
// 2. Check if follower already exists
|
|
34
|
+
// 3. Validate follower is reachable (health check)
|
|
35
|
+
// 4. Add to followers list
|
|
36
|
+
// 5. Store updated list
|
|
37
|
+
// 6. Send initial sync to follower
|
|
38
|
+
// 7. Emit FOLLOWER_ADDED event
|
|
39
|
+
//
|
|
40
|
+
throw new Error('Not implemented');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Remove a follower DO
|
|
44
|
+
*
|
|
45
|
+
* Removes a DO from the followers list. The follower will stop receiving
|
|
46
|
+
* replicated data but will retain its current state.
|
|
47
|
+
*
|
|
48
|
+
* @param state - The DurableObjectState instance (leader)
|
|
49
|
+
* @param ref - Reference to the follower DO to remove
|
|
50
|
+
* @throws ColoError if follower not found
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* await removeFollower(state, 'https://my-app.workers.dev/do/europe-replica')
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export async function removeFollower(state, ref) {
|
|
58
|
+
// TODO: Implement removeFollower
|
|
59
|
+
//
|
|
60
|
+
// 1. Get current followers list from storage
|
|
61
|
+
// 2. Find follower in list
|
|
62
|
+
// 3. Throw FOLLOWER_NOT_FOUND if not found
|
|
63
|
+
// 4. Remove from list
|
|
64
|
+
// 5. Store updated list
|
|
65
|
+
// 6. Notify follower of removal (optional)
|
|
66
|
+
// 7. Emit FOLLOWER_REMOVED event
|
|
67
|
+
//
|
|
68
|
+
throw new Error('Not implemented');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* List all followers
|
|
72
|
+
*
|
|
73
|
+
* Returns the list of all follower DO references.
|
|
74
|
+
*
|
|
75
|
+
* @param state - The DurableObjectState instance (leader)
|
|
76
|
+
* @returns Array of follower references
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const followers = await listFollowers(state)
|
|
81
|
+
* // ['https://...', 'https://...']
|
|
82
|
+
*
|
|
83
|
+
* console.log(`${followers.length} followers configured`)
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export async function listFollowers(state) {
|
|
87
|
+
// TODO: Implement listFollowers
|
|
88
|
+
//
|
|
89
|
+
// 1. Get followers list from storage
|
|
90
|
+
// 2. Return empty array if not set
|
|
91
|
+
//
|
|
92
|
+
throw new Error('Not implemented');
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get replication status for all followers
|
|
96
|
+
*
|
|
97
|
+
* Returns detailed status information about the replication topology,
|
|
98
|
+
* including lag and health for each follower.
|
|
99
|
+
*
|
|
100
|
+
* @param state - The DurableObjectState instance
|
|
101
|
+
* @returns Full replication status
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const status = await getReplicationStatus(state)
|
|
106
|
+
* // {
|
|
107
|
+
* // mode: 'leader-follower',
|
|
108
|
+
* // role: 'leader',
|
|
109
|
+
* // followers: [
|
|
110
|
+
* // { ref: '...', colo: 'fra', lag: 45, healthy: true },
|
|
111
|
+
* // { ref: '...', colo: 'sin', lag: 120, healthy: true },
|
|
112
|
+
* // ],
|
|
113
|
+
* // lastSyncTimestamp: 1706000000000,
|
|
114
|
+
* // lag: 0,
|
|
115
|
+
* // healthy: true,
|
|
116
|
+
* // }
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export async function getReplicationStatus(state) {
|
|
120
|
+
// TODO: Implement getReplicationStatus
|
|
121
|
+
//
|
|
122
|
+
// 1. Get replication config from storage
|
|
123
|
+
// 2. Get followers list
|
|
124
|
+
// 3. Check health of each follower
|
|
125
|
+
// 4. Calculate overall health
|
|
126
|
+
// 5. Return status object
|
|
127
|
+
//
|
|
128
|
+
throw new Error('Not implemented');
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check health of a specific follower
|
|
132
|
+
*
|
|
133
|
+
* Performs a health check on a follower to verify reachability and measure lag.
|
|
134
|
+
*
|
|
135
|
+
* @param state - The DurableObjectState instance (leader)
|
|
136
|
+
* @param ref - Reference to the follower to check
|
|
137
|
+
* @returns Health check result
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const health = await checkFollowerHealth(state, followerRef)
|
|
142
|
+
* if (!health.reachable) {
|
|
143
|
+
* console.warn(`Follower unreachable: ${health.error}`)
|
|
144
|
+
* } else if (health.lag > 1000) {
|
|
145
|
+
* console.warn(`Follower lag high: ${health.lag}ms`)
|
|
146
|
+
* }
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export async function checkFollowerHealth(state, ref) {
|
|
150
|
+
// TODO: Implement checkFollowerHealth
|
|
151
|
+
//
|
|
152
|
+
// 1. Send ping/heartbeat to follower
|
|
153
|
+
// 2. Measure round-trip time
|
|
154
|
+
// 3. Get follower's replication cursor
|
|
155
|
+
// 4. Calculate lag from leader timestamp
|
|
156
|
+
// 5. Return health check result
|
|
157
|
+
//
|
|
158
|
+
throw new Error('Not implemented');
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Replicate a change to all followers
|
|
162
|
+
*
|
|
163
|
+
* Sends a change to all followers. Used internally when writes occur on the leader.
|
|
164
|
+
*
|
|
165
|
+
* @param state - The DurableObjectState instance (leader)
|
|
166
|
+
* @param change - The change to replicate
|
|
167
|
+
* @returns Results for each follower
|
|
168
|
+
*/
|
|
169
|
+
export async function replicateToFollowers(state, change) {
|
|
170
|
+
// TODO: Implement replicateToFollowers
|
|
171
|
+
//
|
|
172
|
+
// 1. Get followers list
|
|
173
|
+
// 2. Send change to each follower in parallel
|
|
174
|
+
// 3. Track success/failure for each
|
|
175
|
+
// 4. Update follower status based on results
|
|
176
|
+
// 5. Emit REPLICATION_LAG_HIGH if any followers are behind
|
|
177
|
+
// 6. Return results map
|
|
178
|
+
//
|
|
179
|
+
throw new Error('Not implemented');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Configure replication settings
|
|
183
|
+
*
|
|
184
|
+
* Sets the replication configuration for this DO.
|
|
185
|
+
*
|
|
186
|
+
* @param state - The DurableObjectState instance
|
|
187
|
+
* @param config - Replication configuration
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* await configureReplication(state, {
|
|
192
|
+
* mode: 'leader-follower',
|
|
193
|
+
* maxLag: 1000,
|
|
194
|
+
* conflictResolution: { strategy: 'last-write-wins' },
|
|
195
|
+
* collections: ['users', 'orders'],
|
|
196
|
+
* })
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export async function configureReplication(state, config) {
|
|
200
|
+
// TODO: Implement configureReplication
|
|
201
|
+
//
|
|
202
|
+
// 1. Get existing config
|
|
203
|
+
// 2. Merge with new config
|
|
204
|
+
// 3. Validate config (e.g., valid mode, collections exist)
|
|
205
|
+
// 4. Store updated config
|
|
206
|
+
// 5. Apply new settings (e.g., update lag monitoring)
|
|
207
|
+
//
|
|
208
|
+
throw new Error('Not implemented');
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get the current replication configuration
|
|
212
|
+
*
|
|
213
|
+
* @param state - The DurableObjectState instance
|
|
214
|
+
* @returns Current replication config
|
|
215
|
+
*/
|
|
216
|
+
export async function getReplicationConfig(state) {
|
|
217
|
+
// TODO: Implement getReplicationConfig
|
|
218
|
+
//
|
|
219
|
+
// 1. Get config from storage
|
|
220
|
+
// 2. Return default config if not set
|
|
221
|
+
//
|
|
222
|
+
throw new Error('Not implemented');
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=followers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"followers.js","sourceRoot":"","sources":["../../../do/colo/followers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2BH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAyB,EACzB,GAAqB;IAErB,8BAA8B;IAC9B,EAAE;IACF,6CAA6C;IAC7C,sCAAsC;IACtC,mDAAmD;IACnD,2BAA2B;IAC3B,wBAAwB;IACxB,mCAAmC;IACnC,+BAA+B;IAC/B,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAyB,EACzB,GAAqB;IAErB,iCAAiC;IACjC,EAAE;IACF,6CAA6C;IAC7C,2BAA2B;IAC3B,2CAA2C;IAC3C,sBAAsB;IACtB,wBAAwB;IACxB,2CAA2C;IAC3C,iCAAiC;IACjC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAyB;IAEzB,gCAAgC;IAChC,EAAE;IACF,qCAAqC;IACrC,mCAAmC;IACnC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyB;IAEzB,uCAAuC;IACvC,EAAE;IACF,yCAAyC;IACzC,wBAAwB;IACxB,mCAAmC;IACnC,8BAA8B;IAC9B,0BAA0B;IAC1B,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAyB,EACzB,GAAqB;IAErB,sCAAsC;IACtC,EAAE;IACF,qCAAqC;IACrC,6BAA6B;IAC7B,uCAAuC;IACvC,yCAAyC;IACzC,gCAAgC;IAChC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyB,EACzB,MAAyB;IAEzB,uCAAuC;IACvC,EAAE;IACF,wBAAwB;IACxB,8CAA8C;IAC9C,oCAAoC;IACpC,6CAA6C;IAC7C,2DAA2D;IAC3D,wBAAwB;IACxB,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAgCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyB,EACzB,MAAkC;IAElC,uCAAuC;IACvC,EAAE;IACF,yBAAyB;IACzB,2BAA2B;IAC3B,2DAA2D;IAC3D,0BAA0B;IAC1B,sDAAsD;IACtD,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyB;IAEzB,uCAAuC;IACvC,EAAE;IACF,6BAA6B;IAC7B,sCAAsC;IACtC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fork Operations
|
|
3
|
+
*
|
|
4
|
+
* Create replicas of Digital Objects in other colos for low-latency reads
|
|
5
|
+
* and geographic distribution.
|
|
6
|
+
*
|
|
7
|
+
* @module colo/fork
|
|
8
|
+
*/
|
|
9
|
+
import type { ForkOptions } from '../../types/colo';
|
|
10
|
+
import type { DigitalObjectRef } from '../../types/identity';
|
|
11
|
+
/**
|
|
12
|
+
* Fork options with defaults applied
|
|
13
|
+
*/
|
|
14
|
+
export interface ResolvedForkOptions {
|
|
15
|
+
/** Name for the forked DO (generated if not provided) */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Whether to sync data immediately (default: true) */
|
|
18
|
+
syncData: boolean;
|
|
19
|
+
/** Whether to set up continuous replication (default: false) */
|
|
20
|
+
continuous: boolean;
|
|
21
|
+
/** Replication lag tolerance in ms (default: 1000) */
|
|
22
|
+
maxLag: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Result of a fork operation
|
|
26
|
+
*/
|
|
27
|
+
export interface ForkResult {
|
|
28
|
+
/** Reference to the forked DO */
|
|
29
|
+
ref: DigitalObjectRef;
|
|
30
|
+
/** Target colo where fork was created */
|
|
31
|
+
colo: string;
|
|
32
|
+
/** Whether initial data sync completed */
|
|
33
|
+
synced: boolean;
|
|
34
|
+
/** Whether continuous replication is active */
|
|
35
|
+
replicating: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Fork this DO to another colo
|
|
39
|
+
*
|
|
40
|
+
* Creates a replica of the current DO in the target colo. The fork can be
|
|
41
|
+
* a one-time snapshot or set up for continuous replication.
|
|
42
|
+
*
|
|
43
|
+
* For leader-follower replication:
|
|
44
|
+
* - The current DO becomes (or remains) the leader
|
|
45
|
+
* - The forked DO becomes a follower
|
|
46
|
+
* - Writes go to the leader, reads can go to any replica
|
|
47
|
+
*
|
|
48
|
+
* @param state - The DurableObjectState instance
|
|
49
|
+
* @param env - Environment bindings for creating new DOs
|
|
50
|
+
* @param targetColo - IATA code of target colo (e.g., 'fra', 'nrt')
|
|
51
|
+
* @param options - Fork configuration options
|
|
52
|
+
* @returns Reference to the newly created fork
|
|
53
|
+
* @throws ColoError if target colo is invalid or fork fails
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // Simple fork with data sync
|
|
58
|
+
* const replica = await forkDO(state, env, 'fra')
|
|
59
|
+
*
|
|
60
|
+
* // Fork with continuous replication
|
|
61
|
+
* const liveReplica = await forkDO(state, env, 'sin', {
|
|
62
|
+
* continuous: true,
|
|
63
|
+
* maxLag: 500,
|
|
64
|
+
* })
|
|
65
|
+
*
|
|
66
|
+
* // Fork with custom name
|
|
67
|
+
* const namedReplica = await forkDO(state, env, 'nrt', {
|
|
68
|
+
* name: 'tokyo-replica',
|
|
69
|
+
* syncData: true,
|
|
70
|
+
* })
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function forkDO(state: DurableObjectState, env: unknown, targetColo: string, options?: ForkOptions): Promise<DigitalObjectRef>;
|
|
74
|
+
/**
|
|
75
|
+
* Apply default values to fork options
|
|
76
|
+
*
|
|
77
|
+
* @param options - Partial options from caller
|
|
78
|
+
* @returns Fully resolved options with defaults
|
|
79
|
+
*/
|
|
80
|
+
export declare function resolveForkOptions(options?: ForkOptions): ResolvedForkOptions;
|
|
81
|
+
/**
|
|
82
|
+
* Sync current state to a fork
|
|
83
|
+
*
|
|
84
|
+
* Transfers all storage entries from the current DO to the fork.
|
|
85
|
+
* Used for initial data sync during fork creation.
|
|
86
|
+
*
|
|
87
|
+
* @param state - Current DO state
|
|
88
|
+
* @param forkRef - Reference to the fork DO
|
|
89
|
+
* @returns Number of entries synced
|
|
90
|
+
*/
|
|
91
|
+
export declare function syncStateToFork(state: DurableObjectState, forkRef: DigitalObjectRef): Promise<number>;
|
|
92
|
+
/**
|
|
93
|
+
* Set up continuous replication to a fork
|
|
94
|
+
*
|
|
95
|
+
* Configures the fork as a follower and enables ongoing replication
|
|
96
|
+
* of changes from this DO.
|
|
97
|
+
*
|
|
98
|
+
* @param state - Current DO state
|
|
99
|
+
* @param forkRef - Reference to the fork DO
|
|
100
|
+
* @param maxLag - Maximum allowed replication lag in ms
|
|
101
|
+
*/
|
|
102
|
+
export declare function setupContinuousReplication(state: DurableObjectState, forkRef: DigitalObjectRef, maxLag: number): Promise<void>;
|
|
103
|
+
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../do/colo/fork.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAA;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAI5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAA;IACjB,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAA;IACnB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,GAAG,EAAE,gBAAgB,CAAA;IACrB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAA;IACf,+CAA+C;IAC/C,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAgC3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAO7E;AAaD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fork Operations
|
|
3
|
+
*
|
|
4
|
+
* Create replicas of Digital Objects in other colos for low-latency reads
|
|
5
|
+
* and geographic distribution.
|
|
6
|
+
*
|
|
7
|
+
* @module colo/fork
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Fork this DO to another colo
|
|
11
|
+
*
|
|
12
|
+
* Creates a replica of the current DO in the target colo. The fork can be
|
|
13
|
+
* a one-time snapshot or set up for continuous replication.
|
|
14
|
+
*
|
|
15
|
+
* For leader-follower replication:
|
|
16
|
+
* - The current DO becomes (or remains) the leader
|
|
17
|
+
* - The forked DO becomes a follower
|
|
18
|
+
* - Writes go to the leader, reads can go to any replica
|
|
19
|
+
*
|
|
20
|
+
* @param state - The DurableObjectState instance
|
|
21
|
+
* @param env - Environment bindings for creating new DOs
|
|
22
|
+
* @param targetColo - IATA code of target colo (e.g., 'fra', 'nrt')
|
|
23
|
+
* @param options - Fork configuration options
|
|
24
|
+
* @returns Reference to the newly created fork
|
|
25
|
+
* @throws ColoError if target colo is invalid or fork fails
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* // Simple fork with data sync
|
|
30
|
+
* const replica = await forkDO(state, env, 'fra')
|
|
31
|
+
*
|
|
32
|
+
* // Fork with continuous replication
|
|
33
|
+
* const liveReplica = await forkDO(state, env, 'sin', {
|
|
34
|
+
* continuous: true,
|
|
35
|
+
* maxLag: 500,
|
|
36
|
+
* })
|
|
37
|
+
*
|
|
38
|
+
* // Fork with custom name
|
|
39
|
+
* const namedReplica = await forkDO(state, env, 'nrt', {
|
|
40
|
+
* name: 'tokyo-replica',
|
|
41
|
+
* syncData: true,
|
|
42
|
+
* })
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export async function forkDO(state, env, targetColo, options) {
|
|
46
|
+
// TODO: Implement forkDO
|
|
47
|
+
//
|
|
48
|
+
// 1. Validate target colo
|
|
49
|
+
// - Use isValidColo() to check
|
|
50
|
+
// - Throw INVALID_COLO error if invalid
|
|
51
|
+
//
|
|
52
|
+
// 2. Resolve options with defaults
|
|
53
|
+
// - name: generate unique name if not provided
|
|
54
|
+
// - syncData: default true
|
|
55
|
+
// - continuous: default false
|
|
56
|
+
// - maxLag: default 1000ms
|
|
57
|
+
//
|
|
58
|
+
// 3. Emit FORK_STARTED event
|
|
59
|
+
//
|
|
60
|
+
// 4. Create new DO in target colo
|
|
61
|
+
// - Use env.DO_BINDING.newUniqueId({ locationHint: targetColo })
|
|
62
|
+
// - Get stub and initialize
|
|
63
|
+
//
|
|
64
|
+
// 5. If syncData, transfer current state to fork
|
|
65
|
+
// - Get all storage entries
|
|
66
|
+
// - Send to fork via RPC
|
|
67
|
+
//
|
|
68
|
+
// 6. If continuous, set up replication
|
|
69
|
+
// - Add fork to followers list
|
|
70
|
+
// - Configure replication settings
|
|
71
|
+
//
|
|
72
|
+
// 7. Emit FORK_COMPLETED event
|
|
73
|
+
//
|
|
74
|
+
// 8. Return fork reference
|
|
75
|
+
//
|
|
76
|
+
throw new Error('Not implemented');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Apply default values to fork options
|
|
80
|
+
*
|
|
81
|
+
* @param options - Partial options from caller
|
|
82
|
+
* @returns Fully resolved options with defaults
|
|
83
|
+
*/
|
|
84
|
+
export function resolveForkOptions(options) {
|
|
85
|
+
return {
|
|
86
|
+
name: options?.name ?? generateForkName(),
|
|
87
|
+
syncData: options?.syncData ?? true,
|
|
88
|
+
continuous: options?.continuous ?? false,
|
|
89
|
+
maxLag: options?.maxLag ?? 1000,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Generate a unique name for a fork
|
|
94
|
+
*
|
|
95
|
+
* @returns Generated fork name
|
|
96
|
+
*/
|
|
97
|
+
function generateForkName() {
|
|
98
|
+
const timestamp = Date.now().toString(36);
|
|
99
|
+
const random = Math.random().toString(36).substring(2, 8);
|
|
100
|
+
return `fork-${timestamp}-${random}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Sync current state to a fork
|
|
104
|
+
*
|
|
105
|
+
* Transfers all storage entries from the current DO to the fork.
|
|
106
|
+
* Used for initial data sync during fork creation.
|
|
107
|
+
*
|
|
108
|
+
* @param state - Current DO state
|
|
109
|
+
* @param forkRef - Reference to the fork DO
|
|
110
|
+
* @returns Number of entries synced
|
|
111
|
+
*/
|
|
112
|
+
export async function syncStateToFork(state, forkRef) {
|
|
113
|
+
// TODO: Implement syncStateToFork
|
|
114
|
+
//
|
|
115
|
+
// 1. List all storage entries
|
|
116
|
+
// 2. Batch entries for efficient transfer
|
|
117
|
+
// 3. Send batches to fork via RPC
|
|
118
|
+
// 4. Return count of synced entries
|
|
119
|
+
//
|
|
120
|
+
throw new Error('Not implemented');
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Set up continuous replication to a fork
|
|
124
|
+
*
|
|
125
|
+
* Configures the fork as a follower and enables ongoing replication
|
|
126
|
+
* of changes from this DO.
|
|
127
|
+
*
|
|
128
|
+
* @param state - Current DO state
|
|
129
|
+
* @param forkRef - Reference to the fork DO
|
|
130
|
+
* @param maxLag - Maximum allowed replication lag in ms
|
|
131
|
+
*/
|
|
132
|
+
export async function setupContinuousReplication(state, forkRef, maxLag) {
|
|
133
|
+
// TODO: Implement setupContinuousReplication
|
|
134
|
+
//
|
|
135
|
+
// 1. Get current replication config from storage
|
|
136
|
+
// 2. Add fork to followers list
|
|
137
|
+
// 3. Update config with maxLag
|
|
138
|
+
// 4. Store updated config
|
|
139
|
+
// 5. Send initial heartbeat to fork
|
|
140
|
+
//
|
|
141
|
+
throw new Error('Not implemented');
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=fork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../do/colo/fork.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmCH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAyB,EACzB,GAAY,EACZ,UAAkB,EAClB,OAAqB;IAErB,yBAAyB;IACzB,EAAE;IACF,0BAA0B;IAC1B,kCAAkC;IAClC,2CAA2C;IAC3C,EAAE;IACF,mCAAmC;IACnC,kDAAkD;IAClD,8BAA8B;IAC9B,iCAAiC;IACjC,8BAA8B;IAC9B,EAAE;IACF,6BAA6B;IAC7B,EAAE;IACF,kCAAkC;IAClC,oEAAoE;IACpE,+BAA+B;IAC/B,EAAE;IACF,iDAAiD;IACjD,+BAA+B;IAC/B,4BAA4B;IAC5B,EAAE;IACF,uCAAuC;IACvC,kCAAkC;IAClC,sCAAsC;IACtC,EAAE;IACF,+BAA+B;IAC/B,EAAE;IACF,2BAA2B;IAC3B,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,OAAO;QACL,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,gBAAgB,EAAE;QACzC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI;QACnC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;QACxC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;KAChC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,OAAO,QAAQ,SAAS,IAAI,MAAM,EAAE,CAAA;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAyB,EACzB,OAAyB;IAEzB,kCAAkC;IAClC,EAAE;IACF,8BAA8B;IAC9B,0CAA0C;IAC1C,kCAAkC;IAClC,oCAAoC;IACpC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAyB,EACzB,OAAyB,EACzB,MAAc;IAEd,6CAA6C;IAC7C,EAAE;IACF,iDAAiD;IACjD,gCAAgC;IAChC,+BAA+B;IAC/B,0BAA0B;IAC1B,oCAAoC;IACpC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Colo Awareness Layer
|
|
3
|
+
*
|
|
4
|
+
* Geographic intelligence for Digital Objects. Know where your DOs live,
|
|
5
|
+
* move them where you need them.
|
|
6
|
+
*
|
|
7
|
+
* @module colo
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { createColoOperations } from '@do/core/colo'
|
|
12
|
+
*
|
|
13
|
+
* // Create colo operations for a DO instance
|
|
14
|
+
* const colo = createColoOperations(doInstance)
|
|
15
|
+
*
|
|
16
|
+
* // Get current colo info
|
|
17
|
+
* const info = await colo.getInfo()
|
|
18
|
+
* // { colo: 'iad', region: 'enam', city: 'Ashburn', ... }
|
|
19
|
+
*
|
|
20
|
+
* // Fork to another region
|
|
21
|
+
* const replica = await colo.fork('fra', { continuous: true })
|
|
22
|
+
*
|
|
23
|
+
* // Migrate when usage patterns change
|
|
24
|
+
* await colo.migrate('nrt', { strategy: 'graceful' })
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import type { ColoOperations } from '../../types/colo';
|
|
28
|
+
export { getColoInfo, getColoInfoByColo, listColos } from './info';
|
|
29
|
+
export { forkDO } from './fork';
|
|
30
|
+
export { migrateDO } from './migrate';
|
|
31
|
+
export { addFollower, removeFollower, listFollowers } from './followers';
|
|
32
|
+
export { findNearestColo, pingColo } from './routing';
|
|
33
|
+
export type { ColoInfo, ColoOperations, ForkOptions, MigrateOptions, Region, ReplicationConfig, ReplicationStatus, ReplicationMode, ReplicationPeerStatus, LocationHint, JurisdictionConfig, RegionInfo, ConflictResolution, } from '../../types/colo';
|
|
34
|
+
/**
|
|
35
|
+
* Storage key prefixes for colo-related data
|
|
36
|
+
*/
|
|
37
|
+
export declare const COLO_STORAGE_KEYS: {
|
|
38
|
+
/** Current colo information */
|
|
39
|
+
readonly COLO_INFO: "colo:info";
|
|
40
|
+
/** List of follower DO references */
|
|
41
|
+
readonly FOLLOWERS: "colo:followers";
|
|
42
|
+
/** Replication configuration */
|
|
43
|
+
readonly REPLICATION_CONFIG: "colo:replication:config";
|
|
44
|
+
/** Current replication status */
|
|
45
|
+
readonly REPLICATION_STATUS: "colo:replication:status";
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Colo-related event names following NS.Object.event pattern
|
|
49
|
+
*/
|
|
50
|
+
export declare const COLO_EVENTS: {
|
|
51
|
+
/** Emitted when fork operation starts */
|
|
52
|
+
readonly FORK_STARTED: "Colo.Fork.started";
|
|
53
|
+
/** Emitted when fork operation completes successfully */
|
|
54
|
+
readonly FORK_COMPLETED: "Colo.Fork.completed";
|
|
55
|
+
/** Emitted when fork operation fails */
|
|
56
|
+
readonly FORK_FAILED: "Colo.Fork.failed";
|
|
57
|
+
/** Emitted when migration starts */
|
|
58
|
+
readonly MIGRATION_STARTED: "Colo.Migration.started";
|
|
59
|
+
/** Emitted when migration completes successfully */
|
|
60
|
+
readonly MIGRATION_COMPLETED: "Colo.Migration.completed";
|
|
61
|
+
/** Emitted when migration fails */
|
|
62
|
+
readonly MIGRATION_FAILED: "Colo.Migration.failed";
|
|
63
|
+
/** Emitted when a follower is added */
|
|
64
|
+
readonly FOLLOWER_ADDED: "Colo.Follower.added";
|
|
65
|
+
/** Emitted when a follower is removed */
|
|
66
|
+
readonly FOLLOWER_REMOVED: "Colo.Follower.removed";
|
|
67
|
+
/** Emitted when replication lag exceeds threshold */
|
|
68
|
+
readonly REPLICATION_LAG_HIGH: "Colo.Replication.lagHigh";
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Error codes for colo operations
|
|
72
|
+
*/
|
|
73
|
+
export declare const COLO_ERRORS: {
|
|
74
|
+
/** Invalid colo code provided */
|
|
75
|
+
readonly INVALID_COLO: "INVALID_COLO";
|
|
76
|
+
/** Migration operation failed */
|
|
77
|
+
readonly MIGRATION_FAILED: "MIGRATION_FAILED";
|
|
78
|
+
/** Fork operation failed */
|
|
79
|
+
readonly FORK_FAILED: "FORK_FAILED";
|
|
80
|
+
/** Follower not found in list */
|
|
81
|
+
readonly FOLLOWER_NOT_FOUND: "FOLLOWER_NOT_FOUND";
|
|
82
|
+
/** Operation violates jurisdiction constraints */
|
|
83
|
+
readonly JURISDICTION_VIOLATION: "JURISDICTION_VIOLATION";
|
|
84
|
+
/** Replication error */
|
|
85
|
+
readonly REPLICATION_FAILED: "REPLICATION_FAILED";
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Error class for colo operations
|
|
89
|
+
*/
|
|
90
|
+
export declare class ColoError extends Error {
|
|
91
|
+
readonly code: keyof typeof COLO_ERRORS;
|
|
92
|
+
/**
|
|
93
|
+
* Create a new ColoError
|
|
94
|
+
*
|
|
95
|
+
* @param message - Error message
|
|
96
|
+
* @param code - Error code from COLO_ERRORS
|
|
97
|
+
*/
|
|
98
|
+
constructor(message: string, code: keyof typeof COLO_ERRORS);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create colo operations interface for a Digital Object instance
|
|
102
|
+
*
|
|
103
|
+
* Factory function that wraps a DO instance with all colo-related operations.
|
|
104
|
+
* Returns an object implementing the ColoOperations interface.
|
|
105
|
+
*
|
|
106
|
+
* @param state - The DurableObjectState instance
|
|
107
|
+
* @param env - The environment bindings (for accessing other DOs)
|
|
108
|
+
* @returns ColoOperations interface with all colo methods
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* import { createColoOperations } from '@do/core/colo'
|
|
113
|
+
*
|
|
114
|
+
* class MyDO {
|
|
115
|
+
* private colo: ColoOperations
|
|
116
|
+
*
|
|
117
|
+
* constructor(state: DurableObjectState, env: Env) {
|
|
118
|
+
* this.colo = createColoOperations(state, env)
|
|
119
|
+
* }
|
|
120
|
+
*
|
|
121
|
+
* async fetch(request: Request) {
|
|
122
|
+
* const info = await this.colo.getInfo()
|
|
123
|
+
* return Response.json(info)
|
|
124
|
+
* }
|
|
125
|
+
* }
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function createColoOperations(state: DurableObjectState, env: unknown): ColoOperations;
|
|
129
|
+
/**
|
|
130
|
+
* Default export for convenience
|
|
131
|
+
*/
|
|
132
|
+
declare const _default: {
|
|
133
|
+
createColoOperations: typeof createColoOperations;
|
|
134
|
+
COLO_STORAGE_KEYS: {
|
|
135
|
+
/** Current colo information */
|
|
136
|
+
readonly COLO_INFO: "colo:info";
|
|
137
|
+
/** List of follower DO references */
|
|
138
|
+
readonly FOLLOWERS: "colo:followers";
|
|
139
|
+
/** Replication configuration */
|
|
140
|
+
readonly REPLICATION_CONFIG: "colo:replication:config";
|
|
141
|
+
/** Current replication status */
|
|
142
|
+
readonly REPLICATION_STATUS: "colo:replication:status";
|
|
143
|
+
};
|
|
144
|
+
COLO_EVENTS: {
|
|
145
|
+
/** Emitted when fork operation starts */
|
|
146
|
+
readonly FORK_STARTED: "Colo.Fork.started";
|
|
147
|
+
/** Emitted when fork operation completes successfully */
|
|
148
|
+
readonly FORK_COMPLETED: "Colo.Fork.completed";
|
|
149
|
+
/** Emitted when fork operation fails */
|
|
150
|
+
readonly FORK_FAILED: "Colo.Fork.failed";
|
|
151
|
+
/** Emitted when migration starts */
|
|
152
|
+
readonly MIGRATION_STARTED: "Colo.Migration.started";
|
|
153
|
+
/** Emitted when migration completes successfully */
|
|
154
|
+
readonly MIGRATION_COMPLETED: "Colo.Migration.completed";
|
|
155
|
+
/** Emitted when migration fails */
|
|
156
|
+
readonly MIGRATION_FAILED: "Colo.Migration.failed";
|
|
157
|
+
/** Emitted when a follower is added */
|
|
158
|
+
readonly FOLLOWER_ADDED: "Colo.Follower.added";
|
|
159
|
+
/** Emitted when a follower is removed */
|
|
160
|
+
readonly FOLLOWER_REMOVED: "Colo.Follower.removed";
|
|
161
|
+
/** Emitted when replication lag exceeds threshold */
|
|
162
|
+
readonly REPLICATION_LAG_HIGH: "Colo.Replication.lagHigh";
|
|
163
|
+
};
|
|
164
|
+
COLO_ERRORS: {
|
|
165
|
+
/** Invalid colo code provided */
|
|
166
|
+
readonly INVALID_COLO: "INVALID_COLO";
|
|
167
|
+
/** Migration operation failed */
|
|
168
|
+
readonly MIGRATION_FAILED: "MIGRATION_FAILED";
|
|
169
|
+
/** Fork operation failed */
|
|
170
|
+
readonly FORK_FAILED: "FORK_FAILED";
|
|
171
|
+
/** Follower not found in list */
|
|
172
|
+
readonly FOLLOWER_NOT_FOUND: "FOLLOWER_NOT_FOUND";
|
|
173
|
+
/** Operation violates jurisdiction constraints */
|
|
174
|
+
readonly JURISDICTION_VIOLATION: "JURISDICTION_VIOLATION";
|
|
175
|
+
/** Replication error */
|
|
176
|
+
readonly REPLICATION_FAILED: "REPLICATION_FAILED";
|
|
177
|
+
};
|
|
178
|
+
ColoError: typeof ColoError;
|
|
179
|
+
};
|
|
180
|
+
export default _default;
|
|
181
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../do/colo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGrD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,+BAA+B;;IAE/B,qCAAqC;;IAErC,gCAAgC;;IAEhC,iCAAiC;;CAEzB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,yCAAyC;;IAEzC,yDAAyD;;IAEzD,wCAAwC;;IAExC,oCAAoC;;IAEpC,oDAAoD;;IAEpD,mCAAmC;;IAEnC,uCAAuC;;IAEvC,yCAAyC;;IAEzC,qDAAqD;;CAE7C,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,iCAAiC;;IAEjC,iCAAiC;;IAEjC,4BAA4B;;IAE5B,iCAAiC;;IAEjC,kDAAkD;;IAElD,wBAAwB;;CAEhB,CAAA;AAEV;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAShB,IAAI,EAAE,MAAM,OAAO,WAAW;IARhD;;;;;OAKG;gBAED,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,OAAO,WAAW;CAKjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,OAAO,GACX,cAAc,CAGhB;AAED;;GAEG;;;;QA7GD,+BAA+B;;QAE/B,qCAAqC;;QAErC,gCAAgC;;QAEhC,iCAAiC;;;;QAQjC,yCAAyC;;QAEzC,yDAAyD;;QAEzD,wCAAwC;;QAExC,oCAAoC;;QAEpC,oDAAoD;;QAEpD,mCAAmC;;QAEnC,uCAAuC;;QAEvC,yCAAyC;;QAEzC,qDAAqD;;;;QAQrD,iCAAiC;;QAEjC,iCAAiC;;QAEjC,4BAA4B;;QAE5B,iCAAiC;;QAEjC,kDAAkD;;QAElD,wBAAwB;;;;;AA8D1B,wBAMC"}
|