@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,672 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CapnWeb RPC Protocol
|
|
3
|
+
*
|
|
4
|
+
* Message serialization, validation, and parsing for the RPC transport.
|
|
5
|
+
* Implements JSON-RPC style messages without requiring schema compilation.
|
|
6
|
+
*
|
|
7
|
+
* @module rpc/protocol
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { parseRequest, serializeResponse, validateRequest } from 'do/rpc/protocol'
|
|
12
|
+
*
|
|
13
|
+
* // Parse incoming message
|
|
14
|
+
* const request = parseRequest(rawMessage)
|
|
15
|
+
*
|
|
16
|
+
* // Validate request structure
|
|
17
|
+
* const validation = validateRequest(request)
|
|
18
|
+
* if (!validation.valid) {
|
|
19
|
+
* return serializeResponse({
|
|
20
|
+
* id: request?.id ?? 'unknown',
|
|
21
|
+
* error: { code: -32600, message: validation.error }
|
|
22
|
+
* })
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* // Serialize response
|
|
26
|
+
* const response = serializeResponse({
|
|
27
|
+
* id: request.id,
|
|
28
|
+
* result: { data: 'value' }
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
// =============================================================================
|
|
33
|
+
// Error Classes
|
|
34
|
+
// =============================================================================
|
|
35
|
+
/**
|
|
36
|
+
* RPC Protocol Error
|
|
37
|
+
*
|
|
38
|
+
* Thrown when there's an error parsing or validating RPC messages.
|
|
39
|
+
*/
|
|
40
|
+
export class RPCProtocolError extends Error {
|
|
41
|
+
constructor(message) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'RPCProtocolError';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// =============================================================================
|
|
47
|
+
// Parsing Functions
|
|
48
|
+
// =============================================================================
|
|
49
|
+
/**
|
|
50
|
+
* Parse a raw message into an RPC request
|
|
51
|
+
*
|
|
52
|
+
* Handles both single requests and batch requests.
|
|
53
|
+
* Returns a ParseResult with either the parsed request or an error message.
|
|
54
|
+
*
|
|
55
|
+
* @param message - Raw message string (expected to be JSON)
|
|
56
|
+
* @returns ParseResult containing either the parsed request or error
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const result = parseRequest('{"id":"1","method":"do.things.list"}')
|
|
61
|
+
* if (result.success) {
|
|
62
|
+
* console.log(result.data.method) // 'do.things.list'
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export function parseRequest(message) {
|
|
67
|
+
try {
|
|
68
|
+
const str = message instanceof ArrayBuffer ? new TextDecoder().decode(message) : message;
|
|
69
|
+
const parsed = JSON.parse(str);
|
|
70
|
+
// Check if it's a batch request
|
|
71
|
+
if ('requests' in parsed && Array.isArray(parsed.requests)) {
|
|
72
|
+
return { success: true, data: parsed };
|
|
73
|
+
}
|
|
74
|
+
return { success: true, data: parsed };
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
return { success: false, error: `Failed to parse request: ${e.message}` };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Parse a raw message into an RPC response
|
|
82
|
+
*
|
|
83
|
+
* @param message - Raw message string (expected to be JSON)
|
|
84
|
+
* @returns ParseResult containing either the parsed response or error
|
|
85
|
+
*/
|
|
86
|
+
export function parseResponse(message) {
|
|
87
|
+
try {
|
|
88
|
+
const str = message instanceof ArrayBuffer ? new TextDecoder().decode(message) : message;
|
|
89
|
+
const parsed = JSON.parse(str);
|
|
90
|
+
// Check if it's a batch response
|
|
91
|
+
if ('responses' in parsed && Array.isArray(parsed.responses)) {
|
|
92
|
+
return { success: true, data: parsed };
|
|
93
|
+
}
|
|
94
|
+
return { success: true, data: parsed };
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
return { success: false, error: `Failed to parse response: ${e.message}` };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Deserialize a raw message into an RPC request
|
|
102
|
+
*
|
|
103
|
+
* @param message - Raw message string (expected to be JSON)
|
|
104
|
+
* @returns Parsed RPC request
|
|
105
|
+
* @throws RPCProtocolError if parsing or validation fails
|
|
106
|
+
*/
|
|
107
|
+
export function deserializeRequest(message) {
|
|
108
|
+
// Handle null/undefined/empty input
|
|
109
|
+
if (message === null || message === undefined) {
|
|
110
|
+
throw new RPCProtocolError('Cannot parse null or undefined message');
|
|
111
|
+
}
|
|
112
|
+
if (typeof message !== 'string') {
|
|
113
|
+
throw new RPCProtocolError('Message must be a string');
|
|
114
|
+
}
|
|
115
|
+
const trimmed = message.trim();
|
|
116
|
+
if (trimmed === '') {
|
|
117
|
+
throw new RPCProtocolError('Cannot parse empty message');
|
|
118
|
+
}
|
|
119
|
+
let parsed;
|
|
120
|
+
try {
|
|
121
|
+
parsed = JSON.parse(trimmed);
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
|
|
125
|
+
}
|
|
126
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
127
|
+
throw new RPCProtocolError('Request must be an object');
|
|
128
|
+
}
|
|
129
|
+
const obj = parsed;
|
|
130
|
+
// Validate id
|
|
131
|
+
if (!('id' in obj)) {
|
|
132
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
133
|
+
}
|
|
134
|
+
if (typeof obj.id !== 'string') {
|
|
135
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
136
|
+
}
|
|
137
|
+
if (obj.id === '') {
|
|
138
|
+
throw new RPCProtocolError('Field id cannot be empty');
|
|
139
|
+
}
|
|
140
|
+
// Validate method
|
|
141
|
+
if (!('method' in obj)) {
|
|
142
|
+
throw new RPCProtocolError('Missing required field: method');
|
|
143
|
+
}
|
|
144
|
+
if (typeof obj.method !== 'string') {
|
|
145
|
+
throw new RPCProtocolError('Field method must be a string');
|
|
146
|
+
}
|
|
147
|
+
return parsed;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Deserialize a raw message into an RPC response
|
|
151
|
+
*
|
|
152
|
+
* @param message - Raw message string (expected to be JSON)
|
|
153
|
+
* @returns Parsed RPC response
|
|
154
|
+
* @throws RPCProtocolError if parsing or validation fails
|
|
155
|
+
*/
|
|
156
|
+
export function deserializeResponse(message) {
|
|
157
|
+
// Handle null/undefined/empty input
|
|
158
|
+
if (message === null || message === undefined) {
|
|
159
|
+
throw new RPCProtocolError('Cannot parse null or undefined message');
|
|
160
|
+
}
|
|
161
|
+
if (typeof message !== 'string') {
|
|
162
|
+
throw new RPCProtocolError('Message must be a string');
|
|
163
|
+
}
|
|
164
|
+
const trimmed = message.trim();
|
|
165
|
+
if (trimmed === '') {
|
|
166
|
+
throw new RPCProtocolError('Cannot parse empty message');
|
|
167
|
+
}
|
|
168
|
+
let parsed;
|
|
169
|
+
try {
|
|
170
|
+
parsed = JSON.parse(trimmed);
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
|
|
174
|
+
}
|
|
175
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
176
|
+
throw new RPCProtocolError('Response must be an object');
|
|
177
|
+
}
|
|
178
|
+
const obj = parsed;
|
|
179
|
+
// Validate id
|
|
180
|
+
if (!('id' in obj)) {
|
|
181
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
182
|
+
}
|
|
183
|
+
if (typeof obj.id !== 'string') {
|
|
184
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
185
|
+
}
|
|
186
|
+
// Validate error structure if present
|
|
187
|
+
if ('error' in obj && obj.error !== undefined) {
|
|
188
|
+
const error = obj.error;
|
|
189
|
+
if (typeof error !== 'object' || error === null) {
|
|
190
|
+
throw new RPCProtocolError('Field error must be an object');
|
|
191
|
+
}
|
|
192
|
+
if (typeof error.code !== 'number') {
|
|
193
|
+
throw new RPCProtocolError('Field error.code must be a number');
|
|
194
|
+
}
|
|
195
|
+
if (typeof error.message !== 'string') {
|
|
196
|
+
throw new RPCProtocolError('Field error.message must be a string');
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return parsed;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Deserialize a raw message into an RPC batch request
|
|
203
|
+
*
|
|
204
|
+
* @param message - Raw message string (expected to be JSON)
|
|
205
|
+
* @returns Parsed RPC batch request
|
|
206
|
+
* @throws RPCProtocolError if parsing or validation fails
|
|
207
|
+
*/
|
|
208
|
+
export function deserializeBatchRequest(message) {
|
|
209
|
+
// Handle null/undefined/empty input
|
|
210
|
+
if (message === null || message === undefined) {
|
|
211
|
+
throw new RPCProtocolError('Cannot parse null or undefined message');
|
|
212
|
+
}
|
|
213
|
+
if (typeof message !== 'string') {
|
|
214
|
+
throw new RPCProtocolError('Message must be a string');
|
|
215
|
+
}
|
|
216
|
+
const trimmed = message.trim();
|
|
217
|
+
if (trimmed === '') {
|
|
218
|
+
throw new RPCProtocolError('Cannot parse empty message');
|
|
219
|
+
}
|
|
220
|
+
let parsed;
|
|
221
|
+
try {
|
|
222
|
+
parsed = JSON.parse(trimmed);
|
|
223
|
+
}
|
|
224
|
+
catch (e) {
|
|
225
|
+
throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
|
|
226
|
+
}
|
|
227
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
228
|
+
throw new RPCProtocolError('Batch request must be an object');
|
|
229
|
+
}
|
|
230
|
+
const obj = parsed;
|
|
231
|
+
// Validate id
|
|
232
|
+
if (!('id' in obj)) {
|
|
233
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
234
|
+
}
|
|
235
|
+
if (typeof obj.id !== 'string') {
|
|
236
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
237
|
+
}
|
|
238
|
+
// Validate requests array
|
|
239
|
+
if (!('requests' in obj)) {
|
|
240
|
+
throw new RPCProtocolError('Missing required field: requests');
|
|
241
|
+
}
|
|
242
|
+
if (!Array.isArray(obj.requests)) {
|
|
243
|
+
throw new RPCProtocolError('Field requests must be an array');
|
|
244
|
+
}
|
|
245
|
+
if (obj.requests.length === 0) {
|
|
246
|
+
throw new RPCProtocolError('Batch request cannot be empty');
|
|
247
|
+
}
|
|
248
|
+
// Validate each request in the batch
|
|
249
|
+
for (let i = 0; i < obj.requests.length; i++) {
|
|
250
|
+
const req = obj.requests[i];
|
|
251
|
+
if (typeof req !== 'object' || req === null) {
|
|
252
|
+
throw new RPCProtocolError(`Request at index ${i} must be an object`);
|
|
253
|
+
}
|
|
254
|
+
if (!('id' in req) || typeof req.id !== 'string') {
|
|
255
|
+
throw new RPCProtocolError(`Request at index ${i} missing or invalid id`);
|
|
256
|
+
}
|
|
257
|
+
if (!('method' in req) || typeof req.method !== 'string') {
|
|
258
|
+
throw new RPCProtocolError(`Request at index ${i} missing or invalid method`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return parsed;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Deserialize a raw message into an RPC batch response
|
|
265
|
+
*
|
|
266
|
+
* @param message - Raw message string (expected to be JSON)
|
|
267
|
+
* @returns Parsed RPC batch response
|
|
268
|
+
* @throws RPCProtocolError if parsing or validation fails
|
|
269
|
+
*/
|
|
270
|
+
export function deserializeBatchResponse(message) {
|
|
271
|
+
// Handle null/undefined/empty input
|
|
272
|
+
if (message === null || message === undefined) {
|
|
273
|
+
throw new RPCProtocolError('Cannot parse null or undefined message');
|
|
274
|
+
}
|
|
275
|
+
if (typeof message !== 'string') {
|
|
276
|
+
throw new RPCProtocolError('Message must be a string');
|
|
277
|
+
}
|
|
278
|
+
const trimmed = message.trim();
|
|
279
|
+
if (trimmed === '') {
|
|
280
|
+
throw new RPCProtocolError('Cannot parse empty message');
|
|
281
|
+
}
|
|
282
|
+
let parsed;
|
|
283
|
+
try {
|
|
284
|
+
parsed = JSON.parse(trimmed);
|
|
285
|
+
}
|
|
286
|
+
catch (e) {
|
|
287
|
+
throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
|
|
288
|
+
}
|
|
289
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
290
|
+
throw new RPCProtocolError('Batch response must be an object');
|
|
291
|
+
}
|
|
292
|
+
const obj = parsed;
|
|
293
|
+
// Validate id
|
|
294
|
+
if (!('id' in obj)) {
|
|
295
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
296
|
+
}
|
|
297
|
+
if (typeof obj.id !== 'string') {
|
|
298
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
299
|
+
}
|
|
300
|
+
// Validate responses array
|
|
301
|
+
if (!('responses' in obj)) {
|
|
302
|
+
throw new RPCProtocolError('Missing required field: responses');
|
|
303
|
+
}
|
|
304
|
+
if (!Array.isArray(obj.responses)) {
|
|
305
|
+
throw new RPCProtocolError('Field responses must be an array');
|
|
306
|
+
}
|
|
307
|
+
return parsed;
|
|
308
|
+
}
|
|
309
|
+
// =============================================================================
|
|
310
|
+
// Validation Functions
|
|
311
|
+
// =============================================================================
|
|
312
|
+
/**
|
|
313
|
+
* Validate an RPC request structure
|
|
314
|
+
*
|
|
315
|
+
* Checks that the request has:
|
|
316
|
+
* - A string `id` field
|
|
317
|
+
* - A string `method` field in correct format (e.g., 'do.namespace.action')
|
|
318
|
+
* - Optional `params` object
|
|
319
|
+
* - Optional `meta` object with valid fields
|
|
320
|
+
*
|
|
321
|
+
* @param request - The request to validate
|
|
322
|
+
* @returns ValidationResult indicating success or failure with details
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```typescript
|
|
326
|
+
* const validation = validateRequest({ id: '1', method: 'invalid' })
|
|
327
|
+
* if (!validation.valid) {
|
|
328
|
+
* console.log(validation.error) // 'Invalid method format'
|
|
329
|
+
* }
|
|
330
|
+
* ```
|
|
331
|
+
*/
|
|
332
|
+
export function validateRequest(request) {
|
|
333
|
+
if (typeof request !== 'object' || request === null) {
|
|
334
|
+
throw new RPCProtocolError('Request must be an object');
|
|
335
|
+
}
|
|
336
|
+
const obj = request;
|
|
337
|
+
// Validate id
|
|
338
|
+
if (!('id' in obj)) {
|
|
339
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
340
|
+
}
|
|
341
|
+
if (typeof obj.id !== 'string') {
|
|
342
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
343
|
+
}
|
|
344
|
+
// Validate method
|
|
345
|
+
if (!('method' in obj)) {
|
|
346
|
+
throw new RPCProtocolError('Missing required field: method');
|
|
347
|
+
}
|
|
348
|
+
if (typeof obj.method !== 'string') {
|
|
349
|
+
throw new RPCProtocolError('Field method must be a string');
|
|
350
|
+
}
|
|
351
|
+
if (obj.method === '') {
|
|
352
|
+
throw new RPCProtocolError('Field method cannot be empty');
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Validate an RPC response structure
|
|
357
|
+
*
|
|
358
|
+
* @param response - The response to validate
|
|
359
|
+
* @throws RPCProtocolError if validation fails
|
|
360
|
+
*/
|
|
361
|
+
export function validateResponse(response) {
|
|
362
|
+
if (typeof response !== 'object' || response === null) {
|
|
363
|
+
throw new RPCProtocolError('Response must be an object');
|
|
364
|
+
}
|
|
365
|
+
const obj = response;
|
|
366
|
+
// Validate id
|
|
367
|
+
if (!('id' in obj)) {
|
|
368
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
369
|
+
}
|
|
370
|
+
if (typeof obj.id !== 'string') {
|
|
371
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
372
|
+
}
|
|
373
|
+
// Check for both result and error
|
|
374
|
+
const hasResult = 'result' in obj && obj.result !== undefined;
|
|
375
|
+
const hasError = 'error' in obj && obj.error !== undefined;
|
|
376
|
+
if (hasResult && hasError) {
|
|
377
|
+
throw new RPCProtocolError('Response cannot have both result and error');
|
|
378
|
+
}
|
|
379
|
+
// Validate error structure if present
|
|
380
|
+
if (hasError) {
|
|
381
|
+
const error = obj.error;
|
|
382
|
+
if (typeof error !== 'object' || error === null) {
|
|
383
|
+
throw new RPCProtocolError('Field error must be an object');
|
|
384
|
+
}
|
|
385
|
+
if (typeof error.code !== 'number') {
|
|
386
|
+
throw new RPCProtocolError('Field error.code must be a number');
|
|
387
|
+
}
|
|
388
|
+
if (typeof error.message !== 'string') {
|
|
389
|
+
throw new RPCProtocolError('Field error.message must be a string');
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Validate a batch request structure
|
|
395
|
+
*
|
|
396
|
+
* @param batch - The batch request to validate
|
|
397
|
+
* @throws RPCProtocolError if validation fails
|
|
398
|
+
*/
|
|
399
|
+
export function validateBatchRequest(batch) {
|
|
400
|
+
if (typeof batch !== 'object' || batch === null) {
|
|
401
|
+
throw new RPCProtocolError('Batch request must be an object');
|
|
402
|
+
}
|
|
403
|
+
const obj = batch;
|
|
404
|
+
// Validate id
|
|
405
|
+
if (!('id' in obj)) {
|
|
406
|
+
throw new RPCProtocolError('Missing required field: id');
|
|
407
|
+
}
|
|
408
|
+
if (typeof obj.id !== 'string') {
|
|
409
|
+
throw new RPCProtocolError('Field id must be a string');
|
|
410
|
+
}
|
|
411
|
+
// Validate requests array
|
|
412
|
+
if (!('requests' in obj)) {
|
|
413
|
+
throw new RPCProtocolError('Missing required field: requests');
|
|
414
|
+
}
|
|
415
|
+
if (!Array.isArray(obj.requests)) {
|
|
416
|
+
throw new RPCProtocolError('Field requests must be an array');
|
|
417
|
+
}
|
|
418
|
+
if (obj.requests.length === 0) {
|
|
419
|
+
throw new RPCProtocolError('Batch request cannot be empty');
|
|
420
|
+
}
|
|
421
|
+
// Validate each request in the batch
|
|
422
|
+
for (let i = 0; i < obj.requests.length; i++) {
|
|
423
|
+
try {
|
|
424
|
+
validateRequest(obj.requests[i]);
|
|
425
|
+
}
|
|
426
|
+
catch (e) {
|
|
427
|
+
throw new RPCProtocolError(`Invalid request at index ${i}: ${e.message}`);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Validate method name format
|
|
433
|
+
*
|
|
434
|
+
* Method names must follow the pattern: `do.{namespace}.{action}`
|
|
435
|
+
* Examples: 'do.things.list', 'do.identity.get', 'do.cdc.subscribe'
|
|
436
|
+
*
|
|
437
|
+
* @param method - The method name to validate
|
|
438
|
+
* @returns Whether the method name is valid
|
|
439
|
+
*/
|
|
440
|
+
export function validateMethodName(method) {
|
|
441
|
+
// Accept various method patterns including special characters
|
|
442
|
+
// The method should be non-empty
|
|
443
|
+
return typeof method === 'string' && method.length > 0;
|
|
444
|
+
}
|
|
445
|
+
// =============================================================================
|
|
446
|
+
// Serialization Functions
|
|
447
|
+
// =============================================================================
|
|
448
|
+
/**
|
|
449
|
+
* Serialize an RPC request to a string
|
|
450
|
+
*
|
|
451
|
+
* @param request - The request to serialize
|
|
452
|
+
* @param options - Serialization options
|
|
453
|
+
* @returns JSON string representation
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* ```typescript
|
|
457
|
+
* const json = serializeRequest({
|
|
458
|
+
* id: '1',
|
|
459
|
+
* method: 'do.things.list',
|
|
460
|
+
* params: { limit: 10 }
|
|
461
|
+
* })
|
|
462
|
+
* // '{"id":"1","method":"do.things.list","params":{"limit":10}}'
|
|
463
|
+
* ```
|
|
464
|
+
*/
|
|
465
|
+
export function serializeRequest(request, options) {
|
|
466
|
+
const space = options?.pretty ? 2 : undefined;
|
|
467
|
+
return JSON.stringify(request, null, space);
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Serialize an RPC response to a string
|
|
471
|
+
*
|
|
472
|
+
* @param response - The response to serialize
|
|
473
|
+
* @param options - Serialization options
|
|
474
|
+
* @returns JSON string representation
|
|
475
|
+
*/
|
|
476
|
+
export function serializeResponse(response, options) {
|
|
477
|
+
const space = options?.pretty ? 2 : undefined;
|
|
478
|
+
return JSON.stringify(response, null, space);
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Serialize a batch request to a string
|
|
482
|
+
*
|
|
483
|
+
* @param batch - The batch request to serialize
|
|
484
|
+
* @param options - Serialization options
|
|
485
|
+
* @returns JSON string representation
|
|
486
|
+
*/
|
|
487
|
+
export function serializeBatchRequest(batch, options) {
|
|
488
|
+
const space = options?.pretty ? 2 : undefined;
|
|
489
|
+
return JSON.stringify(batch, null, space);
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Serialize a batch response to a string
|
|
493
|
+
*
|
|
494
|
+
* @param batch - The batch response to serialize
|
|
495
|
+
* @param options - Serialization options
|
|
496
|
+
* @returns JSON string representation
|
|
497
|
+
*/
|
|
498
|
+
export function serializeBatchResponse(batch, options) {
|
|
499
|
+
const space = options?.pretty ? 2 : undefined;
|
|
500
|
+
return JSON.stringify(batch, null, space);
|
|
501
|
+
}
|
|
502
|
+
// =============================================================================
|
|
503
|
+
// Error Helpers
|
|
504
|
+
// =============================================================================
|
|
505
|
+
/**
|
|
506
|
+
* Create an RPC error object
|
|
507
|
+
*
|
|
508
|
+
* @param code - Error code (from RpcErrorCodes)
|
|
509
|
+
* @param message - Human-readable error message
|
|
510
|
+
* @param data - Optional additional error data
|
|
511
|
+
* @returns RPCError object
|
|
512
|
+
*
|
|
513
|
+
* @example
|
|
514
|
+
* ```typescript
|
|
515
|
+
* const error = createError(-32601, 'Method not found', { method: 'do.invalid' })
|
|
516
|
+
* ```
|
|
517
|
+
*/
|
|
518
|
+
export function createError(code, message, data) {
|
|
519
|
+
const error = { code, message };
|
|
520
|
+
if (data !== undefined) {
|
|
521
|
+
error.data = data;
|
|
522
|
+
}
|
|
523
|
+
return error;
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Error code mapping for createRPCError
|
|
527
|
+
*/
|
|
528
|
+
const ERROR_CODES = {
|
|
529
|
+
ParseError: -32700,
|
|
530
|
+
InvalidRequest: -32600,
|
|
531
|
+
MethodNotFound: -32601,
|
|
532
|
+
InvalidParams: -32602,
|
|
533
|
+
InternalError: -32603,
|
|
534
|
+
Unauthorized: -32001,
|
|
535
|
+
Forbidden: -32002,
|
|
536
|
+
NotFound: -32003,
|
|
537
|
+
Conflict: -32004,
|
|
538
|
+
RateLimited: -32005,
|
|
539
|
+
Timeout: -32006,
|
|
540
|
+
};
|
|
541
|
+
/**
|
|
542
|
+
* Create an RPC error object by type name
|
|
543
|
+
*
|
|
544
|
+
* @param type - Error type name
|
|
545
|
+
* @param message - Human-readable error message
|
|
546
|
+
* @param data - Optional additional error data
|
|
547
|
+
* @returns RPCError object
|
|
548
|
+
*
|
|
549
|
+
* @example
|
|
550
|
+
* ```typescript
|
|
551
|
+
* const error = createRPCError('MethodNotFound', 'Unknown method: do.invalid')
|
|
552
|
+
* ```
|
|
553
|
+
*/
|
|
554
|
+
export function createRPCError(type, message, data) {
|
|
555
|
+
return {
|
|
556
|
+
code: ERROR_CODES[type],
|
|
557
|
+
message,
|
|
558
|
+
data,
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Check if a value is an RPC error
|
|
563
|
+
*
|
|
564
|
+
* @param value - Value to check
|
|
565
|
+
* @returns Whether the value is a valid RPC error
|
|
566
|
+
*/
|
|
567
|
+
export function isRPCError(value) {
|
|
568
|
+
if (!value || typeof value !== 'object') {
|
|
569
|
+
return false;
|
|
570
|
+
}
|
|
571
|
+
const obj = value;
|
|
572
|
+
if (typeof obj.code !== 'number' || typeof obj.message !== 'string') {
|
|
573
|
+
return false;
|
|
574
|
+
}
|
|
575
|
+
// Valid RPC error codes are:
|
|
576
|
+
// Standard JSON-RPC: -32700 to -32600
|
|
577
|
+
// Custom: -32001 to -32099
|
|
578
|
+
const code = obj.code;
|
|
579
|
+
const isStandardError = code >= -32700 && code <= -32600;
|
|
580
|
+
const isCustomError = code >= -32099 && code <= -32001;
|
|
581
|
+
return isStandardError || isCustomError;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Create an error response for a request
|
|
585
|
+
*
|
|
586
|
+
* @param requestId - The ID of the request that failed
|
|
587
|
+
* @param code - Error code
|
|
588
|
+
* @param message - Error message
|
|
589
|
+
* @param data - Optional error data
|
|
590
|
+
* @returns Complete RPCResponse with error
|
|
591
|
+
*/
|
|
592
|
+
export function createErrorResponse(requestId, code, message, data) {
|
|
593
|
+
return {
|
|
594
|
+
id: requestId,
|
|
595
|
+
error: createError(code, message, data),
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Create a success response for a request
|
|
600
|
+
*
|
|
601
|
+
* @param requestId - The ID of the request
|
|
602
|
+
* @param result - The result data
|
|
603
|
+
* @param meta - Optional metadata
|
|
604
|
+
* @returns Complete RPCResponse with result
|
|
605
|
+
*/
|
|
606
|
+
export function createSuccessResponse(requestId, result, meta) {
|
|
607
|
+
const response = { id: requestId, result };
|
|
608
|
+
if (meta !== undefined) {
|
|
609
|
+
response.meta = meta;
|
|
610
|
+
}
|
|
611
|
+
return response;
|
|
612
|
+
}
|
|
613
|
+
// =============================================================================
|
|
614
|
+
// Utility Functions
|
|
615
|
+
// =============================================================================
|
|
616
|
+
/**
|
|
617
|
+
* Generate a unique request ID
|
|
618
|
+
*
|
|
619
|
+
* Uses a combination of timestamp and random string for uniqueness.
|
|
620
|
+
*
|
|
621
|
+
* @returns Unique request ID string
|
|
622
|
+
*/
|
|
623
|
+
export function generateRequestId() {
|
|
624
|
+
const timestamp = Date.now();
|
|
625
|
+
const random = Math.random().toString(36).substring(2, 10);
|
|
626
|
+
return `req-${timestamp}-${random}`;
|
|
627
|
+
}
|
|
628
|
+
/**
|
|
629
|
+
* Check if a message is a batch request
|
|
630
|
+
*
|
|
631
|
+
* @param message - Parsed message object
|
|
632
|
+
* @returns Whether the message is a batch request
|
|
633
|
+
*/
|
|
634
|
+
export function isBatchRequest(message) {
|
|
635
|
+
return typeof message === 'object' && message !== null && 'requests' in message && Array.isArray(message.requests);
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Check if a message is a batch response
|
|
639
|
+
*
|
|
640
|
+
* @param message - Parsed message object
|
|
641
|
+
* @returns Whether the message is a batch response
|
|
642
|
+
*/
|
|
643
|
+
export function isBatchResponse(message) {
|
|
644
|
+
return typeof message === 'object' && message !== null && 'responses' in message && Array.isArray(message.responses);
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Extract namespace from method name
|
|
648
|
+
*
|
|
649
|
+
* @param method - Method name (e.g., 'do.things.list')
|
|
650
|
+
* @returns Namespace (e.g., 'things')
|
|
651
|
+
*/
|
|
652
|
+
export function extractNamespace(method) {
|
|
653
|
+
const parts = method.split('.');
|
|
654
|
+
if (parts.length >= 2) {
|
|
655
|
+
return parts[1];
|
|
656
|
+
}
|
|
657
|
+
return null;
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Extract action from method name
|
|
661
|
+
*
|
|
662
|
+
* @param method - Method name (e.g., 'do.things.list')
|
|
663
|
+
* @returns Action (e.g., 'list')
|
|
664
|
+
*/
|
|
665
|
+
export function extractAction(method) {
|
|
666
|
+
const parts = method.split('.');
|
|
667
|
+
if (parts.length >= 3) {
|
|
668
|
+
return parts[2];
|
|
669
|
+
}
|
|
670
|
+
return null;
|
|
671
|
+
}
|
|
672
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../rpc/protocol.ts"],"names":[],"mappings":"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"}
|