@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,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSL Certificate Management
|
|
3
|
+
*
|
|
4
|
+
* Handles SSL certificate status checking and provisioning triggers.
|
|
5
|
+
* Cloudflare manages certificates automatically for proxied records;
|
|
6
|
+
* this module provides visibility and control for edge cases.
|
|
7
|
+
*
|
|
8
|
+
* @module domains/ssl
|
|
9
|
+
*/
|
|
10
|
+
import type { PlatformTLD } from '../../types/domains';
|
|
11
|
+
/**
|
|
12
|
+
* SSL certificate status
|
|
13
|
+
*/
|
|
14
|
+
export type SSLStatus = 'active' | 'pending_validation' | 'pending_issuance' | 'pending_deployment' | 'validation_timed_out' | 'issuance_timed_out' | 'deployment_timed_out' | 'deleted' | 'inactive';
|
|
15
|
+
/**
|
|
16
|
+
* SSL certificate type
|
|
17
|
+
*/
|
|
18
|
+
export type SSLCertificateType = 'universal' | 'advanced' | 'custom' | 'dedicated';
|
|
19
|
+
/**
|
|
20
|
+
* SSL validation method
|
|
21
|
+
*/
|
|
22
|
+
export type SSLValidationMethod = 'http' | 'txt' | 'email';
|
|
23
|
+
/**
|
|
24
|
+
* SSL certificate information
|
|
25
|
+
*/
|
|
26
|
+
export interface SSLCertificate {
|
|
27
|
+
/** Certificate ID */
|
|
28
|
+
id: string;
|
|
29
|
+
/** Certificate type */
|
|
30
|
+
type: SSLCertificateType;
|
|
31
|
+
/** Current status */
|
|
32
|
+
status: SSLStatus;
|
|
33
|
+
/** Hostnames covered by this certificate */
|
|
34
|
+
hosts: string[];
|
|
35
|
+
/** Certificate authority */
|
|
36
|
+
issuer: string;
|
|
37
|
+
/** Expiration timestamp */
|
|
38
|
+
expiresAt: number;
|
|
39
|
+
/** When the certificate was issued */
|
|
40
|
+
issuedAt?: number;
|
|
41
|
+
/** Validation method used */
|
|
42
|
+
validationMethod?: SSLValidationMethod;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for checking certificate status
|
|
46
|
+
*/
|
|
47
|
+
export interface CheckCertificateOptions {
|
|
48
|
+
/** The full hostname (e.g., 'acme.saas.group') */
|
|
49
|
+
hostname: string;
|
|
50
|
+
/** The platform TLD (extracted from hostname if not provided) */
|
|
51
|
+
tld?: PlatformTLD;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Options for waiting for certificate
|
|
55
|
+
*/
|
|
56
|
+
export interface WaitForCertificateOptions {
|
|
57
|
+
/** Maximum time to wait in milliseconds */
|
|
58
|
+
timeout?: number;
|
|
59
|
+
/** Polling interval in milliseconds */
|
|
60
|
+
pollInterval?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Error from SSL operations
|
|
64
|
+
*/
|
|
65
|
+
export declare class SSLError extends Error {
|
|
66
|
+
code: 'NOT_FOUND' | 'TIMEOUT' | 'VALIDATION_FAILED' | 'API_ERROR';
|
|
67
|
+
details?: Record<string, unknown> | undefined;
|
|
68
|
+
constructor(code: 'NOT_FOUND' | 'TIMEOUT' | 'VALIDATION_FAILED' | 'API_ERROR', message: string, details?: Record<string, unknown> | undefined);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get SSL certificate status for a hostname
|
|
72
|
+
*
|
|
73
|
+
* @param options - Check options
|
|
74
|
+
* @param env - Environment with CF_API_TOKEN
|
|
75
|
+
* @returns Certificate information or null if not found
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* const cert = await getCertificateStatus({
|
|
80
|
+
* hostname: 'acme.saas.group'
|
|
81
|
+
* }, env)
|
|
82
|
+
*
|
|
83
|
+
* if (cert?.status === 'active') {
|
|
84
|
+
* console.log('SSL active, expires:', new Date(cert.expiresAt))
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function getCertificateStatus(options: CheckCertificateOptions, env: {
|
|
89
|
+
CF_API_TOKEN: string;
|
|
90
|
+
}): Promise<SSLCertificate | null>;
|
|
91
|
+
/**
|
|
92
|
+
* Wait for a certificate to become active
|
|
93
|
+
*
|
|
94
|
+
* Useful after creating DNS records or triggering certificate provisioning.
|
|
95
|
+
*
|
|
96
|
+
* @param hostname - The hostname to check
|
|
97
|
+
* @param options - Wait options
|
|
98
|
+
* @param env - Environment with CF_API_TOKEN
|
|
99
|
+
* @returns The active certificate
|
|
100
|
+
* @throws SSLError if timeout or validation fails
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* try {
|
|
105
|
+
* const cert = await waitForCertificate('acme.saas.group', {
|
|
106
|
+
* timeout: 60000,
|
|
107
|
+
* pollInterval: 5000
|
|
108
|
+
* }, env)
|
|
109
|
+
* console.log('Certificate active!')
|
|
110
|
+
* } catch (error) {
|
|
111
|
+
* if (error instanceof SSLError && error.code === 'TIMEOUT') {
|
|
112
|
+
* console.log('Certificate not ready yet')
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare function waitForCertificate(hostname: string, options: WaitForCertificateOptions, env: {
|
|
118
|
+
CF_API_TOKEN: string;
|
|
119
|
+
}): Promise<SSLCertificate>;
|
|
120
|
+
/**
|
|
121
|
+
* Check if a hostname is covered by an active certificate
|
|
122
|
+
*
|
|
123
|
+
* @param hostname - The hostname to check
|
|
124
|
+
* @param env - Environment with CF_API_TOKEN
|
|
125
|
+
* @returns True if covered by an active certificate
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const covered = await isCertificateActive('acme.saas.group', env)
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function isCertificateActive(hostname: string, env: {
|
|
133
|
+
CF_API_TOKEN: string;
|
|
134
|
+
}): Promise<boolean>;
|
|
135
|
+
/**
|
|
136
|
+
* List all SSL certificates for a zone
|
|
137
|
+
*
|
|
138
|
+
* @param zone - The platform TLD
|
|
139
|
+
* @param env - Environment with CF_API_TOKEN
|
|
140
|
+
* @returns Array of certificates
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const certs = await listCertificates('saas.group', env)
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export declare function listCertificates(zone: PlatformTLD, env: {
|
|
148
|
+
CF_API_TOKEN: string;
|
|
149
|
+
}): Promise<SSLCertificate[]>;
|
|
150
|
+
/**
|
|
151
|
+
* Check if a hostname requires Advanced Certificate Manager
|
|
152
|
+
*
|
|
153
|
+
* Deep subdomains (a.b.saas.group) are not covered by Universal SSL
|
|
154
|
+
* and require Advanced Certificate Manager.
|
|
155
|
+
*
|
|
156
|
+
* @param hostname - The hostname to check
|
|
157
|
+
* @returns True if Advanced Certificate Manager is required
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```typescript
|
|
161
|
+
* requiresAdvancedCertificate('acme.saas.group') // false
|
|
162
|
+
* requiresAdvancedCertificate('api.acme.saas.group') // true
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
export declare function requiresAdvancedCertificate(hostname: string): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Get certificates expiring within a time window
|
|
168
|
+
*
|
|
169
|
+
* @param zone - The platform TLD
|
|
170
|
+
* @param withinMs - Time window in milliseconds
|
|
171
|
+
* @param env - Environment with CF_API_TOKEN
|
|
172
|
+
* @returns Certificates expiring within the window
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```typescript
|
|
176
|
+
* // Get certificates expiring in the next 30 days
|
|
177
|
+
* const expiring = await getExpiringCertificates('saas.group', 30 * 24 * 60 * 60 * 1000, env)
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
export declare function getExpiringCertificates(zone: PlatformTLD, withinMs: number, env: {
|
|
181
|
+
CF_API_TOKEN: string;
|
|
182
|
+
}): Promise<SSLCertificate[]>;
|
|
183
|
+
/**
|
|
184
|
+
* Order an Advanced Certificate for deep subdomains
|
|
185
|
+
*
|
|
186
|
+
* @param hostnames - Hostnames to cover
|
|
187
|
+
* @param zone - The platform TLD
|
|
188
|
+
* @param env - Environment with CF_API_TOKEN
|
|
189
|
+
* @returns The ordered certificate (pending)
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* const cert = await orderAdvancedCertificate(
|
|
194
|
+
* ['api.acme.saas.group', 'admin.acme.saas.group'],
|
|
195
|
+
* 'saas.group',
|
|
196
|
+
* env
|
|
197
|
+
* )
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export declare function orderAdvancedCertificate(hostnames: string[], zone: PlatformTLD, env: {
|
|
201
|
+
CF_API_TOKEN: string;
|
|
202
|
+
}): Promise<SSLCertificate>;
|
|
203
|
+
/**
|
|
204
|
+
* Extract TLD from a hostname
|
|
205
|
+
*
|
|
206
|
+
* @param hostname - Full hostname (e.g., 'acme.saas.group')
|
|
207
|
+
* @returns The TLD portion (e.g., 'saas.group')
|
|
208
|
+
*/
|
|
209
|
+
export declare function extractTLD(hostname: string): string;
|
|
210
|
+
/**
|
|
211
|
+
* Extract subdomain from a hostname
|
|
212
|
+
*
|
|
213
|
+
* @param hostname - Full hostname (e.g., 'acme.saas.group')
|
|
214
|
+
* @returns The subdomain portion (e.g., 'acme')
|
|
215
|
+
*/
|
|
216
|
+
export declare function extractSubdomain(hostname: string): string;
|
|
217
|
+
//# sourceMappingURL=ssl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssl.d.ts","sourceRoot":"","sources":["../../../do/domains/ssl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSL Certificate Management
|
|
3
|
+
*
|
|
4
|
+
* Handles SSL certificate status checking and provisioning triggers.
|
|
5
|
+
* Cloudflare manages certificates automatically for proxied records;
|
|
6
|
+
* this module provides visibility and control for edge cases.
|
|
7
|
+
*
|
|
8
|
+
* @module domains/ssl
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Error from SSL operations
|
|
12
|
+
*/
|
|
13
|
+
export class SSLError extends Error {
|
|
14
|
+
code;
|
|
15
|
+
details;
|
|
16
|
+
constructor(code, message, details) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.details = details;
|
|
20
|
+
this.name = 'SSLError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// =============================================================================
|
|
24
|
+
// Cloudflare API Constants
|
|
25
|
+
// =============================================================================
|
|
26
|
+
const CF_API_BASE = 'https://api.cloudflare.com/client/v4';
|
|
27
|
+
/** Default timeout for waiting (60 seconds) */
|
|
28
|
+
const DEFAULT_TIMEOUT = 60_000;
|
|
29
|
+
/** Default poll interval (5 seconds) */
|
|
30
|
+
const DEFAULT_POLL_INTERVAL = 5_000;
|
|
31
|
+
// =============================================================================
|
|
32
|
+
// Public API
|
|
33
|
+
// =============================================================================
|
|
34
|
+
/**
|
|
35
|
+
* Get SSL certificate status for a hostname
|
|
36
|
+
*
|
|
37
|
+
* @param options - Check options
|
|
38
|
+
* @param env - Environment with CF_API_TOKEN
|
|
39
|
+
* @returns Certificate information or null if not found
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const cert = await getCertificateStatus({
|
|
44
|
+
* hostname: 'acme.saas.group'
|
|
45
|
+
* }, env)
|
|
46
|
+
*
|
|
47
|
+
* if (cert?.status === 'active') {
|
|
48
|
+
* console.log('SSL active, expires:', new Date(cert.expiresAt))
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export async function getCertificateStatus(options, env) {
|
|
53
|
+
// TODO: Implement Cloudflare API call
|
|
54
|
+
// GET /zones/{zone_id}/ssl/certificate_packs
|
|
55
|
+
throw new Error('Not implemented');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Wait for a certificate to become active
|
|
59
|
+
*
|
|
60
|
+
* Useful after creating DNS records or triggering certificate provisioning.
|
|
61
|
+
*
|
|
62
|
+
* @param hostname - The hostname to check
|
|
63
|
+
* @param options - Wait options
|
|
64
|
+
* @param env - Environment with CF_API_TOKEN
|
|
65
|
+
* @returns The active certificate
|
|
66
|
+
* @throws SSLError if timeout or validation fails
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* try {
|
|
71
|
+
* const cert = await waitForCertificate('acme.saas.group', {
|
|
72
|
+
* timeout: 60000,
|
|
73
|
+
* pollInterval: 5000
|
|
74
|
+
* }, env)
|
|
75
|
+
* console.log('Certificate active!')
|
|
76
|
+
* } catch (error) {
|
|
77
|
+
* if (error instanceof SSLError && error.code === 'TIMEOUT') {
|
|
78
|
+
* console.log('Certificate not ready yet')
|
|
79
|
+
* }
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export async function waitForCertificate(hostname, options, env) {
|
|
84
|
+
const timeout = options.timeout ?? DEFAULT_TIMEOUT;
|
|
85
|
+
const pollInterval = options.pollInterval ?? DEFAULT_POLL_INTERVAL;
|
|
86
|
+
const startTime = Date.now();
|
|
87
|
+
while (Date.now() - startTime < timeout) {
|
|
88
|
+
const cert = await getCertificateStatus({ hostname }, env);
|
|
89
|
+
if (cert?.status === 'active') {
|
|
90
|
+
return cert;
|
|
91
|
+
}
|
|
92
|
+
if (cert?.status === 'validation_timed_out' || cert?.status === 'issuance_timed_out') {
|
|
93
|
+
throw new SSLError('VALIDATION_FAILED', `Certificate validation failed: ${cert.status}`, { hostname, status: cert.status });
|
|
94
|
+
}
|
|
95
|
+
await sleep(pollInterval);
|
|
96
|
+
}
|
|
97
|
+
throw new SSLError('TIMEOUT', `Timed out waiting for certificate: ${hostname}`, { hostname, timeout });
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if a hostname is covered by an active certificate
|
|
101
|
+
*
|
|
102
|
+
* @param hostname - The hostname to check
|
|
103
|
+
* @param env - Environment with CF_API_TOKEN
|
|
104
|
+
* @returns True if covered by an active certificate
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const covered = await isCertificateActive('acme.saas.group', env)
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export async function isCertificateActive(hostname, env) {
|
|
112
|
+
const cert = await getCertificateStatus({ hostname }, env);
|
|
113
|
+
return cert?.status === 'active';
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* List all SSL certificates for a zone
|
|
117
|
+
*
|
|
118
|
+
* @param zone - The platform TLD
|
|
119
|
+
* @param env - Environment with CF_API_TOKEN
|
|
120
|
+
* @returns Array of certificates
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const certs = await listCertificates('saas.group', env)
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export async function listCertificates(zone, env) {
|
|
128
|
+
// TODO: Implement Cloudflare API call
|
|
129
|
+
// GET /zones/{zone_id}/ssl/certificate_packs
|
|
130
|
+
throw new Error('Not implemented');
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Check if a hostname requires Advanced Certificate Manager
|
|
134
|
+
*
|
|
135
|
+
* Deep subdomains (a.b.saas.group) are not covered by Universal SSL
|
|
136
|
+
* and require Advanced Certificate Manager.
|
|
137
|
+
*
|
|
138
|
+
* @param hostname - The hostname to check
|
|
139
|
+
* @returns True if Advanced Certificate Manager is required
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* requiresAdvancedCertificate('acme.saas.group') // false
|
|
144
|
+
* requiresAdvancedCertificate('api.acme.saas.group') // true
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export function requiresAdvancedCertificate(hostname) {
|
|
148
|
+
// Count subdomain depth
|
|
149
|
+
// acme.saas.group = depth 1 (covered by *.saas.group)
|
|
150
|
+
// api.acme.saas.group = depth 2 (NOT covered)
|
|
151
|
+
const parts = hostname.split('.');
|
|
152
|
+
// Assuming TLD is last 2 parts (e.g., saas.group)
|
|
153
|
+
const subdomainDepth = parts.length - 2;
|
|
154
|
+
return subdomainDepth > 1;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get certificates expiring within a time window
|
|
158
|
+
*
|
|
159
|
+
* @param zone - The platform TLD
|
|
160
|
+
* @param withinMs - Time window in milliseconds
|
|
161
|
+
* @param env - Environment with CF_API_TOKEN
|
|
162
|
+
* @returns Certificates expiring within the window
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* // Get certificates expiring in the next 30 days
|
|
167
|
+
* const expiring = await getExpiringCertificates('saas.group', 30 * 24 * 60 * 60 * 1000, env)
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
export async function getExpiringCertificates(zone, withinMs, env) {
|
|
171
|
+
const certs = await listCertificates(zone, env);
|
|
172
|
+
const expiryThreshold = Date.now() + withinMs;
|
|
173
|
+
return certs.filter((cert) => cert.expiresAt < expiryThreshold);
|
|
174
|
+
}
|
|
175
|
+
// =============================================================================
|
|
176
|
+
// Advanced Certificate Management
|
|
177
|
+
// =============================================================================
|
|
178
|
+
/**
|
|
179
|
+
* Order an Advanced Certificate for deep subdomains
|
|
180
|
+
*
|
|
181
|
+
* @param hostnames - Hostnames to cover
|
|
182
|
+
* @param zone - The platform TLD
|
|
183
|
+
* @param env - Environment with CF_API_TOKEN
|
|
184
|
+
* @returns The ordered certificate (pending)
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* const cert = await orderAdvancedCertificate(
|
|
189
|
+
* ['api.acme.saas.group', 'admin.acme.saas.group'],
|
|
190
|
+
* 'saas.group',
|
|
191
|
+
* env
|
|
192
|
+
* )
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
export async function orderAdvancedCertificate(hostnames, zone, env) {
|
|
196
|
+
// TODO: Implement Cloudflare API call
|
|
197
|
+
// POST /zones/{zone_id}/ssl/certificate_packs/order
|
|
198
|
+
throw new Error('Not implemented');
|
|
199
|
+
}
|
|
200
|
+
// =============================================================================
|
|
201
|
+
// Helper Functions
|
|
202
|
+
// =============================================================================
|
|
203
|
+
/**
|
|
204
|
+
* Sleep for a specified duration
|
|
205
|
+
*/
|
|
206
|
+
function sleep(ms) {
|
|
207
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Extract TLD from a hostname
|
|
211
|
+
*
|
|
212
|
+
* @param hostname - Full hostname (e.g., 'acme.saas.group')
|
|
213
|
+
* @returns The TLD portion (e.g., 'saas.group')
|
|
214
|
+
*/
|
|
215
|
+
export function extractTLD(hostname) {
|
|
216
|
+
const parts = hostname.split('.');
|
|
217
|
+
// Assumes TLD is last 2 parts
|
|
218
|
+
return parts.slice(-2).join('.');
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Extract subdomain from a hostname
|
|
222
|
+
*
|
|
223
|
+
* @param hostname - Full hostname (e.g., 'acme.saas.group')
|
|
224
|
+
* @returns The subdomain portion (e.g., 'acme')
|
|
225
|
+
*/
|
|
226
|
+
export function extractSubdomain(hostname) {
|
|
227
|
+
const parts = hostname.split('.');
|
|
228
|
+
// Everything except last 2 parts
|
|
229
|
+
return parts.slice(0, -2).join('.');
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=ssl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssl.js","sourceRoot":"","sources":["../../../do/domains/ssl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subdomain Registration
|
|
3
|
+
*
|
|
4
|
+
* CRUD operations for subdomain registrations on platform TLDs.
|
|
5
|
+
* Interacts with the Builder.Domains DO for centralized registration management.
|
|
6
|
+
*
|
|
7
|
+
* @module domains/subdomains
|
|
8
|
+
*/
|
|
9
|
+
import type { PlatformTLD, SubdomainStatus, SubdomainRegistration, ClaimSubdomainRequest, ClaimSubdomainResult, DomainsManager } from '../../types/domains';
|
|
10
|
+
/**
|
|
11
|
+
* Options for listing subdomains
|
|
12
|
+
*/
|
|
13
|
+
export interface ListSubdomainsOptions {
|
|
14
|
+
/** Filter by TLD */
|
|
15
|
+
tld?: PlatformTLD;
|
|
16
|
+
/** Filter by status */
|
|
17
|
+
status?: SubdomainStatus;
|
|
18
|
+
/** Maximum results to return */
|
|
19
|
+
limit?: number;
|
|
20
|
+
/** Pagination cursor */
|
|
21
|
+
cursor?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Result of listing subdomains
|
|
25
|
+
*/
|
|
26
|
+
export interface ListSubdomainsResult {
|
|
27
|
+
/** The subdomain registrations */
|
|
28
|
+
items: SubdomainRegistration[];
|
|
29
|
+
/** Cursor for next page (if more results exist) */
|
|
30
|
+
cursor?: string;
|
|
31
|
+
/** Whether more results are available */
|
|
32
|
+
hasMore: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Options for searching subdomains
|
|
36
|
+
*/
|
|
37
|
+
export interface SearchSubdomainsOptions {
|
|
38
|
+
/** Search query (matches subdomain prefix) */
|
|
39
|
+
query: string;
|
|
40
|
+
/** Filter by TLD */
|
|
41
|
+
tld?: PlatformTLD;
|
|
42
|
+
/** Maximum results */
|
|
43
|
+
limit?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Client for subdomain operations
|
|
47
|
+
*
|
|
48
|
+
* Wraps the Builder.Domains DO stub for subdomain management.
|
|
49
|
+
*/
|
|
50
|
+
export declare class SubdomainClient implements DomainsManager {
|
|
51
|
+
private domainsStub;
|
|
52
|
+
/**
|
|
53
|
+
* Create a new SubdomainClient
|
|
54
|
+
*
|
|
55
|
+
* @param domainsStub - Durable Object stub for Builder.Domains
|
|
56
|
+
*/
|
|
57
|
+
constructor(domainsStub: DurableObjectStub);
|
|
58
|
+
/**
|
|
59
|
+
* Check if a subdomain is available
|
|
60
|
+
*
|
|
61
|
+
* @param subdomain - The subdomain to check (e.g., 'acme')
|
|
62
|
+
* @param tld - The platform TLD (e.g., 'saas.group')
|
|
63
|
+
* @returns The subdomain status
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const status = await client.check('acme', 'saas.group')
|
|
68
|
+
* if (status === 'available') {
|
|
69
|
+
* // Can be claimed
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
check(subdomain: string, tld: PlatformTLD): Promise<SubdomainStatus>;
|
|
74
|
+
/**
|
|
75
|
+
* Claim a subdomain
|
|
76
|
+
*
|
|
77
|
+
* @param request - The claim request
|
|
78
|
+
* @returns The claim result
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const result = await client.claim({
|
|
83
|
+
* subdomain: 'acme',
|
|
84
|
+
* tld: 'saas.group',
|
|
85
|
+
* ownerRef: 'do://Startup/acme'
|
|
86
|
+
* })
|
|
87
|
+
*
|
|
88
|
+
* if (result.success) {
|
|
89
|
+
* console.log('Claimed:', result.$id) // https://acme.saas.group
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
claim(request: ClaimSubdomainRequest): Promise<ClaimSubdomainResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Release a subdomain
|
|
96
|
+
*
|
|
97
|
+
* @param subdomain - The subdomain to release
|
|
98
|
+
* @param tld - The platform TLD
|
|
99
|
+
* @param ownerRef - The owner's DO $id (must match registration)
|
|
100
|
+
* @returns True if released successfully
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const released = await client.release('acme', 'saas.group', 'do://Startup/acme')
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
release(subdomain: string, tld: PlatformTLD, ownerRef: string): Promise<boolean>;
|
|
108
|
+
/**
|
|
109
|
+
* List subdomains owned by a specific DO
|
|
110
|
+
*
|
|
111
|
+
* @param ownerRef - The owner's DO $id
|
|
112
|
+
* @returns Array of subdomain registrations
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const subdomains = await client.listByOwner('do://Startup/acme')
|
|
117
|
+
* // [{ $id: 'https://acme.saas.group', subdomain: 'acme', ... }]
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
listByOwner(ownerRef: string): Promise<SubdomainRegistration[]>;
|
|
121
|
+
/**
|
|
122
|
+
* Get a specific subdomain registration
|
|
123
|
+
*
|
|
124
|
+
* @param subdomain - The subdomain
|
|
125
|
+
* @param tld - The platform TLD
|
|
126
|
+
* @returns The registration or null if not found
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const reg = await client.get('acme', 'saas.group')
|
|
131
|
+
* if (reg) {
|
|
132
|
+
* console.log('Owner:', reg.ownerRef)
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
get(subdomain: string, tld: PlatformTLD): Promise<SubdomainRegistration | null>;
|
|
137
|
+
/**
|
|
138
|
+
* Search subdomains by prefix
|
|
139
|
+
*
|
|
140
|
+
* @param query - Search query (prefix match)
|
|
141
|
+
* @param tld - Optional TLD filter
|
|
142
|
+
* @returns Matching registrations
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* const results = await client.search('acm', 'saas.group')
|
|
147
|
+
* // [{ subdomain: 'acme', ... }, { subdomain: 'acme-dev', ... }]
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
search(query: string, tld?: PlatformTLD): Promise<SubdomainRegistration[]>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Create a subdomain client from a Durable Object namespace
|
|
154
|
+
*
|
|
155
|
+
* @param namespace - The Builder.Domains DO namespace
|
|
156
|
+
* @returns A SubdomainClient instance
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const client = createSubdomainClient(env.BUILDER_DOMAINS)
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export declare function createSubdomainClient(namespace: DurableObjectNamespace): SubdomainClient;
|
|
164
|
+
/**
|
|
165
|
+
* Build the full domain URL from subdomain and TLD
|
|
166
|
+
*
|
|
167
|
+
* @param subdomain - The subdomain (e.g., 'acme')
|
|
168
|
+
* @param tld - The platform TLD (e.g., 'saas.group')
|
|
169
|
+
* @returns The full URL (e.g., 'https://acme.saas.group')
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* buildDomainUrl('acme', 'saas.group')
|
|
174
|
+
* // 'https://acme.saas.group'
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
export declare function buildDomainUrl(subdomain: string, tld: PlatformTLD): string;
|
|
178
|
+
/**
|
|
179
|
+
* Parse a domain URL into subdomain and TLD
|
|
180
|
+
*
|
|
181
|
+
* @param url - The domain URL (e.g., 'https://acme.saas.group')
|
|
182
|
+
* @returns Object with subdomain and tld, or null if invalid
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* parseDomainUrl('https://acme.saas.group')
|
|
187
|
+
* // { subdomain: 'acme', tld: 'saas.group' }
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
export declare function parseDomainUrl(url: string): {
|
|
191
|
+
subdomain: string;
|
|
192
|
+
tld: PlatformTLD;
|
|
193
|
+
} | null;
|
|
194
|
+
/**
|
|
195
|
+
* Check if a URL is a platform domain
|
|
196
|
+
*
|
|
197
|
+
* @param url - The URL to check
|
|
198
|
+
* @returns True if the URL is on a platform TLD
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* isPlatformDomain('https://acme.saas.group') // true
|
|
203
|
+
* isPlatformDomain('https://example.com') // false
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
export declare function isPlatformDomain(url: string): boolean;
|
|
207
|
+
//# sourceMappingURL=subdomains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subdomains.d.ts","sourceRoot":"","sources":["../../../do/domains/subdomains.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAQ5B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,uBAAuB;IACvB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAMD;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAMxC,OAAO,CAAC,WAAW;IAL/B;;;;OAIG;gBACiB,WAAW,EAAE,iBAAiB;IAElD;;;;;;;;;;;;;;OAcG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAK1E;;;;;;;;;;;;;;;;;;OAkBG;IACG,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwB1E;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAKrE;;;;;;;;;;;;;;OAcG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAKrF;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAIjF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,GAAG,eAAe,CAIxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,GAAG,IAAI,CAG1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD"}
|