@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,557 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CapnWeb RPC Method Registry and Dispatch
|
|
3
|
+
*
|
|
4
|
+
* Manages registration of RPC methods and dispatches incoming requests
|
|
5
|
+
* to the appropriate handlers. Supports middleware/hooks for cross-cutting
|
|
6
|
+
* concerns like authentication, logging, and rate limiting.
|
|
7
|
+
*
|
|
8
|
+
* @module rpc/methods
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { MethodRegistry, dispatch } from 'do/rpc/methods'
|
|
13
|
+
*
|
|
14
|
+
* // Create registry and register methods
|
|
15
|
+
* const registry = new MethodRegistry()
|
|
16
|
+
*
|
|
17
|
+
* registry.register('do.things.list', async (params, ctx) => {
|
|
18
|
+
* return ctx.state.storage.list('things')
|
|
19
|
+
* })
|
|
20
|
+
*
|
|
21
|
+
* // Add middleware
|
|
22
|
+
* registry.use(async (request, ctx, next) => {
|
|
23
|
+
* console.log(`Calling ${request.method}`)
|
|
24
|
+
* const result = await next()
|
|
25
|
+
* console.log(`Completed ${request.method}`)
|
|
26
|
+
* return result
|
|
27
|
+
* })
|
|
28
|
+
*
|
|
29
|
+
* // Dispatch a request
|
|
30
|
+
* const response = await dispatch(registry, request, context)
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import { RpcErrorCodes } from '../types/rpc';
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// Method Registry Class
|
|
36
|
+
// =============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Registry for RPC methods
|
|
39
|
+
*
|
|
40
|
+
* Manages method registration, middleware, and provides dispatch functionality.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const registry = new MethodRegistry()
|
|
45
|
+
*
|
|
46
|
+
* // Register with options
|
|
47
|
+
* registry.register('do.things.list', handler, {
|
|
48
|
+
* description: 'List all things',
|
|
49
|
+
* params: {
|
|
50
|
+
* limit: { type: 'number', required: false, default: 100 },
|
|
51
|
+
* offset: { type: 'number', required: false, default: 0 },
|
|
52
|
+
* },
|
|
53
|
+
* returns: 'Thing[]',
|
|
54
|
+
* rateLimit: 100,
|
|
55
|
+
* })
|
|
56
|
+
*
|
|
57
|
+
* // Get method info
|
|
58
|
+
* const method = registry.get('do.things.list')
|
|
59
|
+
*
|
|
60
|
+
* // List all methods
|
|
61
|
+
* const methods = registry.list()
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export class MethodRegistry {
|
|
65
|
+
/** Map of method names to registered methods */
|
|
66
|
+
methods = new Map();
|
|
67
|
+
/** Middleware chain */
|
|
68
|
+
middleware = [];
|
|
69
|
+
/**
|
|
70
|
+
* Create a new method registry
|
|
71
|
+
*/
|
|
72
|
+
constructor() {
|
|
73
|
+
// Initialize internal maps for methods and middleware
|
|
74
|
+
this.methods = new Map();
|
|
75
|
+
this.middleware = [];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Register a method handler
|
|
79
|
+
*
|
|
80
|
+
* @param name - Method name (e.g., 'do.things.list')
|
|
81
|
+
* @param handler - Handler function
|
|
82
|
+
* @param options - Optional metadata and configuration
|
|
83
|
+
* @throws Error if method is already registered
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* registry.register('do.things.create', async (params, ctx) => {
|
|
88
|
+
* const thing = await ctx.state.storage.put('things', params)
|
|
89
|
+
* return thing
|
|
90
|
+
* }, {
|
|
91
|
+
* description: 'Create a new thing',
|
|
92
|
+
* params: { name: { type: 'string', required: true } },
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
register(name, handler, options) {
|
|
97
|
+
// Validate method name format (should be dot-separated)
|
|
98
|
+
if (!name || typeof name !== 'string') {
|
|
99
|
+
throw new Error('Method name must be a non-empty string');
|
|
100
|
+
}
|
|
101
|
+
// Check for duplicate registration
|
|
102
|
+
if (this.methods.has(name)) {
|
|
103
|
+
throw new Error(`Method already registered: ${name}`);
|
|
104
|
+
}
|
|
105
|
+
// Store handler and options
|
|
106
|
+
this.methods.set(name, {
|
|
107
|
+
name,
|
|
108
|
+
handler,
|
|
109
|
+
options: options ?? {},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Register multiple methods at once
|
|
114
|
+
*
|
|
115
|
+
* @param methods - Map of method names to handlers
|
|
116
|
+
* @param options - Shared options for all methods
|
|
117
|
+
*/
|
|
118
|
+
registerAll(methods, options) {
|
|
119
|
+
for (const [name, handler] of Object.entries(methods)) {
|
|
120
|
+
this.register(name, handler, options);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Unregister a method
|
|
125
|
+
*
|
|
126
|
+
* @param name - Method name to unregister
|
|
127
|
+
* @returns Whether the method was found and removed
|
|
128
|
+
*/
|
|
129
|
+
unregister(name) {
|
|
130
|
+
return this.methods.delete(name);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get a registered method
|
|
134
|
+
*
|
|
135
|
+
* @param name - Method name
|
|
136
|
+
* @returns Registered method or undefined
|
|
137
|
+
*/
|
|
138
|
+
get(name) {
|
|
139
|
+
return this.methods.get(name);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Check if a method is registered
|
|
143
|
+
*
|
|
144
|
+
* @param name - Method name
|
|
145
|
+
* @returns Whether the method exists
|
|
146
|
+
*/
|
|
147
|
+
has(name) {
|
|
148
|
+
return this.methods.has(name);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* List all registered methods
|
|
152
|
+
*
|
|
153
|
+
* @param namespace - Optional namespace filter (e.g., 'things')
|
|
154
|
+
* @returns Array of registered methods
|
|
155
|
+
*/
|
|
156
|
+
list(namespace) {
|
|
157
|
+
const allMethods = Array.from(this.methods.values());
|
|
158
|
+
if (!namespace) {
|
|
159
|
+
return allMethods;
|
|
160
|
+
}
|
|
161
|
+
// Filter by namespace (namespace is the part after 'do.' and before the action)
|
|
162
|
+
// e.g., 'do.things.list' -> namespace is 'things'
|
|
163
|
+
return allMethods.filter((method) => {
|
|
164
|
+
const parts = method.name.split('.');
|
|
165
|
+
// Expected format: do.{namespace}.{action}
|
|
166
|
+
return parts.length >= 3 && parts[1] === namespace;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* List methods grouped by namespace
|
|
171
|
+
*
|
|
172
|
+
* @returns Map of namespace to method names
|
|
173
|
+
*/
|
|
174
|
+
listByNamespace() {
|
|
175
|
+
const grouped = new Map();
|
|
176
|
+
for (const method of this.methods.values()) {
|
|
177
|
+
const parts = method.name.split('.');
|
|
178
|
+
// Expected format: do.{namespace}.{action}
|
|
179
|
+
const namespace = parts.length >= 3 ? parts[1] : 'other';
|
|
180
|
+
if (!grouped.has(namespace)) {
|
|
181
|
+
grouped.set(namespace, []);
|
|
182
|
+
}
|
|
183
|
+
grouped.get(namespace).push(method.name);
|
|
184
|
+
}
|
|
185
|
+
return grouped;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Add middleware to the chain
|
|
189
|
+
*
|
|
190
|
+
* Middleware is executed in order of registration.
|
|
191
|
+
*
|
|
192
|
+
* @param middleware - Middleware function
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* // Logging middleware
|
|
197
|
+
* registry.use(async (request, ctx, next) => {
|
|
198
|
+
* const start = Date.now()
|
|
199
|
+
* try {
|
|
200
|
+
* return await next()
|
|
201
|
+
* } finally {
|
|
202
|
+
* console.log(`${request.method} took ${Date.now() - start}ms`)
|
|
203
|
+
* }
|
|
204
|
+
* })
|
|
205
|
+
*
|
|
206
|
+
* // Auth middleware
|
|
207
|
+
* registry.use(async (request, ctx, next) => {
|
|
208
|
+
* if (!ctx.meta?.auth) {
|
|
209
|
+
* throw new Error('Unauthorized')
|
|
210
|
+
* }
|
|
211
|
+
* return next()
|
|
212
|
+
* })
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
use(middleware) {
|
|
216
|
+
this.middleware.push(middleware);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get all registered middleware
|
|
220
|
+
*
|
|
221
|
+
* @returns Array of middleware functions
|
|
222
|
+
*/
|
|
223
|
+
getMiddleware() {
|
|
224
|
+
return [...this.middleware];
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// =============================================================================
|
|
228
|
+
// Dispatch Function
|
|
229
|
+
// =============================================================================
|
|
230
|
+
/**
|
|
231
|
+
* Dispatch an RPC request to the appropriate handler
|
|
232
|
+
*
|
|
233
|
+
* Runs the middleware chain and then the method handler.
|
|
234
|
+
* Returns an RPC response with either result or error.
|
|
235
|
+
*
|
|
236
|
+
* @param registry - Method registry
|
|
237
|
+
* @param request - RPC request
|
|
238
|
+
* @param ctx - Method context
|
|
239
|
+
* @returns RPC response
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```typescript
|
|
243
|
+
* const response = await dispatch(registry, {
|
|
244
|
+
* id: '1',
|
|
245
|
+
* method: 'do.things.list',
|
|
246
|
+
* params: { limit: 10 },
|
|
247
|
+
* }, context)
|
|
248
|
+
*
|
|
249
|
+
* if (response.error) {
|
|
250
|
+
* console.error(response.error.message)
|
|
251
|
+
* } else {
|
|
252
|
+
* console.log(response.result)
|
|
253
|
+
* }
|
|
254
|
+
* ```
|
|
255
|
+
*/
|
|
256
|
+
export async function dispatch(registry, request, ctx) {
|
|
257
|
+
try {
|
|
258
|
+
// Look up method in registry
|
|
259
|
+
const method = registry.get(request.method);
|
|
260
|
+
// Return MethodNotFound error if not found
|
|
261
|
+
if (!method) {
|
|
262
|
+
return {
|
|
263
|
+
id: request.id,
|
|
264
|
+
error: {
|
|
265
|
+
code: RpcErrorCodes.MethodNotFound,
|
|
266
|
+
message: `Method not found: ${request.method}`,
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
// Build middleware chain
|
|
271
|
+
const middleware = registry.getMiddleware();
|
|
272
|
+
// Execute chain with handler at the end
|
|
273
|
+
let index = 0;
|
|
274
|
+
const executeNext = async () => {
|
|
275
|
+
if (index < middleware.length) {
|
|
276
|
+
const currentMiddleware = middleware[index++];
|
|
277
|
+
return currentMiddleware(request, ctx, executeNext);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
// Execute the actual handler
|
|
281
|
+
return method.handler(request.params, ctx);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
const result = await executeNext();
|
|
285
|
+
// Return response with result
|
|
286
|
+
return {
|
|
287
|
+
id: request.id,
|
|
288
|
+
result,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
// Catch errors and convert to RPC errors
|
|
293
|
+
const rpcError = {
|
|
294
|
+
code: RpcErrorCodes.InternalError,
|
|
295
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
296
|
+
data: error instanceof Error ? { stack: error.stack } : undefined,
|
|
297
|
+
};
|
|
298
|
+
return {
|
|
299
|
+
id: request.id,
|
|
300
|
+
error: rpcError,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Dispatch a batch of requests
|
|
306
|
+
*
|
|
307
|
+
* Executes requests in parallel (unless abortOnError is true).
|
|
308
|
+
*
|
|
309
|
+
* @param registry - Method registry
|
|
310
|
+
* @param requests - Array of RPC requests
|
|
311
|
+
* @param ctx - Method context
|
|
312
|
+
* @param abortOnError - Stop on first error
|
|
313
|
+
* @returns Array of RPC responses
|
|
314
|
+
*/
|
|
315
|
+
export async function dispatchBatch(registry, requests, ctx, abortOnError) {
|
|
316
|
+
if (abortOnError) {
|
|
317
|
+
// Execute sequentially and stop on first error
|
|
318
|
+
const responses = [];
|
|
319
|
+
for (const request of requests) {
|
|
320
|
+
const response = await dispatch(registry, request, ctx);
|
|
321
|
+
responses.push(response);
|
|
322
|
+
if (response.error) {
|
|
323
|
+
break;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return responses;
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
// Execute in parallel with Promise.all
|
|
330
|
+
return Promise.all(requests.map((request) => dispatch(registry, request, ctx)));
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// =============================================================================
|
|
334
|
+
// Built-in Middleware
|
|
335
|
+
// =============================================================================
|
|
336
|
+
/**
|
|
337
|
+
* Create a logging middleware
|
|
338
|
+
*
|
|
339
|
+
* @param logger - Logger function (defaults to console.log)
|
|
340
|
+
* @returns Middleware function
|
|
341
|
+
*/
|
|
342
|
+
export function createLoggingMiddleware(logger = console.log) {
|
|
343
|
+
return async (request, ctx, next) => {
|
|
344
|
+
const start = Date.now();
|
|
345
|
+
logger(`RPC: ${request.method} started`);
|
|
346
|
+
try {
|
|
347
|
+
const result = await next();
|
|
348
|
+
logger(`RPC: ${request.method} completed in ${Date.now() - start}ms`);
|
|
349
|
+
return result;
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
logger(`RPC: ${request.method} failed in ${Date.now() - start}ms - ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
353
|
+
throw error;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Create an authentication middleware
|
|
359
|
+
*
|
|
360
|
+
* @param validator - Function to validate auth token
|
|
361
|
+
* @returns Middleware function
|
|
362
|
+
*/
|
|
363
|
+
export function createAuthMiddleware(validator) {
|
|
364
|
+
return async (request, ctx, next) => {
|
|
365
|
+
const token = ctx.meta?.auth;
|
|
366
|
+
if (!token) {
|
|
367
|
+
throw new RPCAuthError('Authentication required');
|
|
368
|
+
}
|
|
369
|
+
const isValid = await validator(token, ctx);
|
|
370
|
+
if (!isValid) {
|
|
371
|
+
throw new RPCAuthError('Invalid authentication token');
|
|
372
|
+
}
|
|
373
|
+
return next();
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* RPC authentication error
|
|
378
|
+
*/
|
|
379
|
+
export class RPCAuthError extends Error {
|
|
380
|
+
code = RpcErrorCodes.Unauthorized;
|
|
381
|
+
constructor(message) {
|
|
382
|
+
super(message);
|
|
383
|
+
this.name = 'RPCAuthError';
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* RPC rate limit error
|
|
388
|
+
*/
|
|
389
|
+
export class RPCRateLimitError extends Error {
|
|
390
|
+
code = RpcErrorCodes.RateLimited;
|
|
391
|
+
constructor(message) {
|
|
392
|
+
super(message);
|
|
393
|
+
this.name = 'RPCRateLimitError';
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Create a rate limiting middleware
|
|
398
|
+
*
|
|
399
|
+
* @param maxRequests - Maximum requests per window
|
|
400
|
+
* @param windowMs - Window duration in milliseconds
|
|
401
|
+
* @returns Middleware function
|
|
402
|
+
*/
|
|
403
|
+
export function createRateLimitMiddleware(maxRequests, windowMs) {
|
|
404
|
+
const requestCounts = new Map();
|
|
405
|
+
return async (request, ctx, next) => {
|
|
406
|
+
const key = ctx.meta?.auth ?? 'anonymous';
|
|
407
|
+
const now = Date.now();
|
|
408
|
+
let entry = requestCounts.get(key);
|
|
409
|
+
if (!entry || now - entry.windowStart >= windowMs) {
|
|
410
|
+
// Start new window
|
|
411
|
+
entry = { count: 0, windowStart: now };
|
|
412
|
+
requestCounts.set(key, entry);
|
|
413
|
+
}
|
|
414
|
+
entry.count++;
|
|
415
|
+
if (entry.count > maxRequests) {
|
|
416
|
+
throw new RPCRateLimitError(`Rate limit exceeded: ${maxRequests} requests per ${windowMs}ms`);
|
|
417
|
+
}
|
|
418
|
+
return next();
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Create a timing middleware that adds duration to response meta
|
|
423
|
+
*
|
|
424
|
+
* @returns Middleware function
|
|
425
|
+
*/
|
|
426
|
+
export function createTimingMiddleware() {
|
|
427
|
+
return async (request, ctx, next) => {
|
|
428
|
+
const start = Date.now();
|
|
429
|
+
const result = await next();
|
|
430
|
+
const duration = Date.now() - start;
|
|
431
|
+
// Add duration to context meta
|
|
432
|
+
if (!ctx.meta) {
|
|
433
|
+
ctx.meta = {};
|
|
434
|
+
}
|
|
435
|
+
ctx.meta.duration = duration;
|
|
436
|
+
return result;
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Create default handlers for system methods
|
|
441
|
+
*
|
|
442
|
+
* Includes: do.system.ping, do.system.stats, do.system.schema
|
|
443
|
+
*
|
|
444
|
+
* @param registry - Registry to populate with system methods
|
|
445
|
+
*/
|
|
446
|
+
export function registerSystemMethods(registry) {
|
|
447
|
+
// Register do.system.ping
|
|
448
|
+
registry.register('do.system.ping', async () => {
|
|
449
|
+
return { pong: true, timestamp: Date.now() };
|
|
450
|
+
}, {
|
|
451
|
+
description: 'Health check ping',
|
|
452
|
+
returns: '{ pong: true, timestamp: number }',
|
|
453
|
+
});
|
|
454
|
+
// Register do.system.stats
|
|
455
|
+
registry.register('do.system.stats', async (_params, ctx) => {
|
|
456
|
+
const doCtx = ctx;
|
|
457
|
+
const identity = doCtx.getIdentity?.() ?? { $id: 'unknown', $type: 'unknown', $version: 0, $createdAt: 0, $updatedAt: 0 };
|
|
458
|
+
return {
|
|
459
|
+
identity,
|
|
460
|
+
storage: {
|
|
461
|
+
usedBytes: 0, // Would need actual storage metrics
|
|
462
|
+
tableCount: 0,
|
|
463
|
+
rowCount: 0,
|
|
464
|
+
},
|
|
465
|
+
connections: {
|
|
466
|
+
active: 0,
|
|
467
|
+
hibernating: 0,
|
|
468
|
+
},
|
|
469
|
+
cdc: {
|
|
470
|
+
sequence: 0,
|
|
471
|
+
pendingEvents: 0,
|
|
472
|
+
subscribers: 0,
|
|
473
|
+
},
|
|
474
|
+
uptime: Date.now() - identity.$createdAt,
|
|
475
|
+
lastActivity: Date.now(),
|
|
476
|
+
};
|
|
477
|
+
}, {
|
|
478
|
+
description: 'Get DO statistics',
|
|
479
|
+
returns: 'DOStats',
|
|
480
|
+
});
|
|
481
|
+
// Register do.system.schema
|
|
482
|
+
registry.register('do.system.schema', async (_params, ctx) => {
|
|
483
|
+
const doCtx = ctx;
|
|
484
|
+
const identity = doCtx.getIdentity?.();
|
|
485
|
+
const methods = registry.list();
|
|
486
|
+
return {
|
|
487
|
+
type: identity?.$type ?? 'DigitalObject',
|
|
488
|
+
methods: methods.map((m) => ({
|
|
489
|
+
name: m.name,
|
|
490
|
+
description: m.options.description,
|
|
491
|
+
params: m.options.params,
|
|
492
|
+
returns: m.options.returns,
|
|
493
|
+
})),
|
|
494
|
+
collections: [], // Would be populated from actual collections
|
|
495
|
+
};
|
|
496
|
+
}, {
|
|
497
|
+
description: 'Get DO schema (available methods)',
|
|
498
|
+
returns: 'DOSchema',
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Create default handlers for identity methods
|
|
503
|
+
*
|
|
504
|
+
* Includes: do.identity.get, do.identity.setContext, do.identity.getContext
|
|
505
|
+
*
|
|
506
|
+
* @param registry - Registry to populate with identity methods
|
|
507
|
+
*/
|
|
508
|
+
export function registerIdentityMethods(registry) {
|
|
509
|
+
// Register do.identity.get
|
|
510
|
+
registry.register('do.identity.get', async (_params, ctx) => {
|
|
511
|
+
const doCtx = ctx;
|
|
512
|
+
if (!doCtx.getIdentity) {
|
|
513
|
+
throw new Error('DO context does not support getIdentity');
|
|
514
|
+
}
|
|
515
|
+
return doCtx.getIdentity();
|
|
516
|
+
}, {
|
|
517
|
+
description: 'Get DO identity',
|
|
518
|
+
returns: 'DigitalObjectIdentity',
|
|
519
|
+
});
|
|
520
|
+
// Register do.identity.setContext
|
|
521
|
+
registry.register('do.identity.setContext', async (params, ctx) => {
|
|
522
|
+
const doCtx = ctx;
|
|
523
|
+
if (!doCtx.setContext) {
|
|
524
|
+
throw new Error('DO context does not support setContext');
|
|
525
|
+
}
|
|
526
|
+
const { ref } = params;
|
|
527
|
+
await doCtx.setContext(ref);
|
|
528
|
+
}, {
|
|
529
|
+
description: 'Set parent context for CDC streaming',
|
|
530
|
+
params: {
|
|
531
|
+
ref: { type: 'string', required: true, description: 'Parent DO reference URL' },
|
|
532
|
+
},
|
|
533
|
+
});
|
|
534
|
+
// Register do.identity.getContext
|
|
535
|
+
registry.register('do.identity.getContext', async (_params, ctx) => {
|
|
536
|
+
const doCtx = ctx;
|
|
537
|
+
if (!doCtx.getContext) {
|
|
538
|
+
throw new Error('DO context does not support getContext');
|
|
539
|
+
}
|
|
540
|
+
return doCtx.getContext() ?? null;
|
|
541
|
+
}, {
|
|
542
|
+
description: 'Get parent context',
|
|
543
|
+
returns: 'DigitalObjectRef | null',
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Create a default registry with all standard DO methods registered
|
|
548
|
+
*
|
|
549
|
+
* @returns A new MethodRegistry with system and identity methods registered
|
|
550
|
+
*/
|
|
551
|
+
export function createDefaultRegistry() {
|
|
552
|
+
const registry = new MethodRegistry();
|
|
553
|
+
registerSystemMethods(registry);
|
|
554
|
+
registerIdentityMethods(registry);
|
|
555
|
+
return registry;
|
|
556
|
+
}
|
|
557
|
+
//# sourceMappingURL=methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../rpc/methods.ts"],"names":[],"mappings":"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"}
|